0

A client application has been built using Jdeveloper 10.1.3.2 and it is running on OC4J server. This application is sending data to external server application. It is working for quite long time without any issue. Lately a connection issue occurred and the following stack trace is generated:

com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.net.SocketException: Connection reset
at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:133)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:153)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:93)
at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:105)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:629)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:470)
at com.sun.xml.ws.client.Stub.process(Stub.java:319)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:157)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:109)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:140)
at $Proxy44.sendRem(Unknown Source)

After goggling I found out a good discussion about the error sockets - What's causing my java.net.SocketException: Connection reset? .One answer in this link says that the issue mostly from the client side because if it is from the server side the exception will be (SocketException reset by peer).

What I did: I tried out to increase the socket time out for the OC4J with the help of this form How to change OC4J HTTP Timeout. What I did is I changed the propriety oracle.j2ee.http.socket.timeout to be 5000 instead of 500 (10 times longer)

But the error still there. So, any suggestion to over come this issue?

Note: I able to use telnet command for external server IP and Port and it is working fine.

-------------------------------------------------------- Update 1 --------------------------------------------------------

I increase the server clock skew where the client application is running using the following command on server start up:

-Dweblogic.wsee.security.clock.skew=72000000 
-Dweblogic.wsee.security.delay.max=72000000

But no luck, problem is not resolved.

-------------------------------------------------------- Update 2 --------------------------------------------------------

I realized that the problem is not from application at all; I test the external URL using SoapUI and I got the same error Connection rest. I think this new update clreay shows that there is nothing wrong with program code. But I need to know where to go or check now. Where is the starting point now to overcome the issue. Any clue will be helpful.

Community
  • 1
  • 1
Salman
  • 1,236
  • 5
  • 30
  • 59
  • The answer in the link is wrong. The error is the same on both sides. Once the connection has been set up, the client is indistinguishable from the server, certainly in terms of error codes. – user207421 Mar 24 '15 at 07:18
  • @EJP What do suggest to over come this issue ? Any clue will be helpful ? Where should I start from? Any other log file I need to check ? – Salman Mar 24 '15 at 07:25
  • 1
    See my new comment on that answer. 'Connection reset' means that *your* end reset the connection. The usual reason for that is that you closed the socket without reading all the incoming data, but there are other causes. Post some code. – user207421 Mar 24 '15 at 08:34
  • @EJP Kindly check (Update 2) in the question. – Salman Apr 08 '15 at 10:41

1 Answers1

1

As you can see from Update 2 in the question, the problem was not from the client application because same error occurred from SoapUI.

The problem was that the machine where the client application was running have low bandwidth which was not enough for APIs communication. Using simple speed test , I found out that the upload bandwidth was low comparing to minimum requirements given by server application team.

I concluded this fact by monitoring the network resource using Resource Monitor in Windows while the client application was running and by using online speed check

To solve the issue, the machine bandwidth has to be increased where the client application is running.

Salman
  • 1,236
  • 5
  • 30
  • 59