メッセージブローカのJavaヒープが不足している場合の対処
imqsvcadminコマンドを使用してメッセージブローカをサービスに登録している場合
imqsvcadmin removeコマンドを使用して、メッセージブローカのサービスを削除後、imqsvcadmin installコマンドに「-vmargs -Xmx<size>」オプションを指定して、メッセージブローカを再登録します。
例
メッセージブローカのJavaヒープを512MBにする場合
imqsvcadmin install -vmargs -Xmx512m
imqbrokerdコマンドを使用してメッセージブローカを起動している場合
imqbrokerdコマンドを「-vmargs -Xmx<size>」オプションをつけて実行し、メッセージブローカを起動します。
例
メッセージブローカのJavaヒープを512MBにする場合
imqbrokerd -vmargs -Xmx512m
rcスクリプトを使用してメッセージブローカを起動している場合
ijmqファイルの「VM_ARGS」の項目に「-Xmx<size>」オプションを追加します。
例
メッセージブローカのJavaヒープを512MBにする場合
VM_ARGS="-Xmx512m"
imqbrokerdコマンドを使用してメッセージブローカを起動している場合
imqbrokerdコマンドを「-vmargs -Xmx<size>」オプションをつけて実行し、メッセージブローカを起動します。
例
メッセージブローカのJavaヒープを512MBにする場合
imqbrokerd -vmargs -Xmx512m
メッセージブローカを停止できない
起動しているすべてのメッセージブローカをimqcmdコマンドで停止してください。
imqcmdコマンドで停止できないメッセージブローカについては、以下の対処を行なってください。
タスクマネージャのプロセス一覧からイメージ名「imqbrokersvc.exe」が存在するかどうかを確認します。
イメージ名「imqbrokersvc.exe」を選択して右クリックし、「プロセスツリーの終了」を選択します。
タスクマネージャの警告画面が表示されるので、「はい」をクリックします。
当該メッセージブローカのPIDを特定します。
以下のコマンドを実行して、imqbrokerdコマンドのPIDとPPIDを取得します。
[global zoneの場合]
ps -efz global | grep imqbrokerd | grep -v "grep imqbrokerd" | grep -v /opt/FJSVisje6/mq/bin/imqbrokerd
[non-global zoneの場合]
ps -ef | grep imqbrokerd | grep -v "grep imqbrokerd" | grep -v /opt/FJSVisje6/mq/bin/imqbrokerd
上記コマンドで取得したPIDとPPIDからメッセージブローカのPIDを取得します。
ps -e -o pid,ppid | grep $pid | grep -v -w $ppid | awk '{print $(1)}'
当該メッセージブローカプロセスを強制停止します。
kill $メッセージブローカのpid
当該メッセージブローカのPIDを特定します。
以下のコマンドを実行して、imqbrokerdコマンドのPIDとPPIDを取得します。
ps -ef | grep imqbrokerd | grep -v "grep imqbrokerd" | grep -v /opt/FJSVisje6/mq/bin/imqbrokerd
上記コマンドで取得したPIDとPPIDからメッセージブローカのPIDを取得します。
ps -e -o pid,ppid | grep $pid | grep -v -w $ppid | awk '{print $(1)}'
当該メッセージブローカプロセスを強制停止します。
kill $メッセージブローカのpid
アクセス制御ファイル(accesscontrol.properties)またはパスワードファイル(passwd)が存在しない場合の対処
アクセス制御ファイル(accesscontrol.properties)またはパスワードファイル(passwd)が存在しないために、コマンドを使用してメッセージブローカの起動または停止ができない場合は、以下の対処を行ってください。
下記デフォルトのアクセス制御ファイル「accesscontrol.properties.default」を「accesscontrol.properties」として、コマンド実行時に出力されるエラー情報に記載されたアクセス制御ファイルのパスへコピーしてください。
C:\Interstage\F3FMisjee\imq\etc\accesscontrol.properties.default
/opt/FJSVisjee/imq/etc/accesscontrol.properties.default
下記デフォルトのパスワードファイル「passwd.default」を「passwd」として、コマンド実行時に出力されるエラー情報に記載されたパスワードファイルのパスにコピーしてください。
C:\Interstage\F3FMisjee\imq\etc\passwd.default
/opt/FJSVisjee/imq/etc/passwd.default
ポイント
imqcmdコマンドでメッセージブローカを停止する場合は、デフォルトユーザとデフォルトパスワードを指定して実行してください。
コピー先のファイルの権限を「root/root 0644」に変更してください。
注意
本操作後は、メッセージブローカのユーザ設定が初期化されます。
「Java EE運用ガイド」の「JMSのセキュリティ機能」に記述されている設定を再度実行してから、メッセージブローカを起動してください。
JMS送信先リソースにQueueを使用するMessage-driven Beanを配備した場合、Topicの物理格納先に接続される
以下の可能性があります。
JMS送信先リソースの参照先にIJServerクラスタが指定されていない可能性があります。
asadmin list-resource-refsサブコマンドを使用して、JMS送信先リソースの参照先にIJServerクラスタが指定されているかを確認してください。IJServerクラスタが指定されていない場合は、asadmin create-resource-refサブコマンドを使用してIJServerクラスタを参照先に指定してください。
JMS送信先リソースが利用不可になっている可能性があります。
asadmin get IJServerクラスタ名.resources.admin-object-resource.JNDI名.enabledコマンドを使用して、JMS送信先リソースが利用不可になっていないかを確認してください。JMS送信先リソースが利用不可になっている場合は、有効にしてください。
上記対応後、Message-driven Beanの再配備を行い、必要に応じてTopicの物理格納先を削除してください。
Windows(R)のサービスから「Interstage Message Queue Broker」の停止ができない
imqcmd shutdown bkrサブコマンドに、停止したいメッセージブローカのポート番号を指定して、メッセージブローカを停止してください。
なお、サービスプロセスが多く存在することにより、デスクトップヒープが枯渇している可能性があります。デスクトップヒープの枯渇については、「5.5 デスクトップヒープが枯渇した場合」を参照してください。