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