7. JMS

JMSに関する設定について説明します。

7.1. JMS設定項目・設定方法

JMSサーバは独立したプロセスで実装しており、WebOTXのアプリケーションサーバ本体には、リソースアダプタにより接続連携しています。

JMSサーバや、JMSリソース、および、送信先の基本的な管理は、運用管理コマンド (otxadmin)、あるいは、統合運用管理ツールで行います。さらに詳細な管理を行うためには、JMSサーバが提供している専用の運用管理ツールを利用します。

運用管理コマンド、あるいは、統合運用管理ツールからの各項目の設定方法については、「 各サービスの属性」を参照してください。また、JMSサーバが提供している専用の各運用管理ツールについては、「 コマンド > JMS」を参照してください。

7.1.1. JMSサーバに対する設定

JMSサーバの運用に関するプロパティは、JMSサービス (jms-service) と、JMSホスト (jms-host) のMOから設定できます。

運用管理コマンドや、統合運用管理ツールでは、それぞれ以下のように指定します。

運用管理コマンド:
server.jms-service
server.jms-service.jms-host.default_JMS_host

統合運用管理ツール:
管理ドメイン [ <ホスト名> ] .<ドメイン名>.アプリケーションサーバ.JMSサービス
管理ドメイン [ <ホスト名> ] .<ドメイン名>.アプリケーションサーバ.JMSサービス.JMSホスト.default_JMS_host

JMSサーバは、1〜4のプロパティを取り込みます。優先順位は、後ろのものほど高くなっています。

7.1.1.1. default.propertiesファイル

プロパティのデフォルト値が定義されたファイルで、次の位置にあります。

${AS_INSTALL}/jmq/lib/props/broker/default.properties

注意 :
利用者は直接編集を行わないで下さい。

7.1.1.2. install.propertiesファイル

インストール時に指定されたプロパティが格納されるファイルで、次の位置にあります。

${AS_INSTALL}/jmq/lib/props/broker/install.properties

注意 :
利用者は直接編集を行わないで下さい。

7.1.1.3. config.propertiesファイル

ドメイン固有のJMSサーバに対するプロパティ設定を記述するファイルで、次の位置にあります。ファイルはドメイン生成時に作成されます。

${INSTANCE_ROOT}/jmq/instances/<JMSサーバインスタンス識別子>/props/config.properties

備考 :
<JMSサーバインスタンス識別子>の既定値は「jmqbroker」です。

7.1.1.4. JMSサーバの起動引数 (server.jms-service.start-args)

起動引数で指定したプロパティは、すべてのプロパティ設定ファイルに対して優先されます。

7.1.2. コネクションファクトリに対する設定

7.1.2.1. コネクションファクトリリソース

コネクションファクトリリソースは、Java EEアプリケーションからJNDIを通して利用します。項目の設定や、参照を行う場合、運用管理コマンドや、統合運用管理ツールでは、それぞれ以下のように指定します。
connection-factory-name」は、コネクションファクトリリソースの定義名で、JNDIの登録名になります。

運用管理コマンド:
server.resources.jms-resource.jms-connection-factory. connection-factory-name

統合運用管理ツール:
管理ドメイン [ <ホスト名> ] .<ドメイン名>.リソース.JMSリソース.コネクションファクトリリソース. connection-factory-name

7.1.3. 送信先に対する設定

7.1.3.1. 送信先

物理的な送信先の設定や、項目の参照を行う場合、運用管理コマンドや、統合運用管理ツールでは、それぞれ以下のように指定します。「 physical-destination-name」は、送信先の定義名です。

運用管理コマンド:
server.jms-service.jms-physical-destination. physical-destination-name

統合運用管理ツール:
管理ドメイン [ <ホスト名> ] .<ドメイン名>.アプリケーションサーバ.JMSサービス.送信先名. physical-destination-name
7.1.3.2. 送信先リソース

送信先リソースは、Java EEアプリケーションからJNDIを通して利用します。項目の設定や、参照を行う場合、運用管理コマンドや、統合運用管理ツールでは、それぞれ以下のように指定します。
logical-destination-name」は、送信先リソースの定義名で、JNDIの登録名になります。

運用管理コマンド:
server.resources.jms-resource.jms-logical-destination. logical-destination-name

統合運用管理ツール:
管理ドメイン [ <ホスト名> ] .<ドメイン名>.リソース.JMSリソース.送信先リソース. logical-destination-name

7.2. JMS設定項目一覧

運用管理コマンド、統合運用管理ツールで制御できるMOの属性と、そのベースとなるJMSのプロパティ/属性一覧を示します。

7.2.1. MOの属性一覧

JMSに関連するMOのうち、属性を設定できるものは、以下の5種類です。以降、各MOについて設定できる属性を説明します。

7.2.2. JMSサービス

連携するJMSサーバに関する情報を定義します。
この定義は、運用管理コマンドのcreate-domainによるドメイン生成時に自動的に設定されます。
MOのdottednameは「server.jms-service」です。設定可能な属性や、操作については、「 MBean定義 > jms-service」を参照してください。
なお、jms-serviceの「プロパティ」として設定できるのは、以下の項目です。

プロパティ名
説 明 既定値
auto-shutdown ドメイン停止時にJMSサーバを停止するかどうかを指定します。
true:停止する
false:停止しない
true
instance-name JMSサーバインスタンス識別子を指定します。
※ 同一ホストでJMSサーバクラスタを構成する場合は、この値をホスト内で一意にしておく必要があります。
jmqbroker
wojmsConnectionPooling JMSリソースアダプタ利用時に、コネクタコネクションプールにJMSサーバとの物理的なコネクションをプールするかどうかを指定します。
true:プールする
false:プールしない
※ この設定は、アプリケーションサーバ上で動作するJMSコネクションファクトリリソースが利用するすべてのコネクタコネクションプールに影響します。
true

7.2.3. JMSホスト

JMSサーバの起動、JMSサーバへの接続に必要な情報を定義します。
この定義は、create-domainコマンドによるドメイン生成時に自動的に設定されます。ポート番号については、create-domainコマンドの--fileオプションで指定するプロパティファイル (ドメイン設定ファイル) に、domain.jms.portとして指定することができます。
MOのdottednameは「server.jms-service.jms-host.default_JMS_host」です。設定可能な属性や、操作については、「 MBean定義 > jms-host」を参照してください。

7.2.4. コネクションファクトリリソース

JNDIを通してアクセスするコネクションファクトリリソースを定義します。
この定義は、運用管理コマンドのcreate-jms-resource、統合運用管理ツールでは、「管理ドメイン [ <ホスト名> ] .<ドメイン名>.リソース.JMSリソース」の「コネクションファクトリリソースの作成」操作で作成されます。コネクションファクトリリソースの作成方法については、「 構築・運用 > JMS > JMSリソース」を参照してください。
コネクションファクトリリソース (jms-connection-factory) 作成時には、コネクタリソース (connector-resource)、コネクタコネクションプール (connector-connection-pool)、および、リソース参照 (resource-ref) を自動的に作成し、属性値を設定します。 属性値を変更する場合は、コネクションファクトリリソースのMOを介して行います。 各MOのdottednameは以下のとおりです。

コネクションファクトリリソース
server.resources.jms-resource.jms-connection-factory. connection-factory-name

コネクタリソース
server.resources.connector-resource. connection-factory-name

コネクタコネクションプール
server.resources.connector-connection-pool. connection-factory-name

リソース参照
server.resource-ref. connection-factory-name

設定可能な属性や、操作については、「 MBean定義」を参照してください。

注意 :
コネクションファクトリリソース作成時、「プロパティ」に属性と同じ名前の項目を指定した場合は、「プロパティ」に指定されたものが優先されます。

7.2.5. 送信先

物理的な送信先を定義します。
この定義は、運用管理コマンドのcreate-jmsdest、統合運用管理ツールでは、「管理ドメイン [ <ホスト名> ] .<ドメイン名>.アプリケーションサーバ.JMSサービス」の「送信先作成」操作で作成されます。送信先の作成方法については、「 構築・運用 > JMS > 送信先の操作」を参照してください。
MOのdottednameは「server.jms-service.jms-physical-destination.destination-name」です。設定可能な属性や、操作については、「 MBean定義 > jms-physical-destination」を参照してください。

注意 :
送信先作成時、「プロパティ」に属性と同じ名前の項目を指定した場合は、「プロパティ」に指定されたものが優先されます。

7.2.6. 送信先リソース

JNDIを通してアクセスする送信先リソースを定義します。
この定義は、運用管理コマンドのcreate-jmsresource、統合運用管理ツールでは、「管理ドメイン [ <ホスト名> ] .<ドメイン名>.リソース.JMSリソース」の操作である「送信先リソースの作成」で作成されます。送信先リソースの作成方法については、「 構築・運用 > JMS > 送信先の操作」を参照してください。
送信先リソース (jms-logical-destination) 作成時には、管理オブジェクトリソース (admin-object-resource) と、リソース参照 (resource-ref) を自動的に作成し、属性値を設定します。
属性値を変更する場合は、送信先リソースのMOを介して行います。
各MOのdottednameは以下のとおりです。

送信先リソース
server.resources.jms-resource.jms-logical-destination. logical-destination-name

管理オブジェクトリソース
server.resources.admin-object-resource. logical-destination-name

