ここでは、以下について説明します。
メッセージブローカの起動
JMSクライアントアプリケーションが物理格納先にメッセージを送受信する場合、物理格納先を管理しているメッセージブローカを事前に起動する必要があります。
メッセージブローカは、以下の方法で起動します。
imqbrokerdコマンドを使用して、メッセージブローカを起動します。詳細については、「9.5 imqbrokerd」を参照してください。
C:\Interstage\F3FMisje6\mq\bin\imqbrokerd -name メッセージブローカ名 -port ポート番号
/opt/FJSVisje6/mq/bin/imqbrokerd -name メッセージブローカ名 -port ポート番号
ポイント
imqbrokerdコマンド実行後、コマンドプロンプトは復帰しません。
メッセージブローカは、通常コマンドで起動する必要がありますが、オペレーティングシステム起動時に自動起動する運用を行う場合は、以下の手順でサービス化することができます。
imqsvcadmin installサブコマンドを実行して、サービスに登録します。メッセージブローカがサービス名「Interstage Message Queue Broker(ISJE6)」としてサービスに登録されます。コマンドの詳細については、「9.7.1 installサブコマンド」を参照してください。
C:\Interstage\F3FMisje6\mq\bin\imqsvcadmin install -args メッセージブローカの起動引数
例
メッセージブローカのインスタンス名を「test」、ポート番号を「37676」に設定してサービス化する場合は、以下のようにimqsvcadminコマンドを実行します。
C:\Interstage\F3FMisje6\mq\bin\imqsvcadmin install -args "-name test -port 37676"
imqsvcadmin removeサブコマンドを実行して、サービス登録を解除します。サービスの削除実行時にメッセージブローカが起動中だった場合、メッセージブローカの停止後にサービスから削除されます。コマンドの詳細については、「9.7.2 removeサブコマンド」を参照してください。
C:\Interstage\F3FMisje6\mq\bin\imqsvcadmin remove
注意
サービス化できるメッセージブローカは、1つです。
サービス登録時に指定した情報は、変更できません。変更する場合は、いったんサービスを削除してから、新しい情報を使用して登録してください。
サービスのログオンアカウントを設定する場合は、管理者権限を持つアカウントを設定してください。
サービスの登録状態とサービス登録時に指定した情報は、IJServerクラスタのバックアップ・リストアの対象になりません。リストア時には、必要に応じてメッセージブローカのサービス登録作業から再度実行してください。
本作業は、rootユーザで実施してください。
rcスクリプトの編集
サービス化のため、rcスクリプト("ijmq")が、以下のディレクトリに提供されています。
格納先
/opt/FJSVisje6/mq/etc/init.d
ijmqスクリプトを、任意の場所(以下の例では/tmpディレクトリ)に複写します。
cp /opt/FJSVisje6/mq/etc/init.d/ijmq /tmp
複写後、ijmqファイルの以下の項目を編集します。設定値は、ダブルクォーテーション("")で囲んで設定してください。
BROKER_PORT
サービス化するブローカプロセスが使用するポート番号です。
ここで設定した値は、ブローカのインスタンス名としても採用されます。
BROKER_OPT
ブローカプロセスに設定するブローカオプションのリストです。
複数指定する場合は、オプションを半角の空白で区切ってください。
VM_ARGS
ブローカプロセス起動時にJVMに渡すVMオプションのリストです。
複数指定する場合は、オプションを半角の空白で区切ってください。
注意
rcスクリプト("ijmq")は、直接編集しないでください。必ず任意の場所に複写した後、複写したファイルを編集してください。
また、上記以外の項目は、編集しないでください。rcスクリプトが正しく動作しない可能性があります。
例
以下のように設定します。
#!/bin/sh # # ijmq: Interstage Application Server # # Version: @(#) /etc/rc.d/init.d/ijmq 1.0 # # Author: FUJITSU LIMITED # # chkconfig: 2345 97 3 # description: Interstage Application Server # processname: imqbrokerd # set broker port BROKER_PORT="37676" BROKER_OPT="-Dimq.system.max_count=1 -Dimq.system.max_size=1k" VM_ARGS="-Xmx256m"
rcスクリプトの格納
1.で作成したファイルのパーミッションを「0500」に変更し、/etc/init.dに格納します。複数のrcスクリプトの作成/登録を行う場合は、rcスクリプトのファイル名を変更して登録してください。
chmod 0500 /tmp/ijmq mv /tmp/ijmq /etc/init.d/ijmq01
サービスの登録
/etc/rc0.d、/etc/rc2.dに、シンボリックリンクを作成します。
ln -s /etc/init.d/ijmq01 /etc/rc0.d/K03ijmq01 ln -s /etc/init.d/ijmq01 /etc/rc2.d/S97ijmq01
chkconfigコマンドを使用してサービスを登録します。
/sbin/chkconfig --add ijmq01
本作業は、rootユーザで実施してください。
サービスの停止
サービスが起動している場合は、停止します。
/etc/init.d/ijmq01 stop
サービスの登録解除
/etc/rc0.d、/etc/rc2.dに、作成したシンボリックリンクを削除します。
rm /etc/rc0.d/K03ijmq01 rm /etc/rc2.d/S97ijmq01
chkconfigコマンドを使用してサービスの登録を解除します。
/sbin/chkconfig --del ijmq01
rcスクリプトの削除
/etc/init.dに格納したrcスクリプトを、別ディレクトリに退避/削除を行います。
注意
登録したサービスは、Interstageのアンインストール時に削除されません。アンインストール後に不要となったサービスは、必ず削除してください。
rcスクリプトは、IJServerクラスタのバックアップ・リストアの対象になりません。バックアップ時には、別途、登録したrcスクリプトファイルのバックアップを行ってください。また、リストア時には、バックアップしたrcスクリプトの登録作業から再度実行してください。
imqcmd list svcサブコマンドを使用して、メッセージブローカの起動状態が確認できます。コマンドの詳細については、「9.6.8 list svcサブコマンド」を参照してください。
例
メッセージブローカが起動している場合
「Successfully listed services.」が出力されます。
C:\Interstage\F3FMisje6\mq\bin\imqcmd list svc -b localhost:17676
Username: admin
Password:
Listing all the services on the broker specified by:
-------------------------
Host Primary Port
-------------------------
localhost 17676
------------------------------------------------
Service Name Port Number Service State
------------------------------------------------
admin 49205 (dynamic) RUNNING
httpjms - UNKNOWN
httpsjms - UNKNOWN
jms 49206 (dynamic) RUNNING
ssladmin dynamic UNKNOWN
ssljms dynamic UNKNOWN
Successfully listed services.
メッセージブローカが停止している場合
C4003が出力されます。
/opt/FJSVisje6/mq/bin/imqcmd list svc -b localhost:17676 Username: admin Password: Listing all the services on the broker specified by: ------------------------- Host Primary Port ------------------------- localhost 17676 2012/05/31 19:40:42 com.sun.messaging.jmq.jmsclient.ExceptionHandler throwConnectionException 警告: [C4003]: Error occurred on connection creation [localhost:17676]. - cause: java.net.ConnectException: Connection refused: connect Error while connecting to the broker on host 'localhost' and port '17676'. com.sun.messaging.jms.JMSException: [C4003]: Error occurred on connection creation [localhost:17676]. - cause: java.ne t.ConnectException: Connection refused: connect Please verify that there is a broker running on the specified host and port or use the '-b' option to specify the correct broker host and port. Listing services failed.
メッセージブローカを起動するホストは、hostsファイルの内容/DNSの設定により、名前解決(IPアドレス解決)を可能にしておく必要があります。
ネットワーク環境をDNSで運用している場合は、DNSを設定してください。DNSで運用していない場合は、以下に格納されているhostsファイルの内容を確認して、必要に応じて追加/修正してください。
hostsファイルの記載方法については、「使用上の注意」の「注意事項」-「Interstage共通の注意事項」-「hostsファイルの記載について」を参照してください。
(Windows(R)のインストールフォルダ)\system32\drivers\etc\hosts
/etc/hosts
以下のサービスを起動する前に、メッセージブローカを起動してください。
IJServerクラスタ
Interstage Java EE 6 DASサービス
上記サービスの起動後に、それぞれのログを参照し、以下のメッセージが出力されていないかを確認してください。メッセージが出力されている場合は、上記サービスを停止し、メッセージブローカを起動後、再度起動してください。
[C4003]: Error occurred on connection creation [{0}:{1}]. - cause: java.net.ConnectException: Connection refused: connect
JMSを使用していないIJServerクラスタまたはInterstage Java EE 6 DASサービス運用環境から、JMSを使用するIJServerクラスタまたはInterstage Java EE 6 DASサービス運用環境に変更する場合は、必ず以下を行ってください。
IJServerクラスタまたはInterstage Java EE 6 DASサービスを停止します。
メッセージブローカを起動します。
IJServerクラスタまたはInterstage Java EE 6 DASサービスを再度起動します。
IJServerクラスタまたはInterstage Java EE 6 DASサービスを再起動しない場合、JMS機能が正しく使用できません。
以下の条件の場合、IJServerクラスタまたはInterstage Java EE 6 DASサービスの起動に時間がかかる可能性があります。
JMSを使用する場合。かつ、
IJServerクラスタまたはInterstage Java EE 6 DASサービス起動時にメッセージブローカが未起動の場合。かつ、
MDBアプリケーションを複数配備している場合。
メッセージブローカが未起動であるため、必要に応じて、IJServerクラスタの起動待ち時間(デフォルト600秒)を修正し、IJServerクラスタの起動に時間がかかる現象を回避してください。
メッセージブローカの停止
imqcmd shutdown bkrサブコマンドを使用して、メッセージブローカを停止します。停止対象のメッセージブローカが動作するホスト名とポート番号を指定してください。コマンドの詳細については、「9.6.20 shutdown bkrサブコマンド」を参照してください。
C:\Interstage\F3FMisje6\mq\bin\imqcmd shutdown bkr -b localhost:17676
/opt/FJSVisje6/mq/bin/imqcmd shutdown bkr -b localhost:17676
メッセージブローカの一時停止
imqcmd pause bkrサブコマンドを使用して、メッセージブローカを一時停止します。メッセージブローカを一時停止すると、新しい接続の受け入れ、メッセージの受信、配信を停止できます。コマンドの詳細については、「9.6.9 pause bkrサブコマンド」を参照してください。
C:\Interstage\F3FMisje6\mq\bin\imqcmd pause bkr -b localhost:17676
/opt/FJSVisje6/mq/bin/imqcmd pause bkr -b localhost:17676
メッセージブローカの再開
imqcmd resume bkrサブコマンドを使用して、メッセージブローカを再開します。メッセージブローカを再開すると、メッセージブローカの新しい接続の受け入れ、メッセージの受信、配信が再開されます。コマンドの詳細については、「9.6.18 resume bkrサブコマンド」を参照してください。
C:\Interstage\F3FMisje6\mq\bin\imqcmd resume bkr -b localhost:17676
/opt/FJSVisje6/mq/bin/imqcmd resume bkr -b localhost:17676
管理ユーザパスワードの変更
imqcmdコマンドを使用する場合は、メッセージブローカの管理ユーザとパスワードが必要です。管理ユーザとパスワードについては、「5.8.1 ユーザとグループ」を参照してください。
メッセージブローカには、管理ユーザ「admin」が、デフォルトで作成されています。セキュリティの観点から、管理ユーザ「admin」のパスワードは必ず変更してください。
パスワードは、imqusermgr updateサブコマンドを使用して変更します。コマンドの詳細については、「9.8.3 updateサブコマンド」を参照してください。
メッセージブローカを起動します。
imqusermgr updateサブコマンドを使用して管理ユーザ「admin」のパスワードを変更します。
IJServerクラスタを停止します。
Interstage Java EE 6 DASサービスを停止します。
メッセージブローカを停止します。
メッセージブローカを起動します。
Interstage Java EE 6 DASサービスを起動します。
IJServerクラスタを起動します。