SAP / node-rfc

Asynchronous, non-blocking SAP NW RFC SDK bindings for Node.js
Apache License 2.0
249 stars 73 forks source link

Using MSHost gives empty error message with RFC_COMMUNICATION_FAILURE #240

Closed jericatolentino closed 2 years ago

jericatolentino commented 2 years ago

Describe the bug I am trying to convert our current setup from sending requests using ASHOST to MSHOST as load balancing is needed. However when I use MSHOST I am getting a network error with no details on RFC_COMMUNICATION_FAILURE.

To Reproduce npm install node-rfc Making a request to returns

{
  name: 'RfcLibError',
  group: 4,
  code: 1,
  codeString: 'RFC_COMMUNICATION_FAILURE',
  key: 'RFC_COMMUNICATION_FAILURE',
  message: ''
}

Screenshots I have attaches the trace files that may give more information rfc00001_275690489600.txt rfc00001_275682096896.txt

Any help would be appreciated.

bsrdjan commented 2 years ago

Sorry for the pending response here, is the issue still open?

You can check MSHOST connection parameters per sapnwrfc.ini documentation in SAP NWRFC SDK demo folder:

# 2.1 Parameters for direct application server logon

# ASHOST  : Hostname of the application server.
# SYSNR   : The backend's system number. (E.g. "01")

# 2.2 Parameters for load balancing

# MSHOST          : Hostname of the message server, which is doing the loadbalancing.
# MSSERV          : Not needed in most cases. Specify this parameter only, if the
            message server does not listen on the standard service "sapms<SysID>",
            or if this service is not defined in the services file and you need to
            specify the network port directly. Note: on Unix the services are
            defined in /etc/services, while on Windows they are defined in
            C:\WINDOWS\system32\drivers\etc\services.
# R3NAME or SYSID : The backend's system ID. (E.g. "H9C"). If this parameter is not
            specified, the value of DEST is used instead.
# GROUP           : The logon group from which the application server should be chosen.
            If this parameter is not specified, "PUBLIC" is used.
# USE_SYMBOLIC_NAMES : Defines, whether during group-logon the NW RFC library should use symbolic service names
            defined in /etc/services, like sapgw33, or hard-coded port numbers derived from the
            instance number, like 3300.
            Values:
            0: use port numbers (default)
            1: use service names

One of examples:

DEST=BIN
MSHOST=binmain
GROUP=PUBLIC
CLIENT=000
USER=老李
PASSWD=ides1234567
LANG=ZH
CODEPAGE=8400
TRACE=2
bsrdjan commented 2 years ago

Please re-open if any further questions