ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » TCPServerInput Node 12 second delay

Post new topic  Reply to topic
 TCPServerInput Node 12 second delay « View previous topic :: View next topic » 
Author Message
smdavies99
PostPosted: Tue Nov 20, 2012 12:29 am    Post subject: TCPServerInput Node 12 second delay Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

Here's an hopefully thought provoking question for you.

I have TWO VM's. both windows Server 2008 R2 with Btoker 7.0.0.4 running on both.
I'm developing a message flow that uses TCP/IP to communicate with a server.
So I've written a simulator on the second VM that listens on the TCP Ports and when it gets a message, It writes the contents to a table and sends an ack back. all so far so good.

However when the ACK returns to the first VM and the flow that I'm developing, the TCP Server Input node introduces a 12 second delay in processing the message.
There is a sample of the usertrace output for the Server Input Node.
Code:

2012-11-20 10:03:00.214716     5888   UserTrace   BIP4142I: Evaluating cniElementSet'Type'. Changing value from '0' to '16777216'.
                                       Element ''Type'' has been changed to '16777216'.
                                       No user action required.
2012-11-20 10:03:00.214728     5888   UserTrace   BIP4142I: Evaluating cniElementSet'Name'. Changing value from '''' to ''ClientDetails''.
                                       Element ''Name'' has been changed to ''ClientDetails''.
                                       No user action required.
2012-11-20 10:03:12.220770     5888   UserTrace   BIP3907I: Message received and propagated to 'out' terminal of input node 'MYSERVER_MF.SF_MYSERVER_TCPInput.TCPIPServerInput'.
2012-11-20 10:03:12.221065     5888   UserTrace   BIP6063I: A parser of type ''Properties'' was created on behalf of node 'MYSERVER_MF.SF_MYSERVER_TCPInput.TCPIPServerInput'
                                      to handle the input stream, beginning at offset '0'.
2012-11-20 10:03:12.221219     5888   UserTrace   BIP6069W: The broker is not capable of handling a message of data type ''BLOB''.
                                       The message broker received a message that requires the handling of data of type ''BLOB'',
                              but the broker does not have the capability to handle data of this type.
                                       Check both the message being sent to the message broker and the configuration data for the node.
                              References to the unsupported data type must be removed if the message is to be processed by the broker.
2012-11-20 10:03:12.221343     5888   UserTrace   BIP6064I: A parser of type ''BLOB'' was created on behalf of node 'MYSERVER_MF.SF_MYSERVER_TCPInput.TCPIPServerInput'
                                      to handle the input stream, beginning at offset '0'. The parser type was selected based on value ''NONE'' from the previous parser.
[I've wrapped the long lines a bit]


This node is configured to read a 5 character element. In this it has the length of the remaining message which is read by a TCPServerReceive node. all pretty SOP here. The connection is not configured to Close after receiving data.
The timestamps go
Code:

2012-11-20 10:03:00.214728
2012-11-20 10:03:12.220770

Whilst the delay is not critical to the system operation I'm wondering why this might be happening?

Has anyone any ideas?

I'll be trying the code out with the real system later today. I will be looking at the response times with interest
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Tue Nov 20, 2012 3:36 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Question: how are the communications initiated.
Can you please check the initiation of a TCP/IP communication, from A to B and B to A with timing?

I have seen (network setup problem) a case where comms from A to B were OK but B to A had a significant delay establishing the comms.
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
McueMart
PostPosted: Tue Nov 20, 2012 4:38 am    Post subject: Reply with quote

Chevalier

Joined: 29 Nov 2011
Posts: 490
Location: UK...somewhere

Also can you clarify a bit regarding your flow topology?

Additionally, which is the Server and Client side of the TCP connection? You mention you are using a TCPIPServerOutput node so im assuming the server side is actually your message flow and the 'Server' is a TCP client?
Back to top
View user's profile Send private message
smdavies99
PostPosted: Tue Nov 20, 2012 4:55 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

Messages are sent from the Client to this flow hence the use of the 'Server' nodes.
The test flows use TCPIPClient nodes to send that data and from trace logs I can see that the data has been sent in microseconds. A wireshark trace also reveals that the data has been transmitted without issue.

There is something in the final processing of the ServerINput node that is causing the delay.

VM1
Client Flow uses TCPIPClientOutput to send message to Server

VM2
Receiving Flow uses TCPIPServerInput Node to read 1st 5 bytes from input stream.
This is where the delay happens
OUtput from this node goes to a Compute Node where the length bytes are extracted from the 5 byte blob that has been read.
Then a TCPIPServerReceive node reads and parses the rest of the message. Again, no delay is present in the processing.

Just to complicate matters, I've deployed the flow(from VM2) into the proper test environment where the Client is the real system not a simulation. There is no delay in the message processing. That is why I'm not going to raise a PMR at this stage.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
McueMart
PostPosted: Tue Nov 20, 2012 5:14 am    Post subject: Reply with quote

Chevalier

Joined: 29 Nov 2011
Posts: 490
Location: UK...somewhere

In your test env is it 100% repeatable and always 12 seconds? I have no idea if a service trace will give you more granular details of whats going on but it might be worth a bash.
Back to top
View user's profile Send private message
Esa
PostPosted: Tue Nov 20, 2012 5:17 am    Post subject: Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

Have you run mqsireportproperties with -o ComIbmSocketConnectionManager for your client side execution group?

This reminds me of the problem I had last Spring with SOAPRequestNodes and SSL. That was resolved by changing the client side EG tcpNoDelay setting. Even if the ip trace seemed to point out that the problem was on the server side.

But I'm not sure if tcpNoDelay applies to execution groups running on a Windows system. Anyway, your ComIbmSocketConnectionManager properties list would be interesting to see.
Back to top
View user's profile Send private message
Esa
PostPosted: Tue Nov 20, 2012 5:21 am    Post subject: Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

By the way, are you by any chance running your Windows VM's on top of a UNIX box?
Back to top
View user's profile Send private message
McueMart
PostPosted: Tue Nov 20, 2012 5:24 am    Post subject: Reply with quote

Chevalier

Joined: 29 Nov 2011
Posts: 490
Location: UK...somewhere

tcpNoDelay was also a thought I had but smdavies pointed out that wireshark shows the data has all been transmitted successfully from the client (before the 12 second delay commences...). So this seems unlikely.
Back to top
View user's profile Send private message
Esa
PostPosted: Tue Nov 20, 2012 5:39 am    Post subject: Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

My experience was that tcpNoDelay operates on a lower level than iptrace or wireshark and for this reason the information showed by the trace may be incorrect.

And by this I mean the AIX operating system level tcpNodelay, not the EG setting. If there is a difference. I'm not sure.
Back to top
View user's profile Send private message
McueMart
PostPosted: Tue Nov 20, 2012 7:14 am    Post subject: Reply with quote

Chevalier

Joined: 29 Nov 2011
Posts: 490
Location: UK...somewhere

Quote:
My experience was that tcpNoDelay operates on a lower level than iptrace or wireshark and for this reason the information showed by the trace may be incorrect.


Not if you are running wireshark on the receiving end of the socket
Back to top
View user's profile Send private message
smdavies99
PostPosted: Tue Nov 20, 2012 7:52 pm    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

Thanks for all the suggestions

To answer soe of the questions

The Windows Server 2008 R2 VM's are running ontop of Windows 7 Ultimate

The wireshark trace was run on the receiving end of the connection.

It seems that the TCP Node has received the data. If it hadn't then why would it output so much data to the usertrace before pausing for 12 seconds. That is what I find strange.

As there is nothing obviously wrong AND I'm not seeing this delay on the UAT Systems I'll just have to live with it for now.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Tue Nov 20, 2012 8:33 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

if the 12 seconds delay is due to some windows OS process, like paging etc... it will be quite difficult to track down...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
smdavies99
PostPosted: Wed Nov 21, 2012 2:00 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

fjb_saper wrote:
if the 12 seconds delay is due to some windows OS process, like paging etc... it will be quite difficult to track down...


A good point but there is no paging going on. Besides the VM's are running on an SSD.

If we start seeing it elsewhere then I'll raise a PMR until then....
fingers crossed.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
Esa
PostPosted: Wed Nov 21, 2012 2:22 am    Post subject: Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

smdavies99 wrote:

Just to complicate matters, I've deployed the flow(from VM2) into the proper test environment where the Client is the real system not a simulation. There is no delay in the message processing. That is why I'm not going to raise a PMR at this stage.


Let me guess, the real client is not running on Message Broker?

Did you compare the server-side wireshark traces for the simulation and the real system clients?

Could somebody refresh my memory and tell if tcpNoDelay has any effect on an EG running on top of Windows?
Back to top
View user's profile Send private message
smdavies99
PostPosted: Wed Nov 21, 2012 6:51 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

Esa wrote:


Let me guess, the real client is not running on Message Broker?

Did you compare the server-side wireshark traces for the simulation and the real system clients?

Could somebody refresh my memory and tell if tcpNoDelay has any effect on an EG running on top of Windows?


1) you are correct that the client is not running Broker.
2) No able to install Wireshark on the UAT System
3) Don't know.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » TCPServerInput Node 12 second delay
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.