![]() |
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 と呼ばれ、インストール後は編集できない
brokerName には、ブローカ名が表示されます (デフォルトでは imqbrokerd)。インスタンス設定ファイルを編集して、設定を変更できます (「インスタンス設定ファイルの編集」を参照)。
- IMQ_VARHOME/instances/brokerName/props/config.properties
(Solaris では、/var/imq/instances/brokerName/props/config.properties)
クラスタでブローカを接続する場合 (「複数ブローカの設定 (クラスタ)」を参照)、クラスタ設定ファイルを使用して、クラスタ設定情報を指定する必要があります。詳細は、「クラスタ設定プロパティ」を参照してください。
プロパティ値のマージ
起動時に、システムは異なる設定ファイルのプロパティ値をマージします。インストール時に設定された値、およびインスタンス設定ファイルに設定された値が使用され、デフォルトの設定ファイルで指定された値はオーバーライドされます。imqbrokerd コマンドオプションを使用すると、生成された値をオーバーライドできます。この方式を図 5-1 で図解します。
図 5-1    ブローカ設定ファイル
![]()
プロパティ命名構文
設定ファイルにある MQ プロパティの定義では、次の命名構文を使用します。たとえば、次のエントリでは、自動作成キューのキュータイプを定義します。
次のエントリでは、メッセージの有効期限切れタイムアウト値を定義します。
表 5-1 に、ブローカ設定プロパティとそのデフォルト値をアルファベット順に一覧表示します。
インスタンス設定ファイルの編集
初めてブローカインスタンスが実行されると、config.properties ファイルが自動的に作成されます。このファイルを編集して、対応するブローカインスタンスの動作やリソースの使用をカスタマイズできます。ブローカは起動時にだけ config.properties ファイルを読み込みます。config.propertiesファイルへの変更を確定するには、次の操作のどちらかを行います。
管理ツールを使用する。imqcmd を使用して設定できるプロパティについての詳細は、表 6-5 を参照
表 5-1 に、ブローカインスタンス設定プロパティとそのデフォルト値をアルファベット順に一覧表示します。各プロパティの意味と使用に関する詳細は、指定された相互参照の節で確認してください。ブローカインスタンスの停止中に config.properties ファイルを編集し、その後インスタンスを再起動する (Solaris および Linux プラットフォームでは、最初にブローカインスタンスを起動したユーザだけが config.properties ファイルを編集するアクセス権を持っている)
ブローカの起動
ブローカを起動し、1 つまたは複数のプロパティ値をオーバーライドするには、imqbrokerd コマンドを使用し、有効なオプションを指定します。コマンド行オプションは、ブローカ設定ファイルの値をオーバーライドします。ただし、オーバーライドの対象は現在のブローカセッションだけです。コマンド行オプションは、設定プロパティファイルに書き込まれません。imqbrokerd コマンドの構文は、次のとおりです (引数はスペースで区切る)。
たとえば、デフォルトのブローカ名および設定を使用するブローカを起動するには、次のコマンドを使用します。
このコマンドにより、ポート 7676 のポートマッパを持つローカルマシン上にある、ブローカのデフォルトのインスタンス (imqbroker) が起動されます。
表 5-2 に、imqbrokerd コマンドのオプションと、存在する場合は各オプションから影響を受ける設定プロパティを示します。
注 Solaris および Linux プラットフォームでは、設定情報と持続データを保持するディレクトリに対するアクセス権は、最初にブローカインスタンスを起動するユーザの umask コマンドによる設定に依存します。したがって、ブローカインスタンスを正常に動作させるためには、それ以降も所定のユーザだけが起動する必要があります。
表 5-2    imqbrokerd オプション
オプション
影響を受けるプロパティ
説明
-backup filename
指定したファイルに、マスターブローカの設定変更レコードをバックアップする。ブローカクラスタに対してのみ適用可能。「マスターブローカの設定変更レコードのバックアップ」を参照
-cluster"[broker]
[[,broker]...]"
特定のホストやポートにある全ブローカに接続する。このリストは、imq.cluster.brokerlist プロパティにあるリストとマージされる。ホストに値を指定しない場合、localhost が使用される。ポートに値を指定しない場合、7676 が使用される。このオプションを使用して複数のブローカに接続する方法については、「ブローカクラスタの操作」を参照
-dbpassword password
プラグインの JDBC 準拠のデータベースに対するパスワードを指定する。付録 A 「プラグイン持続の設定」を参照
-dbuser userName
プラグインの JDBC 準拠のデータベースに対するユーザ名を指定する。付録 A 「プラグイン持続の設定」を参照
-Dproperty=value
指定したプロパティを指定した値に設定する。ブローカ設定プロパティについては、表 5-1 を参照
注意 : D オプションを使用して設定するプロパティのスペルと形式は、十分に確認すること。誤った値を渡した場合、システムからの警告なしに MQ でプロパティを設定できなくなる
-javahome path
-jrehome path
-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
ログ作成レベルを、NONE、ERROR、WARNING、INFO のどれかに指定する。デフォルト値は INFO。詳細は、「ロガー」を参照
-metrics int
-name brokerName
このブローカのインスタンス名を指定し、対応するインスタンス設定ファイルを使用する。ブローカ名を指定しない場合、ファイル名は imqbrokerd に設定される
注 : 同一ホスト上で複数のブローカのインスタンスを実行している場合、各インスタンスの名前は一意となる必要がある-passfile filename
imq.passfile.
enabled に true を設定する。jmq.passfile.dirpath にファイルが含まれるパスを設定する。
imq.passfile.name にファイル名を設定するSSL キーストア、LDAP ユーザリポジトリ、および JDBC 準拠のデータベースのパスワードの読み込み元となるファイル名を指定する。詳細は、「passfile の使用」を参照してください。
-password keypassword
SSL 証明書のキーストアに対するパスワードを指定する。詳細は、「セキュリティマネージャ」を参照
-port number
ブローカのポートマッパのポート番号を指定する。デフォルトでは 7676 に設定されている。同一サーバ上でブローカの 2 つのインスタンスを実行するには、各ブローカのポートマッパが異なるポート番号となる必要がある
-remove instance
ブローカのインスタンスが削除される。つまり、インスタンス設定ファイル、ログファイル、持続ストア、その他インスタンスに関連するファイルやディレクトリが削除される
-reset store| messages|
durables|
props
指定された引数に応じて、ブローカの持続ストアまたはストアのサブセットをリセットするか、あるいはブローカのプロパティをリセットする
ブローカの持続ストアをリセットすると、持続メッセージ、永続サブスクリプション、およびトランザクションの情報など、すべての持続データが消去される。このため、データが消去された状態で、ブローカを起動できる。すべての持続メッセージだけ、またはすべての永続サブスクリプションだけを消去することも可能 (次回起動時に持続ストアをリセットしたくない場合は、-reset オプションを使用せずにブローカを再起動する)。詳細は、「持続マネージャ」を参照。
ブローカのプロパティをリセットすると、既存のインスタンス設定ファイル (config.properties) が空のファイルに置き換えられ、プロパティはすべてデフォルト値となる
-restore filename
マスターブローカの設定変更レコードを、指定したファイルに置き換える。「マスターブローカの設定変更レコードの復元」を参照
-shared
共通のスレッドプールを使用して、jms コネクションサービスが実装されるように指定する。このスレッドプールでは、スレッドがコネクション間で共有され、ブローカにサポートされるコネクション数が増加する。詳細は、「コネクションサービス」を参照
-silent
-tty
すべてのメッセージがコンソールに表示されるよう指定する。デフォルトでは、WARNING レベルまたは ERROR レベルのメッセージだけが表示される
-version
-vmargs arg [[arg]...]
Java VM に渡す引数を指定する。引数はスペースで区切られる。複数の引数を渡す場合や、引数にスペースが含まれる場合は、引用符で囲む。例 : imqbrokerd -tty -vmargs "-Xmx128m -Xincgc"
ブローカクラスタの操作
この節では、ブローカクラスタを設定するために使用するプロパティ、ブローカを接続する 2 つの方法、およびクラスタを管理する方法について説明します。この機能は、MQ Enterprise Edition でのみ利用できます (「製品エディション」を参照)。クラスタの概要については、「複数ブローカの設定 (クラスタ)」を参照してください。
クラスタを操作するときは、クラスタにあるすべてのブローカのホスト間でクロックの同期が取れていることを確認してください。
クラスタ設定プロパティ
ブローカをクラスタに接続する場合、接続されたすべてのブローカで、クラスタ設定プロパティに同じ値を指定する必要があります。これらのプロパティにより、クラスタにあるブローカの関係が記述されます。表 5-3 で、クラスタ関連の設定プロパティの概要を説明します。
次の 2 つの方法のうちどちらかを使用して、クラスタプロパティを設定できます。
クラスタ関連の設定プロパティを、各ブローカのインスタンス設定ファイル (または各ブローカを起動するコマンド行) で設定します。たとえば、ブローカ A (host1 上、ポート 7676)、ブローカ B (host2 上、ポート 5000)、およびブローカ C (ctrlhost 上、ポート 7676) を接続する場合、ブローカ A、B、および C のインスタンス設定ファイルに、次のプロパティを設定する必要があります。
次のサンプルコードは、クラスタ設定ファイルの内容を表示しています。host1 と ctrlhost は両方とも、デフォルトのポートで動作しています。これらのプロパティは、host1 と ctrlhost がクラスタで接続され、ctrlhost がマスターブローカであることを指定しています。
クラスタ設定プロパティを、1 つの中心的なクラスタ設定ファイルで設定します。これらのプロパティには、接続されるブローカのリスト (imq.cluster.brokerlist) が含まれます。またオプションで、マスターブローカのアドレス (imq.cluster.masterbroker) も含まれます。
- imq.cluster.brokerlist=host1, host2:5000, ctrlhost
- クラスタ設定を変更する場合、この方法では、すべてのブローカにあるクラスタ関連のプロパティを更新する必要があります。
imq.cluster.brokerlist=host1,host2:5000,ctrlhost
imq.cluster.masterbroker=ctrlhostこのクラスタで接続されている各ブローカのインスタンス設定ファイルは、クラスタ設定ファイルの URL を含んでいる必要があります。次に例を示します。
imq.cluster.url=file:/home/cluster.properties
ブローカの接続
この節では、ブローカをクラスタに接続する 2 つの方法を説明します。どちらの方法を使用する場合でも、起動するブローカはすべて 5 秒間隔でほかのブローカへの接続を試みますが、クラスタ内のほかのブローカが起動されるまでは、接続できません。ブローカをクラスタに接続する場合、先にマスターブローカを起動する必要はありません。マスターブローカより先にクラスタのブローカを起動した場合、クラスタのブローカはクライアントのコネクションを拒否する中断状態になります。マスターブローカを起動すると、自動的に中断状態だったブローカが完全に機能するようになります。
ブローカを起動する imqbrokerd コマンドの -cluster オプションを使用し、-cluster オプションに、接続先のブローカの完全なリストを引数として指定します。
クラスタに接続するブローカを起動するときに、各ブローカに対してこの手順を実行します。
方法 2: クラスタ設定ファイルを使用する方法
接続されるブローカのリストを指定するクラスタ設定ファイルを作成することも可能です。この場合、オプションでマスターブローカのアドレスも指定できます。クラスタを定義するこの方法は、運用システムに適しています。クラスタのブローカごとに、imq.cluster.url プロパティの値がクラスタ設定ファイルを指すように設定する必要があります。
クラスタへのブローカの追加
ブローカクラスタを設定すると、新しいブローカを追加するか、あるいはすでにクラスタの一部となっているブローカを再起動する必要があります。新しいブローカを既存のクラスタに追加するには、次のいずれかの手順を実行します。
クラスタ設定ファイルを使用していない場合、新しいブローカを起動するときに、imq.cluster.brokerlist と、必要な場合は imq.cluster.masterbroker プロパティを -D オプションを使用してコマンド行で指定します。
クラスタ設定ファイルを使用している場合に、ブローカをクラスタに追加するには
クラスタ内のブローカの再起動
すでにクラスタのメンバーであるブローカを再起動するには、次のどちらかの手順を実行します。
クラスタ設定ファイルを使用してクラスタを定義する場合、-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 を起動する必要があります。
マスターブローカの設定変更レコードのバックアップ
クラスタごとに 1 つのマスターブローカがあり、クラスタの持続的な状態に対する変更がすべて追跡されます。たとえば、永続サブスクリプションの変更や管理者が作成した物理送信先の変更が記録されます。すべてのブローカは、これら持続オブジェクトに関する情報の同期を取るため、起動時にマスターブローカを参照します。その結果、マスターブローカに障害が発生すると、クラスタ全体が機能しなくなる場合があります。このため、imqbrokerd コマンドの -backup オプションを使用して、定期的にマスターブローカの変更レコードのバックアップを取っておくことが重要です。たとえば、次のように指定します。これを適宜行うことが重要です。きわめて古いバックアップを復元すると、情報が失われることがあります。最後のバックアップ以降に作成された持続オブジェクトはすべて失われます。
クラスタにあるすべてのブローカをシャットダウンします。
ブローカを復元しても、必ずブローカの設定変更レコードに古いデータが再読み込みされます。ただし、前述したように、定期的なバックアップを頻繁に実行することで、古いデータの再読込みが最小限に抑えられます。次のコマンドを使用して、マスターブローカの設定変更レコードを復元します。
マスターブローカに新しい名前やポート番号を割り当てる場合、プロパティ imq.cluster.masterbroker を使用して、クラスタ設定ファイルを更新し、マスターブローカがクラスタの一部であること、およびマスターブローカの新しい名前を指定する必要があります。
マスターブローカは、持続オブジェクトへの変更履歴全体を記録するため、一定期間を超えるとデータベースが非常に大きくなることがあります。バックアップや復元を実行することにより、大きくなったデータベースが圧縮されたり最適化されるという効果が得られます。
ログ作成
この節では、ブローカのデフォルトログ作成の設定を説明し、代替出力チャネルへのログ情報のリダイレクト、ロールオーバー条件の変更、およびブローカメトリックスの報告を行うために設定を変更する方法を解説します。ログ作成の説明については、「ロガー」を参照してください。
デフォルトのログ作成の設定
ブローカの起動時に、ブローカは自動的に設定され、次の場所にあるローリングログファイルのセットにログの出力が保存されます。ログファイルは、簡単なテキストファイルです。ログファイルは、次のように順番に名前が付けられています。
デフォルトでは、ログファイルは週に 1 回ロールオーバーされ、システムは 9 つのバックアップファイルを保持します。
ログファイルが保管されるディレクトリを変更するには、プロパティ imq.log.file.dirpath を希望するパスに設定します。
ブローカは、ERROR、WARNING、および INFO の 3 つのログカテゴリをサポートしています (表 2-7 を参照)。ログ作成レベルを設定すると、設定したレベルおよびそれよりも低いレベルのメッセージがすべて収集されます。デフォルトのログレベルは INFO です。この場合、ERROR、WARNING、および INFO レベルのメッセージが記録されることになります。ログファイルのルート名を log から別の名前に変更するには、imq.log.file.filename プロパティを設定します。
ログメッセージの書式設定
記録されたメッセージは、タイムスタンプ、メッセージコード、およびメッセージの本文で構成されています。情報量は、設定したログレベルにより異なります。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 にすべてのロガープロパティを示します。ロガープロパティを設定すると、手順は完了します。ロガープロパティの設定は、次のどちらかの方法で行います。
ブローカを起動する前に、ブローカの config.properties ファイルにロガープロパティを変更または追加します。
コマンド行で渡されたオプションは、ブローカインスタンス設定ファイルで指定されたプロパティをオーバーライドします。表 5-4 にログ作成に影響する imqbrokerd オプションを一覧表示します。ブローカを起動する imqbrokerd コマンドでロガーコマンド行オプションを指定します。また、オプション -D を使用して、ロガープロパティ、または任意のブローカプロパティを変更できます。
表 5-4    imqbrokerd ロガーオプションと対応するプロパティ
imqbrokerd オプション
説明
-metrics number
-loglevel level
-silent
-tty
すべてのメッセージをコンソールに送信する。デフォルトでは、WARNING レベルまたは ERROR レベルのメッセージだけが表示される
続いて、デフォルトの設定を変更して、次のことを実行する方法を説明します。
出力チャネルの変更
デフォルトでは、エラーメッセージと警告メッセージは、ログファイルに記録されると同時に、端末に表示されます。Solaris では、エラーメッセージはシステムの syslog デーモンにも書き込まれます。
指定したすべてのレベルのログカテゴリが画面に表示するには、imqbrokerd コマンドの -tty オプションを使用する
ログ出力を画面に表示しないようにするには、imqbrokerd コマンドの -silent オプションを使用する
imq.log.file.output プロパティを使用して、ログファイルに書き込むログ作成情報のカテゴリを指定する。たとえば、次のように指定する
imq.log.console.output プロパティを使用して、コンソールに書き込むログ作成情報のカテゴリを指定する。たとえば、次のように指定する
Solaris の場合、imq.log.syslog.output プロパティを使用して、Solaris syslog に書き込むログ作成情報のカテゴリを指定する。たとえば、次のように指定する
ロールオーバー条件の変更
ログファイルのロールオーバーには、時間とサイズの 2 つの条件があります。デフォルトでは時間の条件が使用され、7 日ごとにファイルがロールオーバーされます。
間隔を変更するには、プロパティ imq.log.file.rolloversecs を変更する必要がある。たとえば、次のようにプロパティを定義すると、間隔が 10 日に変更される
時間に関連するロールオーバープロパティとサイズに関連するロールオーバープロパティの両方が設定されている場合は、どちらかの制限に最初に達したときにロールオーバーが実行されます。前の節でも説明したように、ブローカでは 9 つのロールオーバーファイルが保持されます。ファイルサイズに従ってロールオーバーするように条件を変更するには、imq.log.file.rolloverbytes プロパティを設定する必要がある。たとえば、次のように定義すると、500,000 バイトの制限に達したあと、ブローカはファイルをロールオーバーするように指示される
ブローカパフォーマンスメトリックスのログ作成
ブローカのデフォルトの設定には、次の設定が含まれます。これらの設定により、ブローカはアクティブコネクションサービスおよびブローカのパフォーマンスメトリックスを収集しますが、メトリックスレポートは作成されません。
次の 2 つのどちらかの方法で、ブローカがメトリックスレポートを作成するように設定できます。
メトリックスレポートは、INFO カテゴリに含まれるため、デフォルトではログファイル出力チャネルに書き込まれます。
表 5-5 にコネクションサービスごとに作成されたメトリックスの説明を示します。
表 5-5    コネクションサービスに作成されたメトリックス
メトリックス
説明
最後にリセットされてからブローカが読み込んだパケット数の合計。パケット数の合計には、JMS メッセージだけでなく MQ プロトコルパケットも含まれる
表 5-6 にブローカごとに収集および報告されたメトリックスの説明を示します。
表 5-6    各ブローカに収集されたメトリックス
メトリックス
説明
前へ 目次 索引 次へ
Copyright © 2002 Sun Microsystems, Inc. All rights reserved.
最終更新日 2002 年 6 月 19 日