リソース参照
server.resource-ref. logical-destination-name

設定可能な属性や、操作については、「 MBean定義」を参照してください。

注意 :
送信先リソース作成時、「プロパティ」に属性と同じ名前の項目を指定した場合は、「プロパティ」に指定されたものが優先されます。

7.2.7. JMSのプロパティ/属性一覧

ここでは、以下のプロパティや属性について説明します。

JMSサーバのプロパティ
JMS設定項目・設定方法 > JMSサーバに対する設定」で説明した、「 config.propertiesファイル」に設定できるプロパティです。以下のカテゴリに分けて説明しています。


JMSクライアントのプロパティ
非Java EE環境下で動作するJavaアプリケーションに有効であり、Javaシステムプロパティとして設定します。

7.2.8. JMSサーバのプロパティ

「config.properties」ファイルに設定するプロパティの一覧を示します。このファイルには、JMSサービス (jms-service) や、JMSホスト (jms-host) のMOから設定できない詳細な項目を指定します。「config.properties」ファイルの変更は、JMSサーバを停止した状態で行ってください。
ファイルの格納場所、設定方法については、「 JMS設定項目・設定方法」を参照してください。

ただし、以下のプロパティについては、JMSサービス、あるいは、JMSホストのMOの属性値が優先されます。これらの値を設定する場合は各MOの属性値を設定してください。

MOの属性が優先されるプロパティ

