ページの先頭行へ戻る
Interstage Application Server V13.0.0 GlassFish 設計・構築・運用ガイド
FUJITSU Software

4.15.3 メッセージブローカのREMOTE運用

ここでは、以下について説明します。

メッセージブローカの起動

JMSクライアントアプリケーションが物理格納先にメッセージを送受信する場合、物理格納先を管理しているメッセージブローカを事前に起動する必要があります。

メッセージブローカは、以下の方法で起動します。

なお、メッセージブローカを起動する前に、「メッセージブローカ起動時の注意事項」を参照し、メッセージブローカを正常に起動できるよう注意してください。

コマンドによる起動

imqbrokerdコマンドを使用して、メッセージブローカを起動します。詳細については、「10.5 imqbrokerd」を参照してください。

C:\Interstage\glassfish5\mq\bin\imqbrokerd -name メッセージブローカ名 -port ポート番号

/opt/FJSViaps/glassfish5/mq/bin/imqbrokerd -name メッセージブローカ名 -port ポート番号

ポイント

imqbrokerdコマンド実行後、コマンドプロンプトは復帰しません。


サービス化による起動

メッセージブローカは、通常コマンドで起動する必要がありますが、オペレーティングシステム起動時に自動起動する運用を行う場合は、以下の手順でサービス化することができます。


登録

imqsvcadmin installサブコマンドを実行して、サービスに登録します。メッセージブローカがサービス名「Interstage Message Queue Broker(glassfish5)」としてサービスに登録されます。コマンドの詳細については、「10.7.1 installサブコマンド」を参照してください。

C:\Interstage\glassfish5\mq\bin\imqsvcadmin install -args メッセージブローカの起動引数

メッセージブローカのインスタンス名を「test」、ポート番号を「17696」に設定してサービス化する場合は、以下のようにimqsvcadminコマンドを実行します。

C:\Interstage\glassfish5\mq\bin\imqsvcadmin install -args "-name test -port 17696"
解除

imqsvcadmin removeサブコマンドを実行して、サービス登録を解除します。サービスの削除実行時にメッセージブローカが起動中だった場合、メッセージブローカの停止後にサービスから削除されます。コマンドの詳細については、「10.7.2 removeサブコマンド」を参照してください。

C:\Interstage\glassfish5\mq\bin\imqsvcadmin remove

注意

  • サービス化できるメッセージブローカは、1つです。

  • サービス登録時に指定した情報は、変更できません。変更する場合は、いったんサービスを削除してから、新しい情報を使用して登録してください。

  • サービスのログオンアカウントを設定する場合は、管理者権限を持つアカウントを設定してください。

  • サービスの登録状態とサービス登録時に指定した情報は、バックアップ・リストアの対象になりません。リストア時には、必要に応じてメッセージブローカのサービス登録作業から再度実行してください。

登録

本作業は、rootユーザーで実施してください。

  1. RCプロシジャの編集

    サービス化のため、RCプロシジャ("ijmq")が、以下のディレクトリーに提供されています。

    格納先

    /opt/FJSViaps/glassfish5/mq/etc/init.d

    ijmqファイルを、任意の場所(以下の例では/workディレクトリー)に複写します。

    cp /opt/FJSViaps/glassfish5/mq/etc/init.d/ijmq /work

    複写後、ijmqファイルの以下の項目を編集します。設定値は、ダブルクォーテーション("")で囲んで設定してください。

    BROKER_PORT

    サービス化するメッセージブローカプロセスが使用するポート番号です。
    ここで設定した値は、メッセージブローカのインスタンス名としても採用されます。

    BROKER_OPT

    メッセージブローカプロセスに設定するメッセージブローカオプションのリストです。
    複数指定する場合は、オプションを半角の空白で区切ってください。

    VM_ARGS

    メッセージブローカプロセス起動時にJVMに渡すVMオプションのリストです。
    複数指定する場合は、オプションを半角の空白で区切ってください。

    注意

    RCプロシジャの編集について

    RCプロシジャ("ijmq")は、直接編集しないでください。必ず任意の場所に複写した後、複写したファイルを編集してください。
    また、上記以外の項目は、編集しないでください。RCプロシジャが正しく動作しない可能性があります。

    ポート番号の設定について

    ポート番号には、システム上のアプリケーションを含むすべてのサービスにおいて、それぞれ異なるポート番号を設定する必要があります。以下の値を設定しないでください。

    ・システム内の他のサービス、システム上のアプリケーションが使用するポート番号
    ・システムが動的に割り当てる領域のポート番号(エフェメラルポート)

    ポート番号の設定については、「付録D ポート番号」を参照してください。

    以下のように設定します。

    #!/bin/sh
    #
    # Copyright 2021 FUJITSU LIMITED
    #
    # FUJITSU Software Interstage Application Server
    # Message Broker Start/Stop/Check script
    
    # set broker port
    BROKER_PORT="17696"
    BROKER_OPT="-Dimq.system.max_count=1 -Dimq.system.max_size=1k"
    VM_ARGS="-Xmx256m"
  2. RCプロシジャの格納

    1.で作成したファイルのパーミッションを「0500」に変更し、/etc/init.dに格納します。複数のRCプロシジャの作成/登録を行う場合は、RCプロシジャのファイル名を変更して登録してください。

    chmod 0500 /work/ijmq
    mv /work/ijmq /etc/init.d/ijmq01
  3. サービスの登録

    /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
