當我收到ActiveMQBytesMessage
時,Content
屬性具有與期望的長度完全相同的長度,但所有字節均爲零,它看起來像只有正確長度的未初始化緩衝區。接收到的ActiveMQBytesMessage中的內容爲空
我也嘗試過ReadBytes(buffer, length)
上的消息對象,並得到了相同的空緩衝區。
我敢肯定,這些消息準確到達經紀人,因爲我可以考慮通過ActiveMQ的Web界面消息的XML表示,在那裏我可以看到<content><data>
正確的Base64表示我正在使用最新版本1.5.6。
任何想法我可能做錯了什麼?
更新
我使用出版商發送之前如何創建消息:
var binMessage = new ActiveMQBytesMessage();
binMessage.Content = /* ... */
這是一個消息看起來像在Web界面上(隊列瀏覽器):
<org.apache.activemq.command.ActiveMQBytesMessage>
<commandId>5</commandId>
<!-- ... -->
<content>
<data>H4sIAN[...]AA=</data>
<offset>0</offset>
<length>305</length>
</content>
<!-- ... -->
</org.apache.activemq.command.ActiveMQBytesMessage>
這是我基本上在我的MessageListener
:
Console.WriteLine("Message ID: " + message.NMSMessageId);
var bytesMessage = message as IBytesMessage;
if (bytesMessage != null)
{
Console.WriteLine("Content length: " + bytesMessage.Content.Length);
Console.WriteLine("Content: " + BitConverter.ToString(bytesMessage.Content));
}
這給了我正確的內容長度,但實際內容只是空的(十六進制輸出只是00-00-00等)。
嘗試添加一些實際的代碼和/或更多細節。這裏沒有足夠的真正幫助你。 –
非常感謝您的快速響應!你能從更新的問題中獲得足夠的細節嗎?處理連接,發佈者,消費者,會話等應該沒問題,因爲解決方案已經成功處理了數百萬條短信:)此問題僅出現在字節消息中。 – realMarkusSchmidt