JMSサーバのプロパティ名
対応するMOの属性
wojms.system.max_count server.jms-service.systemMaxCount
wojms.system.max_size server.jms-service.systemMaxSize
wojms.message.max_size server.jms-service.messageMaxSize
wojms.log.level server.jms-service.loglevel
wojms.log.file.rolloverbytes server.jms-service.logfileRolloverBytes
wojms.log.file.rolloversecs server.jms-service.logfileRolloverSecs
wojms.autocreate.topic server.jms-service.autocreateTopic
wojms.autocreate.queue server.jms-service.autocreateQueue
wojms.autocreate.queue.maxNumActiveConsumers server.jms-service.autocreateMaxNumActiveConsumers
wojms.autocreate.queue.maxNumBackupConsumers server.jms-service.autocreateMaxNumBackupConsumers
wojms.redelivery.delay server.jms-service.wojmsRedeliveryDelay
wojms.redelivery.limit server.jms-service.wojmsRedeliveryLimit
wojms.redelivery.destination server.jms-service.wojmsRedeliveryDestination
wojms.expiration.destination server.jms-service.wojmsExpirationDestination
wojms.client_metrics.enabled server.jms-service.enableClientMetrics
wojms.display.message.count server.jms-service.displayMessageCount
wojms.log.file.filename server.jms-service.logfileName
wojms.log.admin.output server.jms-service.logAdmin
wojms.log.admin.rolloverbytes server.jms-service.logfileRolloverBytesAdmin
wojms.log.admin.rolloversecs server.jms-service.logfileRolloverSecsAdmin
wojms.log.admin.filename server.jms-service.logfileNameAdmin
wojms.log.error.output server.jms-service.logError
wojms.log.error.rolloverbytes server.jms-service.logfileRolloverBytesError
wojms.log.error.rolloversecs server.jms-service.logfileRolloverSecsError
wojms.log.error.filename server.jms-service.logfileNameError
wojms.log.message.output server.jms-service.logMessage
wojms.log.message.rolloverbytes server.jms-service.logfileRolloverBytesMessage
wojms.log.message.rolloversecs server.jms-service.logfileRolloverSecsMessage
wojms.log.message.filename server.jms-service.logfileNameMessage
wojms.log.packet.output server.jms-service.logPacketAdmin
server.jms-service.logPacketMessage
server.jms-service.logPacketPing
server.jms-service.logPacketCluster
wojms.log.packet.rolloverbytes server.jms-service.logfileRolloverBytesPacket
wojms.log.packet.rolloversecs server.jms-service.logfileRolloverSecsPacket
wojms.log.packet.filename server.jms-service.logfileNamePacket
wojms.enable_cluster server.jms-service.enableCluster
wojms.cluster.brokerlist server.jms-service.clusterBrokerList
wojms.cluster.masterbroker server.jms-service.clusterMasterBroker
wojms.persist.store server.jms-service.storeType
wojms.persist.jdbc.brokerid server.jms-service.jdbcStoreBrokerid
(server.jms-service.storeTypeでJDBCストアを指定している場合のみ)
wojms.persist.jdbc.user server.jms-service.jdbcStoreUser
(server.jms-service.storeTypeでJDBCストアを指定している場合のみ)
wojms.persist.jdbc.password server.jms-service.jdbcStorePassword
(server.jms-service.storeTypeでJDBCストアを指定している場合のみ)
wojms.jms.tcp.port server.jms-service.connectionServicePortJms
wojms.admin.tcp.port server.jms-service.connectionServicePortAdmin
wojms.ssljms.tls.port server.jms-service.connectionServicePortSsljms
wojms.ssladmin.tls.port server.jms-service.connectionServicePortSsladmin
wojms.cluster.port server.jms-service.clusterPort
wojms.cluster.hostname server.jms-service.clusterHostname
wojms.keystore.password server.jms-service.keystorePassword
7.2.8.1. JMSサーバ全体のプロパティ
プロパティ名
説 明 既定値
wojms.portmapper.port JMSサーバのポート番号を指定します。同一ホストで複数のJMSサーバのインスタンスを実行する場合、それぞれ固有のポート番号を割り当てる必要があります。 9700
wojms.portmapper.backlog 要求を拒否せずに、同時に処理可能な要求の最大数を指定します。 50
wojms.producer.maxBatch プロデューサが一度に送信できるメッセージの最大数を指定します。 1000
wojms.message.expiration.interval 有効期限が切れたメッセージを廃棄する間隔を秒単位で指定します。 60
wojms.system.max_count JMSサーバが保持するメッセージの最大数を指定します。この値を超えるメッセージは拒否されます。-1は無制限です。 -1
wojms.system.max_size JMSサーバが保持するメッセージの最大のサイズ (バイト、K バイト、または M バイト単位) を指定します。この値を超えるメッセージは拒否されます。
128,128bは128バイトを、128kは128Kバイト (128×1024=131072バイト)、128mは128Mバイト (128×1024×1024=134217728バイト) を表します。-1は無制限です。
-1
wojms.message.max_size メッセージの本体の最大許容サイズ (バイト、K バイト、または Mバイト単位) を指定します。このサイズを超えるメッセージは拒否されます。
128,128bは128バイトを、128kは128Kバイト (128×1024=131072バイト)、128mは128Mバイト (128×1024×1024=134217728バイト) を表します。-1は無制限です。
70m
wojms.display.message.count メッセージ一覧の表示で、出力するメッセージの最大数を指定します。 1000
wojms.redelivery.delay メッセージ再配信の遅延時間を秒単位で指定します。0は、待ち合わせ無しです。 0
wojms.redelivery.limit メッセージ再配信回数の上限を指定します。-1は無制限、0は再配信無しです。再配信回数の上限を超過したメッセージは破棄されます。 -1
wojms.redelivery.destination 再配信回数を超過したメッセージを破棄せずに転送する送信先名を指定します。ここに指定する送信先は、あらかじめ作成しておく必要があります (自動的に作成されません)。指定した送信先が存在しない場合、メッセージは破棄されます。
wojms.expiration.destination 有効期限切れメッセージを破棄せずに転送する送信先名を指定します。ここに指定する送信先は、あらかじめ作成しておく必要があります (自動的に作成されません)。指定した送信先が存在しない場合、メッセージは破棄されます。
7.2.8.2. コネクションサービスに関するプロパティ
プロパティ名
説 明 既定値
wojms.service.activelist JMS起動時に活性化するサービス群を指定します。
jms:JMSのコネクションサービス
ssljms:JMSのSSLコネクションサービス
admin:管理用のコネクションサービス
ssladmin:管理用のSSLコネクションサービス
jms,admin
wojms.shared.connectionMonitor_limit threadpool_modelにsharedを選択した場合に、コネクションを監視するスレッドの対象コネクションの最大数を指定します。-1は無制限です。 Windows:64
Unix:512
wojms.< svc>.min_threads svcで示したコネクションサービスが使用するスレッドプールの最小数を指定します。
既定値はコネクションサービスにより異なります。
jms:10
ssljms:10
admin:4
ssladmin:4
wojms.< svc>.max_threads svcで示したコネクションサービスが使用するスレッドプールの最大数を指定します。
既定値はコネクションサービスにより異なります。
0より大きく、かつmin_threadsで指定した値より大きくする必要があります。
jms:1000
ssljms:500
admin:10
ssladmin:10
wojms.< svc>.threadpool_model svcで示したコネクションサービスが使用するスレッドプールモデルを指定します。
dedicated:コネクション毎に専用のスレッドを割り当てる。
shared:複数のコネクション間でスレッドを共有する。共有するコネクションの数はconnectionMonitor_limitで指定する。このモデルはjmsとadminの場合のみに指定できる。
※jmsコネクションサービスのみは、jms-serviceの「useSharedThread」属性をtrueにすることで、sharedにすることができます。
dedicated
wojms.< svc>.tcp.hostname svcで示したサービスで使用するホスト名、もしくはIPアドレスを指定します。複数のネットワークインタフェース (NIC) を持つような場合に固定することができます。指定がない場合は、任意を意味します。
wojms.< svc>.tcp.port svcで示したコネクションサービスで使用するポート番号を指定します。
0は、動的アサインを意味します。
jms:9701
admin:9702
wojms.< svc>.tls.port svcで示したSSLコネクションサービスで使用するポート番号を指定します。
0は、動的アサインを意味します。
ssljms:9703
ssladmin:9704
7.2.8.3. セキュリティに関するプロパティ
プロパティ名
説 明 既定値
wojms.keystore.file.dirpath SSL ベースのサービスの場合は、キーストアファイルが配置されているディレクトリへのパスを指定します。 ${AS_INSTALL}/jmq/etc
wojms.keystore.file.name SSL ベースのサービスの場合は、キーストアファイル名を指定します。 keystore
wojms.keystore.password SSL ベースのサービスの場合に、 キーストアのパスワードを指定します。
wojms.passfile.enabled セキュリティ保護される通信用 (SSL、JDBC) のユーザパスワードをパスワードファイルで指定するどうかを指定します。
true:パスワードファイルで指定する
false:パスワードファイルで指定しない
※ パスワードファイルの詳細は、「パスワードファイルの使用」を参照してください。
false
wojms.passfile.dirpath パスワードファイルが配置されているディレクトリへのパスを指定します。 ${AS_INSTALL}/jmq/etc
wojms.passfile.name パスワードファイルのファイル名を指定します。 passfile
wojms.accesscontrol.enabled JMSサーバでサポートされるすべてのコネクションサービスに対して、アクセス制御を行うかどうかを設定します。
true:アクセス制御を行う
false:アクセス制御を行わない
アクセス制御プロパティファイルに指定されているとおり、認証されたユーザがコネクションサービスを使用するためのアクセス権を保持しているかどうか、あるいは特定の送信先に対して特定の JMS操作を実行するためのアクセス権を保持していることをシステムでチェックするかどうかを指定します。
true
wojms.< svc>.accesscontrol.enabled svcで指定したコネクションサービスに対して、アクセス制御を行うかどうかを設定し、JMSサーバ全体の設定 (wojms.accesscontrol.enabled) をオーバーライドします。
true:アクセス制御を行う
false:アクセス制御を行わない
アクセス制御プロパティファイルに指定されているとおり、認証されたユーザが、指定したコネクションサービスを使用するためのアクセス権を保持しているか、あるいは特定の送信先に対して特定の JMS 操作を実行するためのアクセス権を保持していることをシステムでチェックするかどうかを指定します。
wojms.accesscontrol.file.dirpath アクセス制御プロパティファイルが配置されているディレクトリへのパスを指定します。 ${wojms.instanceshome}${/}${wojms.instancename}${/}etc
wojms.accesscontrol.file.filename JMSサーバインスタンスでサポートされるすべてのコネクションサービスに対するアクセス制御プロパティファイルの名前を指定します。ファイル名には、アクセス制御ディレクトリからの相対ファイルパスを指定します。 accesscontrol.properties
wojms.< svc>.accesscontrol.file.filename JMSサーバインスタンスの、svcで指定したコネクションサービスに対するアクセス制御プロパティファイルの名前を指定します。ファイル名には、アクセス制御ディレクトリからの相対ファイルパスを指定します。
wojms.authentication.client.response.timeout JMSサーバからの認証要求に対するクライアントの応答を待機する時間を秒単位で指定します。 180
7.2.8.4. 永続ストアに関するプロパティ
プロパティ名
説 明 既定値
wojms.persist.store 組み込みのファイルストア、またはプラグインの JDBCストアのどちらをJMSサーバが使用するかを指定します。
file:ファイルストア
jdbc:JDBCストア
file
wojms.persist.file.message.max_record_size 組み込みのファイルストアで、メッセージストレージファイル (個別のファイルではない) に追加されるメッセージの最大サイズ (バイト、K バイト、または Mバイト単位) を指定します。
128,128bは128バイトを、128kは128Kバイト (128×1024=131072バイト)、128mは128Mバイト (128×1024×1024=134217728バイト) を表します。
1m
wojms.persist.file.message.filepool.cleanratio 組み込みのファイルストアの場合に、クリーン状態 (サイズを 0 にする) で保持される送信先のファイルプールの空きファイルの割合 (%) を指定します。この値が大きいほど、作業中にファイルを削除するのに必要なオーバーヘッドが増えますが、ファイルプールに必要なディスク容量は小さくなります。 0
wojms.persist.file.destination.message.filepool.limit 組み込みのファイルストアの場合に、送信先のファイルプールで再利用できる空きファイルの最大数を指定します。この値が大きいほど、JMSサーバが永続データを処理する速度が速くなります。この値を超える空きファイルは削除されます。 100
wojms.persist.file.message.cleanup 組み込みのファイルストアで、JMSサーバのシャットダウン時に、送信先のファイルプール内の空きファイルを削除するかどうかを指定します。値をfalseに設定すると、JMSサーバのシャットダウンが速くなりますが、ファイルを格納するためのディスク容量がさらに必要になります。 false
wojms.persist.file.sync.enabled 永続処理でメモリ内の状態を物理的なストレージと同期させるかどうかを指定します。true の場合、システムクラッシュによるデータ損失は回避されますが、永続処理のパフォーマンスに負荷がかかります。 false
wojms.persist.jdbc.dbtype JDBC ストアで利用する DBMS を指定します。
oracle:Oracle
postgresql:PostgreSQL
sqlserver:Microsoft SQL Server
wojms.persist.jdbc.< dbtype>.driver dbtype で指定したデータベースに接続する JDBC ドライバの Java クラス名を指定します。
wojms.persist.jdbc.opendburl 既存データベースへのコネクションを開くためのデータベース URL を指定します。
wojms.persist.jdbc.brokerid
(省略可能)
複数のJMSサーバインスタンスが、永続データストアとして、同じデータベースを使用する場合、データベーステーブル名を一意にするために、データベーステーブル名に追加されるJMSサーバインスタンス識別子を指定します。通常、1 つのJMSサーバインスタンスだけのデータを格納する組み込みデータベースでは不要です。識別子には、英数字を使用し、データベースで許可されているテーブル名の最大数 12 を超えないようにする必要があります。
wojms.persist.jdbc.user
(省略可能)
必要に応じて、データベースコネクションを開くときに使用するユーザ名を指定します。
wojms.persist.jdbc.password データベースコネクションを開くときに使用するパスワードを指定します。
wojms.persist.jdbc.retrycount JDBCストア利用時のデータベースへの再接続試行回数を指定します。 10
wojms.persist.jdbc.retryinterval JDBCストア利用時のデータベースへの再接続遅延時間を秒単位で指定します。 10
wojms.persist.jdbc.< dbtype>.table.WOJMSSV35 dbtype で指定した DBMS に対するバージョンテーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.< dbtype>.table.WOJMSCCREC35 dbtype で指定した DBMS に対する設定変更レコードテーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.< dbtype>.table.WOJMSDEST35 dbtype で指定した DBMS に対する送信先テーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.< dbtype>.table.WOJMSINT35 dbtype で指定した DBMS に対する配信対象テーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.< dbtype>.table.WOJMSMSG35 dbtype で指定した DBMS に対するメッセージテーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.< dbtype>.table.WOJMSPROPS35 dbtype で指定した DBMS に対するプロパティテーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.< dbtype>.table.WOJMSILIST82 dbtype で指定した DBMS に対する配信対象の状態テーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.< dbtype>.table.WOJMSTXN35 dbtype で指定した DBMS に対するトランザクションテーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.< dbtype>.table.WOJMSTACK35 dbtype で指定した DBMS に対するトランザクション通知テーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値異なります。詳細は「 JDBCストアを利用するための設定」を参照してください。
7.2.8.5. ログ出力に関するプロパティ
プロパティ名
説 明 既定値
wojms.log.level ログレベルを指定します。指定できるレベルは高いものから順に、 NONE, ERROR, WARNING, INFO, DEBUG, DEBUGMED, DEBUGHIGH です。
あるカテゴリを指定すると、指定したカテゴリとそれより上のレベルのカテゴリが含まれます。
INFO
wojms.log.timezone ログのタイムスタンプのタイムゾーンを指定します。識別子は、 java.util.TimeZone.getTimeZone() が使用しているものと同じです。
wojms.log.file.rolloverbytes ログの出力先ファイルを切り替えるファイルサイズをバイト単位で指定します。-1は出力先の切り替えを行いません。 1048576
wojms.log.file.
rolloversecs
ログの出力先ファイルを切り替える間隔を秒単位で指定します。-1は出力先の切り替えを行いません。 -1
wojms.log.file.dirpath ログファイルが格納されているディレクトリへのパスを指定します。デフォルト値は、install.propertiesファイルに定義されています。 ${wojms.instanceshome}/../../logs/jmq
wojms.log.file.filename ログファイル名を指定します。デフォルト値は、install.propertiesファイルに定義されています。 jmqserver.log
wojms.log.file.filenum ログファイルのバックアップ数を指定します。 9
wojms.log.file.output ログファイルに書き込むロギング情報のカテゴリを指定します。指定できる値は、 縦線 (|) で区切ったロギングのカテゴリ (ERROR, WARNING, INFO, DEBUG, DEBUGMED, DEBUGHIGH) のセットか、ALL または NONEです。
ALL:すべてのカテゴリを出力
NONE:出力しない
ALL
wojms.log.console.stream コンソールの出力先を指定します。
OUT:標準出力
ERR:標準エラー出力
ERR
wojms.log.console.output コンソールへ書き込むロギング情報のカテゴリを指定する。指定できる値は、縦線 (|) で区切ったロギングのカテゴリ (ERROR, WARNING, INFO, DEBUG, DEBUGMED, DEBUGHIGH) のセットか、ALL または NONEです。
ALL:すべてのカテゴリを出力
NONE:出力しない
ERROR|WARNING
wojms.log.admin.rolloverbytes 運用管理操作履歴を出力するファイルを切り替えるサイズをバイト単位で指定します。-1は出力先の切り替えを行いません。 1048576
wojms.log.admin.rolloversecs 運用管理操作履歴を出力するファイルを切り替える時間を秒単位で指定します。-1は出力先の切り替えを行いません。 -1 (切り替えなし)
wojms.log.admin.dirpath 運用管理操作履歴の出力ディレクトリへのパスを指定します。 ${wojms.log.file.dirpath}
wojms.log.admin.filename 運用管理操作履歴のファイル名を指定します。 jmqadmin.log
wojms.log.admin.filenum 運用管理操作履歴ファイルのバックアップ数を指定します。 9
wojms.log.admin.output 運用管理操作履歴へ出力するログカテゴリを指定します。指定できる値は、 ADMIN または NONEです。 ADMIN
wojms.log.packet.rolloverbytes パケットログを出力するファイルを切り替えるサイズをバイト単位で指定します。-1は出力先の切り替えを行いません。 1048576
wojms.log.packet.rolloversecs パケットログを出力するファイルを切り替える時間を秒単位で指定します。-1は出力先の切り替えを行いません。 -1 (切り替えなし)
wojms.log.packet.dirpath パケットログの出力ディレクトリへのパスを指定します。 ${wojms.log.file.dirpath}
wojms.log.packet.filename パケットログのファイル名を指定します。 jmqpacket.log
wojms.log.packet.filenum パケットログファイルのバックアップ数を指定します。 9
wojms.log.packet.output パケットログへ出力するログカテゴリを指定します。指定できる値は、 縦線 (|) で区切ったロギングのカテゴリ (PACKET_MESSAGE、PACKET_PING、PACKET_ADMIN、PACKET_CLUSTER_MESSAGE、NONE) のセットか、ALL または NONEです。
PACKET_MESSAGE:JMSメッセージの送受信でやり取りされるパケット (制御用のパケットを含む) の情報を出力
PACKET_PING:JMSサーバや、JMSクライアントの起動状態確認で送受信されるPINGパケットの情報を出力
PACKET_ADMIN:運用管理操作で送受信されるパケットの情報を出力
PACKET_CLUSTER_MESSAGE:JMSサーバクラスタを構成しているときに、JMSサーバ間で送受信されるパケットの情報を出力
NONE:出力しない
NONE
wojms.log.message.rolloverbytes メッセージライフサイクルログを出力するファイルを切り替えるサイズをバイト単位で指定します。-1は出力先の切り替えを行いません。 1048576
wojms.log.message.rolloversecs メッセージライフサイクルログを出力するファイルを切り替える時間を秒単位で指定します。-1は出力先の切り替えを行いません。 -1 (切り替えなし)
wojms.log.message.dirpath メッセージライフサイクルログの出力ディレクトリへのパスを指定します。 ${wojms.log.file.dirpath}
wojms.log.message.filename メッセージライフサイクルログのファイル名を指定します。 jmqmessage.log
wojms.log.message.filenum メッセージライフサイクルログファイルのバックアップ数を指定します。 9
wojms.log.message.output メッセージライフサイクルログへ出力するログカテゴリを指定します。指定できる値は、 縦線 (|) で区切ったロギングのカテゴリ (MESSAGE) か、ALL または NONEです。 NONE
wojms.log.error.rolloverbytes エラーログを出力するファイルを切り替えるサイズをバイト単位で指定します。-1は出力先の切り替えを行いません。 1048576
wojms.log.error.rolloversecs エラーログを出力するファイルを切り替える時間を秒単位で指定します。-1は出力先の切り替えを行いません。 -1 (切り替えなし)
wojms.log.error.dirpath エラーログの出力ディレクトリへのパスを指定します。 ${wojms.log.file.dirpath}
wojms.log.error.filename エラーログのファイル名を指定します。 jmqerror.log
wojms.log.error.filenum エラーログファイルのバックアップ数を指定します。 9
wojms.log.error.output エラーログへ出力するログカテゴリを指定します。指定できる値は、 縦線 (|) で区切ったロギングのカテゴリ (ERROR、WARNING、DUMP_STATE、NONE) のセットか、ALL または NONEです。 ERROR|WARNING|DUMP_STATE
wojms.metrics.enabled メトリックス情報を収集するかどうかを指定します。
true:収集する
false:収集しない
true
wojms.metrics.interval メトリックス情報が報告される間隔を秒単位で指定します。-1は報告しません。 -1
wojms.log.dateformat ログファイルのメッセージに付加する日付フォーマットを指定します。指定対象となるファイルは、jmqadmin.log、jmqerror.log、jmqmessage.log、jmqpacket.log、jmqserver.log です。 V9.3以前と同じ形式にする場合は、次の値を指定してください。
[yyyy-MM-dd HH:mm:ss,SSS]
yyyy-MM-dd HH:mm:ss,SSS
7.2.8.6. メモリ管理に関するプロパティ
プロパティ名
説 明 既定値
wojms.green.threshold メモリリソースのGreenレベル (使用可能なメモリが十分にある状態) のスタート位置をメモリの利用率 (%) で指定します。 0
wojms.yellow.threshold メモリリソースのYellowレベル (メモリが減っている状態) のスタート位置をメモリの利用率 (%) で指定します。 80
wojms.orange.threshold メモリリソースのOrangeレベル (メモリが不十分である状態) のスタート位置をメモリの利用率 (%) で指定します。 90
wojms.red.threshold メモリリソースのRedレベル (メモリが不足している状態) のスタート位置をメモリの利用率 (%) で指定します。 98
wojms.green.count Greenレベルの時にクライアントが遅延制御せずに送信できるメッセージの最大数を指定します。 5000
wojms.yellow.count Yellowレベルの時にクライアントが遅延制御せずに送信できるメッセージの最大数を指定します。 500
wojms.orange.count Orangeレベルの時にクライアントが遅延制御せずに送信できるメッセージの最大数を指定します。 50
wojms.red.count Redレベルの時にクライアントが遅延制御せずに送信できるメッセージの最大数を指定します。 0
7.2.8.7. 自動生成送信先に関するプロパティ
プロパティ名
説 明 既定値
wojms.autocreate.topic Topicの自動生成を許可するかを指定します。
true:許可する
false:許可しない
false
wojms.autocreate.queue Queueの自動生成を許可するかを指定します。
true:許可する。
false:許可しない。
false
wojms.autocreate.topic.consumerFlowLimit 自動生成されたTopicに接続されたConsumerが一回の送信処理で受信できるメッセージの最大数を指定します。 1000
wojms.autocreate.queue.consumerFlowLimit 自動生成されたQueueに接続されたConsumerが一回の送信処理で受信できるメッセージの最大数を指定します。 100
wojms.autocreate.queue.maxNumActiveConsumers 自動生成されたQueueでメッセージを受信するこのできるConsumerの最大数を指定します。-1は無制限です。 -1
wojms.autocreate.queue.maxNumBackupConsumers 自動生成されたQueueで待機状態のConsumerの数を指定します。-1は無制限です。 0
wojms.autocreate.destination.maxNumMsgs 自動生成される送信先の最大メッセージ数を指定します。-1は無制限です。 100000
wojms.autocreate.destination.maxTotalMsgBytes 自動生成される送信先の最大メッセージサイズ (バイト、K バイト、または Mバイト単位) を指定します。-1は無制限です。
128,128bは128バイトを、128kは128Kバイト (128×1024=131072バイト)、128mは128Mバイト (128×1024×1024=134217728バイト) を表します。
10m
wojms.autocreate.destination.maxNumProducers 自動生成される送信先に接続可能なプロデューサ数を指定します。-1は無制限です。 100
wojms.autocreate.destination.maxBytesPerMsg 自動生成される送信先の1メッセージ当たりの最大サイズ (バイト、K バイト、または Mバイト単位) を指定します。-1は無制限です。
128,128bは128バイトを、128kは128Kバイト (128×1024=131072バイト)、128mは128Mバイト (128×1024×1024=134217728バイト) を表します。
10k
wojms.autocreate.destination.limitBehavior 自動生成される送信先に対して新しいメッセージが届いたときに、送信先のメモリ制限のしきい値に到達していた場合のJMSサーバの振る舞いを指定します。
FLOW_CONTROL : プロデューサとの間でフロー制御 (低速化) を行います。
REMOVE_OLDEST : 最古のメッセージを破棄します (プロデューサがメッセージ削除の通知を受け取ることはありません)。REMOVE_LOW_PRIORITY : メッセージの有効期限に従い優先度が最低のメッセージを破棄します (プロデューサがメッセージ削除の通知を受け取ることはありません)。
REJECT_NEWEST : 最新のメッセージを拒否します (永続メッセージの場合はプロデューサにメッセージ拒否の例外が発生しますが、非永続メッセージの場合には発生しません)。
REJECT_NEWEST
7.2.8.8. クライアント監視に関するプロパティ
プロパティ名
説 明 既定値
wojms.ping.enabled クライアントとの接続を監視するか否かを指定します。
true:行う
false:行わない
true
wojms.ping.interval クライアントとの接続を監視する間隔を秒単位で指定します。 120
wojms.client_metrics.enabled JMSクライアントのチューニング情報を採取するかどうかを指定します。
true:採取する
false:採取しない
true (採取する) を指定すると、コネクション一覧表示 (otxadmin list-jms-connections) で各コネクションに対するメモリ情報を表示します。
false
7.2.8.9. JMSサーバクラスタに関するプロパティ
プロパティ名
説 明 既定値
wojms.enable_cluster JMSサーバクラスタを利用するかどうかを指定します。 false
wojms.cluster.brokerlist クラスタに属するすべてのJMSサーバのホスト名とポート番号を指定します。 [ hostName ] [ :port ] の形式で、「,」で区切って指定します。クラスタ内のJMSサーバすべてで同じ値を指定する必要があります。
wojms.cluster.masterbroker マスターブローカのアドレスを指定します。 [ hostName ] [ :port ] の形式で指定します (省略可能)。クラスタ内のJMSサーバすべてで同じ値を指定する必要があります。
wojms.cluster.port JMSサーバクラスタ用コネクションサービスで使用するポート番号を指定します。0は動的アサインを意味します。 9705
wojms.cluster.hostname JMSサーバクラスタ用コネクションサービスで使用するホスト名、もしくはIPアドレスを指定します。 複数のネットワークインタフェース (NIC) を持つような場合に固定することができます。

