如何确定msserv连接参数的正确端口?
根据RfcOpenConnection的文档:
如果消息服务器的服务未在/etc/services中定义为sapms,则只需要msserv。
在我的案例中,我使用未修改的/etc/services
文件运行标准linux发行版。
这意味着我需要msserv
的匹配值。
在一个系统上,我很幸运,我尝试了3600
,它成功了。
但在第二个系统上,它失败了。
我可以通过SAP-GUI连接到系统。
如何确定msserv
所需的值?
这是这个问题的后续:PyRFC:通过mshost(而不是ashost(连接
您需要询问SAP系统管理员是否告诉您消息服务器服务端口号。它是在安装SAP系统时指定的,也可以由系统管理员稍后更改和配置。
如果您已经可以通过SAP GUI访问系统,并且您也拥有所需的授权,您也可以在消息服务器监视器中查找此项(标题区域中的事务SMMS或通过菜单Goto->Parameters->Display(,或者如果您拥有此授权,您可以通过事务ST11查看消息服务器跟踪文件dev_ms
。
请参阅https://help.sap.com/viewer/portsSAP软件使用的端口号列表。SAP消息服务器服务端口号仅限于旧SAP系统版本的3600-3699范围。如今,SAP消息服务器服务端口号可以自由配置为任何端口号(当然与SAP软件使用的其他端口号不冲突(。
如果未指定msserv
登录参数,则各种SAP连接器将通过模板sapms<SID>
(例如sapmsTE1
(自动构造消息服务器服务名称,然后将此符号服务名称解析为TCP端口号(通常通过从本地文件etc/services
中查找来实现(。顺便说一下,参数msserv
可以包含端口号或符号服务名称。这与SAP网关服务的参数gwserv
相同。
@dirk trilsbeek是正确的。您可以在此处找到SAP产品使用的所有端口:https://cp.hana.ondemand.com/dps/d/preview/47673f06bd494db680ff6150c0b08108/2.0/en-US/frameset.htm
根据应用程序服务器的安装方式,您的端口将位于32xx、33xx或36xx范围内,其中xx是您可以在SAPGui中找到的实例号。我不知道找到实际使用的端口的简单方法,但有了这些信息,您只需要检查3即可使其适用于您的RFC调用。