解除

本作業は、rootユーザーで実施してください。

  1. サービスの停止

    サービスが起動している場合は、停止します。

    /etc/init.d/ijmq01 stop
  2. サービスの登録解除

    /etc/rc0.d、/etc/rc2.dに、作成したシンボリックリンクを削除します。

    rm /etc/rc0.d/K03ijmq01
    rm /etc/rc2.d/S97ijmq01
  3. RCプロシジャの削除

    /etc/init.dに格納したRCプロシジャを、別ディレクトリーに退避/削除します。

注意

  • 登録したサービスは、Interstageのアンインストール時に削除されません。アンインストール後に不要となったサービスは、必ず削除してください。

  • RCプロシジャは、GlassFish Serverクラスターのバックアップ・リストアの対象になりません。バックアップ時には、別途、登録したRCプロシジャファイルのバックアップを行ってください。また、リストア時には、バックアップしたRCプロシジャの登録作業から再度実行してください。

登録

本作業は、rootユーザーで実施してください。

  1. unitファイルの編集

    サービス化のため、unitファイル("FJSVijmq.service")が、以下のディレクトリーに提供されています。

    格納先

    /opt/FJSViaps/glassfish5/mq/etc/systemd/system/FJSVijmq.service

    FJSVijmq.serviceファイルを、任意の場所(以下の例では/workディレクトリー)に複写します。

    cp /opt/FJSViaps/glassfish5/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項目の値が未設定の場合や削除されている場合は、サービスの処理が正しく動作しない可能性があります。
    また、上記以外の項目は、編集しないでください。サービスの処理が正しく動作しない可能性があります。

    ポート番号の設定について

    ポート番号には、システム上のアプリケーションを含むすべてのサービスにおいて、それぞれ異なるポート番号を設定する必要があります。以下の値を設定しないでください。

    ・システム内の他のサービス、システム上のアプリケーションが使用するポート番号
    ・システムが動的に割り当てる領域のポート番号(エフェメラルポート)

    ポート番号の設定については、「付録D ポート番号」を参照してください。

    以下のように設定します。

    [Unit]
    Description=%p
    Wants=network-online.target
    After=network.target network-online.target rsyslog.service remote-fs.target nss-lookup.target
    Before=FJSVpcmiglassfish5_start.service FJSVpcmiglassfish5_stop.service
    
    [Service]
    Environment="BROKER_PORT=17696"
    Environment="BROKER_OPT=-Dimq.system.max_count=1 -Dimq.system.max_size=1k"
    Environment="VM_ARGS=-Xmx256m"
    Type=forking
  2. 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
  3. サービスの登録

    systemctlコマンドを使用してサービスを登録します。

    systemctl enable FJSVijmq_sample.service
  4. サービスの起動

    systemctlコマンドを使用してサービスを起動します。

    systemctl start FJSVijmq_sample.service
再登録

一度サービス登録した後に、unitファイルを編集し再度登録する場合は、必ず以下のコマンドを実行してください。

systemctl daemon-reload
解除

本作業は、rootユーザーで実施してください。

  1. サービスの停止

    サービスが起動している場合は、停止します。

    systemctl stop FJSVijmq_sample.service
  2. サービスの登録解除

    systemctlコマンドを使用してサービスの登録を解除します。

    systemctl disable FJSVijmq_sample.service
  3. unitファイルの削除

    /etc/systemd/systemに格納したunitファイルを、別ディレクトリーに退避/削除します。

注意

  • 登録したサービスは、製品のアンインストール時に削除されません。アンインストール後に不要となったサービスは、必ず削除してください。

  • unitファイルは、バックアップ・リストアの対象になりません。バックアップ時には、別途、登録したunitファイルをバックアップしてください。また、リストア時には、バックアップしたunitファイルの登録作業から再度実行してください。


メッセージブローカの起動状態の確認