7.2.9. JMSクライアントのプロパティ

JMSクライアントのプロパティの一覧を示します。これらのプロパティは、非Java EE環境下で動作するJavaアプリケーションに有効であり、Javaシステムプロパティとして設定します。

ログの利用方法については、「 JMSクライアントのログ出力」を、チューニング情報採取に関しては、「 構築・運用 > チューニング > JMS > JMSクライアントのチューニング情報採取」を参照してください。

プロパティ名
説 明 既定値
wojms.client.logger.level JMSクライアントのログを採取する際のログレベル (NONE、ERROR、WARNING、INFO、DEBUG、DEBUGMED、DEBUGHIGHのいずれか) を指定します。
NONE:出力しない
NONE
wojms.client.logger.file wojms.client.logger.level プロパティでログレベルが指定された場合に、JMSクライアントのログを採取する際のログファイル名を指定します。ログレベルのみが指定され、ログファイル名が指定されていない場合は、標準出力に出力します。
wojms.client.logger.size wojms.client.logger.file プロパティでログファイル名が指定された場合に、出力先ファイルを切り替えるファイルサイズをバイト単位で指定します。-1は出力先の切替を行いません。 1020000
wojms.client.logger.num wojms.client.logger.file プロパティでログファイル名が指定された場合に、ログファイルのバックアップ数を指定します。 2
wojms.client.log.level JMSクライアントのログを採取する際のログレベル (NONE、ERROR、WARNING、INFO、DEBUG、DEBUGMED、DEBUGHIGHのいずれか) を指定します。このプロパティでログレベルを指定した場合、出力先のログファイル名は、wojms.client.log.file プロパティで指定します。
NONE:出力しない
本プロパティでログレベルを指定した場合、出力ファイルのローテートはできません。出力ファイルのローテートを行う場合は、wojms.client.logger.〜で始まるプロパティ名を利用して、ログレベルやログファイル名を指定してください。
NONE
wojms.client.log.file wojms.client.log.level プロパティでログレベルが指定された場合に、JMSクライアントのログを採取する際のログファイル名を指定します。ログファイルのローテートはできません。ログレベルのみが指定され、ログファイル名が指定されていない場合は、標準出力に出力します。なお、出力ファイルのローテートを行う場合は、wojms.client.logger.〜で始まるプロパティ名を利用して、ログレベルやログファイル名を指定してください。
wojms.client.metrics メモリや、フロー制御などのチューニング情報を出力するかどうかを指定します。 false
wojms.client.metrics.interval チューニング情報を出力する間隔 (ミリ秒) を指定します。 5000
wojms.client.metrics.log チューニング情報を出力するファイル名を指定します (JMSクライアントのログファイルとは別です)。ファイル名が指定されていない場合は、標準出力に出力します。

