[ 
https://issues.apache.org/activemq/browse/AMQNET-110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=45336#action_45336
 ] 

Jim Gomes commented on AMQNET-110:
----------------------------------

I looked at the code, and the NMS client does check the wireformat version.  It 
requests a minimum version, and seems to be OK with a higher version.  I would 
deduce from this implementation that it is assuming that future versions of 
OpenWire are backward compatible.  This means that the client can talk V2, even 
if the server is talking V3.  However, it won't accept a reverse scenario where 
the client wants to only talk V3, but the server can only talk V2.

So, this leaves the question: is it OK for the client to talk V2 to a broker 
talking V3?  So far, I have not seen any adverse problems from this scenario.  
If anyone knows of any real or potential problems with this scenario, please 
write them up.

> WireFormatNegotiator does not negotiate version
> -----------------------------------------------
>
>                 Key: AMQNET-110
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-110
>             Project: ActiveMQ .Net
>          Issue Type: Bug
>          Components: ActiveMQ Client
>            Reporter: Vadim Chekan
>            Assignee: James Strachan
>
> Apparently WireFormatNegotiator checks only magic bytes during the
> format negotiation and does not check the version.
> So NMS client V2 talks to ActiveMQ V3.
> 394 [-1211205856] INFO Apache.NMS.Tracer (null) - SENDING:
> WireFormatInfo[ Magic=System.Byte[] Version=2
> MarshalledProperties={CacheEnabled=False, SizePrefixDisabled=False,
> StackTraceEnabled=False, TcpNoDelayEnabled=False,
> TightEncodingEnabled=False} ]
> 395 [-1225606256] DEBUG Apache.NMS.Tracer (null) - Parsing type: 1
> with: Apache.NMS.ActiveMQ.OpenWire.V1.WireFormatInfoMarshaller
> 403 [-1225606256] INFO Apache.NMS.Tracer (null) - RECEIVED:
> WireFormatInfo[ Magic=System.Byte[] Version=3
> MarshalledProperties={CacheEnabled=True, CacheSize=1024,
> SizePrefixDisabled=False, TightEncodingEnabled=True,
> MaxInactivityDuration=30000, MaxInactivityDurationInitalDelay=10000,
> StackTraceEnabled=True, TcpNoDelayEnabled=True} ]
> Please note that even though ActiveMQ claimed V3 protocol, NMS client 
> accepted it.
> According to the current code in WireFormatNegotiator  only magic bytes are 
> checked but not the version.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to