2012-04-17 56 views
0

我在我的應用程序中使用JMS作爲我的需求之一。我想在數據庫中存儲每個消息的唯一ID(實際上是MDB),通過它我使用下面的代碼獲取唯一ID:獨特的JMSMessageID的最大尺寸

@Override 
public void onMessage(Message msg) { 
     try { 
      id = msg.getJMSMessageID();    
     } catch (JMSException e1) { 
     } 
} 

從上面的代碼我有消息唯一ID,但我想知道的是什麼可以是任何消息的最大大小,以便我需要相應地配置數據庫。

我正在使用Weblogic Server。

回答

1

JMS消息ID的最大長度由JMS提供者定義。

至少,您需要諮詢您的提供商文檔以確定適合您的數據庫列的大小。對於更便攜的解決方案,您應該將其設置爲一個相當大的值 - 這樣,您不依賴任何供應商JMS實現來決定列的大小。

我會說,對於最便攜的解決方案,如果可以避免,則不應存儲JMS消息標識。您始終可以爲消息生成自己的ID並存儲該消息,這可以讓您爲自己的目的定義正確的列長度。

+0

其實我想更新數據庫的特定消息,當進程完成,由於我在數據庫中存儲消息ID.Taking您建議創建我自己的ID我可以在Message.setJMSMessageID中設置唯一的ID( XX)並通過調用Message.getJMSMessageID()在MDB類中使用該ID? – Ran 2012-04-17 11:16:32

+0

您是否需要與依賴此ID的其他系統進行通信?或者你是否以某種方式在別處錄製了ID?因爲如果沒有,您可以簡單地存儲您自己的消息唯一ID,然後在整個處理階段使用它。 – Perception 2012-04-17 14:02:38