7.3. その他の設定項目・設定方法

JMSサーバのその他の設定項目、および設定方法について説明します。

7.3.1. ファイルストアを利用するための設定

ファイルストアを利用するための設定について説明します。

  1. JMSサービスのMOに対して、次の属性を設定します。

    server.jms-service :
    属性名 説明 既定値
    storeType 永続ストアタイプを指定します。
    file:ファイルストア
    file

  2. JMSサービスを再起動してください。

インストール直後は、ファイルストアを利用する設定になっています。関連する、JMSサーバの各プロパティにはデフォルト値が設定されていますので、ご利用になるシステムに合わせて設定値を変更してください。ファイルストアをご利用になるためのプロパティの詳細については、「 JMSのプロパティ/属性一覧 > JMSサーバのプロパティ」-「 永続ストアに関するプロパティ」を参照してください。

注意 :

7.3.2. JDBCストアを利用するための設定

JDBCストアを利用するための設定について説明します。

インストール直後は、ファイルストアを利用する設定になっています。JDBCストアを利用する場合は、次の手順で設定を変更してください。

  1. JMSサービスのMOに対して、次の属性を設定します。

    server.jms-service :
    属性名 説明
    storeType 永続ストアタイプを指定します。指定可能な値は次のとおりです。
    file:ファイルストア
    oracle:JDBCストア (Oracle)
    postgresql:JDBCストア (PostgreSQL)
    sqlserver:JDBCストア (Microsoft SQL Server)
    other:JDBCストア (その他)
    利用するDBMSのJDBCストアを指定します。この属性に指定した値が、JMSサーバの wojms.persist.jdbc.dbtype プロパティの値となります。
    otherは今後サポート対象が増えた場合に使用します。
    jdbcStoreDriver JDBCドライバのクラス名
    jdbcStoreURL JDBC URL
    jdbcStoreBrokerid JMSサーバインスタンス識別子
    複数のJMSサーバインスタンスが同じデータベースを使用する場合、データベーステーブル名を一意にするために、データベーステーブル名に追加されます。通常、1 つのJMSサーバインスタンスだけのデータを格納するデータベースでは不要です。
    jdbcStoreUser ユーザ名
    jdbcStorePassword パスワード

  2. 次のパスにJDBCドライバのjarファイルのコピー、またはシンボリックリンクを配置します。
    ${INSTANCE_ROOT}/lib/ext
  3. jmqdbmgrコマンドのcreate tblサブコマンドを実行して、永続データを格納するためのデータベーススキーマを作成します。
    # jmqdbmgr create tbl -otxdomain domain1
    
    備考 :
    jmqdbmgrコマンドを実行する際は、-otxdomainオプションにより、ドメイン名の指定が必要です。また、JMSサーバインスタンス識別子を指定しているときは、jmqdbmgrコマンドで -b オプションにより、インスタンス識別子を指定する必要があります。
    jmqdbmgrコマンドの詳細については、「 コマンド > JMS > jmqdbmgr」を参照してください。
  4. JMSサービスを再起動してください。
7.3.2.1. 補足:データベーススキーマ作成プロパティの既定値

wojms.persist.jdbc.dbtype に利用するDBMSを指定することで、該当するDBMSのプロパティが自動的に有効になります。 ここでは、各DBMSのJDBCドライバについてのみ記述しています。その他のプロパティの既定値については、default.propertiesファイル (${AS_INSTALL}/jmq/lib/props/broker/default.properties) の「wojms.persist.jdbc.< dbtype>」で始まるプロパティ値を参照してください。

注意 :

7.3.3. アクセス制御機能を利用するための設定

JMS クライアントからの操作 (コネクション、送信先、送信先自動作成) に対するアクセス制御は、次の場所にあるアクセス制御プロパティファイルに定義します。
${INSTANCE_ROOT}/jmq/instances/jmqbroker/etc/accesscontrol.properties

7.3.3.1. コネクションのアクセス制御

コネクションサービスへの権限を定義します。

形式 :
connection. resourceVariant.access.principalType = principals
要素
説明
resourceVariant コネクションのタイプを指定します。
NORMAL
ADMIN
access アクセス制御を指定します。
allow
deny
principalType 制御を受ける対象者を指定します。
user
group
principals 権限の制御を受ける対象を指定します。
principalTypeがuserの場合は、ユーザ名 (複数の場合はカンマで区切られたリスト) を指定します。
principalTypeがgroupの場合は、グループ名 (複数の場合はカンマで区切られたリスト) を指定します。
両者とも、全てを対象とする場合には”*”を使用します。

