JCO连接

JCO连接过程
1. 从provider中获取:把连接属性放入property对象中,再把作为 Destination 放入 destinationDataProvider中,然后注册 Environment.registerDestinationDataProvider。 destinationDataProvider中可以存放多个Destination,在使用的时候用 JCoDestinationManager.getDestination取出Destination即可。
2.从文件中获取:先创建文件,然后JCoDestinationManager.getDestination

jcoDestination
jcoDestination只是一个包含连接配置的属性,本身不创建和包含任何和sap的连接,连接和连接池是由jco运行环境根据jcoDestination中的属性创建的

ROUTER
/H/10.99.01.19/H/192.168.1.12 注意H要大写

JCO连接池
当jco设置了连接池,即 JCO_POOL_CAPACITY不等于0时,如:
jcoProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY,"1");
java连接sap之后连接不会自动断开(如果没有连接池效果调用rfc之后连接就断开了),在sm04可以看见OA用户长时间保持了两个连接。其中应用程序信息中 F 表示函数名,如 F= zflg_acc_create2,此时如果修改了zflg_acc_create2的代码或者参数,在oa端调用会执行旧的版本的代码(也无法使用新增的参数,会直接dump)。测试sm04断开oa用户的这条连接,oa再掉一次执行的就是最新的代码了。
结论:jco不要使用连接池,可以避免很多不必要的麻烦(SMS测试不使用连接池效率也没有收到影响)。

端口
JCO使用3300端口,GUI登陆使用3200


你可能感兴趣的:(SAP接口技术)