You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Manuel Teira <mt...@tid.es> on 2007/06/11 15:48:04 UTC

Failure in wire format negotiation

Hello.

Trying to connect from a 4.1.1 client (running as a servlet in a Tomcat 
container) to a 4.0.2 broker, I'm getting the following stack trace in 
the server:

Exception in thread "ActiveMQ Transport: tcp:///127.0.0.1:50548" 
java.lang.IllegalArgumentException: Invalid version: 2, could not load 
org.apache.activemq.openwire.v2.MarshallerFactory
        at 
org.apache.activemq.openwire.OpenWireFormat.setVersion(OpenWireFormat.java:329)
        at 
org.apache.activemq.openwire.OpenWireFormat.renegociatWireFormat(OpenWireFormat.java:569)
        at 
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:108)
        at 
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
        at 
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:87)
        at 
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:127)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: 
org.apache.activemq.openwire.v2.MarshallerFactory
        at 
org.apache.activemq.util.ClassLoading.loadClass(ClassLoading.java:104)
        at 
org.apache.activemq.openwire.OpenWireFormat.setVersion(OpenWireFormat.java:327)
        ... 6 more
Exception in thread "ActiveMQ Transport: tcp:///127.0.0.1:50550" 
java.lang.IllegalArgumentException: Invalid version: 2, could not load 
org.apache.activemq.openwire.v2.MarshallerFactory
        at 
org.apache.activemq.openwire.OpenWireFormat.setVersion(OpenWireFormat.java:329)
        at 
org.apache.activemq.openwire.OpenWireFormat.renegociatWireFormat(OpenWireFormat.java:569)
        at 
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:108)
        at 
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
        at 
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:87)
        at 
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:127)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: 
org.apache.activemq.openwire.v2.MarshallerFactory
        at 
org.apache.activemq.util.ClassLoading.loadClass(ClassLoading.java:104)
        at 
org.apache.activemq.openwire.OpenWireFormat.setVersion(OpenWireFormat.java:327)
        ... 6 more

Shouldn't they negociate the wire format and fallback to the highest 
known at both sides?

Logs from the negotiation attempt at the server:


