Author |
Message
|
girish_tharwani |
Posted: Sat Apr 18, 2009 10:56 pm Post subject: TCP Hung connection |
|
|
 Voyager
Joined: 01 Aug 2001 Posts: 88 Location: Pune, India
|
We have used a TCPClientOutput and TCPClientReceive Nodes in a flow to create a TCP client that sends data to an external TCP server and receives the response messages on same connection synchronously. It’s a simple MQInput ->TCPClientOutput ->TCPClientReceive -> MQOutput setup. Our server is an old legacy program that does not have the best error handling so in some exception cases instead of sending exception response to our client, it simply bombs out after writing the error in its log so no data is received back by TCPClientReceive node. This seems to be paralyzing our connection because after that when the TCPClientOutput node sends next request, even if it’s processed by server successfully, nothing comes back to client. ClientReceive errors out with message “No Data on Connection”. Our ClienReceive node was initially set to “close connection when data has been received”. I tried changing it to “Close connection on timeout” but that did not help either. Anyone faced similar issue and know any workaround to it, please help. |
|
Back to top |
|
 |
fjb_saper |
Posted: Sun Apr 19, 2009 12:10 am Post subject: Re: TCP Hung connection |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
girish_tharwani wrote: |
I tried changing it to “Close connection on timeout” but that did not help either. Anyone faced similar issue and know any workaround to it, please help. |
What is your timeout? Are we talking about WMB timeout or TCP/IP timeout values? What happens if you wait for more than 2 hours?  _________________ MQ & Broker admin |
|
Back to top |
|
 |
girish_tharwani |
Posted: Sun Apr 19, 2009 6:57 am Post subject: |
|
|
 Voyager
Joined: 01 Aug 2001 Posts: 88 Location: Pune, India
|
Some change in status.. we finally figured out how to respond from legacy servers in case of failures so that issue is resolved but now a different flavour of same problem. If I load a batch of request messages on input queue (say 200 or so), connection works fine for 80 - 90 messages but after that we start getting the same error:
(0x03000000:NameValue):File = 'MbErrorHandler.java' (CHARACTER)
(0x03000000:NameValue):Line = 92 (INTEGER)
(0x03000000:NameValue):Function = 'calculateDynamicProperties' (CHARACTER)
(0x03000000:NameValue):Type = '' (CHARACTER)
(0x03000000:NameValue):Name = '' (CHARACTER)
(0x03000000:NameValue):Label= '' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPv610' (CHARACTER)
(0x03000000:NameValue):Severity = 0 (INTEGER)
(0x03000000:NameValue):Number = 3595 (INTEGER)
(0x03000000:NameValue):Text = 'no data on connection' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = '224d94:120be502cdc:-8000' (CHARACTER)
Using TCP dump we confirmed that message were reaching across the connection to TCP server and its responding also but somehow ClientReceive node is not able to pick up the data from the socket. TCPClientRecieve node is set to "Close the connection after timeout" and timeout is set for 2 second. We also confirmed from tcpdump that server respponses are coming within 1 second of submitting the reqeust. |
|
Back to top |
|
 |
girish_tharwani |
Posted: Mon Apr 20, 2009 5:46 am Post subject: |
|
|
 Voyager
Joined: 01 Aug 2001 Posts: 88 Location: Pune, India
|
Some more batches some more sifting thru trace logs and tcp dumps..
We found that our first timeout is a "real" timeout ie the backend does not respond in the timeout time specified in the "Timeout waiting for data record" property of ClientReceive node so ClientReceive node truthfully throws the message out of Timeout terminal but after that for every new reqeust sent to server, ClientReceive node throws the same error even if the data comes back within the Timeout time period.
So I guess the connection needs to be closed and ropened after the timeout happens. I expected that selecting "After Timeout" option in "Close Connection" property will produce the desired result but that does not happen. Even after first timeout, the node keeps reusing the same connection. Any ideas?? |
|
Back to top |
|
 |
girish_tharwani |
Posted: Tue May 26, 2009 12:35 am Post subject: Resolved: TCP Hung connection |
|
|
 Voyager
Joined: 01 Aug 2001 Posts: 88 Location: Pune, India
|
Finally it was concluded that its a bug in WMB. We opened a PMR with IBM and got a fix. |
|
Back to top |
|
 |
Vitor |
Posted: Tue May 26, 2009 12:39 am Post subject: Re: Resolved: TCP Hung connection |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
girish_tharwani wrote: |
Finally it was concluded that its a bug in WMB. We opened a PMR with IBM and got a fix. |
Could you post the fix number for the benefit of those future people who trip over this please? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|