2011-07-11 59 views
0

我在Ubuntu上運行ActiveMQ 5.5.0代理,下載並編譯了APR 1.4.5和C API相關的libactivmq和libopenwire。ActiveMQ OpenWire C API問題

在實例中提供的測試C: http://svn.apache.org/repos/asf/activemq/sandbox/openwire-c/src/examples/

不工作,問題是與WireFormat魔碼,看到從日誌調試行:

2011-07-07 15:35 :30,324 | DEBUG |發送: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 | DEBUG |使用本地最小值:WireFormatInfo {version = 7,properties = {CacheSize = 1024,CacheEnabled = true,SizePrefixDisabled = false,MaxInactivityDurationInitalDelay = 10000,TcpNoDelayEnabled = true,MaxInactivityDuration = 30000,TightEncodingEnabled = true,StackTraceEnabled = true} 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 Transport:tcp:///127.0.0.1:51606 2011-07-07 15:35:30,327 | DEBUG |已收到WireFormat:WireFormatInfo {version = 1297154048,properties = {},magic = [^ A,^ @,A,c,t,i,v,e]} | org.apache.activemq.transport.WireFormatNegotiator | ActiveMQ Transport:tcp:///127.0.0.1:51606 2011-07-07 15:35:30,333 | DEBUG |協商之前的tcp:///127.0.0.1:51606:OpenWireFormat {version = 7,cacheEnabled = false,stackTraceEnabled = false,tightEncodingEnabled = false,sizePrefixDisabled = false} org.apache.activemq.transport.WireFormatNegotiator | ActiveMQ Transport:tcp:///127.0.0.1:51606 2011-07-07 15:35:30,337 | DEBUG |傳輸失敗:java.io.IOException:遠程連線格式魔術無效| org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ的運輸:TCP:///127.0.0.1:51606

我調試發送給代理客戶端和捕獲的值,15個字節,我將列出他們下面: 1: '\ 001' 2:' \ 001' 3: '\ 000' 4: 'A' 5: 'C' 6: 'T' 7: 'i' 的 8: 'v' 9: 'e' 的 10:」 M」 11: 'Q' 12: '\ 000' 13: '\ 000' 14: '\ 000' 15: '\ 002' 這裏最後四個字節是版本,其被設置爲2

不知何故,這條消息被經紀人轉移/誤解,所以魔術記號和版本都是錯誤的。

還有一條信息:我使用提供的版本ow_commands_v1。[ch]和ow_commands_v2。[ch]編譯libopenwire,所以我試圖將測試與兩者聯繫起來,結果與任一版本都是一樣的。有誰知道兩個版本的原因?我應該使用哪一個?

注意:此消息已在前幾天發佈在apache論壇上,但沒有迴應。我希望在這個網站上留言會獲得更多的流量。

回答

1

OpenWire C API不是由任何人維護的,所以它的破解並不令人驚訝。在ActiveMQ svn倉庫中有ActiveMQ-CPP的C包裝,你可以嘗試使用它,如果你真的已經結婚使用C了。