Sun ONE ロゴ      前へ      目次      索引      次へ     
Sun ONE Message Queue 管理者ガイド



第 5 章   ブローカの起動と設定


MQ をインストールしたあとで、imqbrokerd コマンドを使用してブローカを起動します。ブローカの設定は、設定ファイルセットと、設定ファイル内の対応するプロパティをオーバーライドする imqbrokerd コマンドで渡されるオプションによって決まります。

この章では、imqbrokerd コマンドの構文と、コマンド行オプションや設定ファイルを使用してブローカを設定する方法について説明します。さらに、次の方法についても説明します。

  • ブローカのインスタンス設定ファイルの編集

  • ブローカクラスタの操作

  • ブローカのログ作成の制御

Windows のサービスとしてブローカを起動し、使用する方法については、「Windows のサービスとしてのブローカの使用」を参照してください。



設定ファイル



ブローカの設定に使用する、インストール済みの設定ファイルは、次のディレクトリにあります。

IMQ_HOME/lib/props/broker
(Solaris では /usr/share/lib/imq/props/broker )

このディレクトリには、次のファイルが格納されています。

  • 起動時に読み込まれるデフォルトの設定ファイル。このファイルは、default.properties と呼ばれ、編集はできない。デフォルトの設定を決定したり、変更するプロパティの正確な名前を検索したりする場合、このファイルに目を通す必要がある

  • MQ のインストール時に指定されたプロパティを含むインストール設定ファイル。このファイルは、install.properties と呼ばれ、インストール後は編集できない

また、初めてブローカを実行すると、インスタンス設定ファイルが作成されます。このファイルを使用して、ブローカのインスタンスの設定プロパティを指定できます。このファイルは、管理コマンドに応答してブローカに管理されます。また、直接編集することも可能ですが慎重に行う必要があります。インスタンス設定ファイルは、次の場所に格納されています。

IMQ_VARHOME/instances/brokerName/props/config.properties
(Solaris では、/var/imq/instances/brokerName/props/config.properties)

brokerName には、ブローカ名が表示されます (デフォルトでは imqbrokerd)。インスタンス設定ファイルを編集して、設定を変更できます (「インスタンス設定ファイルの編集」を参照)。

クラスタでブローカを接続する場合 (「複数ブローカの設定 (クラスタ)」を参照)、クラスタ設定ファイルを使用して、クラスタ設定情報を指定する必要があります。詳細は、「クラスタ設定プロパティ」を参照してください。


プロパティ値のマージ

起動時に、システムは異なる設定ファイルのプロパティ値をマージします。インストール時に設定された値、およびインスタンス設定ファイルに設定された値が使用され、デフォルトの設定ファイルで指定された値はオーバーライドされます。imqbrokerd コマンドオプションを使用すると、生成された値をオーバーライドできます。この方式を図 5-1 で図解します。

図 5-1    ブローカ設定ファイル
図は、コマンド行オプションが config.properties をオーバーライドし、以下順に install.properties、default options をオーバーライドする状況を示しています。


プロパティ命名構文

設定ファイルにある MQ プロパティの定義では、次の命名構文を使用します。

propertyName=value[[,value1]...]

たとえば、次のエントリでは、自動作成キューのキュータイプを定義します。

imq.queue.default=single

次のエントリでは、メッセージの有効期限切れタイムアウト値を定義します。

imq.message.expiration.timeout=90

表 5-1 に、ブローカ設定プロパティとそのデフォルト値をアルファベット順に一覧表示します。


インスタンス設定ファイルの編集

初めてブローカインスタンスが実行されると、config.properties ファイルが自動的に作成されます。このファイルを編集して、対応するブローカインスタンスの動作やリソースの使用をカスタマイズできます。

ブローカは起動時にだけ config.properties ファイルを読み込みます。config.propertiesファイルへの変更を確定するには、次の操作のどちらかを行います。

  • 管理ツールを使用する。imqcmd を使用して設定できるプロパティについての詳細は、表 6-5 を参照

  • ブローカインスタンスの停止中に config.properties ファイルを編集し、その後インスタンスを再起動する (Solaris および Linux プラットフォームでは、最初にブローカインスタンスを起動したユーザだけが config.properties ファイルを編集するアクセス権を持っている)

表 5-1 に、ブローカインスタンス設定プロパティとそのデフォルト値をアルファベット順に一覧表示します。各プロパティの意味と使用に関する詳細は、指定された相互参照の節で確認してください。


表 5-1    ブローカインスタンス設定プロパティ 

プロパティ名

データ型

デフォルト値

参照先

imq.accesscontrol.enabled
 

ブール  

true
 

表 2-6  

imq.accesscontrol.file.
filename

 

文字列  

accesscontrol.
properties

 

