Sun Java System Message Queue 3.7 UR1 管理指南

永久性特性

Message QueueTM 支援永久性資料存放區的檔案式與 JDBC 型模型。代理程式特性 imq.persist.store (表 14–4) 可指定要使用哪種模型。以下各節描述兩種模型的代理程式配置特性。

表 14–4 全域代理程式永久性特性

特性 

類型 

預設 

說明 

imq.persist.store

字串 

file

永久性資料存放區的模型: 

    file:檔案式永久性


    jdbc:JDBC 型永久性


檔案式永久性

表 14–5 列出與檔案式永久性相關的代理程式特性。

表 14–5 檔案式永久性的代理程式特性

特性 

類型 

預設 

說明 

imq.persist.file.message.max_record_size

字串 

1m

新增至訊息存放區檔案的最大訊息容量 

超過此容量的任何訊息,都會以個別的檔案各自儲存。 

此值可能會使用下列字尾,以位元組、千位元組或百萬位元組表示: 

    b:位元組


    k:千位元組 (1024 位元組)


    m:百萬位元組 (1024 × 1024 = 1,048,576 位元組)


無字尾的值表示以位元組為單位。 

範例:

    1600:1600 位元組


    1600b:1600 位元組


    16k:16 千位元組 (= 16,384 位元組)


    16m:16 百萬位元組 (= 16,777,216 位元組)


imq.persist.file.destination.message.filepool.limit

整數 

100

目標檔案池中可供重新使用的最大可用檔案數目。 

超過此限制的可用檔案將會被刪除。代理程式將依需要建立與刪除超過此限制的其他檔案。 

此限制愈高,代理程式處理永久性資料的速度就愈快。 

imq.persist.file.message.filepool.cleanratio

整數 

0

可用檔案池中要維持在清除 (空白) 狀態的檔案百分比 

此值越高,檔案池所需的磁碟空間就越小,但在作業期間清除檔案所需的經常性耗用時間會越長。 

imq.persist.file.message.cleanup

布林值 

false

要在關機時清除可用檔案池中的檔案? 

將此特性設為 true 可節省磁碟空間以供檔案存放區使用,但會減緩代理程式關閉的速度。

imq.persist.file.sync.enabled

布林值 

false

要與實體儲存裝置同步化常駐記憶體狀態? 

將此特性設為 true 可避免因系統當機而造成資料遺失,但效能會降低。


備註 –

如果 Message Queue 執行 Sun Cluster 和 Sun Cluster Data Service,請在所有叢集節點上將代理程式的此特性設定為 true


JDBC 型永久性

表 14–6 列出與 JDBC 型永久性相關的代理程式特性。所示範例為 DataMirror Mobile Solutions, Inc. 資料庫產品的 PointBase® 系列。

表 14–6 JDBC 型永久性的代理程式特性

特性 

範例 

說明 

imq.persist.jdbc.brokerid

PointBase 內嵌式版本不需要 

(選擇性) 代理程式實例識別碼

識別碼必須為字母數字字串,其長度不能超過 n - 12 個字元,其中 n 為資料庫所允許的最長表格名稱長度。

若有多個代理程式實例使用相同的資料庫作為永久性資料存放區,則此識別碼會附加至資料庫表格名稱,使這些資料庫表格名稱均是唯一的。由於內嵌式資料庫僅會儲存一個代理程式實例的資料,因此通常不需要此屬性。 

imq.persist.jdbc.driver

com.pointbase.jdbc.jdbcUniversalDriver

可供連線至資料庫的 JDBC 驅動程式 Java 類別名稱

imq.persist.jdbc.opendburl

jdbc:pointbase:embedded:dbName ;

    database.home=
    
     
       .../instances/instanceName/dbstore
    

可供開啟現有資料庫連線的 URL

imq.persist.jdbc.createdburl

jdbc:pointbase:embedded:dbName ;

    new,database.home=
    
     
       .../instances/instanceName/dbstore
    

(選擇性) 可供建立新資料庫的 URL

僅當使用 Message Queue 資料庫管理者公用程式 (imqdbmgr) 建立資料庫時,才需要此特性。

imq.persist.jdbc.closedburl

PointBase 不需要 

(選擇性) 可供關閉資料庫連線的 URL

imq.persist.jdbc.user

 

(選擇性) 必要時,可供開啟資料庫連線的使用者名稱

基於安全性原因,可改用指令行選項 imqbrokerd -dbuserimqdbmgr - u 來指定該值。

imq.persist.jdbc.needpassword

 

(選擇性) 資料庫是否需要密碼以供代理程式存取使用?

如果為 trueimqbrokerd imqdbmgr 指令將會提示您輸入密碼,除非您使用 - passfile 選項指定包含密碼的密碼檔案。

imq.persist.jdbc.password [應只在密碼檔案中使用]

 

(選擇性) 可供開啟資料庫連線的密碼

imq.persist.jdbc.table.IMQSV35

CREATE TABLE ${name}

    (STOREVERSION INTEGER NOT NULL,
    
     
     BROKERID VARCHAR(100))
    

可供建立版本表格的 SQL 指令

imq.persist.jdbc.table.IMQCCREC35

CREATE TABLE ${name}

    (RECORDTIME BIGINT NOT NULL,
    
     
     RECORD BLOB(10k))
    

可供建立配置變更記錄表格的 SQL 指令

imq.persist.jdbc.table.IMQDEST35

CREATE TABLE ${name}

    (DID VARCHAR(100) NOT NULL,
    
     
     DEST BLOB(10k),
    
     
     primaryKey(DID))
    

可供建立目標表格的 SQL 指令

imq.persist.jdbc.table.IMQINT35

CREATE TABLE ${name}

    (CUID BIGINT NOT NULL,
    
     
     INTEREST BLOB(10k),
    
     
     primaryKey(CUID))
    

可供建立偏好表格的 SQL 指令

imq.persist.jdbc.table.IMQMSG35

CREATE TABLE ${name}

    (MID VARCHAR(100) NOT NULL,
    
     
     DID VARCHAR(100),
    
     
     MSGSIZE BIGINT,
    
     
     MSG BLOB(1m),
    
     
     primaryKey(MID))
    

可供建立訊息表格的 SQL 指令

MSG 的預設最大長度為 1 MB (1m)。如果您預期訊息長度會大於此長度,請相應設定長度。如果已經建立表格,那麼您必須重新建立這些表格,才能變更最大的訊息長度。

imq.persist.jdbc.table.IMQPROPS35

CREATE TABLE ${name}

    (PROPNAME VARCHAR(100) NOT NULL,
    
     
     PROPVALUE BLOB(10k),
    
     
     primaryKey(PROPNAME))
    

可供建立特性表格的 SQL 指令

imq.persist.jdbc.table.IMQILIST35

CREATE TABLE ${name}

    (MID VARCHAR(100) NOT NULL,
    
     
     CUID BIGINT,
    
     DID VARCHAR(100),
    
     
     STATE INTEGER,
    
     
     primaryKey(MID, CUID))
    

可供建立偏好狀態表格的 SQL 指令

imq.persist.jdbc.table.IMQTXN35

CREATE TABLE ${name}

    (TUID BIGINT NOT NULL,
    
     
     STATE INTEGER,
    
     
     TSTATEOBJ BLOB(10K),
    
     
     primaryKey(TUID))
    

可供建立作業事件表格的 SQL 指令

imq.persist.jdbc.table.IMQTACK35

CREATE TABLE ${name}

    (TUID BIGINT NOT NULL,
    
     
     TXNACK BLOB(10k))
    

可供建立作業事件確認表格的 SQL 指令