JMSに関する運用操作法について説明します。なお、各属性の詳細については[ 7.3.1. JMSサービスの操作 > 7.3.1.2. 属性参照・設定 ]、および[ リファレンス集 運用管理・設定編 > 2. MO定義リファレンス ]を参照してください。
JMSサービスで管理しているJMSサーバの起動と停止、および、項目の参照と設定の手順について説明します。
図7.3.1.1-1
otxadmin> invoke server.jms-service.start |
otxadmin> start-jms |
otxadmin> invoke server.jms-service.stop |
otxadmin> stop-jms |
JMSサービスの属性の詳細については、MO定義リファレンスの「jms-service」を参照してください。
統合運用管理ツールでの属性名 | 運用管理コマンドでの属性名(attribute-name) |
---|---|
システム内メッセージ最大数 | systemMaxCount |
システム内メッセージ最大合計サイズ | systemMaxSize |
最大メッセージサイズ | messageMaxSize |
ログレベル | loglevel |
ログロールオーバーサイズ | logfileRolloverBytes |
ログロールオーバー間隔 | logfileRolloverSecs |
自動トピック作成の許可 | autocreateTopic |
自動キュー作成の許可 | autocreateQueue |
自動生成キューに対するアクティブコンシューマの最大数 | autocreateMaxNumActiveConsumers |
自動生成キューに対するバックアップコンシューマの最大数 | autocreateMaxNumBackupConsumers |
JMSクライアントメモリ情報採取 | enableClientMetrics |
メッセージ一覧表示最大件数 | displayMessageCount |
パケット(メッセージ)情報採取 | logPacketMessage |
パケット(PING)情報採取 | logPacketPing |
パケット(運用管理)情報採取 | logPacketAdmin |
パケット(クラスタ)情報採取 | logPacketCluster |
パケットログロールオーバーサイズ | logfileRolloverBytesPacket |
パケットログロールオーバー間隔 | logfileRolloverSecsPacket |
運用管理操作履歴採取 | logAdmin |
運用管理操作履歴ファイルロールオーバーサイズ | logfileRolloverBytesAdmin |
運用管理操作履歴ファイルロールオーバー間隔 | logfileRolloverSecsAdmin |
メッセージライフサイクル情報採取 | logMessage |
メッセージログロールオーバーサイズ | logfileRolloverBytesMessage |
メッセージログロールオーバー間隔 | logfileRolloverSecsMessage |
エラー情報採取 | logError |
エラーログロールオーバーサイズ | logfileRolloverBytesError |
エラーログロールオーバー間隔 | logfileRolloverSecsError |
図7.3.1.3-1
図7.3.1.3-2
instance-name=jms1 |
JMSサーバクラスタを構成しているときに、クラスタ内の各JMSサーバの状態を確認する場合に利用します。表示する情報は次のとおりです。
この説明での「ローカルのJMSサーバ」とは、操作を実行したドメイン上のJMSサーバをさします。
表示名 | 説明 |
---|---|
Broker ID | JMSサーバインスタンス識別子。ローカルのJMSサーバのもののみ表示します。 |
Address | JMSサーバのアドレス。<ホスト名>:<ポート番号>の形式で表示します。 |
State | JMSサーバの状態。 OPERATING : ローカルのJMSサーバの場合は、起動状態であることを示します。リモートのJMSサーバの場合は、通信が確立できていることを示します。 BROKER_DOWN : リモートのJMSサーバが停止しているか、通信が確立できていない状態を示します。 |
図7.3.1.4-1
otxadmin> list-jms-services |
結果表示例) --------------------------------------------- Broker ID Address State --------------------------------------------- BROKER1 SVR1:9900 OPERATING BROKER2 SVR2:9700 OPERATING Command list-jms-services executed successfully.
JMSサーバに接続しているJMSクライアントのコネクションを確認する場合に利用します。表示する情報は次のとおりです。
表示名 | 説明 |
---|---|
Connection ID | コネクションID |
Client ID | クライアントID |
User | ユーザ名 |
Service | コネクションサービス名。コネクションサービスには次のものがあります。 jms:JMSのコネクションサービス ssljms:JMSのSSLコネクションサービス admin:管理用のコネクションサービス ssladmin:管理用のSSLコネクションサービス |
Producers | プロデューサ数 |
Consumers | コンシューマ数 |
Host | ホスト名(IPアドレス) |
Port | ポート番号 |
Max Memory | 最大メモリサイズ。「JMSクライアントメモリ情報採取(enableClientMetrics)」をtrueにしている場合、通常ユーザのコネクションに対する情報を表示します。 |
Current Memory | 現在のメモリサイズ。「JMSクライアントメモリ情報採取(enableClientMetrics)」をtrueにしている場合、通常ユーザのコネクションに対する情報を表示します。 |
Peak Memory | ピーク時のメモリサイズ。「JMSクライアントメモリ情報採取(enableClientMetrics)」をtrueにしている場合、通常ユーザのコネクションに対する情報を表示します。 |
図7.3.1.5-1
otxadmin> list-jms-connections [--wojmsListType <表示対象タイプ>] [--wojmsDestinationName <送信先名>] |
otxadmin> list-jms-connections --wojmsListType CONSUMERS --wojmsDestinationName MyQueue |
結果表示例) ---------------------------------------------------------------------------------------------------------------------- Connection ID Client ID User Service Producers Consumers Host Port Max Memory Current Memory Peak Memory ---------------------------------------------------------------------------------------------------------------------- 7738908095054457858 JMS_C00010 guest jms 0 1 127.0.0.1 2957 0 0 0 7738908095054509825 JMS_C00020 guest jms 0 1 127.0.0.1 2977 0 0 0 7738908095054473986 JMS_C00013 guest jms 0 1 127.0.0.1 2963 0 0 0 コマンド list-jms-connections は正常に実行されました。
JMSサーバから、JMSクライアントのコネクションを強制的にクローズする場合に利用します。
otxadmin> close-jms-connection [--wojmsCloseType <クローズ対象タイプ>] [--wojmsDestinationName <送信先名>] [--wojmsConnectionID <コネクションID>] |
otxadmin> close-jms-connection --wojmsCloseType CONSUMERS --wojmsDestinationName MyQueue |
otxadmin> close-jms-connection --wojmsConnectionID 102030494848 |
JMSサーバクラスタを構成しているときに、別のドメインからの伝播により作成した送信先のMOを表示するときに利用します。
otxadmin> invoke server.jms-service.updateJmsDestinations |
otxadmin> list-jmsdest |
otxadmin> invoke server.jms-service.dumpThreads |
物理的な送信先の作成と削除、および、項目の参照と設定の手順について説明します。
図7.3.2.1-1
otxadmin> create-jmsdest --desttype <送信先タイプ> [オプション] |
otxadmin> create-jmsdest --desttype topic --cascade MyTopic |
otxadmin> list-jmsdest [--desttype <送信先タイプ>] |
otxadmin> list-jmsdest --desttype topic |
otxadmin> delete-jmsdest <送信先名> |
otxadmin> delete-jmsdest --cascade MyTopic |
物理的な送信先の属性の詳細については、MO定義リファレンスの「jms-physical-destination」を参照してください。
送信先の動作状況や、その送信先に接続しているプロデューサやコンシューマの情報を確認する場合に利用します。表示する情報は次のとおりです。
表示名 | 説明 |
---|---|
Current State | 送信先の状態。次の状態が存在します。 RUNNING : 動作中 CONSUMERS_PAUSED : コンシューマが停止している状態 PRODUCERS_PAUSED : プロデューサが停止している状態 PAUSED : コンシューマ、プロデューサともに停止している状態 |
Current Number of Messages | 滞留メッセージ数 |
Current Total Message Bytes | 滞留メッセージバイト数 |
Current Number of Producers | プロデューサ数 |
Current Number of Active Consumers | コンシューマ数 |
Current Number of Backup Consumers | バックアップコンシューマ数(キューの場合のみ) |
表示名 | 説明 |
---|---|
Producer ID | プロデューサID |
Connection ID | コネクションID |
Client ID | クライアントID |
表示名 | 説明 |
---|---|
Consumer ID | プロデューサID |
Connection ID | コネクションID |
Client ID | クライアントID |
Last Ack Time | コンシューマが最後に確認応答(ACKNOWLEDGE)を返した時刻 |
Selector | セレクタ |
図7.3.2.4-1
otxadmin> get-jmsdest-info <送信先名> |
otxadmin> get-jmsdest-info MyTopic |
結果表示例) Current State RUNNING Current Number of Messages 8 Current Total Message Bytes 1192 Current Number of Producers 2 Current Number of Active Consumers 1 Current Number of Backup Consumers 0 Producers: -------------------------------------------------- Producer ID Connection ID Client ID -------------------------------------------------- 7458277433419032321 7458277433419020544 7458277433396530432 7458277433396232704 Consumers: ---------------------------------------------------------------------------------------------- Consumer ID Connection ID Client ID Last Ack Time Selector ---------------------------------------------------------------------------------------------- 7458277433426870528 7458277433426854656 2009/03/04 11:46:12.590 TestProperty IS NULL コマンド get-jmsdest-info は正常に実行されました。
図7.3.2.5-1
なお、現時点の送信先の停止状態は、「情報取得」で確認することができます。
otxadmin> invoke server.jms-service.jms-physical-destination.<送信先名>.pause <停止タイプ> |
停止タイプ | 説明 |
---|---|
1 | コンシューマを停止(CONSUMERS_PAUSED) |
2 | プロデューサを停止(PRODUCERS_PAUSED) |
3 | コンシューマ、プロデューサともに停止(PAUSED) |
otxadmin> invoke server.jms-service.jms-physical-destination.MyTopic.pause 2 |
otxadmin> invoke server.jms-service.jms-physical-destination.<送信先名>.resume |
otxadmin> invoke server.jms-service.jms-physical-destination.MyTopic.resume |
送信先に滞留している一つ一つのメッセージ情報を確認する場合に利用します。表示する情報は次のとおりです。
表示名 | 説明 |
---|---|
Timestamp | タイムスタンプ。JMSTimestamp ヘッダフィールドの値です。long 値を「yyyy/MM/dd HH:mm:ss.SSS」形式に変換して表示します。 |
Type | メッセージタイプ。次のタイプが存在します。 TEXT_MESSAGE : javax.jms.TextMessage のメッセージ BYTES_MESSAGE : javax.jms.BytesMessage のメッセージ MAP_MESSAGE : javax.jms.MapMessage のメッセージ STREAM_MESSAGE : javax.jms.StreamMessage のメッセージ OBJECT_MESSAGE : javax.jms.ObjectMessage のメッセージ MESSAGE : javax.jms.Message のメッセージ |
MessageID | メッセージID。JMSMessageID ヘッダフィールドの値です。 |
CorrelationID | 相関ID。JMSCorrelationID ヘッダフィールドの値です。 |
DeliveryMode | 配信モード。JMSDeliveryMode ヘッダフィールドの値です。 |
Expiration | 有効期限。JMSExpiration ヘッダフィールドの値です。 |
State | JMSサーバに存在するメッセージの状態。送信先がキューの場合のみ表示します。次の状態が存在します。 INITIAL : 配信対象のコンシューマが決定していない状態 ROUTED : 配信対象のコンシューマが決定した状態 DELIVERED : コンシューマにメッセージを配信した状態 CONSUMED : コンシューマでメッセージを受信した状態 ACKED : コンシューマからの応答確認(ACKNOWLEDGE)が返ってきた状態 |
DeliveryCount | 配信回数。JMSXDeliveryCount プロパティの値です。送信先がキューの場合のみ表示します。 |
Priority | 優先順位。JMSPriority ヘッダフィールドの値です。もっとも低い順位が 0 で、もっとも高い順位が 9 です。 |
MessageProperty | メッセージプロパティ |
MessageBody | メッセージボディ。指定された場合のみ表示します。表示内容はメッセージタイプに応じて次のようになっています。 TEXT_MESSAGE : javax.jms.TextMessage のメッセージ BYTES_MESSAGE、MAP_MESSAGE、STREAM_MESSAGE : メッセージボディのサイズのみ表示 OBJECT_MESSAGE : javax.jms.ObjectMessage のメッセージ MESSAGE : (表示なし) |
otxadmin> list-jmsdest-messages [--fromIndex <表示開始点>] [--toIndex <表示終了点>] [--selector <メッセージセレクタ>] [--messageBody=(true|false)] <送信先名> |
otxadmin> list-jmsdest-messages --selector "NewsType = 'Sports' OR NewsType = 'Business'" MyQueue |
otxadmin> invoke server.jms-service.jms-physical-destination.<送信先名>.purgeMessage <メッセージID> |
otxadmin> invoke server.jms-service.jms-physical-destination.MyQueue.purgeMessage 6-172.16.254.239(fd:af:ca:bc:90:f6)-2380-1148467078081 |
otxadmin> invoke server.jms-service.jms-physical-destination.<送信先名>.purge |
otxadmin> invoke server.jms-service.jms-physical-destination.MyQueue.purge |
図7.3.2.8-1
otxadmin> list-jmsdest-dur <トピック名> |
otxadmin> list-jmsdest-dur MyTopic |
結果表示例) ------------------------------------------------------------------- Durable Sub. Name Client ID Number of Messages Durable Sub. State ------------------------------------------------------------------- subscription client1 92 false subscription client2 0 true Command list-jmsdest-dur executed successfully.表示する情報は、左から順に、永続サブスクリプション名、クライアントID、メッセージ数、状態(true:アクティブ/false:非アクティブ)です。
otxadmin> invoke server.jms-service.jms-physical-destination.<送信先名>.purgeDur <永続サブスクリプション名> <クライアントID> |
otxadmin> invoke server.jms-service.jms-physical-destination.MyTopic.purgeDur subscription client2 |
otxadmin> invoke server.jms-service.jms-physical-destination.<送信先名>.deleteDur <永続サブスクリプション名> <クライアントID> |
otxadmin> invoke server.jms-service.jms-physical-destination.MyTopic.deleteDur subscription client2 |
環境構築時の確認や、コンシューマアプリケーションの受信動作確認など、簡単なメッセージ送信に利用できます。1回のメッセージ送信操作で送信できるメッセージは、1件です。
送信メッセージに設定できる項目と既定値は、次のとおりです。設定項目の()内の記述は、対応するヘッダフィールド名を示します。
設定項目 | 説明 | 既定値 |
---|---|---|
メッセージタイプ | 送信するメッセージのタイプ 次のタイプが送信可能。 TextMessage : メッセージボディにStringを含むもの Message : メッセージボディのない軽量なメッセージ BytesMessage : メッセージボディにバイト配列を含むもの |
TextMessage |
メッセージボディの指定方法 | メッセージボディの指定方法 text : メッセージボディに指定された文字列をボディそのものとして設定 file : メッセージボディに指定された文字列をファイル名として、指定されたファイルの内容をメッセージボディに設定 |
text |
メッセージボディ | メッセージボディ TextMessageの場合 : メッセージボディタイプのtext、fileをサポート。file を指定した場合、文字コードはプラットフォームのデフォルトエンコーディングなる Messageの場合 : メッセージボディなし。指定されていても無視 BytesMessageの場合 : メッセージボディタイプはfileのみ有効。指定されたファイルの内容をバイト配列に変換して設定 |
- |
配信モード (JMSDeliveryMode) | メッセージを永続化するかどうか PERSISTENT : 永続化する NON_PERSISTENT : 永続化しない |
PERSISTENT |
有効期限 (JMSExpiration) | メッセージの有効期限 (ミリ秒) |
0 (有効期限なし) |
優先順位 (JMSPriority) | メッセージの優先順位 (0-9) |
4 |
相関ID (JMSCorrelationID) | メッセージを対応付けるための文字列 指定可能な値は、Stringのみ。 |
- |
応答用送信先 (JMSReplyTo) | メッセージを受信したコンシューマが返信する送信先 |
- |
応答用送信先のタイプ | 応答用送信先のタイプ queue : キュー topic : トピック |
queue |
タイプ (JMSType) | 任意の文字列 |
- |
配信遅延時間 | 配信遅延時間 WebOTX JMS固有の拡張機能で、相対時間(秒)での指定のみ可能。 |
0 (遅延時間なし) |
メッセージプロパティ | メッセージプロパティ 設定可能なプロパティ値は、Stringのみ。 |
- |
otxadmin> send-jms-message [--msgtype <メッセージタイプ>] [--msgbodytype <メッセージボディの指定方法>] [--msgbody <メッセージボディ>] [--msgpersistent <配信モード>] [--msgexpiration <有効期限>] [--msgpriority <優先順位>] [--msgcorrelationid <相関ID>] [--msgreplyto <応答用送信先>] [--msgreplytotype <応答用送信先タイプ>] [--msgjmstype <タイプ>] [--msgdelaytime <配信遅延時間>] [--property <メッセージプロパティ>] <送信先名> |
送信先に滞留している通常メッセージや、不達メッセージ(再配信回数の上限を超えたメッセージ)、有効期限切れメッセージを別の送信先に移動する場合に利用します。移動後のメッセージはメッセージIDなどが変わります。移動によるメッセージヘッダや、プロパティの変更内容は次のとおりです。
ヘッダ / プロパティ | 移動対象 | ||
---|---|---|---|
通常メッセージ / 永続サブスクリプション | 不達メッセージ | 有効期限切れメッセージ | |
JMSDestination | 移動先の送信先 元の送信先の情報は、WOJMSOriginalDestinationName に設定します。 |
移動先の送信先 元の送信先の情報は、WOJMSOriginalDestinationName に設定します。 |
移動先の送信先 元の送信先の情報は、WOJMSOriginalDestinationName に設定します。 |
JMSDeliveryMode | 変更しない | WOJMSOriginalPersistentから復元 | WOJMSOriginalPersistentから復元 |
JMSExpiration | 変更しない | WOJMSOriginalExpirationから復元 | クリア(0を設定) |
JMSPriority | 変更しない | 変更しない | 変更しない |
JMSMessageID | 新規メッセージIDに変更 元の情報は、WOJMSOriginalMessageID に設定します。 |
WOJMSOriginalMessageIDから復元 | WOJMSOriginalMessageIDから復元 |
JMSTimestamp | 移動した時刻に変更 | WOJMSOriginalTimeStampから復元 | WOJMSOriginalTimeStampから復元 |
JMSCorrelationID | 変更しない | 変更しない | 変更しない |
JMSReplyTo | 変更しない | 変更しない | 変更しない |
JMSType | 変更しない | 変更しない | 変更しない |
JMSRedelivered | 変更しない | 変更しない | 変更しない |
WOJMSDelayTime | 変更しない | WOJMSOriginalDelayTimeから復元 | WOJMSOriginalDelayTimeから復元 |
WOJMSOriginalMessageID | 移動前のメッセージID | 削除 | 削除 |
WOJMSOriginalDestinationName | 移動前の送信先名 | 移動前の送信先名 | 移動前の送信先名 |
WOJMSOriginalExpiration | - | 削除 | 削除 |
WOJMSOriginalTransactionID | - | 削除 | 削除 |
WOJMSOriginalPersistent | - | 削除 | 削除 |
WOJMSOriginalTimeStamp | - | 削除 | 削除 |
WOJMSOriginalDelayTime | - | 削除 | 削除 |
WOJMSDeletedReason | - | 削除 | 削除 |
そのほかのメッセージプロパティ | 変更しない (すべてのプロパティをそのまま設定) | 変更しない (すべてのプロパティをそのまま設定) | 変更しない (すべてのプロパティをそのまま設定) |
otxadmin> move-jmsdest-messages --msgmovetype move_type [--selector selector] <移動元の送信先名> <移動先の送信先名> |
otxadmin> move-jmsdest-messages --msgmovedur durable_name --msgmovecid client_id <移動元の送信先名> <移動先の送信先名> |
otxadmin> move-jmsdest-messages --msgmovetype redelivery DMQ MyQueue |
otxadmin> move-jmsdest-messages --msgmovedur Sub1 --msgmovecid Client1 MyTopic MyQueue |
送信先に滞留しているメッセージの優先順位を、運用操作により変更する場合に利用します。
otxadmin> update-jms-message [--msgpriority <優先順位>] <送信先名> <メッセージID> |
otxadmin> update-jms-message --msgpriority 9 MyQueue 6-172.16.254.239(fd:af:ca:bc:90:f6)-2380-1148467078081 |
JMSリソース(コネクションファクトリリソース、送信先リソース)の作成と削除、および、項目の参照と設定の手順について説明します。
図7.3.3.1-1
otxadmin> create-jms-resource --restype <リソースタイプ> [オプション] <JNDI名> |
otxadmin> create-jms-resource --restype javax.jms.Topic --wojmsDestinationName MyTopic jms/MyTopic |
図7.3.3.2-1
otxadmin> delete-jms-resource <JNDI名> |
otxadmin> delete-jms-resource jms/MyTopic |
JMSリソース(コネクションファクトリリソース、送信先リソース)の属性の詳細については、MO定義リファレンスの「jms-connection-factory」、および、「jms-logical-destination」を参照してください。
otxadmin> get server.resources.jms-resource.jms-connection-factory.jms/MyQueueFactory.wojmsConnectionType |
otxadmin> get server.resources.jms-resource.jms-connection-factory.jms/MyQueueFactory.* |
otxadmin> set server.resources.jms-resource.jms-connection-factory.jms/MyQueueFactory.wojmsConnectionType=TCP |
otxadmin> get server.resources.jms-resource.jms-connection-factory.jms/MyQueueFactory.property.* |
JMSサービスに関する統計情報の採取、および、取得方法について説明します。統計情報の取得に関する詳細は、 [ ドメイン構築・基本設定ガイド > 9. モニタリング ] を参照してください。
図7.3.4-1
図7.3.4-2
otxadmin> set server.monitoring-service.module-monitoring-levels.jms-service=ON |
otxadmin> get --monitor=true server.jms-service.jms-physical-destination.MyTopic.* |