我有一個部署在Jboss上的MDB,它從Websphere MQ隊列中獲取消息,查看每個消息頭中的GroupId和Sequence信息。一旦它獲取了一個組的所有序列,它收到的每條消息都會形成一條大消息並將其發送到另一個系統。部署在WAS 7集羣上的MDB
現在,MDB將部署在Websphere Application Server 7集羣環境中,並且我不確定是否有任何緩存/配置可用於收集羣集的一個實例的所有消息序列(否則,如果一個實例接收到一些消息部分,而另一個實例接收到其他消息部分,最後MDB將無法將一條大消息放在一起)
我讀到jms-ra資源適配器可以配置爲con。 sun.genericra.loadbalancing.selector =(例如對於其他實例,JMSType ='Instance1'等) JMSType頭應該出現在消息中,應該是'Instance1',例如1來處理這個消息。
但我不確定系統是否會將消息放入MDB從中取出它們的隊列將在其消息頭中發送這些信息。
有沒有辦法配置集羣來實現這個目標?
我想到了類似於第二點所描述的事情,但最後決定遵循這一點(圖6)http://pic.dhe.ibm.com/infocenter/wasinfo/v8r0/ index.jsp?topic =%2Fcom.ibm.websphere.nd.multiplatform.doc%2Finfo%2Fae%2Fae%2Fcjn_mdb_endpt_overview.html – kien
此變體可能需要對軟件進行一些結構更改。在你的情況下,只有一個MDB將同時工作,所以如果工作是在MDB的過程中完成的,你將只有一個工作服務器在同一時間。您將不得不像第3點那樣構建體系結構,以便在羣集上使應用程序很好地工作。 –
閱讀http://www.ibm.com/developerworks/websphere/library/techarticles/0602_currie/0602_currie.html使事情變得更容易(通過在Websphere中定義的激活規範中設置消息選擇器JMS_IBM_Last_Msg_In_Group = TRUE) – kien