メッセージブローカは、通常コマンドで起動する必要がありますが、オペレーティングシステム起動時に自動起動する運用を行う場合は、以下の手順でサービス化できます。
imqsvcadmin installサブコマンドを実行して、サービスに登録します。メッセージブローカがサービス名「Message Queue Broker(glassfish)」としてサービスに登録されます。
C:\eapf\glassfish\mq\bin\imqsvcadmin install -args メッセージブローカの起動引数
例
メッセージブローカのインスタンス名を「test」、ポート番号を「27676」に設定してサービス化する場合は、以下のようにimqsvcadminコマンドを実行します。
C:\eapf\glassfish\mq\bin\imqsvcadmin install -args "-name test -port 27676"
imqsvcadmin removeサブコマンドを実行して、サービス登録を解除します。サービスの削除実行時にメッセージブローカが起動中だった場合、メッセージブローカの停止後にサービスから削除されます。
C:\eapf\glassfish\mq\bin\imqsvcadmin remove
注意
サービス化できるメッセージブローカは、1つです。
サービス登録時に指定した情報は、変更できません。変更する場合は、いったんサービスを削除してから、新しい情報を使用して登録してください。
サービスのログオンアカウントを設定する場合は、管理者権限を持つアカウントを設定してください。
サービスの登録状態とサービス登録時に指定した情報は、バックアップ・リストアの対象になりません。リストア時には、必要に応じてメッセージブローカのサービス登録作業から再度実行してください。
本作業は、rootユーザーで実施してください。
unitファイルの編集
サービス化のため、unitファイル("FJSVijmq.service")が、以下のディレクトリーに提供されています。
格納先
/opt/FJSVeapf/glassfish/mq/etc/systemd/system/FJSVijmq.service
FJSVijmq.serviceファイルを、任意の場所(以下の例では/workディレクトリー)に複写します。
cp /opt/FJSVeapf/glassfish/mq/etc/systemd/system/FJSVijmq.service /work
複写後、FJSVijmq.serviceファイルのEnvironmentオプションに設定されている以下の項目を編集します。Environmentオプションは、ダブルクォーテーション("")で囲んで設定してください。
BROKER_PORT
サービス化するメッセージブローカプロセスが使用するポート番号です。
ここで設定した値は、メッセージブローカのインスタンス名としても採用されます。
BROKER_OPT
メッセージブローカプロセスに設定するメッセージブローカオプションのリストです。
複数指定する場合は、オプションを半角の空白で区切ってください。
本項目を削除しないでください。また本項目に必ず値を設定してください。
VM_ARGS
メッセージブローカプロセス起動時にJVMに渡すVMオプションのリストです。
複数指定する場合は、オプションを半角の空白で区切ってください。
注意
unitファイルの編集について
unitファイル("FJSVijmq.service")は、直接編集しないでください。必ず任意の場所に複写した後、複写したファイルを編集してください。
BROKER_PORT項目を削除しないでください。また必ず値を設定してください。
BROKER_PORT項目の値が未設定の場合や削除されている場合は、サービスの処理が正しく動作しない可能性があります。
また、上記以外の項目は、編集しないでください。サービスの処理が正しく動作しない可能性があります。
ポート番号の設定について
ポート番号には、システム上のアプリケーションを含むすべてのサービスで、それぞれ異なるポート番号を設定する必要があります。以下の値を設定しないでください。
システム内の他のサービス、システム上のアプリケーションが使用するポート番号
システムが動的に割り当てる領域のポート番号(エフェメラルポート)
ポート番号の設定については、「付録C ポート番号」を参照してください。
例
以下のように設定します。
[Unit] Description=%p Wants=network-online.target After=network.target network-online.target rsyslog.service remote-fs.target nss-lookup.target Before=FJSVpcmi_start.service FJSVpcmi_stop.service [Service] Environment="BROKER_PORT=27676" Environment="BROKER_OPT=-Dimq.system.max_count=1 -Dimq.system.max_size=1k" Environment="VM_ARGS=-Xmx256m" Type=forking
unitファイルの格納
1.で作成したファイルのパーミッションを「0400」に変更し、/etc/systemd/systemに格納します。
注意
unitファイルを作成/登録する場合は、unitファイルのファイル名を変更して登録してください。
unitファイル名は、「FJSVijmq_識別子.service」とすることを推奨します。なお、識別子には、半角英数字だけを使用してください。
また、複数のunitファイルを作成/登録する場合は、unitファイル名の識別子を同じにしないでください。
chmod 0400 /work/FJSVijmq.service mv /work/FJSVijmq.service /etc/systemd/system/FJSVijmq_sample.service
サービスの登録
systemctlコマンドを使用してサービスを登録します。
systemctl enable FJSVijmq_sample.service
サービスの起動
systemctlコマンドを使用してサービスを起動します。
systemctl start FJSVijmq_sample.service
一度サービス登録した後に、unitファイルを編集し再度登録する場合は、必ず以下のコマンドを実行してください。
systemctl daemon-reload
本作業は、rootユーザーで実施してください。
サービスの停止
サービスが起動している場合は、停止します。
systemctl stop FJSVijmq_sample.service
サービスの登録解除
systemctlコマンドを使用してサービスの登録を解除します。
systemctl disable FJSVijmq_sample.service
unitファイルの削除
/etc/systemd/systemに格納したunitファイルを、別ディレクトリーに退避/削除します。
注意
登録したサービスは、製品のアンインストール時に削除されません。アンインストール後に不要となったサービスは、必ず削除してください。
unitファイルは、バックアップ・リストアの対象になりません。バックアップ時には、別途、登録したunitファイルをバックアップしてください。また、リストア時には、バックアップしたunitファイルの登録作業から再度実行してください。