Sun Java System Message Queue 3.7 UR1 管理ガイド

持続のプロパティー

Message QueueTM は、持続データストレージにファイルベースモデルと JDBC ベースモデルの両方をサポートしています。ブローカプロパティー imq.persist.store (表 14–4) で、使用するモデルを指定します。以降の節では、2 つのモデルのブローカ設定プロパティーについて説明します。

表 14–4 持続に関するグローバルなブローカプロパティー

プロパティー 

データ型 

デフォルト値 

説明 

imq.persist.store

文字列 

file

持続データストレージのモデル 

    file: ファイルベースの持続


    jdbc: JDBC ベースの持続


ファイルベースの持続

表 14–5 に、ファイルベースの持続に関するブローカプロパティーを示します。

表 14–5 ファイルベースの持続に関するブローカプロパティー

プロパティー 

データ型 

デフォルト値 

説明 

imq.persist.file.message.max_record_size

文字列 

1m

メッセージストレージファイルに追加するメッセージの最大サイズ 

このサイズを超えるメッセージは、個別の専用ファイルに格納されます。 

次の接尾辞を使用して、バイト、K バイト、または M バイトの単位で値を表すことができます。 

    b: バイト


    k: K バイト (1024 バイト)


    m: M バイト (1024 × 1024 = 1,048,576 バイト)


接尾辞を付けない値は、バイト単位になります。 

例:

    1600: 1600 バイト


    1600b: 1600 バイト


    16k: 16 K バイト (= 16,384 バイト)


    16m: 16 M バイト (= 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 に設定すると、システムクラッシュによるデータの損失は回避できますが、パフォーマンスが下がります。


注 –

Sun Cluster および Message Queue の Sun Cluster データサービスを実行している場合は、すべてのクラスタノードのブローカでこのプロパティーを true に設定してください。


JDBC ベースの持続

表 14–6 に、JDBC ベースの持続に関するブローカプロパティーを示します。示す例は、DataMirror Mobile Solutions, Inc の PointBase® ファミリーのデータベース製品の例です。

表 14–6 JDBC ベースの持続に関するブローカプロパティー

プロパティー 

例 

説明 

imq.persist.jdbc.brokerid

PointBase 組み込みバージョンの場合は不要です 

(任意指定) ブローカインスタンスの識別子

識別子には英数字を使用し、長さは n - 12 (n はデータベースで許可されるテーブル名の最大長) を超えないようにする必要があります。

複数のブローカインスタンスが同じデータベースを持続データストアとして使用する場合、データベーステーブル名を一意にするために、この識別子がデータベーステーブル名に追加されます。この識別子は、通常、1 つのブローカインスタンスのみのデータを保存する組み込みデータベースでは必要ありません。 

imq.persist.jdbc.driver

com.pointbase.jdbc.jdbcUniversalDriver

データベースに接続するための JDBC ドライバの Java クラス名

imq.persist.jdbc.opendburl

jdbc:pointbase:embedded:dbName ;

    database.home=
    
       .../instances/instance
    Name/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

 

(任意指定) データベースでブローカアクセス用のパスワードが必要かどうか

true の場合、imqbrokerd および 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 列のデフォルトの最大長は、1M バイト (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 コマンド