|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Record Parsing on TCPIPClientRecieve Node 7.0.0.2 |
« View previous topic :: View next topic » |
Author |
Message
|
gfrench |
Posted: Fri Apr 08, 2011 5:12 am Post subject: Record Parsing on TCPIPClientRecieve Node 7.0.0.2 |
|
|
 Acolyte
Joined: 10 Feb 2002 Posts: 71
|
Running v7.0.0.2 Broker and Toolkit and have a flow running with TCPIPClientOutput and TCPIPClientReceive nodes.
They talk to a server that has a clear text port or it can be switched to another port which runs SSL.
All works fine without SSL. When I switch to SSL I'm reliably informed by the server end that the session has been established correctly and that the SSL stuff is resolved. However I see an exception "The bit stream is smaller than expected for a Custom Wire Message of this message type" at the TCPIPClientReceive node.
If I switch the graphic debugger on I get a different exception, no data received, so I cant see what is coming in.
If I switch wireshark on I get encrypted data and cant see what is going on.
If I stick a trace node on output and the failure terminals of the TCPIPClientReceive node I only see the message I sent, not the screwed up data coming back from the server. I've tried changing the input message parsing on this node to BLOB so I can see what is coming back, but it fails saying I cant use BLOB with parsed record sequence.
I cant think of a way to see what is going on. Can I configure the TCPIPClientReceive node to just send the data it receives out as BLOB data so I can see it in the trace node. |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Apr 08, 2011 5:44 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
You can't use BLOB with Parsed Record sequence because BLOB has no idea of what a 'record" is.
You can use it with Fixed Length, presuming you know how long your records are.
You should be able to see the bitstream that is trying to be parsed if you run a Service Trace of the flow. This should show what is being passed to MRM to be broken up. |
|
Back to top |
|
 |
gfrench |
Posted: Tue Apr 12, 2011 12:17 am Post subject: |
|
|
 Acolyte
Joined: 10 Feb 2002 Posts: 71
|
I've run various versions of the service trace -b and -e options but do not seem to get the data passed to the MRM in the trace. Is there an environment variable I need to set to add the data tracing and is it on the component or execution group service trace?
It does however show a few things.
Firstly data being received
Code: |
2011-04-11 11:43:39.774463 8148 >> UserTrace BIP3563I: A record has been received from Hostname ''testsystem.abc.com'' on Port ''700'' in TCPIP receive node ''ReceiveResponse'' in message flow "CallTCPServer''.
|
Then I see a java SSL Exception "bad record MAC"
Code: |
2011-04-11 11:43:39.775386 8148 >> Connection.read(ByteBuffer,int) 'Starting SSL receive' , 'isInputShutdown false'
2011-04-11 11:43:39.775405 8148 >> Connection.read(ByteBuffer,int) 'Read debug 0' , 'appSpillBB.position() 0 dst.remaining() 65536'
2011-04-11 11:43:39.775424 8148 >> Connection.read(ByteBuffer,int) 'SSL debug 0' , ' netReadBB.limit() 131072 netReadBB.position() 0 netReadBB.remaining() 131072'
2011-04-11 11:43:39.775470 8148 >> Connection.read(ByteBuffer,int) 'SSL debug 1' , 'lastAmountReadFromSocket 511 netReadBB.limit() 131072 netReadBB.position() 511 netReadBB.remaining() 130561'
2011-04-11 11:43:39.775489 8148 >> Connection.read(ByteBuffer,int) 'SSL debug 2' , 'netReadBB.limit() 511 netReadBB.position() 0 netReadBB.remaining() 511'
2011-04-11 11:43:39.775508 8148 >> Connection.read(ByteBuffer,int) 'SSL debug 2' , 'dst.limit() 65536 dst.position() 0 dst.remaining() 65536'
2011-04-11 11:43:39.776966 8148 >> Connection.read(ByteBuffer,int) 'Caught throwable; rethrowing as IOException' , 'javax.net.ssl.SSLException: bad record MAC at com.ibm.jsse2.n.a(n.java:37) at com.ibm.jsse2.pc.a(pc.java:410) at com.ibm.jsse2.pc.a(pc.java:195) at com.ibm.jsse2.pc.b(pc.java:380) at com.ibm.jsse2.pc.a(pc.java:450) at com.ibm.jsse2.pc.unwrap(pc.java:392) at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:17) at com.ibm.broker.tcpip.Connection.read(Connection.java:506) at com.ibm.broker.tcpip.TCPIPInputStream.peekForData(TCPIPInputStream.java:218) at com.ibm.broker.tcpip.TCPIPInputStream.available(TCPIPInputStream.java:411) at com.ibm.broker.tcpip.TCPIPInputStreamFixed.available(TCPIPInputStreamFixed.java:97) at com.ibm.broker.plugin.MbInputStream.available(MbInputStream.java:168) at com.ibm.broker.plugin.MbInputSubStream.available(MbInputSubStream.java:203) at com.ibm.broker.plugin.MbInputStream.available(MbInputStream.java:168) '
|
Having googled a bit that seems to indicate an SSL problem, however the server end confirms the connection setup and my loging request which I send worked? Is this a miss communication from them, since I've also been testing without SSL on the different port.
And leading on from this, if it is an SSL problem then I assume the port would close and no data would be received by the TCPIPClientReceive node, so why do I see the subsequent parser errors 'bit stream is smaller than expected' error shortly after this.
I really appreciate the help received so far, and thanks to all. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|