前へ 目次 索引 次へ |
Sun Java System Message Queue 3.5 SP1 管理ガイド

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

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

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

> - ブローカのインスタンス設定ファイルの編集
> - ブローカクラスタの操作
> - ブローカのログ作成の制御

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

> ##

> 設定ファイル

> ブローカの設定に使用されるインストール済みのブローカ設定ファイルテンプレートは、付録 A 「Message Queue データの場所」に示すとおり、オペレーティングシステムごとに異なるディレクトリに格納されています。

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

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

> ### インスタンス設定ファイル

> 初めてブローカを実行すると、インスタンス設定ファイルが作成されます。このファイルを使用して、ブローカのインスタンスの設定プロパティを指定できます。インスタンス設定ファイルは、その設定ファイルが関連付けられているブローカインスタンスの名前 (instanceName) によって識別されたディレクトリに書き込まれます (付録 A 「Message Queue データの場所」を参照)。

> .../instances/instanceName/props/config.properties

> 注 | .../instances/instanceName ディレクトリとインスタンス設定ファイルは、対応するブローカインスタンスを作成したユーザーが所有します。それ以降、作成したブローカインスタンスの起動は、同じユーザーが行う必要があります。

> インスタンス設定ファイルは、ブローカインスタンスによって管理されます。このファイルは、管理ツールを使用して設定に変更が加えられた場合に変更されます。インスタンス設定ファイルを手作業で編集して、設定を変更できます (「インスタンス設定ファイルの編集」を参照)。手作業で変更するには、.../instances/instanceName ディレクトリの所有権が必要です。所有権がなければ、root としてログインしてディレクトリの権限を変更する必要があります。

> クラスタでブローカインスタンスを接続する場合 (「マルチブローカクラスタ (Enterprise Edition)」を参照)、クラスタ設定ファイルを使用して、クラスタ設定情報を指定する必要があります。詳細は、「クラスタ設定プロパティ」を参照

> ### プロパティ値のマージ

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

> 図 5-1 ブローカ設定ファイル

> ### プロパティ命名構文

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

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

> たとえば、次のエントリは、ブローカが追加メッセージを拒否するまでに、メモリーと持続ストレージに最大 50,000 メッセージを保持するように指定します。

> imq.system.max_count=50000

> 次のエントリは、毎日、つまり 86400 秒ごとに新しいログファイルを作成するように指定します。

> imq.log.file.rolloversecs=86400

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

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

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

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

