1

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

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

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

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

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

4

1 回答 1

1

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

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

于 2019-12-20T20:51:51.127 回答