デフォルトでは、通常のコネクションは全てのユーザに権限が、管理用のコネクションはadminグループにのみ権限が与えられています。

connection.NORMAL.allow.user=*
connection.ADMIN.allow.group=admin

たとえば、通常のコネクション確立について、ユーザxxxを拒否するには、次の記述を追加します。

connection.NORMAL.deny.user=xxx

7.3.4. 送信先のアクセス制御

送信先に対する権限を定義します。

形式 :
resourceType.resourceVariant.operation.access.principalType = principals
要素
説明
resourceType 送信先のタイプを指定します。
queue
topic
resourceVariant 送信先の名前、もしくはすべての送信先を意味する”*”を指定します。
operation クライアントのタイプを指定します。
produce
consume
browse
access アクセス制御を指定します。
allow
deny
principalType 制御を受ける対象者を指定します。
user
group

デフォルトでは、すべてに権限が与えられています。

queue.*.produce.allow.user=*
queue.*.consume.allow.user=*
queue.*.browse.allow.user=*
topic.*.produce.allow.user=*
topic.*.consume.allow.user=*

たとえば、トピックxxxからのメッセージ受信について、グループyyyを拒否するには、次の記述を追加します。

topic.xxx.consume.deny.group=yyy

7.3.5. 送信先自動作成のアクセス制御

送信先の自動作成の権限を定義します。

形式 :
resourceType.create. access.principalType = principals
要素
説明
resourceType 送信先のタイプを指定します。
queue
topic
access アクセス制御を指定します。
allow
deny
principalType 制御を受ける対象を指定します。
user
group

デフォルトでは、すべてに権限が与えられています。

queue.create.allow.user=*
topic.create.allow.user=*

たとえば、topicの自動作成について、ユーザxxxを拒否するには、次の記述を追加します。

topic.create.allow.user=*
topic.create.deny.user=xxx

7.3.6. SSL通信を利用するための設定

JMSサーバとクライアントアプリケーションとの間、JMSサーバと管理ツールとの間で送受信されるメッセージをSSLで暗号化するために必要な設定について説明します。
前者はssljmsコネクションサービス、後者はssladminコネクションサービスが対象です。

  1. ${AS_INSTALL}/jmq/etc ディレクトリを作成

    ${AS_INSTALL}/jmq/etc ディレクトリが存在しない場合は、作成してください。

  2. 自己署名型証明書の生成

    JDK付属の keytool コマンドを利用し、次を実行して、JMSサーバの自己署名型証明書を生成してください。

    keytool -genkey -keyalg "RSA" -alias jmq -keystore ${AS_INSTALL}/jmq/etc/keystore -v

    証明書が格納されるキーストアの位置は次の場所となります。
    ${AS_INSTALL}/jmq/etc/keystore

  3. SSLコネクションサービスの有効化
    wojms.service.activelistプロパティにより、SSLコネクションサービスを有効化します。次のいずれかの方法で指定してください。
    1. 起動引数で指定する方法
      次のオプションをJMSサーバの起動引数に指定してください。ここでは、jms、adminの両方のSSLコネクションサービスを有効化しています。

      -Dwojms.service.activelist=jms,admin,ssljms,ssladmin

      運用管理コマンドで指定する場合は、JMSサービスの「start-args」属性に、統合運用管理ツールで指定する場合は、JMSサービスのMO属性「起動引数」に上記を設定してください。

    2. config.propertiesに設定する方法
    3. 次のプロパティを設定してください。ここでは、jms、adminの両方のSSLコネクションサービスを有効化しています。

      wojms.service.activelist=jms,admin,ssljms,ssladmin

    実際に有効になったかどうかは、JMSサーバ再起動後に、jmqcmd list svcコマンドで確認することができます。jmqcmd list svcコマンドの詳細は、「 コマンド > JMS > jmqcmd > list svc」を参照してください。

  4. パスワードの設定
    JMSサービスのMOに対して、次の属性を設定します。自己署名型証明書の生成時に指定した、キーストアのパスワードを設定してください。

    server.jms-service :
    属性名 説明 既定値
    keystorePassword SSL ベースのサービスの場合に、キーストアのパスワードを指定します。

  5. JMSサーバの再起動
    JMSサーバを再起動し、設定内容を反映します。

  6. JMSクライアントの設定
    クライアントの設定は、Javaアプリケーションの場合と、Java EE環境下で動作するJava EEアプリケーションの場合で方法が異なります。

    1. Javaアプリケーションの場合
      コネクションファクトリに次の属性値を設定してください。
      wojmsConnectionType=TLS

      この設定を有効にするには、次の2つの方法があります。
      • JNDIに登録するオブジェクトに設定する方法
        コネクションファクトリリソースの場合は、MO属性「コネクションタイプ (wojmsConnectionType) 」で指定します。

      • Javaクライアントアプリケーション起動時にJavaシステムプロパティで指定する方法
        通常はJNDIに登録されたオブジェクトにあらかじめ設定された属性値に従って暗黙的に決まりますが、これをJavaシステムプロパティとして与えることによって、起動時に自由に選択することができます。

    2. Java EEアプリケーションの場合
      コネクションファクトリリソースの プロパティとして、
      MessageServiceAddressList=<wojmsBrokerHostName>:<wojmsBrokerHostPort>/ssljms
      を設定してください。<wojmsBrokerHostName>は「JMSサーバのホスト名」の値を、<wojmsBrokerHostPort>は「JMSサーバのホストのポート番号」の値を指定します。
      7.3.6.1. 補足 : コネクションファクトリリソースに対するプロパティ設定
      統合運用管理ツールの場合
      「WebOTX 管理ドメイン [ <ホスト名> ] 」-「<ドメイン名>」-「リソース」-「JMS リソース」-「コネクションファクトリリソース」-「<JNDI 名>」-【プロパティの設定】操作で設定します。

      運用管理コマンドの場合
      次のように、set コマンドを利用して設定します。
      otxadmin> set server.resources.jms-resource.jms-connection-factory.<JNDI 名>. property.MessageServiceAddressList= <wojmsBrokerHostName>:<wojmsBrokerHostPort>/ssljms

      例) デフォルトの接続先 (ホスト名:localhost、ポート番号:9700) にSSLで接続する場合
      otxadmin> set server.resources.jms-resource.jms-connection-factory.jms/MyCF.property.MessageServiceAddressList=localhost:9700/ssljms
      

7.3.7. パスワードファイルの使用

ここでは、JMSサーバが使用するSSL、JDBCのパスワードを起動引数ではなく、パスワードファイルを使用して指定する方法について説明します。

  1. パスワードファイルの作成
    パスワードファイルには次のパスワードを指定することができます。<プロパティ名>=<値>の形式でしています。
    プロパティ名
    説明
    wojms.keystore.password SSL運用時に必要なキーストアのパスワードを指定します。
    wojms.persist.jdbc.password データベースとの接続時に必要なパスワードを指定します。

  2. パスワードファイルの有効化
    作成したパスワードファイルを有効にするためには、次のプロパティを指定する必要があります。

    wojms.passfile.enabled=true

  3. パスワードファイルの指定
    JMSサーバの起動時に使用するパスワードファイルを指定します。次のいずれかの方法で指定してください。

    1. 起動引数で指定する方法
      次のオプションをJMSサーバの起動引数に指定してください。

      -passfile <password file>

      運用管理コマンドで指定する場合は、JMSサービスの「start-args」属性に、統合運用管理ツールで指定する場合は、JMSサービスのMO属性「起動引数」に上記を設定してください。

    2. config.propertiesに設定する方法
    3. 次のプロパティを設定してください。

      wojms.passfile.dirpath=<passfile directory>
      wojms.passfile.name=<passfile name>

    注意 :
    起動引数を指定した場合は、config.propertiesに設定した内容は無視されます。

7.3.8. Standard で動作させる場合の設定

Standard において、TPモニタ上でMessage-Driven Bean (MDB)を起動する場合の設定について説明します。

7.3.8.1. MDBでTopicのマルチコンシューマ負荷分散を利用する場合

MDBでTopicのマルチコンシューマ負荷分散を利用するには、クライアント識別子とその共有フラグを以下に示すいずれかの方法で設定する必要があります。

  1. 配備記述子での設定
    ejb-jar.xml中の<activation-config-property>を利用して、以下のプロパティを設定します。

    プロパティ
    clientId クライアント識別子
    enableSharedClientID true

    具体例は、以下の通りです。

    <?xml version="1.0" encoding="UTF-8"?>
    <ejb-jar>
     <enterprise-beans>
      <message-driven>
       <ejb-name>MyMDB</ejb-name>
       ・・・・・
       <activation-config>
        <activation-config-property>
         <activation-config-property-name> clientId</activation-config-property-name>
         <activation-config-property-value> MyClientID</activation-config-property-value>
        </activation-config-property>
        <activation-config-property>
         <activation-config-property-name> enableSharedClientID</activation-config-property-name>
         <activation-config-property-value> true</activation-config-property-value>
        </activation-config-property>
        ・・・・・
       </activation-config>
      </message-driven>
     </enterprise-beans>
    </ejb-jar>

  2. アノテーションでの設定
    @ActivationConfigPropertyを利用して、以下のプロパティを設定します。

    プロパティ
    clientId クライアント識別子
    enableSharedClientID true

    具体例は、以下の通りです。

    @MessageDriven(
      activationConfig = {
        @ActivationConfigProperty(propertyName="clientId", propertyValue="MyClientID"),
        @ActivationConfigProperty(propertyName="enableSharedClientID", propertyValue="true"),
        ・・・・・
      }
    )
    public class MyMDB implements MessageListener {
      public void onMessage(Message msg) {・・・・・}
    }

  3. プロセスグループでの設定
    プロセスグループのシステムプロパティに以下のプロパティを指定してください。 同じプロセスグループの中で複数のMDBが配備されるような場合、クライアント識別子の共有範囲が複数のMDB間にまたがることに注意してください。
    プロパティ
    設定値
    wojmsConfiguredClientID クライアント識別子
    wojmsEnableSharedClientID true

