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
It should work fine when you do the following while stopping JCO server instance:
ServerDataEventListener
instance. You can retrieve reference of ServerDataEventListener
instance from your registered ServerDataProvider
object.DestinationDataEventListener
instance. You can retrieve reference of DestinationDataEventListener
instance from your registered DestinationDataProvider
object.