> - 管理ツールを使用する。imqcmd を使用して設定できるプロパティについての詳細は、表 6-4 を参照
> - ブローカインスタンスをシャットダウンしてから 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.destination. isLocalOnly | ブール | false | 表 2-10
> imq.autocreate.destination. limitBehavior | 文字列 | REJECT_NEWEST | 表 2-10
> imq.autocreate.destination. maxBytesPerMsg | バイト文字列1 | 10k | 表 2-10
> imq.autocreate.destination. maxNumMsgs | 整数 | 100,000 | 表 2-10
> imq.autocreate.destination. maxNumProducers | 整数 | 100 | 表 2-10
> imq.autocreate.destination. maxTotalMsgBytes | バイト文字列1 | 10m | 表 2-10
> imq.autocreate.queue | ブール | true | 表 2-10
> imq.autocreate.queue. consumerFlowLimit | 整数 | 1000 | 表 2-10
> imq.autocreate.queue. localDeliveryPreferred | ブール | false | 表 2-10
> imq.autocreate.queue. maxNumActiveConsumers | 整数 | 1 | 表 2-10
> imq.autocreate.queue. maxNumBackupConsumers | 整数 | 0 | 表 2-10
> imq.autocreate.topic | ブール | true | 表 2-10
> imq.autocreate.topic. consumerFlowLimit | 整数 | 1,000 | 表 2-10
> imq.cluster.property_name |  |  | 表 5-3
> imq.hostname | 文字列 | すべての使用可能な IP アドレス | 表 2-3
> imq.httpjms.http.property_name |  |  | 表 C-1
> imq.httpsjms.https. property_name |  |  | 表 C-3
> imq.keystore.property_name |  |  | 表 8-8
> imq.log.console.output | 文字列 | ERROR|WARNING | 表 2-9
> imq.log.console.stream | 文字列 | ERR | 表 2-9
> imq.log.file.dirpath | 文字列 | 付録 A 「Message Queue データの場所」を参照 | 表 2-9
> imq.log.file.filename | 文字列 | log.txt | 表 2-9
> imq.log.file.output | 文字列 | ALL | 表 2-9
> imq.log.file.rolloverbytes | 整数 (バイト) | -1 (ロールオーバーな し) | 表 2-9
> imq.log.file.rolloversecs | 整数 (秒) | 604800 | 表 2-9
> imq.log.level | 文字列 | INFO | 表 2-9
> imq.log.syslog.facility | 文字列 | LOG_DAEMON | 表 2-9
> imq.log.syslog.identity | 文字列 | imqbrokerd_${imq. instanceName} | 表 2-9
> imq.log.syslog.logconsole | ブール | false | 表 2-9
> imq.log.syslog.logpid | ブール | true | 表 2-9
> imq.log.syslog.output | 文字列 | ERROR | 表 2-9
> imq.log.timezone | 文字列 | 該当地域のタイムゾーン | 表 2-9
> imq.message.expiration. interval | 整数 (秒) | 60 | 表 2-4
> imq.message.max_size | バイト文字列1 | 70m | 表 2-4
> imq.metrics.enabled | ブール | true | 表 2-9
> imq.metrics.interval | 整数 (秒) | -1 (報告なし) | 表 2-9
> imq.metrics.topic.enabled | ブール | true | 表 2-9
> imq.metrics.topic.interval | 整数 (秒) | 60 | 表 2-9
> imq.metrics.topic.persist | ブール | false | 表 2-9
> imq.metrics.topic.timetolive | 整数 (秒) | 300 | 表 2-9
> imq.passfile.dirpath | 文字列 | 付録 A 「Message Queue データの場所」を参照 | 表 2-6
> imq.passfile.enabled | ブール | false | 表 2-6
> imq.passfile.name | 文字列 | passfile | 表 2-6
> imq.persist.file. destination.message. filepool.limit | 整数 | 100 | 表 2-5
> imq.persist.file.message. cleanup | ブール | false | 表 2-5
> imq.persist.file.message. filepool.cleanratio | 整数 | 0 | 表 2-5
> imq.persist.file.message. max_record_size | バイト文字列1 | 1m | 表 2-5
> imq.persist.file.sync. enabled | ブール | false | 表 2-5
> imq.persist.jdbc.property_name |  |  | 表 B-1
> imq.persist.store | 文字列 | file | 表 2-5
> imq.ping.interval | 整数 | 120 | 表 2-3
> imq.portmapper.backlog | 整数 | 50 | 表 2-3
> imq.portmapper.hostname | 文字列 | imq.hostname から継承 | 表 2-3
> imq.portmapper.port | 整数 | 7676 | 表 2-3
> imq.resource_state.count | 整数 (パーセント) | 5000 (green) 500 (yellow) 50 (orange) 0 (red) | 表 2-4
> imq.resource_state. threshold | 整数 (パーセント) | 0 (green) 80 (yellow) 90 (orange) 98 (red) | 表 2-4
> imq.service.activelist | list | 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) 10 (admin) 10 (ssladmin) | 表 2-3
> imq.service_name.min_threads | 整数 | 10 (jms) 10 (ssljms) 10 (httpjms) 10 (httpsjms) 4 (admin) 4 (ssladmin) | 表 2-3
> imq.service_name.protocol_type. hostname | 文字列 | imq.hostname から継承 | 表 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) dedicated (httpsjms) | 表 2-3
> imq.shared. connectionMonitor_limit | 整数 | 512 (Solaris および Linux の場合) 64 (Windows の場合) | 表 2-3
> imq.system.max_count | 整数、 0 (制限なし) | -1 | 表 2-4
> imq.system.max_size | バイト文字列1 0 (制限なし) | -1 | 表 2-4
> imq.transaction.autorollback | ブール | false | 表 2-4
> imq.user_repository.ldap. property_name |  |  | 表 8-5
> 1 データ型がバイト文字列となっている値は、バイト、K バイト、M バイト単位で表されます。たとえば、次のように指定します。1000 は 1000 バイト、7500b は 7500 バイト、77k は 77K バイト (77 x 1024 = 78848 バイト)、17m は 17M バイト (17 x 1024 x 1024 = 17825792 バイト) をそれぞれ表します。

