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

第 3 章 ブローカとクライアントの起動

Sun Java SystemTM Message QueueTM をインストールし、いくつかの準備手順を実行したあと、ブローカとクライアントを起動できます。ブローカの設定は、設定ファイルセットと、ブローカユーティリティー (imqbrokerd) に渡されるコマンド行オプションによって決まります。詳細については、第 4 章「ブローカの設定」を参照してください。

この章では、次の節について説明します。

システムリソースの準備

ブローカを起動する前に、2 つの予備的なシステムレベルのタスク、すなわちシステムクロックの同期と、Solaris または Linux プラットフォームの場合のファイル記述子の制限の設定を行います。次の節では、これらのタスクについて説明します。

システムクロックの同期

ブローカまたはクライアントを起動する前に、Message Queue システムと対話するすべてのホスト上のクロックを同期する必要があります。メッセージの有効期限 (生存期間) を使用する場合には、同期は特に重要です。同期されていないクロックのタイムスタンプは、メッセージの有効期限が予想どおりに機能するのを阻害し、メッセージの配信を阻害します。同期はブローカクラスタにとっても重要です。

システムを設定し、Simple Network Time Protocol (SNTP) などの時間同期プロトコルを実行するようにします。時間同期は一般に、Solaris と Linux の場合は xntpd デーモンで、Windows の場合は W32Time サービスでサポートされます。このサービスの設定に関する詳細は、オペレーティングシステムのマニュアルを参照してください。ブローカを実行したあと、システムクロックが逆戻り設定されるのを防いでください。

ファイル記述子制限の設定

Solaris および Linux プラットフォームでは、クライアントやブローカが実行されるシェルによって、プロセスで使用できるファイル記述子の数に対する弱い制限値があります。Message Queue では、クライアントが行う接続、あるいはブローカが受け付ける接続はすべて、これらのファイル記述子のいずれかを使用します。持続メッセージを持つ物理的な送信先もすべて、ファイル記述子を使用します。

その結果、ファイル記述子の制限によって、ブローカまたはクライアントの接続数が制限されます。デフォルトで最大の接続数は Solaris で 256、Linux で 1024 です。実際には、持続性のためにファイル記述子を使用することから、接続数の制限はこの値より小さくなります。これ以上の接続を必要とする場合は、クライアントまたはブローカが実行する各シェルのファイル記述子制限を拡大する必要があります。この方法については、ulimit マニュアルページを参照してください。

ブローカの起動

Message Queue コマンド行ユーティリティーまたは Windows の「スタート」メニューを使用して、ブローカをインタラクティブに起動できます。または、システムの起動時に自動的に起動するように調整できます。次の節で、この方法について説明します。

ブローカのインタラクティブな起動

ブローカユーティリティー (imqbrokerd) を使用すると、コマンド行からブローカをインタラクティブに起動できます。Windows の場合は「スタート」メニューからブローカを起動できます。ブローカの起動に管理コンソール (imqadmin) やコマンドユーティリティー (imqcmd) を使用することはできません。これらのツールを使用する前に、ブローカが実行されている必要があります。

Solaris と Linux プラットフォームでは、ブローカインスタンスは必ずブローカを最初に起動したユーザーと同一のユーザーが起動します。各ブローカインスタンスは、固有の設定プロファイルとファイルベースのメッセージストアを保有します。ブローカインスタンスを最初に起動するとき、Message Queue はユーザーのファイル作成モードマスク (umask) を使用して、ブローカインスタンスの設定情報と持続データを格納するディレクトリに、アクセス権を設定します。

ブローカインスタンスには、デフォルトでインスタンス名 imqbroker が割り当てられます。この名前とデフォルト設定を使用してコマンド行からブローカを起動するには、次のコマンドを使用します。

imqbrokerd

このコマンドにより、デフォルトポート 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 コマンドの構文、サブコマンド、オプションの詳細は、「ブローカユーティリティー」を参照してください。この情報の簡単な概要については、次のコマンドで確認します。

imqbrokerd -help

注 –

Sun Java System Message Queue Platform Edition ライセンスを保有している場合は、imqbrokerd コマンドの - license オプションを使用して、Enterprise Edition の試用ライセンスをアクティブにして、Enterprise Edition の機能を 90 日間試用できます。ライセンス名に try を指定します。

