javajco

Facing issue with SAP JCo server connectivity when system out of network


We are facing issue with SAP JCo Server.

Issue: We have a running SAP JCo server. Suppose if system gets out of the network, running SAP JCo server start throwing error. If system comes back in network within 30-45 minutes then started SAP JCo server resume its functionality. But if system comes in network after long time say 1 or 2 hours then SAP JCo server doesn't resume its functionality.

Let us know is there any way to increase the retry count and retry interval? Or a way to configure infinite retries.

Approach: We tried to restart SAP JCo server by calling stop method on server instance and then we called start method on same server instance, but still SAP JCo server is not receiving IDOCs sent by SAP server until we restart the JVM.

Expectation: When system comes in network after long time then after restarting the SAP JCo server (calling stop() > release() > start() methods) should work properly.

Does SAP API have any binding with JVM or it cache something at JVM level?

Please let us know what we need to do? So that started SAP JCo server resumes its functionality even after it's out of network for long time.

Let me know in case you need more information.

Running SAP JCo Version : SAPJCO3.jar (3.0.14)

SAP JCo server error when it goes out of network:

2016-09-01 11:34:08,014 ERROR [JCoServerThread-2] SAPServer     com.adeptia.indigo.services.sap.server.ErrorListener.serverExceptionOccurred(ErrorListener.java:46) - ||||administrators|||||admin|Error occured on ADEPTIATEST connection 4-/H/155.56.59.11/H/cpcF501|sapgw05|ADEPTIATEST[CPIC-CALL: SAP_CMACCPTP3 on convId:         

ERROR       connection to partner '155.56.59.11:3299' broken
TIME        Thu Sep 01 11:34:07 2016
RELEASE     720
COMPONENT   NI (network interface)
VERSION     40
RC          -6
MODULE      nixxi.cpp
LINE        5087
DETAIL      NiIRead: P=155.56.59.11:3299; L=192.168.1.73:51413
SYSTEM CALL recv
ERRNO       10054
ERRNO TEXT  WSAECONNRESET: Connection reset by peer
COUNTER     1
]|192.168.1.73||null
com.sap.conn.jco.JCoException: (102) JCO_ERROR_COMMUNICATION: CPIC-CALL: SAP_CMACCPTP3 on convId:         

ERROR       connection to partner '155.56.59.11:3299' broken
TIME        Thu Sep 01 11:34:07 2016
RELEASE     720
COMPONENT   NI (network interface)
VERSION     40
RC          -6
MODULE      nixxi.cpp
LINE        5087
DETAIL      NiIRead: P=155.56.59.11:3299; L=192.168.1.73:51413
SYSTEM CALL recv
ERRNO       10054
ERRNO TEXT  WSAECONNRESET: Connection reset by peer
COUNTER     1

    at com.sap.conn.jco.rt.MiddlewareJavaRfc.generateJCoException(MiddlewareJavaRfc.java:681)
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.listen(MiddlewareJavaRfc.java:2269)
    at com.sap.conn.jco.rt.DefaultServerWorker.dispatch(DefaultServerWorker.java:284)
    at com.sap.conn.jco.rt.DefaultServerWorker.loop(DefaultServerWorker.java:369)
    at com.sap.conn.jco.rt.DefaultServerWorker.run(DefaultServerWorker.java:245)
    at java.lang.Thread.run(Thread.java:745)
Caused by: RfcException: [null]
    message: CPIC-CALL: SAP_CMACCPTP3 on convId:         

ERROR       connection to partner '155.56.59.11:3299' broken
TIME        Thu Sep 01 11:34:07 2016
RELEASE     720
COMPONENT   NI (network interface)
VERSION     40
RC          -6
MODULE      nixxi.cpp
LINE        5087
DETAIL      NiIRead: P=155.56.59.11:3299; L=192.168.1.73:51413
SYSTEM CALL recv
ERRNO       10054
ERRNO TEXT  WSAECONNRESET: Connection reset by peer
COUNTER     1

    Return code: RFC_FAILURE(1)
    error group: 102
    key: RFC_ERROR_COMMUNICATION

    at com.sap.conn.rfc.engine.RfcIoOpenCntl.RfcListen(RfcIoOpenCntl.java:2315)
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.listen(MiddlewareJavaRfc.java:2229)
    ... 4 more
Caused by: 
>RfcIoException:
    message: CPIC-CALL: SAP_CMACCPTP3 on convId:         

ERROR       connection to partner '155.56.59.11:3299' broken
TIME        Thu Sep 01 11:34:07 2016
RELEASE     720
COMPONENT   NI (network interface)
VERSION     40
RC          -6
MODULE      nixxi.cpp
LINE        5087
DETAIL      NiIRead: P=155.56.59.11:3299; L=192.168.1.73:51413
SYSTEM CALL recv
ERRNO       10054
ERRNO TEXT  WSAECONNRESET: Connection reset by peer
COUNTER     1

    Return code: RFCIO_ERROR_SYSERROR(5)<


    at com.sap.conn.rfc.engine.RfcIoOpenCntl.ab_rfclisten(RfcIoOpenCntl.java:1392)
    at com.sap.conn.rfc.engine.RfcIoOpenCntl.RfcListen(RfcIoOpenCntl.java:2311)
    ... 5 more

Solution

  • It should work fine when you do the following while stopping JCO server instance:

    1. Delete reference to your server from ServerDataEventListener instance. You can retrieve reference of ServerDataEventListener instance from your registered ServerDataProvider object.
    2. Delete reference to your destination from DestinationDataEventListener instance. You can retrieve reference of DestinationDataEventListener instance from your registered DestinationDataProvider object.