7.3.9. メッセージ再配信に関する設定

ここでは、ロールバックされたメッセージの再配信に関する設定について説明します。

7.3.9.1. 再配信回数

再配信回数の上限は、送信先か、JMSサービスのMOの属性で指定します。送信先で指定した場合は、その送信先に接続したコンシューマに対して有効になり、JMSサービスで指定した場合は、JMSサーバで動作するコンシューマ全体に対して有効になります。既定値以外の値が設定されていた場合の優先順位は、高いものから、送信先、JMSサービスの設定となります。

server.jms-physical-destination. physical-destination-name
server.jms-service :
属性名 説明 既定値
wojmsRedeliveryLimit 再配信回数上限。メッセージ再配信回数の上限を指定します。-1は無制限を、0は再配信なしを意味します。 -1 (無制限)

備考 :
送信先、JMSサービスともに属性名は同じです。
7.3.9.2. 再配信遅延時間

再配信の遅延時間は、コネクションファクトリリソース、送信先、JMSサービスのMOの属性で指定します。また、コンシューマプログラム向けに用意しているAPI (WebOTX V5よりサポート) で、セッション単位に指定することも可能です。既定値以外の値が設定されていた場合の優先順位は、高いものから、セッション単位、コネクションファクトリリソース、送信先、JMSサービスの設定となります。

server.resources.jms-resource.jms-connection-factory. connection-factory-name
server.jms-physical-destination. physical-destination-name
server.jms-service :
属性名 説明 既定値
wojmsRedeliveryDelay 再配信遅延時間。メッセージ再配信で、配信の遅延時間を秒単位で指定します。0は、待ち合わせ無しを意味します。 0 (待ち合わせ無し)

備考 :
コネクションファクトリリソース、送信先、JMSサービスともに属性名は同じです。

セッション単位で指定する場合については、 [ リファレンス > リソース > JMS > 拡張インタフェース ] を参照してください。

7.3.9.3. MDBで再配信遅延時間を指定する場合

MDBに対して再配信遅延時間を指定するには、以下に示す方法があります。優先順位は、高いものから順に、1、2、3 となっており、以下のいずれも指定されていない場合は、前述の指定に従って再配信されます。

  1. 配備記述子での設定
    ejb-jar.xml中の<activation-config-property>を利用して、以下のプロパティを設定します。
    プロパティ
    説明
    RedeliveryDelay 再配信遅延時間 (秒)

    具体例は、以下の通りです。

    <?xml version="1.0" encoding="UTF-8"?>
    <ejb-jar>
     <enterprise-beans>
      <message-driven>
       <ejb-name>MyMDB</ejb-name>
       ・・・・・
       <activation-config>
        <activation-config-property>
         <activation-config-property-name> RedeliveryDelay</activation-config-property-name>
         <activation-config-property-value> 10</activation-config-property-value>
        </activation-config-property>
        ・・・・・
       </activation-config>
      </message-driven>
     </enterprise-beans>
    </ejb-jar>

  2. アノテーションでの設定
    @ActivationConfigPropertyを利用して、以下のプロパティを設定します。
    プロパティ
    説明
    RedeliveryDelay 再配信遅延時間 (秒)

    具体例は、以下の通りです。

    @MessageDriven(
      activationConfig = {
        @ActivationConfigProperty(propertyName="RedeliveryDelay", propertyValue="10"),
        ・・・・・
      }
    )
    public class MyMDB implements MessageListener {
      public void onMessage(Message msg) {・・・・・}
    }

  3. プロセスグループでの設定
    プロセスグループの Java システムプロパティに以下のプロパティを指定してください。
    プロパティ
    説明
    wojmsRedeliveryDelay 再配信遅延時間 (秒)

7.3.10. 破棄メッセージの転送に関する設定

ここでは、破棄メッセージの転送に関する設定について説明します。「破棄メッセージ」とは、不達メッセージ (再配信回数を超過したメッセージ) や、有効期限切れのメッセージのことをさします。

7.3.10.1. 不達メッセージ
不達メッセージの転送先は、送信先か、JMSサービスのMOの属性で指定します。送信先で指定した場合は、その送信先の不達メッセージに対して有効になり、JMSサービスで指定した場合は、JMSサーバ内のすべての不達メッセージに対して有効になります。転送先が設定されていた場合の優先順位は、高いものから、送信先、JMSサービスの設定となります。

server.jms-physical-destination. physical-destination-name
server.jms-service :
属性名 説明 既定値
wojmsRedeliveryDestination 不達メッセージ転送先。再配信回数を超過したメッセージを転送する送信先名を指定します。ここに指定する送信先は、あらかじめ作成しておく必要があります (自動的に作成されません)。  

備考 :
送信先、JMSサービスともに属性名は同じです。
7.3.10.2. 有効期限切れメッセージ
有効期限切れメッセージの転送先は、JMSサーバのプロパティか、JMSサービスのMOの属性で指定します。ここで指定した値は、JMSサーバ全体で有効になります。

server.jms-service :
MOの属性 JMSサーバのプロパティ名 説明
wojmsExpirationDestination wojms.expiration.destination 有効期限切れメッセージを転送する送信先名
注意 :
移動したメッセージのメッセージヘッダと、メッセージプロパティの扱いについて、以下に記述します。
7.3.10.3. JMSのメッセージヘッダ:
フィールド名
JMSCorrelationID 変更しません。
JMSDeliveryMode PERSISTENTに変更します。
不達メッセージの場合、元の情報は、WOJMSOriginalPersistentにBoolean値で設定されます。trueはPERSISTENT、falseはNON_PERSISTENTです。
JMSDestination 転送先の送信先に変更します。
元の情報は、WOJMSOriginalDestinationNameに送信先名を含めて設定されます。
JMSExpiration クリアします。
不達メッセージの場合、元の情報は、WOJMSOriginalExpirationに設定されます。
JMSMessageID 新規のメッセージ識別子に変更します。
元の情報は、メッセージプロパティWOJMSOriginalMessageIDに設定されます。
JMSPriority 変更しません。
JMSRedelivered 変更しません。
JMSReplyTo 変更しません。
JMSTimestamp 移動した時刻に変更します。
不達メッセージの場合、元の情報は、WOJMSOriginalTimeStampに設定されます。
JMSType 変更しません。
7.3.10.4. JMSのメッセージプロパティ:
フィールド名
WOJMSDelayTime 削除します。
不達メッセージの場合、元の情報は、WOJMSOriginalDelayTimeに設定されます。
WOJMSOriginalMessageID 転送前のJMSMessageIDを格納します。
WOJMSOriginalDestinationName 転送前のJMSDestinationから取得した送信先名と送信先タイプを連結した文字列を格納します。
WOJMSDeletedReason メッセージの削除理由を文字列で格納します。
不達メッセージの設定値: DELETED
有効期限切れメッセージの設定値: EXPIRED
WOJMSOriginalExpiration 不達メッセージの場合、転送前のJMSExpirationの値を格納します。
WOJMSOriginalPersistent 不達メッセージの場合、転送前のJMSDeliveryModeの値をBoolean値で格納します。trueはPERSISTENT、falseはNON_PERSISTENTです。
WOJMSOriginalTimeStamp 不達メッセージの場合、転送前のJMSTimestampの値を格納します。
WOJMSOriginalDelayTime 不達メッセージの場合、転送前のWOJMSDelayTimeの値を格納します。

7.3.11. JMSクライアントのログ出力

非Java EE環境下で動作するJavaアプリケーションでは、実行時にJavaシステムプロパティを設定することにより、ログ出力が可能です。ログは、障害解析などに利用します。
ログを出力するには、以下をJavaシステムプロパティとして指定します。

wojms.client.logger.level
wojms.client.logger.file
wojms.client.logger.size
wojms.client.logger.num

あるいは、

wojms.client.log.level
wojms.client.log.file

wojms.client.logger.〜で始まるプロパティは、出力ファイルのローテートが可能です。wojms.client.log.〜で始まるプロパティは、出力ファイルのローテートはできません。ローテートの要/不要に応じて、どちらかのタイプのプロパティを指定してください。各プロパティの詳細については、「 JMSクライアントのプロパティ」を参照してください。

7.3.12. 分散トランザクションへの参加

Java EE環境で、JMSを分散トランザクションに参加させる場合、トランザクションサービスのJCAリソースを登録する必要があります。
JCAリソースの登録方法については、「 構築・運用 > Transactionサービス > リソースの登録・削除」を参照してください。