> ##

> ブローカの起動

> ブローカインスタンスを起動するには、imqbrokerd コマンドを使用します。

> 注 | 管理コンソール (imqadmin) またはコマンドユーティリティ (imqcmd) を使用してブローカインスタンスを起動することはできません。これらの Message Queue 管理ツールを使用するには、事前にブローカインスタンスを実行する必要があります。

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

> ### imqbrokerd コマンドの構文

> imqbrokerd コマンドの構文は、次のとおりです。オプションはスペースで区切ります。

> imqbrokerd [[ -Dproperty=value]...]
> [ -backup fileName]
> [ -cluster "[broker1] [[,broker2]...]"
> [ -dbuser userName] [ -dbpassword password]
> [ -force]
> [ -h|-help]
> [ -javahome path]
> [ -ldappassword password]
> [ -license licenseName]
> [ -loglevel level]
> [ -metrics interval]
> [ -name instanceName]
> [ -password keypassword] [ -passfile fileName]
> [ -port number]
> [ -remove instance]
> [ -reset data]
> [ -restore fileName]
> [ -shared]
> [ -silent|-s] [ -tty]
> [ -upgrade-store-nobackup]
> [ -version]
> [ -vmargs arg1 [[arg2]...]

> 注 | Solaris では、/etc/imq/imqborkerd.conf 設定ファイルの RESTART プロパティを YES に指定すると、異常終了後に、ブローカが自動的に再起動するように設定できます。

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

> ### 起動の例

> 次の例は、imqbrokerd コマンドの使用方法を示しています。imqbrokerd コマンド行オプションの詳細は、表 5-2 を参照してください。

> ##### デフォルトのブローカ名と設定を使用するブローカインスタンスを起動するには

> 次のコマンドを使用します。

> imqbrokerd

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

> ##### Enterprise Edition のトライアルライセンスでブローカインスタンスを起動するには

> Platform Edition ライセンスは持っているが、90 日間の Enterprise Edition 機能を試してみたい場合は、-license コマンド行オプションで使用ライセンスとして「try」を指定すると、Enterprise Edition のトライアルライセンスを有効にできます。

> imqbrokerd -license try

> ブローカインスタンスを起動するたびにこのオプションを使用する必要があります。使用しない場合、デフォルトで Platform Edition の基本ライセンスに戻ります。

> ##### プラグイン持続で名前付きブローカインスタンスを起動するには

> プラグインデータストア (付録 B 「プラグイン持続の設定」を参照) を使用する、ユーザー名とパスワードが必要な myBroker という名前のブローカを起動するには、次のコマンドを使用します。

> imqbrokerd -name myBroker -dbuser myName -dbpassword myPassword

> ### imqbrokerd オプションの概要

> 表 5-2 に、imqbrokerd コマンドのオプションと、各オプションから影響を受ける設定プロパティがあれば、そのプロパティを示します。

> 表 5-2 imqbrokerd オプション

> オプション | 影響を受けるプロパティ | 説明
> --- | --- | ---
> -backup fileName | 影響なし | ブローカクラスタに対してのみ適用。指定したファイルに、マスターブローカの設定変更レコードをバックアップする。「設定変更レコードのバックアップ」を参照
> -cluster"[broker1] [[,broker2]...]" broker は次のどちらかになる host[:port] [host]:port | imq.cluster.brokerlist に接続先となるブローカのリストを設定する | ブローカクラスタに対してのみ適用。特定のホストやポートにある全ブローカに接続する。このリストは、imq.cluster.brokerlist プロパティにあるリストとマージされる。host に値を指定しない場合、localhost が使用される。port に値を指定しない場合、7676 が使用される。このオプションを使用して複数のブローカに接続する方法については、「クラスタの操作 (Enterprise Edition)」を参照
> -dbpassword password | imq.persist.jdbc. password に特定のパスワードを設定する | プラグインの JDBC 準拠のデータストアに対するパスワードを指定する。付録 B 「プラグイン持続の設定」を参照
> -dbuser userName | imq.persist.jdbc.user を指定されたユーザー名に設定する | プラグインの JDBC 準拠のデータベースに対するユーザー名を指定する。付録 B 「プラグイン持続の設定」を参照
> -Dproperty=value | システムプロパティを設定する。インスタンス設定ファイル内の対応するプロパティ値をオーバーライドする | 指定したプロパティを指定した値に設定する。ブローカ設定プロパティについては、表 5-1 を参照 注意 : D オプションを使用して設定するプロパティのスペルと形式は、十分に確認すること。誤った値を渡した場合、システムからの警告なしに Message Queue でプロパティを設定できなくなる
> -force | 影響なし | ユーザーの確認なしで、アクションを実行する。このオプションは、通常は確認が必要な -remove instance オプションと -upgrade-store-nobackup オプションにだけ適用される
> -h|-help | 影響なし | ヘルプを表示する。コマンド行ではそれ以外のことは実行されない
> -javahome path | 影響なし | 代替の Java 2 準拠の JDK へのパスを指定する。デフォルトでは、バンドルされたランタイムを使用する
> -ldappassword password | imq.user_repository. ldap.password を指定されたパスワードに設定する | LDAP ユーザーリポジトリにアクセスするためのパスワードを指定する。「ユーザーリポジトリに LDAP サーバを使用する」を参照
> -license [licenseName] | 影響なし | 使用している Message Queue 製品エディションのデフォルトと異なる場合、読み込みのためのライセンスを指定する。ライセンス名を指定しない場合、システムにインストールされている全ライセンスが一覧表示される。インストールされた Message Queue エディションによって、licenseName の値は、pe (Platform Edition - 基本機能の場合)、try (Platform Edition - 90 日間の企業向けトライアル機能の場合)、および unl (Enterprise Edition の場合) のどれかになる。「製品エディション」を参照
> -loglevel level | imq.broker.log.level に特定のレベルを設定する | ログ作成レベルを、NONE、ERROR、WARNING、INFO のどれかに指定する。デフォルト値は INFO。詳細は、「ロガー」を参照
> -metrics interval | imq.metrics. interval を特定の秒数に設定する | ブローカメトリックスが一定間隔 (秒単位) でロガーに書き込まれるように指定する
> -name instanceName | imq.instancename に特定の名前を設定する | このブローカのインスタンス名を指定し、対応するインスタンス設定ファイルを使用する。ブローカ名を指定しない場合、インスタンス名は imqbroker に設定される 注 : 同一ホスト上で複数のブローカのインスタンスを実行している場合、各インスタンスの名前は一意となる必要がある
> -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 つのインスタンスを実行するには、各ブローカのポートマッパが異なるポート番号となる必要がある。Message Queue クライアントはこのポート番号を使用してブローカインスタンスに接続する
> -remove instance | 影響なし | ブローカのインスタンスが削除される。つまり、インスタンス設定ファイル、ログファイル、持続ストア、その他インスタンスに関連するファイルやディレクトリが削除される。-force オプションを一緒に指定しないかぎり、ユーザーの確認が求められる
> -reset store| messages| durables| props | 影響なし | 指定された引数に応じて、データストアまたはデータストアのサブセットをリセットするか、あるいはブローカインスタンスのプロパティをリセットする データストアをリセットすると、持続メッセージ、永続サブスクリプション、トランザクションの情報など、すべての持続データが消去される。このため、データが消去された状態で、ブローカインスタンスを起動できる。また、すべての持続メッセージだけを消去したり、すべての永続サブスクリプションだけを消去したりすることもできる。その後の再起動時に持続ストアをリセットしない場合は、-reset オプションを指定せずにブローカインスタンスを再起動する。詳細は、「持続マネージャ」を参照 ブローカのプロパティをリセットすると、既存のインスタンス設定ファイル (config.properties) が空のファイルに置き換えられる。プロパティはすべてデフォルト値となる
> -restore fileName | 影響なし | ブローカクラスタに対してのみ適用。マスターブローカの設定変更レコードを、指定したバックアップファイルに置き換える。このファイルは、-backup オプションを使用して事前に作成しておく必要がある。「設定変更レコードの復元」を参照
> -shared | imq.jms. threadpool_model を shared に設定する | 共通のスレッドプールを使用して、jms コネクションサービスが実装されるように指定する。このスレッドプールでは、スレッドがコネクション間で共有され、ブローカインスタンスにサポートされるコネクション数が増加する。詳細は、「コネクションサービス」を参照
> -silent|-s | imq.log.console. output を NONE に設定する | コンソールへのログ作成をオフにする
> -tty | imq.log.console. output を ALL に設定する | すべてのメッセージがコンソールに表示されるよう指定する。デフォルトでは、WARNING レベルまたは ERROR レベルのメッセージだけが表示される
> -upgrade-store- nobackup | 影響なし | 非互換のバージョンから Message Queue 3.5 または Message Queue 3.5 SPx へアップグレードすると、自動的に古いデータストアが削除されるように指定する。詳細は、『Message Queue インストールガイド』を参照
> -version | 影響なし | インストールされた製品のバージョン番号を表示する
> -vmargs arg1 [[arg2]...] | 影響なし | Java VM に渡す引数を指定する。引数はスペースで区切られる。複数の引数を渡す場合や、引数にスペースが含まれる場合は、引用符で囲む。たとえば、次のように指定する imqbrokerd -tty -vmargs "-Xmx128m -Xincgc"

> ##

> クラスタの操作 (Enterprise Edition)

> この節では、マルチブローカクラスタを設定するために使用するプロパティ、ブローカを接続する 2 つの方法、およびクラスタを管理する方法について説明します。クラスタの概要については、「マルチブローカクラスタ (Enterprise Edition)」を参照してください。

> クラスタを操作するときは、クラスタにあるすべてのブローカのホスト間で時計の同期が取れていることを確認してください (「システムの時計の設定」を参照)。

> ### クラスタ設定プロパティ

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

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

> プロパティ名 | 説明
> --- | ---
> imq.cluster.brokerlist* | クラスタ内のすべてのブローカを指定する。host:port エントリのコンマで区切られたリストで構成される。host は、各ブローカのホスト名で、port はそのポートマッパのポート番号。たとえば、次のように指定する host1:3000, host2:8000, ctrhost
> imq.cluster. masterbroker* | クラスタ内のどのブローカをマスターブローカにするのかを指定する。マスターブローカは状態の変化を追跡する。プロパティは、host:port で構成される。host は、マスターブローカのホスト名で、port はそのポートマッパのポート番号。このプロパティは運用環境に合せて設定する。たとえば、ctrhost:7676
> imq.cluster.url* | クラスタ設定ファイルの場所を指定する。個別に設定するのではなく、ブローカが中央の 1 つのクラスタ設定ファイルを参照する場合に使用する。URL の文字列で設定される。Web サーバ上にある場合は、通常の http:URL を使用して、アクセスできる。共有ドライブ上にある場合は、file:URL を使用して、アクセスできる たとえば、次のように指定するhttp://webserver/imq/cluster.properties file:/net/mfsserver/imq/cluster.properties
> imq.cluster.port | クラスタ内にある各ブローカに対して、cluster コネクションサービスのポート番号を指定する。cluster コネクションサービスは、クラスタにあるブローカ間での内部通信に使用される。 デフォルト値 : 0 (ポートは動的に割り当てられる)
> imq.cluster.hostname | クラスタ内の各ブローカに対して、コンピュータに複数のネットワークインタフェースカードがあるなど、使用可能な複数のホストがある場合に、cluster コネクションサービスのバインド先となるホスト (ホスト名または IP アドレス) を指定する。cluster コネクションサービスは、クラスタにあるブローカ間での内部通信に使用される。 デフォルト値 : imq.hostname の値を継承する (表 2-3 を参照)
> imq.cluster.transport* | cluster コネクションサービスがクラスタ内のブローカ間の内部通信に使用するネットワークトランスポートを指定する。ブローカ間で安全な暗号化されたメッセージ配信を行うには、クラスタ内のすべてのブローカに対して、このプロパティを ssl に設定する。デフォルト値 : tcp

> 次の 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.transport)、およびオプションでマスターブローカのアドレス (imq.cluster.masterbroker) が含まれる可能性があります。

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

> 次のサンプルコードは、クラスタ設定ファイルの内容を表示しています。host1 と ctrlhost は両方とも、デフォルトのポートで動作しています。これらのプロパティは、host1、host2、および ctrlhost がクラスタで接続され、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 プロパティの値がクラスタ設定ファイルを指すように設定する必要があります。

> #### ブローカ間の安全なコネクション

> クラスタ内のブローカ間で安全な暗号化されたメッセージの配信を実行したい場合は次のようにして、cluster コネクションサービスが SSL ベースのトランスポートプロトコルを使用するように設定する必要があります。

> ##### クラスタで安全なコネクションを設定するには

> 1. クラスタ内のブローカごとに、SSL ベースのコネクションサービスを設定します。

> 設定方法は、「TCP/IP を介した SSL ベースのサービスの設定」を参照してください。

> 2. imq.cluster.transport クラスタ設定プロパティを ssl に設定します。

> クラスタ設定ファイルを使用しない場合は、クラスタ内のブローカごとにこのプロパティを設定する必要があります。

> ### クラスタ内のブローカの管理

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

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

> ##### 新しいブローカを既存のクラスタに追加するには

> - クラスタ設定ファイルを使用する場合
> 1. 新しいブローカを、クラスタ設定ファイルにある imq.cluster.brokerlist プロパティに追加します。
> 2. クラスタ内の各ブローカに次のコマンドを実行します。

> imqcmd reload cls

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

> 3. imq.cluster.url プロパティを -D オプションを使用してコマンド行で指定し、新しいブローカを起動します。

> これにより、ブローカがクラスタ設定ファイルを指すようになります。

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

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

> クラスタ内のブローカが何らかの理由でクラッシュしたかシャットダウンされた場合は、そのブローカをクラスタのメンバーとして再起動する必要があります。

> ##### 既存のクラスタのメンバーであるブローカを再起動するには

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

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

> ##### ブローカを既存のクラスタから削除するには

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

> imqbrokerd -cluster A,B,C

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

> imqbrokerd -cluster B,C

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

> - クラスタ設定ファイルを使用してブローカのリストが指定されている場合、次の手順を実行する必要があります。
> 1. 設定ファイルからブローカの詳細を削除します。
> 2. 今後共通プロパティを使用しないように、削除するブローカの imq.cluster.url プロパティを変更または削除します。
> 3. imqcmd reload cls コマンドを使用して、ブローカすべてにクラスタ設定を再読み込みさせ、クラスタを設定し直します。

> ### マスターブローカの設定変更レコードの管理

> クラスタごとに 1 つのマスターブローカがあり、クラスタの持続的な状態に対する変更がすべて追跡されます。この状態では、永続サブスクリプションと管理者が作成した物理的な送信先に関する情報が含まれます。すべてのブローカは、これらの持続オブジェクトに関する情報の同期を取るため、起動時にマスターブローカを参照し、次に、設定変更レコードを確認します。したがって、マスターブローカに障害があると、このような同期が不可能となります。その結果、マスターブローカに障害が生じると、物理的な送信先や永続サブスクリプションを作成したり削除したりできません。

> マスターブローカには重要な情報が含まれているため、マスターブローカの設定変更レコードを定期的にバックアップし、障害発生時にバックアップから復元できるようにする必要があります。

> 次の節では、設定変更レコードのバックアップと復元の方法を説明します。

> #### 設定変更レコードのバックアップ

> ##### 設定変更レコードをバックアップするには

> imqbrokerd コマンドに -backup オプションを使用します。たとえば、次のように指定します。

> imqbrokerd -backup mybackuplog

> これを適宜行うことが重要です。きわめて古いバックアップを復元すると、情報が失われることがあります。つまり、バックアップが最後に実行されたとき以降に行われた、物理的な送信先または永続サブスクリプションの変更は失われます。

> #### 設定変更レコードの復元

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

> 1. クラスタにあるすべてのブローカをシャットダウンします。
> 2. 次のコマンドを使用して、マスターブローカの設定変更レコードを復元します。

> imqbrokerd -restore mybackuplog

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

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

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

> ##

> ログ作成

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

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

> ブローカを起動すると、ログファイルが関連付けられたブローカインスタンスの名前 (instanceName) で識別されるディレクトリにあるローリングログファイルにログ出力を保存するように自動的に設定されます (付録 A 「Message Queue データの場所」を参照)。

> .../instances/instanceName/log/

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

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

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

> - ログファイルが保管されるディレクトリを変更するには、プロパティ imq.log.file.dirpath を希望するパスに設定します。
> - ログファイルのルート名を log から別の名前に変更するには、imq.log.file.filename プロパティを設定します。

> ブローカは、3 つのログカテゴリをサポートしています。それらは、ERROR、WARNING、INFO です (表 2-7 を参照)。ログ作成レベルを設定すると、そのレベル以上のメッセージが収集されます。デフォルトのログレベルは INFO です。つまり、デフォルトでは、ERROR、WARNING、および INFO レベルのメッセージが記録されます。

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

> 記録するメッセージは、タイムスタンプ (タイムスタンプのタイムゾーンを変更する方法は、表 2-9 を参照)、メッセージコード、およびメッセージ自体から構成されます。情報量は、設定したログレベルにより異なります。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-9 にすべてのロガープロパティを示します。

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

> 1. ログレベルを設定します。
> 2. 1 つまたはそれ以上のログ作成カテゴリの出力チャネル (ファイル、コンソール、またはその両方) を設定します。
> 3. 出力をファイルに記録する場合、ファイルのロールオーバー条件を設定します。

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

> - ブローカを起動する前に、ブローカの config.properties ファイルにロガープロパティを変更または追加します。
> - ブローカを起動する imqbrokerd コマンドでロガーコマンド行オプションを指定します。また、オプション -D を使用して、ロガープロパティ、または任意のブローカプロパティを変更できます。

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

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

> imqbrokerd オプション | 説明
> --- | ---
> -metrics interval | メトリックス情報がロガーに書き込まれる間隔を、秒単位で指定する
> -loglevel level | ログレベルを、ERROR、WARNING、INFO のいずれかに設定する
> -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 に設定すると、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 つのロールオーバーファイルが保持されます。

> 前へ 目次 索引 次へ

> Copyright 2003 Sun Microsystems, Inc. All rights reserved.