我試圖發送使用AMQP QPID Java庫Azure的服務總線AMQP - 如何指定
我收到此錯誤信息服務總線的會話ID:
"SessionId needs to be set for all brokered messages to a Partitioned Topic that supports Ordering"
我演講的題目有「強制消息排序」開啓(這是後我得到這個錯誤我猜)
在使用Azure的服務總線的Java庫(而不是AMQP)我有這個功能:
this.entity.setSessionId(...);
當使用AMQP庫我沒有看到一個選項來設置會話ID上,我想送
需要注意的是,如果我取消勾選「強制消息排序」消息將被成功發送的消息
這是我的代碼
private boolean sendServiceBusMsg(MessageProducer sender,Session sendSession) {
try {
// generate message
BytesMessage createBytesMessage = (BytesMessage)sendSession.createBytesMessage();
createBytesMessage.setStringProperty(CAMPAIGN_ID, campaignKey);
createBytesMessage.setJMSMessageID("ID:" + bm.getMessageId());
createBytesMessage.setContentType(Symbol.getSymbol("application/octet-stream"));
/*message is the actual data i send/not seen here*/
createBytesMessage.writeBytes(message.toByteArray());
sender.send(createBytesMessage);
} catch (JMSException e) {
}
謝謝,爲我工作 –