Sun Java System Message Queue 3 2005Q1 管理ガイド |
第 3 章
ブローカとクライアントの起動Sun JavaTM System Message Queue をインストールし、いくつかの準備手順を実行した後、ブローカとクライアントを起動できます。
この章では、次の節について説明します。
ブローカインスタンスの設定は、設定ファイルセットと、設定ファイル内の対応するプロパティをオーバーライドする imqbrokerd コマンドで渡されるオプションによって決まります。ブローカの設定については、第 4 章「ブローカの設定」を参照してください。
システムリソースの準備ブローカを起動する前に、2 つのシステムレベルのタスク、すなわちシステムクロックの同期と、Solaris または Linux の場合のファイル記述子の制限を実行します。次の節では、これらのタスクについて説明します。
システムクロックの同期
ブローカまたはクライアントを起動する前に、Message Queue システムと対話するすべてのホスト上のクロックを同期する必要があります。メッセージの有効期限 (TimeToLive) を使用する場合には、同期は特に重要です。同期されていないクロックのタイムスタンプは、TimeToLive 機能が予想どおりに機能するのを阻害し、メッセージの配信を阻害します。同期はブローカクラスタにとっても重要です。
システムを設定し、Simple Network Time Protocol (SNTP) などの時間同期プロトコルを実行するようにします。時間同期は一般に、Solaris と Linux の場合は xntpd デーモンで、Windows の場合は W32Time Time サービスでサポートされます。このサービスの設定に関する詳細は、オペレーティングシステムのマニュアルを参照してください。
ブローカを実行した後、システムクロックが逆戻り設定されるのを防いでください。
ファイル記述子制限を設定する (Solaris または Linux)
Solaris および Linux プラットフォームでは、クライアントやブローカが実行されるシェルによって、プロセスで使用できるファイル記述子の数に対する弱い制限値があります。Message Queue システムでは、クライアントが行うコネクション、あるいはブローカが受け付けるコネクションはすべて、これらのファイル記述子のどれかを使用します。持続メッセージを持つ物理的な送信先もすべて、ファイル記述子を使用します。
その結果、これらの要因によってコネクション数が制限されます。ファイル記述子の制限を変更しないかぎり、ブローカまたはクライアントが、Solaris では 256、Linux では 1024 を超えるコネクションを実行することはできません。持続性のためにファイル記述子を使用したことで生じるコネクション数の制限は、実際にはこの値より小さくなります。
ファイル記述子の制限を変更するには、ulimit マニュアルページを参照してください。クライアントまたはブローカが実行されるそれぞれのシェルに対して、この制限を変更する必要があります。
ブローカのインタラクティブな起動imqbrokerd コマンドを使用すると、コマンド行からブローカをインタラクティブに起動できます (Windows の場合は、「スタート」メニューからブローカを起動できます)。ブローカの起動に管理コンソール (imqadmin) や コマンドユーティリティ (imqcmd) を使用できません。これらのツールを使用する前に、ブローカが実行されている必要があります。
Solaris と Linux プラットフォームでは、ブローカインスタンスは必ずブローカを最初に起動したユーザーが起動します。ブローカインスタンスを最初に起動する場合、Message Queue はユーザーの umask を使用して、設定情報と持続データを含むブローカのインスタンスディレクトリに、アクセス権を設定します。各ブローカインスタンスは、固有の設定プロファイルとファイルベースのメッセージストアを保有します。
ブローカインスタンスには、デフォルトでインスタンス名 imqbroker が割り当てられます。この名前とデフォルト設定を使用してコマンド行からブローカを起動するには、次のコマンドを使用します。
このコマンドにより、デフォルトポート 7676 のポートマッパーを持つローカルマシン上にある、ブローカのデフォルトのインスタンス (imqbroker) が起動されます。
デフォルト以外のインスタンス名を指定する場合は、imqbrokerd コマンドに -name オプションを使用します。次のコマンドは、インスタンス名 myBroker を持つブローカを起動します。
imqbrokerd -name myBroker
imqbrokerd コマンド行では、ブローカの操作のさまざまな面を制御するその他のオプションも使用できます。次の例では、-tty オプションを使用してコマンドウィンドウにエラーと警告を送信します (標準出力)。
imqbrokerd -name myBroker -tty
コマンド行で -D オプションを使用しても、ブローカのインスタンス設定ファイル (config.properties) で指定されたプロパティの値を上書きすることができます。この例では、imq.jms.max_threads プロパティを設定して、jms コネクションサービスが利用できる最大スレッド数を 2000 に上げています。
imqbrokerd -name myBroker -Dimq.jms.max_threads=2000
imqbrokerd コマンドの構文、サブコマンド、オプションの詳細は、第 13 章「コマンドのリファレンス」を参照してください。この情報の簡単な概要については、次のコマンドで確認します。
imqbrokerd -help
ブローカの自動起動コマンド行からブローカを明示的に起動する代わりに、システムの起動時に自動的にブローカが起動するように設定できます。この方法は、ブローカを実行するプラットフォーム (Solaris、Linux、または Windows) により異なります。
Solaris と Linux での自動起動
Solaris と Linux システムの場合、自動起動を有効にするスクリプトを Message Queue のインストール時に /etc/rc* ディレクトリツリーに配置します。このスクリプトの使用を有効にする場合、設定ファイル /etc/imq/imqbrokerd.conf (Solaris) または /etc/opt/sun/mq/imqbrokerd.conf (Linux) を次のように編集します。
Windows での自動起動
Windows システムの起動時にブローカを自動的に起動するには、ブローカを Windows サービスとして定義する必要があります。Windows システムで Message Queue をインストールしている場合、ブローカをサービスとしてインストールできます。インストール後、サービス管理ユーティリティ imqsvcadmin を使用して、次の操作を実行します。
imqsvcadmin コマンドの構文、サブコマンド、オプションの詳細は、第 13 章「コマンドのリファレンス」を参照してください。
ブローカは Windows のサービスとしてインストールされると、システムの起動時に起動され、システムをシャットダウンするまでバックグラウンドで実行されます。したがって、別のインスタンスを起動する必要がないかぎり、ブローカを起動するのに imqbrokerd コマンドを使用することはありません。
ブローカに起動オプションを渡すには、imqsvcadmin コマンドに -args 引数を使用します。これは「ブローカのインタラクティブな起動」で説明するように、imqbrokerd コマンドの -D オプションと同じように機能します。ブローカの動作を通常どおり制御するには、imqcmd コマンドを使用します。
ブローカを Windows のサービスとして実行する場合は、ブローカは 2 つの実行可能プロセスとして、タスクマネージャに表示されます。
システムで Windows サービスとして実行できるブローカは 1 つのみです。
ブローカサービスの再設定
Windows サービスを構成する手順は次のとおりです。
代替 Java ランタイムの使用
代替の Java ランタイムの場所を指定する場合、-javahome オプション、または -jrehome オプションのどちらかを使用することができます。これらのオプションは、「Windows サービスコントロールパネルの開始パラメータ」フィールドで指定することも可能です。
「開始パラメータ」フィールドでは、円記号 (¥) がエスケープ文字として処理されるため、パスの区切り文字として使用する場合、次のように円記号を 2 つ入力してください。
-javahome d:¥¥jdk1.3ブローカサービス起動オプションの表示
ブローカサービスの起動オプションを指定するには、imqsvcadmin コマンドの query オプションを使用します。
サービス開始時の問題のトラブルシューティング
サービスを開始しようとしたときにエラーが発生する場合、記録されているエラーイベントを確認できます。
記録されているサービスのエラーイベントを表示する
Windows サービスとして実行中のブローカの削除
サービスとして実行中のブローカを削除するには、次のいずれかを実行します。
完了したら、コンピュータを再起動します。
Message Queue クライアントの起動クライアントアプリケーションを起動する前に、アプリケーション開発者からシステムの設定方法に関する情報を入手します。Java クライアントアプリケーションを起動する場合、CLASSPATH 変数を設定し、正しい jar ファイルがインストールされていることを確認します。システムの設定の一般的な手順については、『Message Queue Developer's Guide for Java Clients』で説明していますが、開発者が追加情報を提供する場合があります。
Java クライアントアプリケーションを起動するには、次のコマンド行形式を使用します。
java clientAppName
C クライアントアプリケーションを起動するには、アプリケーション開発者が提供した形式を使用します。
アプリケーション開発者またはアプリケーションマニュアルは、アプリケーションで設定される属性値に関する情報を提供します。アプリケーションで設定される属性の一部には、オーバーライドできるものがあります。この場合、コマンド行で属性を指定します。
また、JNDI 検索によりコネクションファクトリを検索する Java クライアントに対して、コマンド行で属性を指定することもできます。検索でアプリケーションよりも古いコネクションファクトリが戻される場合、そのコネクションファクトリは最新の属性をサポートしない可能性があります。このような場合、Message Queue はその属性をデフォルト値に設定します。コマンド行で属性を指定することで、属性をデフォルト以外の値に設定できます。
コマンド行で属性値を指定するには、Java アプリケーションの次のコマンド行構文を使用します。
java [[-Dattribute=value ]...] clientAppName
attribute の値は、第 16 章「管理対象オブジェクト属性のリファレンス」で説明するように、コネクションファクトリの管理対象オブジェクトの属性になる必要があります。値にスペースが入る場合は、コマンド行の attribute=value 部分を引用符で囲みます。
次の例は、クライアントアプリケーション MyMQClient を起動します。アプリケーションはポート 7677 のホスト OtherHost のブローカに接続し、アプリケーションで設定されたホスト名とポートセットをオーバーライドします。
java -DimqAddressList=mq://OherHost:7677/jms MyMQClient
場合によっては、コマンド行で属性値を指定できません。管理者は読み取りアクセス専用を許可するように管理対象オブジェクトを設定できます。または、アプリケーション開発者が、クライアントに読み取り専用を許可するようにコーディングできます。アプリケーション開発者との通信は、クライアントプログラムの起動の最適な方法を理解するのに必要です。
ブローカインスタンスの削除この節では、Solaris または Linux でのブローカインスタンスの削除に関する詳細を説明します。Windows サービスの削除の詳細は、「Windows サービスとして実行中のブローカの削除」を参照してください。
ブローカインスタンスを削除するには、imqbrokerd コマンドと -remove オプションを使用します。ブローカインスタンスを削除するためのコマンド形式は、次のようになります。
imqbrokerd [options..] -remove instance
たとえば、ブローカの名前が myBroker の場合、コマンドは次のようになります。
imqbrokerd -name myBroker -remove instance
このコマンドは、指定されたブローカのインスタンスディレクトリ全体を削除します。
ブローカの削除に使用できるオプションのリストについては、「コマンドのリファレンス」の imqbrokerd の詳細を参照してください。
Solaris または Linux では、システムの起動時に自動起動するようにブローカが設定されている場合、設定ファイル /etc/imq/imqbrokerd.conf (Solaris) または /etc/opt/sun/mq/imqbrokerd.conf (Linux) を編集し、AUTOSTART プロパティを NO に設定します。