imqbrokerd -license try

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


ブローカの自動起動

コマンド行からブローカを明示的に起動する代わりに、システムの起動時に自動的にブローカが起動するように設定できます。この方法は、ブローカを実行するプラットフォーム (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 サービスとして定義する必要があります。そうすることで、ブローカはシステムの起動時に起動し、システムがシャットダウンされるまで、バックグランドで実行されます。したがって、別のインスタンスを起動する必要がないかぎり、ブローカを起動するのに imqbrokerd コマンドを使用することはありません。

システムで Windows サービスとして実行できるブローカは 1 つのみです。タスクマネージャーには、そうしたブローカが 2 つの実行可能プロセスとして表示されます。

Windows システムで Message Queue をインストールしている場合、ブローカをサービスとしてインストールできます。インストール後、サービス管理ユーティリティー imqsvcadmin を使用して、次の操作を実行します。

ブローカに起動オプションを渡すには、imqsvcadmin コマンドに -args 引数を使用します。これは 「ブローカの起動」で説明するように、imqbrokerd コマンドの -D オプションと同じように機能します。ブローカの動作を通常どおり制御するには、コマンドユーティリティー (imqcmd) を使用します。

imqsvcadmin コマンドの構文、サブコマンド、オプションの詳細は、「サービス管理ユーティリティー」を参照してください。

ブローカサービスの再設定

Windows サービスとしてインストールしたブローカを再設定する手順は次のとおりです。

ProcedureWindows サービスとして実行中のブローカを再設定する

  1. サービスを停止します。

    1. Windows の「スタート」メニューのサブメニュー「設定」から、「コントロール パネル」を選択します。

    2. 「管理ツール」コントロールパネルを開きます。

    3. 「サービス」ツールのアイコンを選択し、「ファイル」メニューから「開く」、またはポップアップコンテキストメニューから選択するか、単にアイコンをダブルクリックして、サービスツールを実行します。

    4. 「サービス (ローカル)」の下の「Message Queue Broker」サービスを選択し、「操作」メニューから「プロパティ」を選択します。

      または、「Message Queue Broker」を右クリックし、ポップアップコンテキストメニューから「プロパティ」を選択するか、単に「Message Queue Broker」をダブルクリックします。どちらの場合も「Message Queue Broker のプロパティ」ダイアログボックスが表示されます。

    5. 「Message Queue Broker のプロパティ」ダイアログの「全般」タブで、「停止」をクリックして、ブローカサービスを停止します。

  2. サービスを削除します。

    コマンド行で、次のコマンドを入力します。


    imqsvcadmin remove
  3. サービスを再インストールし、異なるブローカ起動オプション -args、または異なる Java バージョン引数、-vmargs オプションを指定します。

    たとえば、サービスのホスト名とポート番号を broker1 7878 に変更する場合、次のコマンドを使用します。


    imqsvcadmin install -args "-name broker1 -port 7878"

代替 Java ランタイムの使用

代替の Java ランタイムの場所を指定する場合、imqsvcadmin コマンドの -javahome オプションまたは -jrehome オプションのどちらかを使用することができます。これらのオプションは、サービスの「プロパティ」ダイアログウィンドウの「全般」タブの「開始パラメータ」フィールドに指定することもできます。


注 –

「開始パラメータ」フィールドでは、円記号 (\\ ) がエスケープ文字として処理されるため、パスの区切り文字として使用する場合、次のように円記号を 2 つ入力してください。

-javahome c:\\\\j2sdk1.4.0

ブローカサービス起動オプションの表示

ブローカサービスの起動オプションを指定するには、例 3–1 に示すように、imqsvcadmin コマンドに query オプションを指定します。


例 3–1 ブローカサービス起動オプションの表示


imqsvcadmin query

Service Message Queue Broker is installed.
Display Name: Message Queue Broker
Start Type: Automatic
Binary location: C:\\Sun\\MessageQueue\\bin\\imqbrokersvc.exe
JavaHome: c:\\j2sdk1.4.0
Broker Args: -name broker1 -port 7878


サービス開始時の問題のトラブルシューティング

ブローカを Windows サービスとして開始しようとしたときにエラーが発生する場合、記録されているエラーイベントを確認できます。

Procedure記録されているサービスのエラーイベントを表示する

  1. Windows の「管理ツール」コントロールパネルを開きます。

  2. 「イベントビューア」ツールを起動します。

  3. 「アプリケーション」イベントログを選択します。

  4. 「操作」メニューから「最新の情報に更新」を選択して、エラーイベントを表示します。

ブローカの削除

ブローカを削除する手順もプラットフォームによって異なります。次の節で説明します。

Solaris または Linux でのブローカの削除

Solaris または Linux プラットフォームでブローカインスタンスを削除するには、imqbrokerd コマンドに -remove オプションを指定して実行します。このコマンドの形式は次のようになります。

imqbrokerd [options…] -remove instance

たとえば、ブローカの名前が myBroker の場合、コマンドは次のようになります。

imqbrokerd -name myBroker -remove instance

このコマンドは、指定されたブローカのインスタンスディレクトリ全体を削除します。

システムの起動時に自動起動するようにブローカが設定されている場合、設定ファイル /etc/imq/imqbrokerd.conf (Solaris) または /etc/opt/sun/mq/imqbrokerd.conf (Linux) を編集し、AUTOSTART プロパティーを NO に設定します。

imqbrokerd コマンドの構文、サブコマンド、オプションの詳細は、「ブローカユーティリティー」を参照してください。この情報の簡単な概要については、次のコマンドで確認します。

Windows ブローカサービスの削除

Windows サービスとして実行中のブローカを削除するには、次のコマンドを使用して、

imqcmd shutdown bkr

ブローカをシャットダウンし、続けて次のコマンドを使用して、

imqsvcadmin remove

サービスを削除します。

または、管理ツールコントロールパネルから到達できる Windows サービスツールを使用して、ブローカサービスを停止し、削除することもできます。

ブローカサービスを削除したら、コンピュータを再起動します。

クライアントの起動

クライアントアプリケーションを起動する前に、アプリケーション開発者からシステムの設定方法に関する情報を入手します。Java クライアントアプリケーションを起動する場合、CLASSPATH 変数を適切に設定し、正しい .jar ファイルがインストールされていることを確認します。システムの設定の一般的な手順については、『Message Queue Developer's Guide for Java Clients』で説明していますが、開発者が追加情報を提供する場合があります。

Java クライアントアプリケーションを起動するには、次のコマンド行形式を使用します。

java clientAppName

C クライアントアプリケーションを起動するには、アプリケーション開発者が提供した形式を使用します。

アプリケーションのマニュアルには、アプリケーションで設定される属性値に関する情報が提供されています。これらの属性値をコマンド行から上書きできます。また、JNDI (Java Naming and Directory Interface) 検索により接続ファクトリを検索する Java クライアントに対して、コマンド行で属性を指定することもできます。検索でアプリケーションよりも古い接続ファクトリが戻される場合、その接続ファクトリは最新の属性をサポートしない可能性があります。そのような場合、Message Queue はこれらの属性にデフォルト値を設定します。必要に応じて、コマンド行を使用して、これらのデフォルト値を上書きできます。

コマンド行から、Java アプリケーションの属性値を指定するには、次の構文を使用します。

java [[-Dattribute=value]
] clientAppName

attribute の値は、第 16 章「管理対象オブジェクト属性のリファレンス」で説明するように、接続ファクトリの管理対象オブジェクトの属性になる必要があります。値にスペースが入る場合は、コマンド行の attribute= value 部分を引用符で囲みます。

次の例は、MyMQClient というクライアントアプリケーションを起動し、ホスト OtherHost のポート 7677 のブローカに接続します。

java -DimqAddressList=mq://OtherHost:7677/jms MyMQClient

コマンド行で指定したホスト名およびポートによって、アプリケーション自体で設定された属性値が上書きされます。

場合によっては、コマンド行で属性値を指定できません。管理者は読み取りアクセス専用を許可するように管理対象オブジェクトを設定できます。または、アプリケーション開発者が、クライアントアプリケーションに読み取り専用を許可するようにコーディングできます。アプリケーション開発者との通信は、クライアントプログラムの起動の最適な方法を理解するのに必要です。