TCP-Client fails to connect due to "Unknown data type"
wolframhaussig May 19, 2010 8:03 AMHello!
My team and I are working on an C++ Application based on the Fuse Message Broker, which is embedded in one of our Java webservices.
The Client uses the activeMQ Framework for C++ from the activeMQ website.
When the clients tries to connect to the broker, the client sends a request to the broker and then waits forever expecting an answer from the broker.
The Broker obviously receives a request, but fails to process. The Output is the following:
org.apache.activemq.transport.tcp.TcpTransport - TCP consumer thread for tcp:///127.0.0.1:2493 starting
org.apache.activemq.transport.WireFormatNegotiator - Sending: WireFormatInfo { version=5, properties={CacheSize=1024, CacheEnabled=true, SizePrefixDisabled=false, MaxInactivityDurationInitalDelay=10000, TcpNoDelayEnabled=true, MaxInactivityDuration=30000, TightEncodingEnabled=true, StackTraceEnabled=true}, magic=\[A,c,t,i,v,e,M,Q\]}
org.apache.activemq.transport.WireFormatNegotiator - Received WireFormat: WireFormatInfo { version=5, properties={CacheSize=1024, CacheEnabled=true, SizePrefixDisabled=false, MaxInactivityDurationInitalDelay=10000, TcpNoDelayEnabled=true, MaxInactivityDuration=30000, TightEncodingEnabled=true, StackTraceEnabled=true}, magic=\[A,c,t,i,v,e,M,Q\]}
org.apache.activemq.transport.WireFormatNegotiator - tcp:///127.0.0.1:2493 before negotiation: OpenWireFormat{version=5, cacheEnabled=false, stackTraceEnabled=false, tightEncodingEnabled=false, sizePrefixDisabled=false}
org.apache.activemq.transport.WireFormatNegotiator - tcp:///127.0.0.1:2493 after negotiation: OpenWireFormat{version=5, cacheEnabled=true, stackTraceEnabled=true, tightEncodingEnabled=true, sizePrefixDisabled=false}
org.apache.activemq.broker.TransportConnection.Transport - Transport failed: java.io.IOException: Unknown data type: 36
java.io.IOException: Unknown data type: 36
at org.apache.activemq.openwire.OpenWireFormat.tightUnmarshalNestedObject(OpenWireFormat.java:435)
at org.apache.activemq.openwire.v5.BaseDataStreamMarshaller.tightUnmarsalCachedObject(BaseDataStreamMarshaller.java:144)
at org.apache.activemq.openwire.v5.ConnectionInfoMarshaller.tightUnmarshal(ConnectionInfoMarshaller.java:69)
at org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:362)
at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:276)
at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:212)
at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:204)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:187)
at java.lang.Thread.run(Thread.java:619)
org.apache.activemq.broker.TransportConnection - Stopping connection: /127.0.0.1:2493
org.apache.activemq.transport.tcp.TcpTransport - Stopping transport tcp:///127.0.0.1:2493
org.apache.activemq.broker.TransportConnection - Stopped transport: /127.0.0.1:2493
org.apache.activemq.broker.TransportConnection - Connection Stopped: /127.0.0.1:2493
The Broker is configured as follows:
<transportConnector name="openwire" uri="tcp://127.0.0.1:61616" />
The client connects like this:
tcp://localhost:61616?soKeepAlive=true&wireFormat.cacheEnabled=true& timeout=3000
Does anyone have a solution for my problem?
Kind regards
Wolfram Haussig