SAS9-IT技术应用-通过JAVA访问SAS实例

在配置好SAS的IT后,其容许JAVA通过Bridge技术访问IT,下面写一个测试例子,通过JAVA执行DATA STEP,并获得返回的日志信息

//Untitled1.java


import com.sas.iom.SAS.IWorkspace;
import com.sas.iom.SAS.IWorkspaceHelper;
import com.sas.iom.SAS.ILanguageService;
import com.sas.iom.SAS.ILanguageService;
import com.sas.iom.SAS.ILanguageServicePackage.CarriageControlSeqHolder;
import com.sas.iom.SAS.ILanguageServicePackage.LineTypeSeqHolder;
import com.sas.iom.SAS.IWorkspace;
import com.sas.iom.SASIOMDefs.StringSeqHolder;
import com.sas.services.connection.BridgeServer;
import com.sas.services.connection.ConnectionFactoryAdminInterface;
import com.sas.services.connection.ConnectionFactoryConfiguration;
import com.sas.services.connection.ConnectionFactoryInterface;
import com.sas.services.connection.ConnectionFactoryManager;
import com.sas.services.connection.ConnectionInterface;
import com.sas.services.connection.ManualConnectionFactoryConfiguration;
import com.sas.services.connection.Server;

import java.util.*;
import java.io.*;
import java.io.DataInputStream;
import java.io.DataOutputStream;


public class Untitled1 {
  public Untitled1() {
  }

  static public void main(String[] argv){

// identify the IOM server
    String classID = Server.CLSID_SAS;
    String host = "wuyz";
    int port = 8591;
    Server server = new BridgeServer(classID, host, port);
    try{
// make a connection factory configuration with the server
      ConnectionFactoryConfiguration cxfConfig =
          new ManualConnectionFactoryConfiguration(server);

// get a connection factory manager
      ConnectionFactoryManager cxfManager = new ConnectionFactoryManager();

// get a connection factory that matches the configuration
      ConnectionFactoryInterface cxf = cxfManager.getFactory(cxfConfig);

// get the administrator interface
      ConnectionFactoryAdminInterface admin = cxf.getAdminInterface();

// get a connection
      String userName = "sasadm";
      String password = "sas";
System.out.println("----------------------- connnect.... ");
      ConnectionInterface cx = cxf.getConnection(userName, password);
      org.omg.CORBA.Object obj = cx.getObject();
      IWorkspace iWorkspace = IWorkspaceHelper.narrow(obj);

      ILanguageService sasLanguage = iWorkspace.LanguageService();
      /*excute a examle data step.*/
      sasLanguage.Submit("data a;x=1;run;proc print;run;");

      /*get SAS log.*/
      CarriageControlSeqHolder logCarriageControlHldr =
         new CarriageControlSeqHolder();
      LineTypeSeqHolder logLineTypeHldr = new LineTypeSeqHolder();
      StringSeqHolder logHldr = new StringSeqHolder();
      sasLanguage.FlushLogLines(Integer.MAX_VALUE,logCarriageControlHldr,
                                logLineTypeHldr,logHldr);
      String[] logLines = logHldr.value;
      CarriageControlSeqHolder listCarriageControlHldr =
         new CarriageControlSeqHolder();
      LineTypeSeqHolder listLineTypeHldr = new LineTypeSeqHolder();
      StringSeqHolder listHldr = new StringSeqHolder();
      sasLanguage.FlushListLines(Integer.MAX_VALUE,listCarriageControlHldr,
                                 listLineTypeHldr,listHldr);
      String[] listLines = listHldr.value;

      System.out.println("-----------------------------SAS---------------------");
      for(int i=0 ; i < listLines.length;i++){
        System.out.println(listLines[i]);
      }
      System.out.println("-----------------------------SAS  END----------------");

      cx.close();
System.out.println("----------------------- connnect is close.... ")  ;

// tell the factory that it can destroy unused connections
      admin.shutdown();
System.out.println("----------------------- is shutdown.... ")        ;
    }catch(Exception e){
      e.printStackTrace();
    }
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值