[DEBUG][2007/06/11.13:26:40.075][ActiveMQ Transport Server: 
tcp://dispacher-ps:61635]Sending: WireFormatInfo { version=1, 
properties={TightEncodingEnabled=true, TcpNoDelayEnabled=true, 
SizePrefixDisabled=false, StackTraceEnabled=true, 
MaxInactivityDuration=30000, CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
[DEBUG][2007/06/11.13:26:40.077][ActiveMQ Transport: 
tcp:///127.0.0.1:50546]Received WireFormat: WireFormatInfo { version=2, 
properties={TightEncodingEnabled=true, CacheSize=1024, 
TcpNoDelayEnabled=true, SizePrefixDisabled=false, 
StackTraceEnabled=true, MaxInactivityDuration=30000, CacheEnabled=true}, 
magic=[A,c,t,i,v,e,M,Q]}
[DEBUG][2007/06/11.13:26:40.077][ActiveMQ Transport: 
tcp:///127.0.0.1:50546]tcp:///127.0.0.1:50546 before negotiation: 
OpenWireFormat{version=1, cacheEnabled=false, stackTraceEnabled=false, 
tightEncodingEnabled=false, sizePrefixDisabled=false}
[DEBUG][2007/06/11.13:26:55.080][ActiveMQ Transport Server: 
tcp://dispacher-ps:61635]Transport failed: java.io.IOException: Wire 
format negociation timeout: peer did not send his wire format.(Wire 
format negociation timeout: peer did not send his wire format.)


In the client side, just a java.io.EOFException trying to create the JMS 
Session.

Any idea?

Regards.



Re: Failure in wire format negotiation

Posted by James Strachan <ja...@gmail.com>.
With some development work this could work in the future; but usually
you should upgrade the broker first (not the client).

The broker can typically deal with older clients; though the broker
doesn't always deal with newer clients than it. (Its also usually way
simpler to upgrade the broker than the client, as there's usually far
fewer brokers than clients).


On 6/11/07, Manuel Teira <mt...@tid.es> wrote:
> Hello.
>
> Trying to connect from a 4.1.1 client (running as a servlet in a Tomcat
> container) to a 4.0.2 broker, I'm getting the following stack trace in
> the server:
>
> Exception in thread "ActiveMQ Transport: tcp:///127.0.0.1:50548"
> java.lang.IllegalArgumentException: Invalid version: 2, could not load
> org.apache.activemq.openwire.v2.MarshallerFactory
>         at
> org.apache.activemq.openwire.OpenWireFormat.setVersion(OpenWireFormat.java:329)
>         at
> org.apache.activemq.openwire.OpenWireFormat.renegociatWireFormat(OpenWireFormat.java:569)
>         at
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:108)
>         at
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
>         at
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:87)
>         at
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:127)
>         at java.lang.Thread.run(Unknown Source)
> Caused by: java.lang.ClassNotFoundException:
> org.apache.activemq.openwire.v2.MarshallerFactory
>         at
> org.apache.activemq.util.ClassLoading.loadClass(ClassLoading.java:104)
>         at
> org.apache.activemq.openwire.OpenWireFormat.setVersion(OpenWireFormat.java:327)
>         ... 6 more
> Exception in thread "ActiveMQ Transport: tcp:///127.0.0.1:50550"
> java.lang.IllegalArgumentException: Invalid version: 2, could not load
> org.apache.activemq.openwire.v2.MarshallerFactory
>         at
> org.apache.activemq.openwire.OpenWireFormat.setVersion(OpenWireFormat.java:329)
>         at
> org.apache.activemq.openwire.OpenWireFormat.renegociatWireFormat(OpenWireFormat.java:569)
>         at
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:108)
>         at
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
>         at
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:87)
>         at
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:127)
>         at java.lang.Thread.run(Unknown Source)
> Caused by: java.lang.ClassNotFoundException:
> org.apache.activemq.openwire.v2.MarshallerFactory
>         at
> org.apache.activemq.util.ClassLoading.loadClass(ClassLoading.java:104)
>         at
> org.apache.activemq.openwire.OpenWireFormat.setVersion(OpenWireFormat.java:327)
>         ... 6 more
>
> Shouldn't they negociate the wire format and fallback to the highest
> known at both sides?
>
> Logs from the negotiation attempt at the server:
>
>
> [DEBUG][2007/06/11.13:26:40.075][ActiveMQ Transport Server:
> tcp://dispacher-ps:61635]Sending: WireFormatInfo { version=1,
> properties={TightEncodingEnabled=true, TcpNoDelayEnabled=true,
> SizePrefixDisabled=false, StackTraceEnabled=true,
> MaxInactivityDuration=30000, CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
> [DEBUG][2007/06/11.13:26:40.077][ActiveMQ Transport:
> tcp:///127.0.0.1:50546]Received WireFormat: WireFormatInfo { version=2,
> properties={TightEncodingEnabled=true, CacheSize=1024,
> TcpNoDelayEnabled=true, SizePrefixDisabled=false,
> StackTraceEnabled=true, MaxInactivityDuration=30000, CacheEnabled=true},
> magic=[A,c,t,i,v,e,M,Q]}
> [DEBUG][2007/06/11.13:26:40.077][ActiveMQ Transport:
> tcp:///127.0.0.1:50546]tcp:///127.0.0.1:50546 before negotiation:
> OpenWireFormat{version=1, cacheEnabled=false, stackTraceEnabled=false,
> tightEncodingEnabled=false, sizePrefixDisabled=false}
> [DEBUG][2007/06/11.13:26:55.080][ActiveMQ Transport Server:
> tcp://dispacher-ps:61635]Transport failed: java.io.IOException: Wire
> format negociation timeout: peer did not send his wire format.(Wire
> format negociation timeout: peer did not send his wire format.)
>
>
> In the client side, just a java.io.EOFException trying to create the JMS
> Session.
>
> Any idea?
>
> Regards.
>
>
>


-- 
James
-------
http://macstrac.blogspot.com/