【发布时间】:2011-10-03 03:37:43
【问题描述】:
我在 Ubuntu 上运行 ActiveMQ 5.5.0 代理,下载并编译了 APR 1.4.5 和 C API 相关的 libactivmq 和 libopenwire。
示例中提供的测试 c 位于: http://svn.apache.org/repos/asf/activemq/sandbox/openwire-c/src/examples/
不起作用,问题出在 WireFormat 魔术代码上,请参阅日志中的调试行:
2011-07-07 15:35:30,324 |调试 |发送:WireFormatInfo { version=7, 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 | ActiveMQ 任务 2 2011-07-07 15:35:30,327 |调试 |使用本地最小值:WireFormatInfo { version=7, 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]} 和远程:WireFormatInfo { version=1297154048, properties={}, magic=[^A,^@,A,c,t,i,v, e]} | org.apache.activemq.transport.InactivityMonitor | ActiveMQ 传输:tcp:///127.0.0.1:51606 2011-07-07 15:35:30,327 |调试 |收到的 WireFormat:WireFormatInfo { version=1297154048, properties={}, magic=[^A,^@,A,c,t,i,v,e]} | org.apache.activemq.transport.WireFormatNegotiator | ActiveMQ 传输:tcp:///127.0.0.1:51606 2011-07-07 15:35:30,333 |调试 | tcp:///127.0.0.1:51606 协商前:OpenWireFormat{version=7, cacheEnabled=false, stackTraceEnabled=false, tightEncodingEnabled=false, sizePrefixDisabled=false} | org.apache.activemq.transport.WireFormatNegotiator | ActiveMQ 传输:tcp:///127.0.0.1:51606 2011-07-07 15:35:30,337 |调试 |传输失败:java.io.IOException:远程线格式魔术无效| org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ 传输:tcp:///127.0.0.1:51606
我调试了客户端并捕获了发送到代理的值,15 个字节,我将它们列在下面: 1: '\001' 2: '\001' 3: '\000' 4:'一个' 5:'c' 6:'不' 7:“我” 8:'v' 9:'e' 10:'M' 11:'问' 12:'\000' 13:'\000' 14:'\000' 15:'\002' 这里最后四个字节是版本,设置为2
这个消息不知何故被代理转移/误解,所以魔法令牌和版本是错误的。
还有一条信息:我使用提供的版本 ow_commands_v1.[ch] 和 ow_commands_v2.[ch] 编译了 libopenwire,因此我尝试将测试与两者链接,结果与任一版本相同。有谁知道两个版本的原因?我应该使用哪一个?
注意:此消息已于几天前在 apache 论坛上发布,但没有回复。我希望在这个网站上的消息能获得更多的流量。
【问题讨论】: