您的位置:首页 > 移动开发

SAS INTRNET HELLO,WROLD程序配置使用详解

2006-10-30 10:44 411 查看
SAS INTRNET HELLO,WROLD程序配置使用详解
 

由于这近有人不太明白SAS INTRNET如何配置使其工作,故写此文档,希望能对其有所帮助
 

在使用前,首先要明白大概机制,首先用户发请求给WEB服务器的ISAPI接口文件broker.exe,broker.exe会根据broker.cfg配置文件的信息去定位SAS应用服务器,SAS应用服务器接到请求后调用SAS来请求SAS语句,并把输出结果返回给WEB服务器,WEB服务器再把结果转交给请求的用户,我就根据此原理用C++和ACE网络框架写了这样一个自己的INTRNET,感兴趣的可以交流一下
 

SAS应用服务器的配置:
可以通过界面来配置,也可以直接通过修改文件来配置,一般我会选择通过文件来配置,如下:
会涉及到下面2个文件
一个是appstart.bat文件,其用于启动SAS应用服务器
一个是appstart.sas文件,其用于SAS应用服务器的一些初始配置,被APPSTART.BAT调用
2者大体格式如下:
Appstart.bat 文件:
[
cd "d:/test"
start/min "SAS/IntrNet" "sas.exe" appstart.sas -log appsrv_5002.log -noterminal -rsasuser -sysparm "port=5002" -awstitle "SAS/AppSvr new cw"
]
其中5002表示你应用服务器监听的端口号
Appstart.sas文件:
[
%macro ifcexist(catname);
  %local catname;
  %if %sysfunc(cexist(&catname)) %then &catname;
%mend;
 

%let rc=%sysfunc(ntlog(INFORMATION,SAS/IntrNet Application Server started for the powerviewer service.));
proc appsrv  unsafe='&";%'''  programs=8
  &sysparm;
 

  allocate library prog 'D:/test/prog';
  allocate library data 'D:/test/data';
  proglibs  prog;
  datalibs data  ;
 
run;
%let rc=%sysfunc(ntlog(INFORMATION,SAS/IntrNet Application Server stopped for the powerviewer service.));
]
 

上面的配置文件对环境进行初始化,分配了test程序库和DATA数据库的位置,这样我们可以再后面的SAS文件中直接利用这2个库进行操作
 

WEB服务器配置
首先建立一个虚拟目录指向broker.exe,如test虚拟目录,指向d:/test/cgi-bin,注意,此虚拟目录应该有执行ISAPI的权限
然后我们需要更改broker.cfg文件的配置信息,主要是要描述如何访问SAS应用服务器,主要要配置services段,如下,我们建立一个test的service段
  SocketService test
    ServiceAdmin "[your-name]"
    ServiceAdminMail "[your-email]"
    ServiceTimeout       900
    Server       localhost
    Port        5002
FullDuplex  True
上面就再broker.cfg中建立了一个服务段,这样再broker.exe中文件知道_service=test,broker.exe文件就会去定位端口号为5002的SAS应用服务器
 

这样,SAS应用服务器和WEB服务器都以配置好,现在我们测试一下我们部署的环境是否正常,再IE使用下面地址访问:
http://localhost/test/broker.exe?_debug=4
在出现的见面选择TEST,然后单击ping链接,IE跳转到下面URL地址:
http://localhost/test/broker.exe?_service=test&_program=ping&_adminpw=
如果正常就会出现下面信息:
【Ping. The Application Server wuyzpc:5002 is functioning properly.

[align=center][/align]
This request took 0.09 seconds of real time (v8.2 build 1391).】

 

如果不正常,请检查你的SAS应用服务器是否正常启动,如果已经正常启动,请查看SAS应用服务器的日志信息
 

就这样,我们已经成功部署好了环境,现在我们建立一个最简单的应用,输出hello world信息给IE,并记录访问次数信息到data.count数据集
打开SAS,执行下面语句,建立访问数据集count
libname prog "d:/test/prog";

libname data "d:/test/data";

/*建立访问次数数据集*/

data data.count;

length ip $20. adate 8;

delete;

format adate yymmdd10.;

run;

然后再prog catalog下建立test目录,test目录下建立hello.scl文件,内容如下:

init:                                                                                                                                  

dcl char(20) ip  num adate;                                                                                                             

/*获得当前用户的IP地址*/                                                                                                               

ip=symget("_RMTADDR");                                                                                                                  

adate=datetime();                                                                                                                      

/*输出反馈信息*/                                                                                                                        

submit continue;                                                                                                                       

data _null_;                                                                                                                           

file _webout;                                                                                                                           

put "hello,world!";                                                                                                                    

run;                                                                                                                                    

/*记录访问信息*/                                                                                                                       

proc sql noprint;                                                                                                                       

insert into data.count(ip,adate) values("&ip",&adate);                                                                                 

quit;                                                                                                                                   

endsubmit;

 

 

测试环境都已准备好了,这样,通过下面URL链接访问hello.source,如下:
 

http://localhost/test/broker.exe?_service=test&_program=prog.test.hello.scl
 

看到没,IE界面就会显示hello,world字样,然后上SAS看数据集文件,发现里面也多了一条记录
 

OK,SAS的第一个HELLO WORLD程序就完成了,由于时间关系,写的比较粗,语言组织也不好,希望大家见谅;但整个流程已经过我自己测试通过,希望上面文件能对你有帮助
 

谢谢
(如有转载,请注明来处)
 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息