JMS叢集的意義在於提升系統在處理訊息時的並發能力,建立這樣的叢集,有三個步驟:
1.配置JMS訊息持久化所使用的資料庫
2.配置分布式的jndi環境
3.配置分布式JMS叢集
在JBoss叢集中,系統採用hibernate的方式來儲存訊息,所以能夠相容hibernate支援的所有資料庫。 JBoss預設採用 hsql,在我們的例子中,將使用oracle 9.2。首先需要配置串連到資料庫的jndi資料來源。 方法是把doc\examples\jca下的 oracle-ds.xml檔案拷貝到server\all\farm下,並且修改其中的參數, 保證資料庫能夠正確串連。JBoss叢集啟動後,該檔案能夠通過JBoss的farm服務,自動拷貝到其他叢集節 點,並且自動部署。假設jndi資料來源的名稱為:GlobalDS將 doc\examples\JMS下的oracle-jdbc3- service.xml檔案拷貝到server\all\deploy- hasingleton\JMS目錄下,並且刪除該目錄下的hsqldb- jdbc2-service.xml。修改oracle-jdbc3- service.xml,在56行左右指定name的值為資料來源的名字: GlobalDS。這樣系統會使用該資料來源來儲存JMS訊息。使用如下命令啟動 boss: run ?c all.啟動完成後 ,正常情況下會發現oracle資料庫中多出了三張表:
1、JMS_message_log 該表用於儲存所有未處理的點對點訊息,表結構是:
Messageid 訊息id
Destination 目的地
Txid 事務id
Txop 訊息作業類型(a為新增,d為刪除)
Messageblob 訊息內容
2、JMS_REFERENCE_LOG 用於儲存所有未處理的topic訊息,表結構是:
Messageid
Destination
Txid
Txop
Messageblob
Redelivered 訊息是否被重發
3、JMS_TRANSACTION_LOG 用於儲存處理訊息過程中的一些重要的事務