表 2-6  

imq.authentication.basic.
user_repository

 

文字列  

file
 

表 2-6  

imq.authentication.
client.response.timeout

 

整数 (秒)  

180
 

表 2-6  

imq.authentication.type
 

文字列  

digest
 

表 2-6  

imq.autocreate.queue
 

ブール  

true
 

表 2-9  

imq.autocreate.topic
 

ブール  

true
 

表 2-9  

imq.cluster.url
 

文字列  

null
 

表 2-10  

imq.keystore.property_name
 

 


 

表 8-8  

imq.log.console.output
 

文字列  

ERROR|WARNING
 

表 2-8  

imq.log.console.stream
 

文字列  

ERR
 

表 2-8  

imq.log.file.dirpath
 

文字列  

IMQ_VARHOME/
instances/
brokerName/log

 

表 2-8  

imq.log.file.name
 

文字列  

log.txt
 

表 2-8  

imq.log.file.output
 

文字列  

ALL
 

表 2-8  

imq.log.file.rolloverbytes
 

整数
(バイト)
 

0
 

表 2-8  

imq.log.file.rolloversecs
 

整数 (秒)  

604800
 

表 2-8  

imq.log.level
 

文字列  

INFO
 

表 2-8  

imq.log.syslog.facility
 

文字列  

LOG_DAEMON
 

表 2-8  

imq.log.syslog.logpid
 

ブール  

true
 

表 2-8  

imq.log.syslog.logconsole
 

ブール  

false
 

表 2-8  

imq.log.syslog.identity
 

文字列  

imqbrokerd_${imq.
instancename}

 

表 2-8  

imq.log.syslog.output
 

文字列  

ERROR
 

表 2-8  

imq.message.expiration.
interval

 

整数 (秒)  

60
 

表 2-4  

imq.message.max_size
 

バイト文字列 *、0 (制限なし)  

70m
 

表 2-4  

imq.metrics.enabled
 

ブール  

true
 

表 2-8  

imq.metrics.interval
 

整数 (秒)  

0
 

表 2-8  

imq.passfile.enabled
 

ブール  

false
 

表 2-6  

imq.passfile.dirpath
 

文字列  

IMQ_HOME/etc/etc/
imq
(Solaris の場合)
 

表 2-6  

imq.passfile.name
 

文字列  

passfile
 

表 2-6  

imq.persist.file.
destination.file.size

 

バイト文字列 *  

1m
 

表 2-5  

imq.persist.file.message.
cleanup

 

ブール  

false
 

表 2-5  

imq.persist.file.message.
fdpool.limit

 

整数  

25 (Solaris および Linux の場合) 1024 (Windows の場合)  

表 2-5  

imq.persist.file.message.
filepool.cleanratio

 

整数  

0
 

表 2-5  

imq.persist.file.message.
filepool.limit

 

整数  

10000
 

表 2-5  

imq.persist.file.sync.
enabled

 

ブール  

false
 

表 2-5  

imq.persist.jdbc.property_name
 

 


 

表 A-1  

imq.persist.store
 

文字列  

file
 

表 2-5  

imq.portmapper.port
 

整数  

7676
 

表 2-3  

imq.queue.deliverypolicy
 

文字列  

single
 

表 2-9  

imq.redelivered.
optimization

 

ブール  

true
 

表 2-4  

imq.resource_state.
threshold

 

整数
(パーセント)
 

0 (green)
60 (yellow)
75(orange)
90 (red)

 

表 2-4  

imq.service.activelist
 

リスト  

jms、admin
 

表 2-3  

imq.service_name.
accesscontrol.enabled

 

ブール  

システム全体のプロパティから値を継承  

表 2-6  

imq.service_name.
accesscontrol.file.filename

 

文字列  

システム全体のプロパティから値を継承  

表 2-6  

imq.service_name.
authentication.type

 

文字列  

システム全体のプロパティから値を継承  

表 2-6  

imq.service_name.max_threads
 

整数  

1000 (jms)
500 (ssljms)
500 (httpjms)
500 (httpsjms)
50 (admin)
 

表 2-3  

imq.service_name.min_threads
 

整数  

10 (jms)
10 (ssljms)
10 (httpjms)
10 (httpsjms)
4 (admin)
 

表 2-3  

imq.service_name.protocol type.
hostname

 

文字列  

null
 

表 2-3  

imq.service_name.protocol type.
port

 

整数  

0
 

表 2-3  

imq.service_name.
threadpool_model

 

文字列  

dedicated (jms)
dedicated (ssljms)
dedicated (httpjms)
dedicated (httpsjms)
dedicated (admin)
 

表 2-3  

imq.shared.
connectionMonitor_limit

 

整数  