注意 :

7.3.13. JMSサーバクラスタを利用するための設定

ここでは、2つのJMSサーバで構成されるJMSサーバクラスタの設定方法について説明します。
設定は、以下のように、host1のdomain1で起動するJMSサーバ (JMS1) と、host2のdomain1で起動するJMSサーバ (JMS2) でJMSサーバクラスタを構成するものとします。また、マスターブローカとして、host1-domain1上のJMSサーバを指定します。

JMSサーバクラスタを利用するための設定

  1. host1-domain1、host2-domain1のJMSサーバの設定

    統合運用管理ツールの場合
    「WebOTX 管理ドメイン [ <ホスト名> ] 」-「<ドメイン名>」-「アプリケーションサーバ」-「JMS サービス」の「クラスタ」タブの各属性に対して、以下を設定します。

    項目 設定値
    JMSサーバクラスタの使用 true (チェックする)
    クラスタに属するJMSサーバのアドレスリスト host1:9700,host2:9700
    マスターブローカのアドレス host1:9700

    運用管理コマンドの場合
    set コマンドで以下を設定します。
    otxadmin> set server.jms-service.enableCluster=true
    otxadmin> set server.jms-service.clusterBrokerList=host1:9700,host2:9700
    otxadmin> set server.jms-service.clusterMasterBroker=host1:9700
    
    注意 :

    同一ホストでJMSサーバクラスタを構成する場合、上記の設定に加えて、次の設定が必要です。

    • JMSサーバインスタンス識別子をホスト内で一意となるように設定してください。設定方法は次のとおりです。

      統合運用管理ツールの場合
      「WebOTX 管理ドメイン [ <ホスト名> ] 」-「<ドメイン名>」-「アプリケーションサーバ」-「JMS サービス」-【プロパティの設定】操作で、以下を設定します。
        instance-name=<JMSサーバインスタンス識別子>

      運用管理コマンドの場合
      set コマンドで以下を設定します。
        otxadmin> set server.jms-service.property.instance-name=<JMSサーバインスタンス識別子>

    • 2つ目以降のドメインに対して、クラスタコネクションサービスのポート番号 (既定値は、9705) を変更してください。

      統合運用管理ツールの場合
      「WebOTX 管理ドメイン [ <ホスト名> ] 」-「<ドメイン名>」-「アプリケーションサーバ」-「JMS サービス」-「クラスタコネクションサービスのポート番号」 を変更します。

      運用管理コマンドの場合
      set コマンドで以下を設定します。
        otxadmin> set server.jms-service.clusterPort=<クラスタコネクションサービスのポート番号>

  2. JMSサーバの再起動
    クラスタの設定は、JMSサーバの再起動後に有効になるため、すべてのJMSサーバを再起動します。

    注意 :
    • マスターブローカを設定した場合は、マスターブローカが起動するまで、他のJMSサーバは利用できません。

    • マスターブローカを設定した場合は、マスターブローカが停止中、クラスタ内のJMSサーバでは以下の操作ができなくなります。それ以外の操作は正常に行えます。
        - 物理的な送信先の生成/削除/プロパティ更新
        - 永続サブスクリプションの削除

7.3.14. 接続先分散のための設定

JMSサーバクラスタなどで、接続先の分散を行うためにアドレスリストを使用することができます。アドレスリストは、コネクションファクトリリソースの属性として設定します。

server.resources.jms-resource.jms-connection-factory. connection-factory-name
属性名 説明 既定値
wojmsAddressList 接続先のリストを指定します。
この値を設定した場合は、「JMSサーバのホスト名」 (wojmsBrokerHostName) と、「JMSサーバのホストのポート番号」 (wojmsBrokerHostPort) の設定は無視されますので、必要に応じてこの接続先をリストに含めてください。
アドレスの構文は、 [ hostName ] [ :port ] で、複数のアドレスを指定する場合は、「,」で区切ります。
wojmsAddressListBehavior アドレスリストから、接続先を選択する方法を指定します。
PRIORITY:アドレスリストに指定された順番
RANDOM:ランダムに選択
接続障害後の再接続は、いずれの場合も、接続がエラーになったJMSサーバに対するアドレスから始まります。
PRIORITY
wojmsAddressListIterations 接続の試行を中止して例外を通知するまでの、アドレスリストの繰り返し回数を指定します。 1

次に、アドレスリストを設定した場合の動作について説明します。

JMSクライアントランタイムは、wojmsAddresListBehaviorの設定に応じて、wojmsAddressListから接続先を選択し接続を行います。最初に選択したアドレスで接続できなかった場合は、wojmsAddressListから「次の」アドレスを選択して接続を試みます。それでも接続できなければ「次の」アドレス、と進めていき、wojmsAddressListIterations回アドレスリストを繰り返して接続できなければ、例外を発生させるようになっています。


7.3.15. 再配信メッセージの順序保証のための設定

アプリケーション異常など、トランザクションのロールバックによりメッセージが再配信される場合でもメッセージの配信順序を保証したい場合は、物理的な送信先に対して次の設定を行います。

server.jms-service.jms-physical-destination. physical-destination-name
属性名 説明 既定値
supportOrderedRedelivery メッセージ再配信時の順序保証を行うかどうかを指定します。
true:再配信時の順序保証を行います。接続できるコンシューマ数は1になります。
false:再配信時の順序保証を行いません。
false (再配信時の順序保証はしない)
注意 :
順序保証の設定を変更する場合は、送信先のコンシューマ数が 1 以下の状態で行ってください。 複数のコンシューマが接続しているときに順序保証の設定を有効にしても、設定は無視されます。
7.3.15.1. 再配信メッセージの順序保証の利用条件
再配信メッセージの順序保証が利用できるのは、次の環境に制限されます。
  1. 送信先タイプはキューであること
    JMSサーバクラスタ構成では、送信先の「ローカル配信のみ (isLocalOnly) 」の 設定を有効 (true) にして、ローカルコンシューマ (送信先が作成されたブローカに 接続しているコンシューマ) だけにメッセージを配信するようにおく必要があります。
  2. コンシューマのメッセージ受信がトランザクション内で行われていること
  3. 送信先に接続するコンシューマ数は 1 であること
    送信先に接続できるコンシューマ数は、1 に制限されます。また、MDBの場合は、多重度を 1 に制限しておく必要があります。


7.3.15.2. 再配信メッセージの順序保証の利用時の動作
再配信メッセージの順序保証を利用する場合、各設定が行われたメッセージは次のようになります。
優先度を設定したメッセージ
1 件目は優先度の最も高いものがコンシューマに配信されます。 コンシューマがそのメッセージをロールバックした場合は、優先度を無視して そのメッセージが再配信されます。 2 件目は、その次に優先度の高いものが配信されます。


配信時間を設定したメッセージ
1 件目は、最初に指定時刻に達したメッセージがコンシューマに配信されます。 コンシューマがそのメッセージをロールバックすると、配信時間を無視して そのメッセージが再配信されます。 コンシューマがメッセージをロールバックしている間は、他のメッセージが 指定時刻になっても配信されません。 2 件目は、その次に指定時刻に達したものが配信されます。


有効期限を設定したメッセージ
メッセージの再配信中に有効期限が切れた場合は、 そのメッセージが破棄 (または、転送) され、コンシューマには、その次の メッセージが配信されます。


再配信回数、再配信遅延時間、破棄メッセージ転送先の設定
いずれの設定も有効になります。 コンシューマが 1 件目のメッセージを受信後、ロールバックすると、 遅延時間に指定した時間だけ待ってそのメッセージが再配信され、 再配信回数の上限を超えると、そのメッセージは破棄 (または、転送) されます。 その後、キュー内の 2 件目のメッセージが配信されます。


7.3.16. ActivationSpec に設定可能なプロパティ

JMS リソースアダプタの ActivationSpec に設定可能なプロパティは次のとおりです。

プロパティ名 説 明 既定値
destination 送信先名を指定します。  
destinationType 送信先のタイプを指定します。
javax.jms.Queue:キュー
javax.jms.Topic:トピック
 
messageSelector メッセージセレクタを指定します。  
subscriptionName Topicサブスクリプション名を指定します。  
subscriptionDurability Topicサブスクリプションの持続性を指定します。
Durable:持続性
NonDurable:非持続性
NonDurable
clientId クライアントIDを指定します。  
acknowledgeMode 確認応答モードを指定します。
Auto-acknowledge: Auto-acknowledge モード
Dups-ok-acknowledge: Dups-OK-acknowledge モード
Auto-acknowledge
endpointExceptionRedeliveryAttempts MDBで実行時例外が発生した場合にアダプタ内で再配信する回数を指定します。コンテナ管理トランザクション NotSupported あるいは、Bean管理トランザクションの場合に有効になります。 1
redeliveryDelay MDBで実行時例外が発生した場合にアダプタ内で再配信する間隔 (秒) を指定します。0は待ち合わせなしを意味します。 0 : コンテナ管理トランザクション Required の場合
1 : コンテナ管理トランザクション NotSupported あるいは、Bean管理トランザクションの場合
endpointPoolMaxSize エンドポイントプールで保持されるエンドポイントの最大数を指定します。 15
endpointPoolSteadySize エンドポイントプールで保持されるエンドポイント初期値を指定します。 10