我并没有真正设法找到有关此的适当文档。JCO com.sap.conn.jco.JCoDestination和com.sap.conn.jco.JCoDestinationManager中有类。我对他们的问题:
- 它们是线程安全的吗?
- 如果不是,它们的创建成本高吗?
我并没有真正设法找到有关此的适当文档。JCO com.sap.conn.jco.JCoDestination和com.sap.conn.jco.JCoDestinationManager中有类。我对他们的问题:
我想我终于找到了。http://help.sap.com/saphelp_nwpi711/helpdata/en/48/6437ccbdbc51eee10000000a421937/content.htm
注意 在多线程环境中,不同线程之间的对象(例如,JCoTable 对象)的分布必须小心实现。请注意,不能为同一个直接连接进行多个并发 SAP 调用。
所以它不是线程安全的
不能对整个 JCo 框架说它是否是线程安全的。这取决于使用的类和实例。
JCo 中的 , 和 , 等数据容器实例JCoFunction
不是线程JCoTable
安全的 - 幸运的是,因为通常它们不会同时从不同的线程访问,因此不自动同步这些实例会带来更好的性能。JCoStructure
JCoRecord
但是类和静态方法在 JCo 中是线程安全的。例如,您不需要同步对 的调用JCoDestinationManager
。
这JCoDestination
是一个特例。通常你不需要同步你对这个实例的调用,因为它会在内部为每个会话创建和使用不同的 RFC 客户端连接对象。在 JCo 的默认实现中,每个线程都被视为单独的会话,因此您不会在此处遇到线程安全问题。只有当基础设施环境SessionReferenceProvider
在 JCo 运行时注册它自己的并且会同时将相同的会话 ID 分配给多个线程时,对于同一个目的地的有状态RFC 调用才可能存在线程安全冲突。在这种情况下,JCo 检测到这种错误情况并抛出一个with error group 。JCoException
JCO_ERROR_CONCURRENT_CALL
你读过连接器的文档吗?
https://websmp105.sap-ag.de/~sapidb/011000358700000730362009D/SAPJCo_Doku_3.0_EN.pdf
我不明白您的问题,您尝试调用 RFC 并没有实现?