512 (Solaris および Linux の場合)
64 (Windows の場合)
 

表 2-3  

imq.system.max_count
 

整数、
0 (制限なし)
 

0
 

表 2-4  

imq.system.max_size
 

バイト文字列 *、0 (制限なし)  

0
 

表 2-4  

imq.transaction.autorollback
 

ブール  

false
 

表 2-4  

imq.user_repository.ldap.
property_name

 

 


 

表 8-5  

* データ型がバイト文字列となっている値は、バイト、K バイト、M バイト単位で表されます。例 : 1000 は 1000 バイト、7500b は 7500 バイト、77k は 77K バイト (77 x 1024 = 78848 バイト)、17m は 17M バイト (17 x 1024 x 1024 = 17825792 バイト) をそれぞれ表します。



ブローカの起動



ブローカを起動し、1 つまたは複数のプロパティ値をオーバーライドするには、imqbrokerd コマンドを使用し、有効なオプションを指定します。コマンド行オプションは、ブローカ設定ファイルの値をオーバーライドします。ただし、オーバーライドの対象は現在のブローカセッションだけです。コマンド行オプションは、設定プロパティファイルに書き込まれません。

imqbrokerd コマンドの構文は、次のとおりです (引数はスペースで区切る)。


imqbrokerd [[ -Dproperty=value]...]
    [ -backup filename]
    [ -cluster "[broker] [[,broker]...]"
    [ -dbuser username] [ -dbpassword password]
    [ -javahome path | -jrehome path]
    [ -ldappassword password]
    [ -license name]
    [ -loglevel level]
    [ -metrics number]
    [ -name brokername ] [ -port number]
    [ -shared]
    [ -password keypassword] [ -passfile filename]
    [ -remove instance]
    [ -reset data]
    [ -restore filename]
    [ -shared]
    [ -silent] [ -tty]
    [ -version] [ -vmargs arg [[arg]...]

たとえば、デフォルトのブローカ名および設定を使用するブローカを起動するには、次のコマンドを使用します。

imqbrokerd

このコマンドにより、ポート 7676 のポートマッパを持つローカルマシン上にある、ブローカのデフォルトのインスタンス (imqbroker) が起動されます。

表 5-2 に、imqbrokerd コマンドのオプションと、存在する場合は各オプションから影響を受ける設定プロパティを示します。



Solaris および Linux プラットフォームでは、設定情報と持続データを保持するディレクトリに対するアクセス権は、最初にブローカインスタンスを起動するユーザの umask コマンドによる設定に依存します。したがって、ブローカインスタンスを正常に動作させるためには、それ以降も所定のユーザだけが起動する必要があります。




表 5-2    imqbrokerd オプション 

オプション

影響を受けるプロパティ

説明

-backup filename
 

影響なし  

指定したファイルに、マスターブローカの設定変更レコードをバックアップする。ブローカクラスタに対してのみ適用可能。「マスターブローカの設定変更レコードのバックアップ」を参照  

-cluster"[broker]
[[,broker]...]"


ブローカは次のどちらか

  • host[:port]

  • [host]:port

 

imq.cluster.brokerlist に接続先となるブローカのリストを設定する  

特定のホストやポートにある全ブローカに接続する。このリストは、imq.cluster.brokerlist プロパティにあるリストとマージされる。ホストに値を指定しない場合、localhost が使用される。ポートに値を指定しない場合、7676 が使用される。このオプションを使用して複数のブローカに接続する方法については、「ブローカクラスタの操作」を参照  

-dbpassword password
 

imq.persist.jdbc.
password
に特定のパスワードを設定する
 

プラグインの JDBC 準拠のデータベースに対するパスワードを指定する。付録 A 「プラグイン持続の設定」を参照  

-dbuser userName
 

imq.persist.jdbc.user に特定のユーザ名を設定する  

プラグインの JDBC 準拠のデータベースに対するユーザ名を指定する。付録 A 「プラグイン持続の設定」を参照  

-Dproperty=value
 

システムプロパティを設定する。インスタンス設定ファイル内の対応するプロパティ値をオーバーライドする  

指定したプロパティを指定した値に設定する。ブローカ設定プロパティについては、表 5-1 を参照

注意 : D オプションを使用して設定するプロパティのスペルと形式は、十分に確認すること。誤った値を渡した場合、システムからの警告なしに MQ でプロパティを設定できなくなる  

-javahome path
 

影響なし  

代替 Java 2 互換 JDK へのパスを指定する。デフォルトでは、バンドルされたランタイムを使用する  

-jrehome path
 

影響なし  

Java 2 JRE へのパスを指定する  

-ldappassword
password

 
imq.user_repository.
ldap.password に特定のパ スワードを設定する

 

LDAP ユーザリポジトリにアクセスするためのパスワードを指定する。「ユーザリポジトリに LDAP サーバを使用する」を参照  

-license [name]
 

影響なし  

使用している MQ 製品エディションのデフォルトと異なる場合、読み込みのためのライセンスを指定する。ライセンス名を指定しない場合、システムにインストールされている全ライセンスが一覧表示される。インストールされた MQ エディションによって、name の値は、pe (Platform Edition - 基本機能の場合)、try (Platform Edition - 90 日間の企業向けトライアル機能の場合)、および unl (Enterprise Edition の場合) のどれかになる。「製品エディション」を参照  

-loglevel level
 

imq.broker.log.level に特定のレベルを設定する  

ログ作成レベルを、NONEERRORWARNINGINFO のどれかに指定する。デフォルト値は INFO。詳細は、「ロガー」を参照  

-metrics int
 

imq.metrics.report.
interval
に特定の秒数を設定する
 

メトリックスが特定の秒間隔で報告されるように指定する  

-name brokerName
 

imq.instancename に特定の名前を設定する  

このブローカのインスタンス名を指定し、対応するインスタンス設定ファイルを使用する。ブローカ名を指定しない場合、ファイル名は imqbrokerd に設定される
: 同一ホスト上で複数のブローカのインスタンスを実行している場合、各インスタンスの名前は一意となる必要がある
 

-passfile filename
 

imq.passfile.
enabled
true を設定する。jmq.passfile.dirpath にファイルが含まれるパスを設定する。
imq.passfile.name にファイル名を設定する
 

SSL キーストア、LDAP ユーザリポジトリ、および JDBC 準拠のデータベースのパスワードの読み込み元となるファイル名を指定する。詳細は、「passfile の使用」を参照してください。  

-password keypassword
 

imq.keystore.password に特定のパスワードを設定する  

SSL 証明書のキーストアに対するパスワードを指定する。詳細は、「セキュリティマネージャ」を参照  

-port number
 

imq.portmapper.port に特定の数を設定する  

ブローカのポートマッパのポート番号を指定する。デフォルトでは 7676 に設定されている。同一サーバ上でブローカの 2 つのインスタンスを実行するには、各ブローカのポートマッパが異なるポート番号となる必要がある  

-remove instance
 

影響なし  

ブローカのインスタンスが削除される。つまり、インスタンス設定ファイル、ログファイル、持続ストア、その他インスタンスに関連するファイルやディレクトリが削除される  

-reset store| messages|
durables|
props

 

影響なし  

指定された引数に応じて、ブローカの持続ストアまたはストアのサブセットをリセットするか、あるいはブローカのプロパティをリセットする

ブローカの持続ストアをリセットすると、持続メッセージ、永続サブスクリプション、およびトランザクションの情報など、すべての持続データが消去される。このため、データが消去された状態で、ブローカを起動できる。すべての持続メッセージだけ、またはすべての永続サブスクリプションだけを消去することも可能 (次回起動時に持続ストアをリセットしたくない場合は、-reset オプションを使用せずにブローカを再起動する)。詳細は、「持続マネージャ」を参照。

ブローカのプロパティをリセットすると、既存のインスタンス設定ファイル (config.properties) が空のファイルに置き換えられ、プロパティはすべてデフォルト値となる  

-restore filename
 

影響なし  

マスターブローカの設定変更レコードを、指定したファイルに置き換える。「マスターブローカの設定変更レコードの復元」を参照  

-shared
 

imq.jms.threadpool_modelshared を設定する  

共通のスレッドプールを使用して、jms コネクションサービスが実装されるように指定する。このスレッドプールでは、スレッドがコネクション間で共有され、ブローカにサポートされるコネクション数が増加する。詳細は、「コネクションサービス」を参照  

-silent
 

imq.log.console.outputNONE を設定する  

コンソールへのログ作成をオフにする  

-tty
 

imq.log.console.output に ALL を設定する  

すべてのメッセージがコンソールに表示されるよう指定する。デフォルトでは、WARNING レベルまたは ERROR レベルのメッセージだけが表示される  

-version
 

影響なし  

インストールされた製品のバージョン番号を表示する  

-vmargs arg [[arg]...]
 

影響なし  

Java VM に渡す引数を指定する。引数はスペースで区切られる。複数の引数を渡す場合や、引数にスペースが含まれる場合は、引用符で囲む。例 : imqbrokerd -tty -vmargs "-Xmx128m -Xincgc"  



ブローカクラスタの操作



この節では、ブローカクラスタを設定するために使用するプロパティ、ブローカを接続する 2 つの方法、およびクラスタを管理する方法について説明します。この機能は、MQ Enterprise Edition でのみ利用できます (「製品エディション」を参照)。

クラスタの概要については、「複数ブローカの設定 (クラスタ)」を参照してください。

クラスタを操作するときは、クラスタにあるすべてのブローカのホスト間でクロックの同期が取れていることを確認してください。


クラスタ設定プロパティ

ブローカをクラスタに接続する場合、接続されたすべてのブローカで、クラスタ設定プロパティに同じ値を指定する必要があります。これらのプロパティにより、クラスタにあるブローカの関係が記述されます。表 5-3 で、クラスタ関連の設定プロパティの概要を説明します。


表 5-3    クラスタ設定プロパティ 

プロパティ

説明

imq.cluster.brokerlist
 

カンマで区切られたリスト内のクラスタの全ブローカを指定する。この場合、各アイテムではブローカのホストやポートが指定される。
次に例を示す。host1:3000, host2:8000, ctrhost
 

imq.cluster.masterbroker
 

マスターブローカのホストとポートを指定する。
この値は運用環境の場合に設定する。
たとえば、ctrhost:7676
 

imq.cluster.url
 

クラスタ設定ファイルの場所を指定する。
次に例を示す。http://webserver/imq/cluster.properties
file:/net/mfsserver/imq/cluster.properies
 

imq.cluster.port
 

クラスタ内にある各ブローカに対して、クラスタコネクションサービスのポート番号を指定する。クラスタコネクションサービスは、クラスタにあるブローカ間での内部通信に使用される。
デフォルトは、0 (ポートは動的に割り当てられる)
 

imq.cluster.hostname
 

クラスタ内の各ブローカに対して、コンピュータに複数のネットワークインタフェースカードがあるなど、使用可能な複数のホストがある場合に、クラスタコネクションサービスのバインド先となるホスト (ホスト名または IP アドレス) を指定する。クラスタコネクションサービスは、クラスタにあるブローカ間での内部通信に使用される。
デフォルトは、null (すべての使用可能なホスト)
 

次の 2 つの方法のうちどちらかを使用して、クラスタプロパティを設定できます。

  • クラスタ関連の設定プロパティを、各ブローカのインスタンス設定ファイル (または各ブローカを起動するコマンド行) で設定します。たとえば、ブローカ A (host1 上、ポート 7676)、ブローカ B (host2 上、ポート 5000)、およびブローカ C (ctrlhost 上、ポート 7676) を接続する場合、ブローカ A、B、および C のインスタンス設定ファイルに、次のプロパティを設定する必要があります。

    imq.cluster.brokerlist=host1, host2:5000, ctrlhost

    クラスタ設定を変更する場合、この方法では、すべてのブローカにあるクラスタ関連のプロパティを更新する必要があります。

  • クラスタ設定プロパティを、1 つの中心的なクラスタ設定ファイルで設定します。これらのプロパティには、接続されるブローカのリスト (imq.cluster.brokerlist) が含まれます。またオプションで、マスターブローカのアドレス (imq.cluster.masterbroker) も含まれます。

    この方法を使用する場合、クラスタ内の各ブローカに対して imq.cluster.url を設定してクラスタ設定ファイルの場所を指すようにする必要があります。管理を簡単にするという点から、クラスタの設定にはこの方法をお勧めします。

次のサンプルコードは、クラスタ設定ファイルの内容を表示しています。host1ctrlhost は両方とも、デフォルトのポートで動作しています。これらのプロパティは、host1ctrlhost がクラスタで接続され、ctrlhost がマスターブローカであることを指定しています。


imq.cluster.brokerlist=host1,host2:5000,ctrlhost
imq.cluster.masterbroker=ctrlhost

このクラスタで接続されている各ブローカのインスタンス設定ファイルは、クラスタ設定ファイルの URL を含んでいる必要があります。次に例を示します。


imq.cluster.url=file:/home/cluster.properties


ブローカの接続

この節では、ブローカをクラスタに接続する 2 つの方法を説明します。どちらの方法を使用する場合でも、起動するブローカはすべて 5 秒間隔でほかのブローカへの接続を試みますが、クラスタ内のほかのブローカが起動されるまでは、接続できません。

ブローカをクラスタに接続する場合、先にマスターブローカを起動する必要はありません。マスターブローカより先にクラスタのブローカを起動した場合、クラスタのブローカはクライアントのコネクションを拒否する中断状態になります。マスターブローカを起動すると、自動的に中断状態だったブローカが完全に機能するようになります。


方法 1: クラスタ設定ファイルを使用しない方法


ブローカをクラスタに接続するには

  1. ブローカを起動する imqbrokerd コマンドの -cluster オプションを使用し、-cluster オプションに、接続先のブローカの完全なリストを引数として指定します。

  2. クラスタに接続するブローカを起動するときに、各ブローカに対してこの手順を実行します。

    たとえば、次のコマンドは新しいブローカを起動して、host1 のデフォルトのポートで実行中のブローカ、host2 のポート 7677 で実行中のブローカ、およびローカルホストのポート 7678 で実行中のブローカに接続します。

    imqbrokerd -cluster host1,host2:7677,:7678


方法 2: クラスタ設定ファイルを使用する方法

接続されるブローカのリストを指定するクラスタ設定ファイルを作成することも可能です。この場合、オプションでマスターブローカのアドレスも指定できます。クラスタを定義するこの方法は、運用システムに適しています。クラスタのブローカごとに、imq.cluster.url プロパティの値がクラスタ設定ファイルを指すように設定する必要があります。


クラスタへのブローカの追加

ブローカクラスタを設定すると、新しいブローカを追加するか、あるいはすでにクラスタの一部となっているブローカを再起動する必要があります。

新しいブローカを既存のクラスタに追加するには、次のいずれかの手順を実行します。

クラスタ設定ファイルを使用していない場合、新しいブローカを起動するときに、imq.cluster.brokerlist と、必要な場合は imq.cluster.masterbroker プロパティを -D オプションを使用してコマンド行で指定します。


クラスタ設定ファイルを使用している場合に、ブローカをクラスタに追加するには

  1. 新しいブローカを、クラスタ設定ファイルにある imq.cluster.brokerlist プロパティに追加します。

  2. クラスタ内の任意のブローカに次のコマンドを実行します。

    imqcmd reload cls

    このコマンドを実行すると、すべてのブローカが imq.cluster.brokerlist プロパティを再読み込みし、クラスタ内のブローカの持続情報がすべて最新になります。


クラスタ内のブローカの再起動

すでにクラスタのメンバーであるブローカを再起動するには、次のどちらかの手順を実行します。

  • クラスタ設定ファイルを使用してクラスタを定義する場合、-D オプションを使用して、ブローカの起動に使用されるコマンド行で imq.cluster.url プロパティを指定します。

  • クラスタ設定ファイルを使用してクラスタを定義しない場合、新しいブローカを起動するときに、-D オプションを使用してコマンド行で imq.cluster.brokerlist を指定します。必要な場合は imq.cluster.masterbroker プロパティも指定します。クラスタにマスターブローカが含まれていない場合は、新しいブローカの起動時に、-cluster オプションを使用するだけで、クラスタにあるブローカのリストを指定できます。


クラスタからのブローカの削除

ブローカをクラスタから削除するときには、次の点に注意します。

  • ブローカ A、B、および C が次のコマンド行を使用して起動された場合、A だけを再起動しても、ブローカはクラスタから削除されません。

    imqbrokerd -cluster A,B,C

    A だけを再起動するのではなく、次のコマンド行を使用してほかの 2 つのブローカを再起動する必要があります。

    imqbrokerd -cluster B,C

    次に、-cluster オプションを指定せずに、ブローカ A を起動する必要があります。

  • クラスタ設定ファイルを使用してブローカのリストが指定されている場合、次の手順を実行する必要があります。

    • 設定ファイルからブローカの詳細を削除します。

    • 今後共通プロパティを使用しないように、削除するブローカの imq.cluster.url プロパティを変更または削除します。

    • imqcmd reload cls コマンドを使用して、ブローカすべてにクラスタ設定を再読み込みさせ、クラスタを設定し直します。


マスターブローカの設定変更レコードのバックアップ

クラスタごとに 1 つのマスターブローカがあり、クラスタの持続的な状態に対する変更がすべて追跡されます。たとえば、永続サブスクリプションの変更や管理者が作成した物理送信先の変更が記録されます。すべてのブローカは、これら持続オブジェクトに関する情報の同期を取るため、起動時にマスターブローカを参照します。その結果、マスターブローカに障害が発生すると、クラスタ全体が機能しなくなる場合があります。このため、imqbrokerd コマンドの -backup オプションを使用して、定期的にマスターブローカの変更レコードのバックアップを取っておくことが重要です。たとえば、次のように指定します。

imqbrokerd -backup mybackuplog

これを適宜行うことが重要です。きわめて古いバックアップを復元すると、情報が失われることがあります。最後のバックアップ以降に作成された持続オブジェクトはすべて失われます。


マスターブローカの設定変更レコードの復元


障害時にマスターブローカを復元するには

  1. クラスタにあるすべてのブローカをシャットダウンします。

  2. 次のコマンドを使用して、マスターブローカの設定変更レコードを復元します。

    imqbrokerd -restore mybackuplog

  3. マスターブローカに新しい名前やポート番号を割り当てる場合、プロパティ imq.cluster.masterbroker を使用して、クラスタ設定ファイルを更新し、マスターブローカがクラスタの一部であること、およびマスターブローカの新しい名前を指定する必要があります。

  4. すべてのブローカを再起動します。

ブローカを復元しても、必ずブローカの設定変更レコードに古いデータが再読み込みされます。ただし、前述したように、定期的なバックアップを頻繁に実行することで、古いデータの再読込みが最小限に抑えられます。

マスターブローカは、持続オブジェクトへの変更履歴全体を記録するため、一定期間を超えるとデータベースが非常に大きくなることがあります。バックアップや復元を実行することにより、大きくなったデータベースが圧縮されたり最適化されるという効果が得られます。



ログ作成



この節では、ブローカのデフォルトログ作成の設定を説明し、代替出力チャネルへのログ情報のリダイレクト、ロールオーバー条件の変更、およびブローカメトリックスの報告を行うために設定を変更する方法を解説します。ログ作成の説明については、「ロガー」を参照してください。


デフォルトのログ作成の設定

ブローカの起動時に、ブローカは自動的に設定され、次の場所にあるローリングログファイルのセットにログの出力が保存されます。

IMQ_VARHOME/instances/BrokerName/log/

ログファイルは、簡単なテキストファイルです。ログファイルは、次のように順番に名前が付けられています。

log.txt
log_1.txt
log_2.txt
...
log_9.txt

デフォルトでは、ログファイルは週に 1 回ロールオーバーされ、システムは 9 つのバックアップファイルを保持します。

  • ログファイルが保管されるディレクトリを変更するには、プロパティ imq.log.file.dirpath を希望するパスに設定します。

  • ログファイルのルート名を log から別の名前に変更するには、imq.log.file.filename プロパティを設定します。

ブローカは、ERRORWARNING、および INFO の 3 つのログカテゴリをサポートしています (表 2-7 を参照)。ログ作成レベルを設定すると、設定したレベルおよびそれよりも低いレベルのメッセージがすべて収集されます。デフォルトのログレベルは INFO です。この場合、ERRORWARNING、および INFO レベルのメッセージが記録されることになります。


ログメッセージの書式設定

記録されたメッセージは、タイムスタンプ、メッセージコード、およびメッセージの本文で構成されています。情報量は、設定したログレベルにより異なります。INFO メッセージの例を次に示します。


[13/Sep/2000:16:13:36 PDT] B1004 Starting the broker service using tcp [ 25374,100] with min threads 50 and max threads of 500


ロガー設定の変更

表 2-8 にすべてのロガープロパティを示します。


ブローカのロガー設定を変更するには

  1. ログレベルを設定します。

  2. 1 つまたはそれ以上のログ作成カテゴリの出力チャネル (ファイル、コンソール、またはその両方) を設定します。

  3. 出力をファイルに記録する場合、ファイルのロールオーバー条件を設定します。

ロガープロパティを設定すると、手順は完了します。ロガープロパティの設定は、次のどちらかの方法で行います。

  • ブローカを起動する前に、ブローカの config.properties ファイルにロガープロパティを変更または追加します。

  • ブローカを起動する imqbrokerd コマンドでロガーコマンド行オプションを指定します。また、オプション -D を使用して、ロガープロパティ、または任意のブローカプロパティを変更できます。

コマンド行で渡されたオプションは、ブローカインスタンス設定ファイルで指定されたプロパティをオーバーライドします。表 5-4 にログ作成に影響する imqbrokerd オプションを一覧表示します。


表 5-4    imqbrokerd ロガーオプションと対応するプロパティ 

imqbrokerd オプション

説明

-metrics number
 

メトリックス情報が収集される間隔を、秒単位で指定する  

-loglevel level
 

ログレベルを、ERRORWARNINGINFO のいずれかに設定する  

-silent
 

コンソールへのログ作成をオフにする  

-tty
 

すべてのメッセージをコンソールに送信する。デフォルトでは、WARNING レベルまたは ERROR レベルのメッセージだけが表示される  

続いて、デフォルトの設定を変更して、次のことを実行する方法を説明します。

  • ログメッセージの送信先である、出力チャネルの変更

  • ロールオーバー条件の変更

  • ブローカメトリックス情報の記録


出力チャネルの変更

デフォルトでは、エラーメッセージと警告メッセージは、ログファイルに記録されると同時に、端末に表示されます。Solaris では、エラーメッセージはシステムの syslog デーモンにも書き込まれます。

次の方法で、ログメッセージの出力チャネルを変更できます。

  • 指定したすべてのレベルのログカテゴリが画面に表示するには、imqbrokerd コマンドの -tty オプションを使用する

  • ログ出力を画面に表示しないようにするには、imqbrokerd コマンドの -silent オプションを使用する

  • imq.log.file.output プロパティを使用して、ログファイルに書き込むログ作成情報のカテゴリを指定する。たとえば、次のように指定する

    imq.log.file.output=ERROR

  • imq.log.console.output プロパティを使用して、コンソールに書き込むログ作成情報のカテゴリを指定する。たとえば、次のように指定する

    imq.log.console.output=INFO

  • Solaris の場合、imq.log.syslog.output プロパティを使用して、Solaris syslog に書き込むログ作成情報のカテゴリを指定する。たとえば、次のように指定する

    imq.log.syslog.output=NONE



    ログメッセージの送信先を変更する前に、出力チャネルにマッピングしているログカテゴリに対応するレベルに、ログ作成が設定されていることを確認します。たとえば、ログレベルを ERROR に設定し、imq.log.console.output プロパティを WARNING に設定すると、これらのレベルのメッセージのログ作成が有効になっていないため、どのメッセージも記録されません。




ロールオーバー条件の変更

ログファイルのロールオーバーには、時間とサイズの 2 つの条件があります。デフォルトでは時間の条件が使用され、7 日ごとにファイルがロールオーバーされます。

  • 間隔を変更するには、プロパティ imq.log.file.rolloversecs を変更する必要がある。たとえば、次のようにプロパティを定義すると、間隔が 10 日に変更される

    imq.log.file.rolloversecs=864000

  • ファイルサイズに従ってロールオーバーするように条件を変更するには、imq.log.file.rolloverbytes プロパティを設定する必要がある。たとえば、次のように定義すると、500,000 バイトの制限に達したあと、ブローカはファイルをロールオーバーするように指示される

    imq.log.file.rolloverbytes=500000

時間に関連するロールオーバープロパティとサイズに関連するロールオーバープロパティの両方が設定されている場合は、どちらかの制限に最初に達したときにロールオーバーが実行されます。前の節でも説明したように、ブローカでは 9 つのロールオーバーファイルが保持されます。


ブローカパフォーマンスメトリックスのログ作成

ブローカのデフォルトの設定には、次の設定が含まれます。

  • imq.metrics.enabled=true

  • imq.metrics.interval=0

  • imq.log.level=INFO

これらの設定により、ブローカはアクティブコネクションサービスおよびブローカのパフォーマンスメトリックスを収集しますが、メトリックスレポートは作成されません。

次の 2 つのどちらかの方法で、ブローカがメトリックスレポートを作成するように設定できます。

  • imqbrokerd コマンドの -metrics オプションを使用し、ブローカがレポートを作成する間隔を秒単位で指定する

  • ブローカにレポートを作成させる秒単位の間隔を imq.metrics.interval プロパティに設定する

メトリックスレポートは、INFO カテゴリに含まれるため、デフォルトではログファイル出力チャネルに書き込まれます。

次に、メトリックス情報の例を示します。


[31/Jan/2001:15:00:50 PST]
Connections:0 JVM Heap:6291456 bytes (5186320 free)
      In: 0 mesgs (0bytes) 0 pkts (0 bytes)
     Out: 0 mesgs (0bytes) 0 pkts (0 bytes)
 Rate In: 0 msgs/sec (0 bytes/sec) 0 pkts/sec (0 bytes/sec)
Rate Out: 0 msgs/sec (0 bytes/sec) 0 pkts/sec (0 bytes/sec)

表 5-5 にコネクションサービスごとに作成されたメトリックスの説明を示します。


表 5-5    コネクションサービスに作成されたメトリックス 

メトリックス

説明

Pkts in (total)  

最後にリセットされてからブローカが読み込んだパケット数の合計。パケット数の合計には、JMS メッセージだけでなく MQ プロトコルパケットも含まれる  

Pkts out (total)  

最後にリセットされてからブローカが書き込んだパケット数の合計  

JMS Messages in (total)  

最後にリセットされてからブローカが読み込んだ JMS メッセージ数の合計  

JMS Messages out (total)  

最後にリセットされてからブローカが書き込んだ JMS メッセージ数の合計  

Message Bytes in (total)  

最後にリセットされてからブローカが読み込んだメッセージバイト数の合計  

Message Bytes out (total)  

書き込まれたメッセージバイト数の合計  

Current # connections  

現在開かれているコネクション数  

表 5-6 にブローカごとに収集および報告されたメトリックスの説明を示します。


表 5-6    各ブローカに収集されたメトリックス 

メトリックス

説明

VM heap size (bytes)  

Java VM ヒープの最大サイズ  

VM heap free space (bytes)  

Java VM ヒープに残っている空き容量  



この情報は imqcmd metrics コマンドからでも使用できます。




前へ      目次      索引      次へ     
Copyright © 2002 Sun Microsystems, Inc. All rights reserved.

最終更新日 2002 年 6 月 19 日