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

来源:互联网 发布:java项目打包部署 编辑:程序博客网 时间:2024/06/05 04:24

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

 

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

 

在使用前,首先要明白大概机制,首先用户发请求给WEB服务器的ISAPI接口文件broker.exebroker.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段,如下,我们建立一个testservice

  SocketService test

    ServiceAdmin "[your-name]"

    ServiceAdminMail "[your-email]"

    ServiceTimeout       900

    Server       localhost

    Port        5002

FullDuplex  True

上面就再broker.cfg中建立了一个服务段,这样再broker.exe中文件知道_service=testbroker.exe文件就会去定位端口号为5002SAS应用服务器

 

这样,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.


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看数据集文件,发现里面也多了一条记录

 

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

 

谢谢

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

 

 
原创粉丝点击