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 <[EMAIL PROTECTED]> 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/

Reply via email to