imqcmd list svcサブコマンドを使用して、メッセージブローカの起動状態が確認できます。コマンドの詳細については、「10.6.8 list svcサブコマンド」を参照してください。

メッセージブローカが起動している場合

「Successfully listed services.」が出力されます。

C:\Interstage\glassfish5\mq\bin\imqcmd list svc -b localhost:17696
Username: admin
Password:
Listing all the services on the broker specified by:

-------------------------
Host         Primary Port
-------------------------
localhost    17696

------------------------------------------------
Service Name    Port Number        Service State
------------------------------------------------
admin           49205 (dynamic)    RUNNING
httpjms         -                  UNKNOWN
httpsjms        -                  UNKNOWN
jms             49206 (dynamic)    RUNNING
jmsdirect       -                  RUNNING
mqdirect2       -                  RUNNING
ssladmin        dynamic            UNKNOWN
ssljms          dynamic            UNKNOWN
wsjms           7670 (static)      UNKNOWN
wssjms          7671 (static)      UNKNOWN

Successfully listed services.

メッセージブローカが停止している場合

C4003が出力されます。

/opt/FJSViaps/glassfish5/mq/bin/imqcmd list svc -b localhost:17696
Username: admin
Password:
Listing all the services on the broker specified by:

-------------------------
Host         Primary Port
-------------------------
localhost    17696

Nov 29, 2016 9:34:38 AM com.sun.messaging.jmq.jmsclient.ExceptionHandler throwConnectionException
WARNING: [C4003]: Error occurred on connection creation [localhost:17696]. - cause: java.net.ConnectException: Connection refused
Error while connecting to the broker on host 'localhost' and port '17696'.
[C4003]: Error occurred on connection creation [localhost:17696]. - cause: java.net.ConnectException: Connection refused
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.

メッセージブローカ起動時の注意事項

メッセージブローカの停止

imqcmd shutdown bkrサブコマンドを使用して、メッセージブローカを停止します。停止対象のメッセージブローカが動作するホスト名とポート番号を指定してください。コマンドの詳細については、「10.6.20 shutdown bkrサブコマンド」を参照してください。

C:\Interstage\glassfish5\mq\bin\imqcmd shutdown bkr -b localhost:17696

/opt/FJSViaps/glassfish5/mq/bin/imqcmd shutdown bkr -b localhost:17696

メッセージブローカの一時停止

imqcmd pause bkrサブコマンドを使用して、メッセージブローカを一時停止します。メッセージブローカを一時停止すると、新しい接続の受け入れ、メッセージの受信、配信を停止できます。コマンドの詳細については、「10.6.9 pause bkrサブコマンド」を参照してください。

C:\Interstage\glassfish5\mq\bin\imqcmd pause bkr -b localhost:17696

/opt/FJSViaps/glassfish5/mq/bin/imqcmd pause bkr -b localhost:17696

メッセージブローカの再開

imqcmd resume bkrサブコマンドを使用して、メッセージブローカを再開します。メッセージブローカを再開すると、メッセージブローカの新しい接続の受け入れ、メッセージの受信、配信が再開されます。コマンドの詳細については、「10.6.18 resume bkrサブコマンド」を参照してください。

C:\Interstage\glassfish5\mq\bin\imqcmd resume bkr -b localhost:17696

/opt/FJSViaps/glassfish5/mq/bin/imqcmd resume bkr -b localhost:17696

管理ユーザーパスワードの変更

imqcmdコマンドを使用する場合は、メッセージブローカの管理ユーザーとパスワードが必要です。管理ユーザーとパスワードについては、「5.9.1 ユーザーとグループ」を参照してください。

メッセージブローカには、管理ユーザー「admin」が、デフォルトで作成されています。セキュリティの観点から、管理ユーザー「admin」のパスワードは必ず変更してください。
パスワードは、imqusermgr updateサブコマンドを使用して変更します。コマンドの詳細については、「10.8.3 updateサブコマンド」を参照してください。


変更手順
  1. メッセージブローカを起動します。

  2. imqusermgr updateサブコマンドを使用して管理ユーザー「admin」のパスワードを変更します。

  3. GlassFish Serverクラスターを停止します。

  4. DASを停止します。

  5. メッセージブローカを停止します。

  6. メッセージブローカを起動します。

  7. DASを起動します。

  8. GlassFish Serverクラスターを起動します。

注意

管理ユーザー「admin」の管理ユーザーパスワードを変更する前にパスワードファイルを作成している場合は、管理ユーザーパスワードを変更したあと、imqusermgr encodeサブコマンドを使用してパスワードファイルを再作成してください。コマンドの詳細については、「10.8.5 encodeサブコマンド」を参照してください。