Java 对不同的sso票证重用jco 3连接池

Java 对不同的sso票证重用jco 3连接池,java,sap,jco,sapjco3,Java,Sap,Jco,Sapjco3,我们创建了一个java应用程序,它使用JCo3访问远程SAP系统数据 我们正在使用SSO票证连接到该系统 问题是,是否有某种方法可以对所有用户SSO票证重用相同的连接池,而不是为每个令牌创建专用池 目前,我们有一个DestinationDataProvider.getDestinationProperties实现,它将SSO票证作为参数,并返回相应的属性实例,我相信最终每个用户都有一个连接池 我不确定此配置的效率,可能想知道这些连接是否可以以某种方式重用。技术RFC连接设计不允许与其他用户重用R

我们创建了一个java应用程序,它使用JCo3访问远程SAP系统数据

我们正在使用SSO票证连接到该系统

问题是,是否有某种方法可以对所有用户SSO票证重用相同的连接池,而不是为每个令牌创建专用池

目前,我们有一个DestinationDataProvider.getDestinationProperties实现,它将SSO票证作为参数,并返回相应的属性实例,我相信最终每个用户都有一个连接池


我不确定此配置的效率,可能想知道这些连接是否可以以某种方式重用。

技术RFC连接设计不允许与其他用户重用RFC连接。RFC连接绑定到无法切换的用户标识。因此,无法实现具有多个物理连接的连接池,这些连接将根据需要使用不同的用户ID。 这不是JCo的限制,而是RFC的一般限制

然而,这并不是那么悲惨,因为建立RFC连接最昂贵的部分不是通过TCP/IP打开新的物理连接,而是RFC用户授权过程及其RFC上下文对象创建和内部初始化。因此,每个目的地和每个用户都有连接池才是真正有助于实现更好性能的因素。您无需担心并注意优化内部JCo连接池。即使每个用户ID都有一个自己的池,这也可以很好地开箱即用