You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@ws.apache.org by Mike Spreitzer <ms...@us.ibm.com> on 2001/01/08 06:39:11 UTC
Every SOAP call half fails with "connection reset by peer" using IBM SOAP 1.2, Tomcat
3.2[.1], IBM JDK 1.3, RedHat Linux 6.2
I have a SOAP application that I developed on one platform. It works
there. When I try it on a different platform, every SOAP call partially
fails with "[SOAPException: faultCode=SOAP-ENV:Protocol; msg=Connection
reset by peer: Connection reset by peer;
targetException=java.net.SocketException: Connection reset by peer:
Connection reset by peer]" --- even attempts to use the
ServiceManagerClient. Has anyone seen anything like this? Is there a
searchable archive that goes back beyond December 2000?
Should I expect this is fixed in Apache SOAP 2.0? The "what's changed"
page for Apache SOAP 2.0 doesn't seem to mention anything like this.
My application uses IBM SOAP 1.2 and Tomcat 3.2.1 in standalone mode; I
had the same experience using Tomcat 3.2. The SOAP client is a servlet in
one Tomcat instance; the SOAP server is running in a different Tomcat
instance on the same machine.
The working platform is AIX 4.3.3 on an R/S 6000, with this JDK:
$ java -version
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Classic VM (build 1.3.0, J2RE 1.3.0 IBM build ca130-20001124 (JIT enabled:
jitc))
The failing platform is Red Hat Linux release 6.2 (Zoot), Kernel
2.2.16-3.c4eb on an i686, with this JDK:
$ java -version
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Classic VM (build 1.3.0, J2RE 1.3.0 IBM build cx130-20000815 (JIT enabled:
jitc))
On the failing platform, every SOAP call succeeds as far as the server is
concerned, but fails as far as the client is concerned. The server
receives the call message, does its job, and sends the reply message ---
all with no problem reported. The client complains like this:
[SOAPException: faultCode=SOAP-ENV:Protocol; msg=Connection reset by peer:
Connection reset by peer; targetException=java.net.SocketException:
Connection reset by peer: Connection reset by peer]
[SOAPException: faultCode=SOAP-ENV:Protocol; msg=Connection reset by peer:
Connection reset by peer; targetException=java.net.SocketException:
Connection reset by peer: Connection reset by peer]
at java.lang.Throwable.<init>(Throwable.java:96)
at java.lang.Exception.<init>(Exception.java:44)
at com.ibm.soap.SOAPException.<init>(SOAPException.java:14)
at com.ibm.soap.SOAPException.<init>(SOAPException.java:20)
at com.ibm.soap.rpc.Call.invoke(Call.java:130)
Using `tcpdump`, I can see that the server is indeed doing a TCP reset. It
happens at the very end of the interaction, in response to the client's
ACK of the reply message.
BTW, using a TcpTunnel, I can see that the reply message is well-formed.
Indeed, when I put the TcpTunnel in place, the problem goes away --- the
server doesn't RST the TcpTunnel (it does FIN instead)!
Here's an example `tcpdump` trace (the SOAP server is at port 8080,
reported below as "webcache"):
17:58:31.015815 lo > myhost.1101 > myhost.webcache: S
230857894:230857894(0) win 31072 <mss 3884,sackOK,timestamp 18965998
0,nop,wscale 0> (DF)
17:58:31.015855 lo > myhost.webcache > myhost.1101: S
231111200:231111200(0) ack 230857895 win 31072 <mss 3884,sackOK,timestamp
18965998 18965998,nop,wscale 0> (DF)
17:58:31.015870 lo > myhost.1101 > myhost.webcache: . 1:1(0) ack 1 win
31072 <nop,nop,timestamp 18965998 18965998> (DF)
17:58:31.017853 lo > myhost.1101 > myhost.webcache: P 1:3873(3872) ack 1
win 31072 <nop,nop,timestamp 18965998 18965998> (DF)
17:58:31.017900 lo > myhost.webcache > myhost.1101: . 1:1(0) ack 3873
win 27200 <nop,nop,timestamp 18965998 18965998> (DF)
17:58:31.017910 lo > myhost.1101 > myhost.webcache: P 3873:4194(321) ack
1 win 31072 <nop,nop,timestamp 18965998 18965998> (DF)
17:58:31.025121 lo > myhost.webcache > myhost.1101: . 1:1(0) ack 4194
win 27104 <nop,nop,timestamp 18965999 18965998> (DF)
17:58:31.114091 lo > myhost.webcache > myhost.1101: P 1:287(286) ack
4194 win 27104 <nop,nop,timestamp 18966007 18965998> (DF)
17:58:31.114134 lo > myhost.1101 > myhost.webcache: . 4194:4194(0) ack
287 win 30786 <nop,nop,timestamp 18966007 18966007> (DF)
17:58:31.114767 lo > myhost.webcache > myhost.1101: P 287:796(509) ack
4194 win 27104 <nop,nop,timestamp 18966007 18966007> (DF)
17:58:31.115102 lo > myhost.1101 > myhost.webcache: . 4194:4194(0) ack
796 win 30277 <nop,nop,timestamp 18966008 18966007> (DF)
17:58:31.115514 lo > myhost.webcache > myhost.1101: R 796:796(0) ack
4194 win 30976 <nop,nop,timestamp 18966008 18966008> (DF)
Thanks for any help,
Mike