IBM Support

Command Line 2 Adapter (CLA2) gets SocketException: Connection reset when encrypting a 30 GB file in Sterling B2B Integrator.

Troubleshooting


Problem

In Sterling B2B Integrator(SBI), the PGP Package service fails with a connection reset when attempting to encrypt a 30 GB file. Smaller files have no problems.

Symptom

This connection reset always occurs at the 5 minute mark after the encryption started.
This is happening when the encryption takes longer than 5 minutes.
The SO_KEEPALIVE setting was set to true on the CLA2 adapter.
Their timeout value was also set to higher than 5 minutes.

TCPDUMP network traces shows a connection reset coming from the PGP remote server.

The BPML code:
<operation name="EncryptSign">
<participant name="PGPPackageService"/>
<output message="Xout">
<assign to="cmdline2svcname" from="sci-get-property('filegateway','pgpCmdline2svcname')"/>
<assign to="compress" from="if(DeliveryProtocol/PGP_C_COMP/text()='yes','YES','NO')"/>
<assign to="profile_name" from="sci-get-property('PropertyList', 'PGPProfile')"/>
<assign to="setSoTimeout" from="'2400000'"/>
<assign to="public_user" from="DeliveryProtocol/PGP_C_PK/text()"/>
<assign to="DocumentId" from="GetDocInfoResults/DocumentId/text()"/>
<assign to="ascii_armor" from="if(DeliveryProtocol/ASCIIARMOR/text()='on','YES','NO')"/>
<assign to="textmode" from="if(DeliveryProtocol/TEXTMODE/text()='on','YES','NO')"/>
<assign to="inputFileNamePkg" from="string(DestinationMessageName)"/>
<!--
<assign to="secret_keymap_name" from="SignKeyId/ROW/KEY_ID/text()"/>
-->
<assign to="secret_keymap_name">PGP_privatekeys</assign>
<assign to="." from="*"></assign>
</output>
<input message="Xin">
<assign to="." from="*"></assign>
</input>
</operation>

Error in the cla2client log:

[2018-04-09 07:41:06.847] DEBUG <HAR.1.Thread> CmdLine2Impl.setupConnection: RcvBufferSize=183680
[2018-04-09 07:41:06.847] DEBUG <HAR.1.Thread> CmdLine2Impl.setupConnection: SndBufferSize=43520
[2018-04-09 07:41:06.847] DEBUG <HAR.1.Thread> CmdLine2Impl.setupConnection: SO_LINGER=-1
[2018-04-09 07:41:06.847] DEBUG <HAR.1.Thread> CmdLine2Impl.setupConnection: SO_TIMEOUT=2400000
[2018-04-09 07:41:06.847] DEBUG <HAR.1.Thread> CmdLine2Impl.setupConnection: SO_KEEPALIVE=true
[2018-04-09 07:41:06.847] DEBUG <HAR.1.Thread> CmdLine2Impl.setupConnection: TCP_NODELAY=false
[2018-04-09 07:41:06.847] DEBUG <HAR.1.Thread> CmdLine2Impl.processData: about to send CmdLine2Parms.toString:

...
...

