JCO SERVER CONNECTION

本文详细介绍了JCOServerConnection的实现方法,包括建立SAP连接、处理RFC请求及异常监听等核心步骤。提供了具体的配置参数示例,如IP地址、端口号等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JCO SERVER CONNECTION使用说明

JCo(Sap Java Connect 2010-01-09 22:03:02 阅读66 评论0   字号: 订阅

1.    Jco Server  Connection实现要点

1)       Implement the JCoServerFunctionHandler and the coding to be executed when the call is received.

2)       Create an instance for your JCoServer implementation and start it with start().

 

1.1. 建立与sap端的连接

static

    {

        Properties connectProperties = new Properties();

        connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "10.52.41.3");

        connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "02");

        connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "800");

        connectProperties.setProperty(DestinationDataProvider.JCO_USER, "CRCTEST");

        connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "12345678");

        connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "en");

        createDataFile(DESTINATION_NAME1, "jcoDestination", connectProperties);

       

        connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3");

        connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10");

        createDataFile(DESTINATION_NAME2, "jcoDestination", connectProperties);

       

        Properties servertProperties = new Properties();

        servertProperties.setProperty(ServerDataProvider.JCO_GWHOST, "10.52.41.3");

        servertProperties.setProperty(ServerDataProvider.JCO_GWSERV, "3302");

        servertProperties.setProperty(ServerDataProvider.JCO_PROGID, "JCODEMO");

        servertProperties.setProperty(ServerDataProvider.JCO_REP_DEST, "ABAP_AS_WITH_POOL");

        servertProperties.setProperty(ServerDataProvider.JCO_CONNECTION_COUNT, "2");

        createDataFile(SERVER_NAME1, "jcoServer", servertProperties);

    }

ServerDataProvider.JCO_GWHOST 设置的是server端的ip地址,ServerDataProvider.JCO_GWSERV设置的是sap端的端口号。

1.2. StfcConnectionHandle类处理RFC

StfcConnectionHandle类继承JCoServerFunctionHandle接口,并重写了handleRequestJCoServerContext serverCtxJCoFunction function)方法。

New 一个DefaultServerHandlerFactory.FunctionHandlerFactory 对象,使用registerHandlerFunction NamestfcConnectionHandler)方法,前面一个参数是sap端所要调用的函数,后面一个参数是StfcConnectionHandler类的一个实例。

然后使用server namesetCallHandlerFactoryDefaultServerHandlerFactory.FunctionHandlerFactory factory)方法,就可以用server.start()了。

补充handleRequestJCoServerContext serverCtxJCoFunction function)功能:

function.getImportParameterList()用来获取sap call Function 传递过来的exporting参数。

function.getExportParameterList().setValue()用来设置importing参数。

 

 

1.3. Simple Server Connection With Exception Listener Server Connection tRFC Server Connection

1.3.1.    With Exception Server Connection Simple Server Connection 的基础上,register Listener Class.

MyThrowableListener eListener = new MyThrowableListener();

server.addServerErrorListener(eListener);

server.addServerExceptionListener(eListener);

 

MyThrowableListener 继承JCoServerErrorListener JCoServerExceptionListener 两个接口,重写了serverErrorOccurred() 和serverExceptionOccurred()方法。

 

1.3.2.    tRFC Server Connection Simple Server Connection的基础上,通过TIDHandler实现事务型Connection

 

myTIDHandler = new MyTIDHandler();

server.setTIDHandler(myTIDHandler);


 JCO SERVER CONNECTION使用说明 - wangjia007bond - 青空飞鸟

MyTIDHandler类继承JCoServerTIDHandler 接口,重写了checkTID(),commit(),rollback(),confirmTID(),execute()方法。

使用了一个HashTable存储statusCREATED, EXECUTED, COMMITTED, ROLLED_BACK, CONFIRMED ),TIDState state = availableTIDs.gettid)。如果statusnull,则改变为CREATED,返回TRUE;如果statusCREATED或者ROLLED_BACK,则返回TRUE,其他返回FALSE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值