点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我的问题如下:我们有一个注册的RFC目标作为"注册的服务器程序"。 目标已使用类型T向TCP/IP连接注册。
在程序中,我们注册服务器RFC Destination,并借助Jco创建功能存储库。
JCoServer服务器= JCoServerFactory.getServer(serverName);
JCoCustomRepository存储库= JCo.createCustomRepository(serverName);
只要我们的程序只运行一个实例,一切就可以正常工作。 但是,当我们有多个实例时,就会为每个程序实例创建并启动服务器。 反过来,这又导致在网关监视器表(smgw)中出现多个条目。 一旦发生这种情况,对rfc服务器的请求就会偶尔重定向,并且会发生死锁。
解决此问题的最佳方法是什么? 我们不能为每个程序实例注册一个不同的RFC目标吗? 有没有一种方法可以只使用一个服务器,并防止每个程序实例注册和启动其他服务器?
致谢!
伊娜,
创建具有更多线程的JCo服务器时,每个JCo服务器进程在ABAP网关上注册相同的程序ID,这是预期的行为,请参见JCo文档ServerDataProvider:
jco.server.progid-用于在网关上注册和标识JCoServer的程序ID
jco.server.connection_count-要在网关上注册的服务器连接数
您在哪里遇到僵局?
最诚挚的问候,
Antal
嗨Antal,
问题在于,我们实质上为每个程序实例创建一个新服务器。 并且所有服务器都具有相同的RFC目的地名称和programID。 当我们通过serverProperties.put(ServerDataProvider.JCO_CONNECTION_COUNT," 10")将连接数设置为大于1时,只要创建的服务器中有一个拥有足够的可用连接插槽,则只有其中一个服务器会获得所有RFC调用 。 在上面的示例中,它是10。
我们有点想让每个服务器都收到自己的rfc调用。 但是,只要它们都共享相同的programID,就不会发生这种情况。 这就是为什么我想知道是否存在某种可以使用的解决方法,而该解决方法不涉及使用不同的programID来创建多个RFC目标。 因为我们可以拥有数量不受限制的程序实例。
此致
Ina
嗨,
您是否尝试过使用异步RFC(aRFC)进行并行化?
STARTING NEW TASK附加功能使您可以在另一个系统上异步启动功能模块。
此致
一周热门 更多>