ここでは、以下について説明します。
メッセージブローカの起動
JMSアプリケーションが物理格納先にメッセージを送受信する場合、物理格納先を管理しているメッセージブローカを事前に起動する必要があります。詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「imqbrokerd」を参照してください。
imqbrokerd -name メッセージブローカ名 -port ポート番号
ポイント
imqbrokerdコマンド実行後、コマンドプロンプトは復帰しません。
メッセージブローカを起動するホストは、hostsファイルの内容/DNSの設定により、名前解決(IPアドレス解決)を可能にしておく必要があります。
ネットワーク環境をDNSで運用している場合は、DNSを設定してください。DNSで運用していない場合は、以下に格納されているhostsファイルの内容を確認して、必要に応じて追加/修正してください。
(Windows(R)のインストールフォルダ)\system32\drivers\etc\hosts
/etc/hosts
注意
hostsファイルにローカルホスト名を設定する場合、リモートから参照可能なIPアドレスを先に設定してください。詳細については、「使用上の注意」の「注意事項」-「Interstage共通の注意事項」-「hostsファイルの記載について」を参照してください。
以下のサービスを起動する前に、メッセージブローカを起動してください。
IJServerクラスタ
Interstage Java EE DASサービス
上記のサービス起動後に、それぞれのログを参照し、ERROR/WARNINGメッセージが出力されていないかを確認してください。
以下のERROR/WARNINGメッセージが出力されている場合、上記のサービスを停止し、メッセージブローカを起動後、上記のサービスを再度起動してください。
ISJEE: WARNING: ISJEE_IJMQ_C4003: Error occurred on connection creation [{0}:{1}]. - cause: java.net.ConnectException: Connection refused: connect: ThreadID=10,ThreadName=main
ISJEE: WARNING: ISJEE_MQJMSRA_RA4001: getJMXServiceURLList:Exception:Message=Caught exception when contacing portmapper.: ThreadID=10,ThreadName=main
ISJEE: ERROR: ISJEE_MQJMSRA_MC4001: constructor:Aborting:JMSException on createConnection=IJMQ_C4003: Error occurred on connection creation [{0}:{1}]. - cause: java.net.ConnectException: Connection refused: connect: ThreadID=10,ThreadName=main
JMSを使用していないIJServerクラスタ、またはInterstage Java EE DASサービス運用環境からJMSを使用するIJServerクラスタ、またはInterstage Java EE DASサービス運用環境に変更する場合は、必ずIJServerクラスタ、またはInterstage Java EE DASサービスを停止し、メッセージブローカを起動後、IJServerクラスタ、またはInterstage Java EE DASサービスを再度起動してください。再起動を実施しない場合、JMS機能が正しく使用できません。
注意
以下の条件の場合、IJServerクラスタ、またはInterstage Java EE DASサービスの起動に時間がかかる可能性があります。
JMSを使用する場合。かつ、
IJServerクラスタ、またはInterstage Java EE DASサービス起動時にメッセージブローカが未起動の場合。かつ、
JMSのリソース定義で有効なConnectionFactoryを複数定義している場合。
または、MDBアプリケーションを複数配備している場合。
メッセージブローカが未起動であるため、IJServerクラスタの起動に時間がかかる現象を回避するためには、必要に応じて、IJServerクラスタの起動待ち時間(デフォルト600秒)を修正してください。
メッセージブローカのサービス化
メッセージブローカは、通常コマンドで起動する必要がありますが、オペレーティングシステム起動時に自動起動する運用を行う場合、以下の手順でサービス化することができます。
imqsvcadmin installコマンドを実行して、サービスに登録します。メッセージブローカがサービス名「Interstage Message Queue Broker」としてサービスに登録されます。コマンドの詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「imqsvcadmin」-「installサブコマンド」を参照してください。
imqsvcadmin install -args メッセージブローカの起動引数
例
メッセージブローカのインスタンス名を「test」、ポート番号を「37676」に設定してサービス化する場合は、以下のようにimqsvcadminコマンドを実行します。
imqsvcadmin install -args "-name test -port 37676"
imqsvcadmin removeコマンドを実行して、サービス登録を解除します。サービスの削除実行時にメッセージブローカが起動中だった場合、メッセージブローカの停止後にサービスから削除されます。コマンドの詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「imqsvcadmin」-「removeサブコマンド」を参照してください。
imqsvcadmin remove
注意
サービス化できるメッセージブローカは、1つです。
サービス登録時に指定した情報は、変更できません。変更する場合は、いったんサービスを削除してから、新しい情報を使用して登録してください。
サービスのログオンアカウントを設定する場合は、管理者権限を持つアカウントを設定してください。
本作業は、rootユーザで実施してください。
rcスクリプトの編集
サービス化のため、rcスクリプト("ijmq")が下記のディレクトリに提供されています。
格納先
/opt/FJSVisjee/imq/etc/init.d
任意の場所に、ijmqスクリプトを複写(以下の例:/tmpディレクトリ)します。
cp /opt/FJSVisjee/imq/etc/init.d/ijmq /tmp
複写後、ijmqファイルの以下の項目を編集します。設定値は、ダブルクォーテーション("")で囲んで設定してください。また、以下の項目以外は、編集しないでください。rcスクリプトが正しく動作しない可能性があります。
サービス化するブローカプロセスが使用するポート番号。
注)ここで設定した値は、ブローカのインスタンス名としても採用されます。
ブローカプロセスに設定するブローカオプションのリスト。
複数指定する場合は、オプションを半角の空白で区切ってください。
ブローカプロセス起動時にJVMに渡すVMオプションのリスト。
複数指定する場合は、オプションを半角の空白で区切ってください。
以下のように設定します。
#!/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コマンドを使用して、メッセージブローカを停止します。停止対象のメッセージブローカが動作するホスト名とポート番号を指定してください。コマンドの詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「imqcmd」-「shutdown bkrサブコマンド」を参照してください。
imqcmd shutdown bkr -b localhost:37676
メッセージブローカの一時停止
imqcmdコマンドを使用して、メッセージブローカを一時停止します。メッセージブローカを一時停止すると、新しい接続の受け入れ、メッセージの受信、配信を停止できます。コマンドの詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「imqcmd」-「pause bkrサブコマンド」を参照してください。
imqcmd pause bkr -b localhost:37676
メッセージブローカの再開
imqcmdコマンドを使用して、メッセージブローカを再開します。メッセージブローカを再開すると、メッセージブローカの新しい接続の受け入れ、メッセージの受信、配信が再開されます。コマンドの詳細については、「リファレンスマニュアル(コマンド編)」の「Java EE運用コマンド」-「imqcmd」-「resume bkrサブコマンド」を参照してください。
imqcmd resume bkr -b localhost:37676