我有以下製片人:如何知道使用JCSMP發佈消息時是否有錯誤?
XMLMessageProducer producer = session.getMessageProducer(new JCSMPStreamingPublishEventHandler() {
@Override
public void handleError(String messageID, JCSMPException cause, long timestamp) {
logger.error("Error occurred when sending message {} ", messageID, cause);
}
// This method is only invoked for persistent and non-persistent
// messages.
@Override
public void responseReceived(String messageID) {
logger.info("Response received for message {} ", messageID);
}
});
當調用producer.send()
發佈消息到一個話題,我怎麼知道是否有因爲responseReceived()
任何錯誤的直接信息,則不會調用?由於消息是異步發佈的,何時會調用JCSMPStreamingPublishEventHandler
的handleError()
?在我們可以斷定發佈消息沒有錯誤之前,我應該等待多久?
謝謝。
我剛剛測試了的HandleError()是當我發佈到無效的ACL的話題,叫做如下圖所示:發送消息0 ((客戶端名稱時出錯:嚴重NCS-060613KS01/55284 /#000b0001本地地址:10.70.202.136:60541遠程地址:192.168.204.119:55443) - )com.solacesystems.jcsmp.JCSMPErrorResponseException:403:發佈ACL拒絕 - 主題'ccs1/topic12'[子代碼:28] –
是的,這是正確的,我我忽視了這一點。很快編輯答案。 –