[2018-04-09 07:41:06.851] DEBUG <HAR.1.Thread> CmdLine2Impl.getReply: Waiting for reply
[2018-04-09 07:41:06.851] DEBUG <HAR.1.Thread> CmdLine2Impl.getReply: Reply=READY
[2018-04-09 07:41:06.851] DEBUG <HAR.1.Thread> CmdLine2Impl.streamToRemote: Streaming document to remote
[2018-04-09 07:49:21.275] DEBUG <HAR.1.Thread> CmdLine2Impl.getReply: Waiting for reply
[2018-04-09 07:54:21.433] ERROR <HAR.1.Thread> Exception in processData
[2018-04-09 07:54:21.433] ERROR <HAR.1.Thread> [1523278461433] Connection reset
[2018-04-09 07:54:21.433] ERRORDTL <HAR.1.Thread> [1523278461433]java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:208)
at java.net.SocketInputStream.read(SocketInputStream.java:134)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:247)
at java.io.BufferedInputStream.read(BufferedInputStream.java:266)
at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2451)
at java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2744)
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2754)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1432)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:448)
at com.sterlingcommerce.woodstock.services.cmdline2.CmdLine2Impl.getReply(CmdLine2Impl.java:521)
at com.sterlingcommerce.woodstock.services.cmdline2.CmdLine2Impl.processData(CmdLine2Impl.java:251)
at com.sterlingcommerce.woodstock.services.pgp.PGPService.executeCommandline(PGPService.java:354)
at com.sterlingcommerce.woodstock.services.pgp.PGPService.processDocs(PGPService.java:1037)
at com.sterlingcommerce.woodstock.services.pgp.PGPService.getPGPPackageParms(PGPService.java:1543)
at com.sterlingcommerce.woodstock.services.pgp.PGPPackageService.primitiveProcessData(PGPPackageService.java:49)
at com.sterlingcommerce.woodstock.services.pgp.PGPService.processData(PGPService.java:193)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.invokeService(ActivityEngineHelper.java:1826)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.nextMainLogic(ActivityEngineHelper.java:631)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.next(ActivityEngineHelper.java:362)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.doWork(WorkFlowQueueListener.java:461)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.run(WorkFlowQueueListener.java:240)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.onMessage(WorkFlowQueueListener.java:197)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.onMessage(WorkFlowQueueListener.java:184)
at com.sterlingcommerce.woodstock.workflow.queue.wfTransporter.run(wfTransporter.java:444)
at com.sterlingcommerce.woodstock.workflow.queue.BasicExecutor$Worker.run(BasicExecutor.java:508)
at java.lang.Thread.run(Thread.java:798)

[2018-04-09 07:54:21.433] ERROR <HAR.1.Thread> 000000000000 GLOBAL_SCOPE Exception in processData
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:208)
at java.net.SocketInputStream.read(SocketInputStream.java:134)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:247)
at java.io.BufferedInputStream.read(BufferedInputStream.java:266)
at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2451)
at java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2744)
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2754)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1432)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:448)
at com.sterlingcommerce.woodstock.services.cmdline2.CmdLine2Impl.getReply(CmdLine2Impl.java:521)
at com.sterlingcommerce.woodstock.services.cmdline2.CmdLine2Impl.processData(CmdLine2Impl.java:251)
at com.sterlingcommerce.woodstock.services.pgp.PGPService.executeCommandline(PGPService.java:354)
at com.sterlingcommerce.woodstock.services.pgp.PGPService.processDocs(PGPService.java:1037)
at com.sterlingcommerce.woodstock.services.pgp.PGPService.getPGPPackageParms(PGPService.java:1543)
at com.sterlingcommerce.woodstock.services.pgp.PGPPackageService.primitiveProcessData(PGPPackageService.java:49)
at com.sterlingcommerce.woodstock.services.pgp.PGPService.processData(PGPService.java:193)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.invokeService(ActivityEngineHelper.java:1826)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.nextMainLogic(ActivityEngineHelper.java:631)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.next(ActivityEngineHelper.java:362)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.doWork(WorkFlowQueueListener.java:461)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.run(WorkFlowQueueListener.java:240)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.onMessage(WorkFlowQueueListener.java:197)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.onMessage(WorkFlowQueueListener.java:184)
at com.sterlingcommerce.woodstock.workflow.queue.wfTransporter.run(wfTransporter.java:444)
at com.sterlingcommerce.woodstock.workflow.queue.BasicExecutor$Worker.run(BasicExecutor.java:508)
at java.lang.Thread.run(Thread.java:798)
[2018-04-09 07:54:21.433] DEBUG <HAR.1.Thread> CmdLine2Impl.processData: END


[{"Product":{"code":"SS3JSW","label":"IBM Sterling B2B Integrator"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Component":"Adapters","Platform":[{"code":"PF016","label":"Linux"}],"Version":"5.2.6","Edition":"","Line of Business":{"code":"LOB77","label":"Automation Platform"}}]

Log InLog in to view more of this document

This document has the abstract of a technical article that is available to authorized users once you have logged on. Please use Log in button above to access the full document. After log in, if you do not have the right authorization for this document, there will be instructions on what to do next.

Document Information

Modified date:
14 November 2019

UID

swg22016038