1.7. JMS

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

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

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

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

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

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

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

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

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

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

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

  1. default.propertiesファイル

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

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

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

  2. install.propertiesファイル

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

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

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

  3. config.propertiesファイル

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

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

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

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

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

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

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

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

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

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

1.7.1.3. 送信先に対する設定

送信先

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

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

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

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

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

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

1.7.2. JMS設定項目一覧

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

1.7.2.1. MOの属性一覧

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

1.7.2.2. JMSサービス

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

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

1.7.2.3. JMSホスト

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

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

JNDIを通してアクセスするコネクションファクトリリソースを定義します。
この定義は、運用管理コマンドのcreate-jms-resource、統合運用管理ツールでは、「WebOTX管理ドメイン[<ホスト名>].<ドメイン名>.リソース.JMSリソース」の「コネクションファクトリリソースの作成」操作で作成されます。コネクションファクトリリソースの作成方法については、「ドメイン構築・基本設定ガイド > 7. WebOTXの内部サービス > 7.3. JMS > 7.3.3. 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

設定可能な属性や、操作については、「2. MO定義リファレンス」を参照してください。

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

1.7.2.5. 送信先

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

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

1.7.2.6. 送信先リソース

JNDIを通してアクセスする送信先リソースを定義します。
この定義は、運用管理コマンドのcreate-jmsresource、統合運用管理ツールでは、「WebOTX管理ドメイン[<ホスト名>].<ドメイン名>.リソース.JMSリソース」の操作である「送信先リソースの作成」で作成されます。送信先リソースの作成方法については、「ドメイン構築・基本設定ガイド > 7. WebOTXの内部サービス > 7.3. JMS > 7.3.3. 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

設定可能な属性や、操作については、「2. MO定義リファレンス」を参照してください。

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

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

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

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


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

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

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

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

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

表1.7.2.8-1
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
JMSサーバ全体のプロパティ
表1.7.2.8-2
プロパティ名
説 明 既定値
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 有効期限切れメッセージを破棄せずに転送する送信先名を指定します。ここに指定する送信先は、あらかじめ作成しておく必要があります(自動的に作成されません)。指定した送信先が存在しない場合、メッセージは破棄されます。  
コネクションサービスに関するプロパティ
表1.7.2.8-3
プロパティ名
説 明 既定値
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
セキュリティに関するプロパティ
表1.7.2.8-4
プロパティ名
説 明 既定値
wojms.keystore.file.dirpath SSL ベースのサービスの場合は、キーストアファイルが配置されているディレクトリへのパスを指定します。 ${AS_INSTALL}/wojms/etc
wojms.keystore.file.name SSL ベースのサービスの場合は、キーストアファイル名を指定します。 keystore
wojms.keystore.password SSL ベースのサービスの場合に、 キーストアのパスワードを指定します。
※パスワードはさまざまな方法で指定できます。最も安全な方法は、JMSサーバのプロンプトでパスワードを入力することです。安全性は低くなりますが、パスファイルを使用してパスファイルを読み取り保護することもできます。安全性は最も低くなりますが、次のコマンド行オプションを使用してパスワードを指定することもできます。
wojmsbrokerd -password
 
wojms.passfile.enabled セキュリティ保護される通信用 (SSL、JDBC) のユーザパスワードをパスファイルで指定するどうかを指定します。
true:パスファイルで指定する
false:パスファイルで指定しない
false
wojms.passfile.dirpath パスファイルが配置されているディレクトリへのパスを指定します。 ${AS_INSTALL}/wojms/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.provider JMSサーバに接続するユーザの管理方式を指定します。
APSERVER:WebOTXドメインのユーザ管理方式を使用します。
WOJMS:JMS固有の管理方式を使用します。
APSERVER
wojms.authentication.type JMSクライアントからパスワードを送信する際のタイプを指定します。
basic:Base64でエンコーディングしたパスワードを送信します。
wojms.authentication.providerを指定しない場合や、APSERVERを指定する場合に使用します。
digest:MD5ダイジェストでハッシュ化したパスワードをBase64でエンコーディングしたパスワードを送信します。
wojms.authentication.providerでWOJMSを指定した場合のみ使用できます。
basic
wojms.authentication.basic.user_repository Basic認証に使用されるユーザリポシトリのタイプを指定します。
file:JMS認証(WOJMS)においてファイルベースでの認証を使用します。
jaas:ドメイン認証(APSERVER)に対して、JAAS(Java Authentication Authorization Service)での認証を使用します。
jaas
wojms.authentication.digest.user_repository MD5ダイジェスト認証に使用されるユーザリポジトリのタイプを指定します。
file:JMS認証(WOJMS)においてファイルベースでの認証を使用します。
jaas:ドメイン認証(APSERVER)ではMD5ダイジェスト認証は使用できません。
jaas
wojms.authentication.jaas.realm ドメイン認証(APSERVER)の場合に、NORMALタイプのコネクションサービス(jms、ssljms)で使用するauth-realm名を指定してください。 file
wojms.authentication.jaas.realm.admin ドメイン認証(APSERVER)の場合に、ADMINタイプのコネクションサービス(admin、ssladmin)で使用するauth-realm名を指定してください。 admin-realm
wojms.authentication.client.response.timeout JMSサーバからの認証要求に対するクライアントの応答を待機する時間を秒単位で指定します。 180
永続ストアに関するプロパティ
表1.7.2.8-5
プロパティ名
説 明 既定値
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.createdburl
(省略可能)
データベースを作成するコネクションを開くためのデータベース URL を指定します。wojmsdbmgr を使用して、データベースを作成する場合にだけ指定します。  
wojms.persist.jdbc.closedburl
(省略可能)
JMSサーバをシャットダウンする場合に、現在のデータベースコネクションをシャットダウンするためのデータベース URL を指定します。  
wojms.persist.jdbc.user
(省略可能)
必要に応じて、データベースコネクションを開くときに使用するユーザ名を指定します。セキュリティ上の理由から、この代わりに、次のコマンド行オプションを使用して値を指定できます。
wojmsbrokerd -dbuser
wojmsdbmgr -u
 
wojms.persist.jdbc.password データベースコネクションを開くときに使用するパスワードを指定します。
※パスワードは、さまざまな方法で指定できます。最も安全な方法は、JMSサーバのプロンプトでパスワードを入力することです。安全性は低くなりますが、passfile を使用して passfile を読み取り保護することもできます。安全性はもっとも低くなるが、次のコマンド行オプションを使用してパスワードを指定することもできます。
wojmsbrokerd -dbpassword
wojmsdbmgr -p
 
wojms.persist.jdbc.needpassword
(省略可能)
データベースでJMSサーバのアクセスにパスワードを必要とするかどうかを指定します。値を true にすると、パスワードが必要になります。パスワードは、次のコマンド行オプションを使用して指定できます。
wojmsbrokerd -dbpassword
wojmsdbmgr -p
コマンド行オプション、またはパスファイルのどちらかを使用してパスワードを指定しないと、JMSサーバによってパスワードの入力が要求されます。
false
wojms.persist.jdbc.retrycount JDBCストア利用時のデータベースへの再接続試行回数を指定します。 10
wojms.persist.jdbc.retryinterval JDBCストア利用時のデータベースへの再接続遅延時間を秒単位で指定します。 10
wojms.persist.jdbc.<dbtype>.table.WOJMSSV35 dbtype で指定した DBMS に対するバージョンテーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「1.7.3.2 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.<dbtype>.table.WOJMSCCREC35 dbtype で指定した DBMS に対する設定変更レコードテーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「1.7.3.2 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.<dbtype>.table.WOJMSDEST35 dbtype で指定した DBMS に対する送信先テーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「1.7.3.2 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.<dbtype>.table.WOJMSINT35 dbtype で指定した DBMS に対する配信対象テーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「1.7.3.2 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.<dbtype>.table.WOJMSMSG35 dbtype で指定した DBMS に対するメッセージテーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「1.7.3.2 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.<dbtype>.table.WOJMSPROPS35 dbtype で指定した DBMS に対するプロパティテーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「1.7.3.2 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.<dbtype>.table.WOJMSILIST82 dbtype で指定した DBMS に対する配信対象の状態テーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「1.7.3.2 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.<dbtype>.table.WOJMSTXN35 dbtype で指定した DBMS に対するトランザクションテーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「1.7.3.2 JDBCストアを利用するための設定」を参照してください。
wojms.persist.jdbc.<dbtype>.table.WOJMSTACK35 dbtype で指定した DBMS に対するトランザクション通知テーブルを作成するための SQL コマンドを指定します。 DBMSごとに既定値が異なります。詳細は「1.7.3.2 JDBCストアを利用するための設定」を参照してください。
ログ出力に関するプロパティ
表1.7.2.8-6
プロパティ名
説 明 既定値
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/wojms
wojms.log.file.filename ログファイル名を指定します。デフォルト値は、install.propertiesファイルに定義されています。 wojmsserver.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 運用管理操作履歴のファイル名を指定します。 wojmsadmin.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 パケットログのファイル名を指定します。 wojmspacket.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 メッセージライフサイクルログのファイル名を指定します。 wojmsmessage.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 エラーログのファイル名を指定します。 wojmserror.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
メモリ管理に関するプロパティ
表1.7.2.8-7
プロパティ名
説 明 既定値
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
自動生成送信先に関するプロパティ
表1.7.2.8-8
プロパティ名
説 明 既定値
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
クライアント監視に関するプロパティ
表1.7.2.8-9
プロパティ名
説 明 既定値
wojms.ping.enabled クライアントとの接続を監視するか否かを指定します。
true:行う
false:行わない
true
wojms.ping.interval クライアントとの接続を監視する間隔を秒単位で指定します。 120
wojms.client_metrics.enabled JMSクライアントのチューニング情報を採取するかどうかを指定します。
true:採取する
false:採取しない
true(採取する)を指定すると、コネクション一覧表示(otxadmin list-jms-connections)で各コネクションに対するメモリ情報を表示します。
false
JMSサーバクラスタに関するプロパティ
表1.7.2.8-10
プロパティ名
説 明 既定値
wojms.enable_cluster JMSサーバクラスタを利用するかどうかを指定します。 false
wojms.cluster.brokerlist クラスタに属するすべてのJMSサーバのホスト名とポート番号を指定します。[hostName][:port]の形式で、「,」で区切って指定します。クラスタ内のJMSサーバすべてで同じ値を指定する必要があります。  
wojms.cluster.masterbroker マスターブローカのアドレスを指定します。[hostName][:port]の形式で指定します(省略可能)。クラスタ内のJMSサーバすべてで同じ値を指定する必要があります。  
wojms.cluster.port JMSサーバクラスタ用コネクションサービスで使用するポート番号を指定します。0は動的アサインを意味します。 9705

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

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

ログの利用方法については、「1.7.3.13. JMSクライアントのログ出力」を、チューニング情報採取に関しては、「高度な管理と運用サイクルガイド > 2. チューニング > 2.4. JMS > 2.4.4. JMSクライアントのチューニング情報採取」を参照してください。

表1.7.2.9-1
プロパティ名
説 明 既定値
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クライアントのログファイルとは別です)。ファイル名が指定されていない場合は、標準出力に出力します。  
C言語アプリケーションプログラムのプロパティ

設定は、${AS_INSTALL}/wojms/etc/wojmscrt.conf ファイルで行います。

表1.7.2.9-2
プロパティ名
説 明 既定値
java-classpath アプリケーション固有で利用する、Java クラスや jar ファイルを 環境変数 CLASSPATH 形式で指定します。 C言語ライブラリでは JVM を生成する際に、ここで指定した Java クラスを 優先的に利用するように構成します。  
wojms-options JMS クライアントのプロパティを指定します。 -Dwojms.client.log.file=
${AS_INSTALL}/wojms/logs/jmsclient.log (JMSクライアントのログを採取する際のログファイル名)
java-home Java インストールディレクトリを指定します。  
jvm-options Java VM に渡す引数を指定します。  
otx-jars JMSクライアントから利用するWebOTXのjarファイルが、${AS_INSTALL}からの相対パスで指定されています。変更しないでください。  
wojms-logsize ネイティブログ ( JVM 生成前や JVM のエラーが発生した場合にメッセージが出力されるログ ) の最大サイズを指定します。 1048576 (1MB)

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

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

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

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

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

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

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

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

注意 :

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

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

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

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

    server.jms-service :
    表1.7.3.2-1
    属性名 説明
    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. wojmsdbmgrコマンドのcreate tblサブコマンドを実行して、永続データを格納するためのデータベーススキーマを作成します。
    # wojmsdbmgr create tbl -otxdomain domain1
    
    備考 :
    wojmsdbmgrコマンドを実行する際は、-otxdomainオプションにより、ドメイン名の指定が必要です。また、JMSサーバインスタンス識別子を指定しているときは、wojmsdbmgrコマンドで -b オプションにより、インスタンス識別子を指定する必要があります。
    wojmsdbmgrコマンドの詳細については、「4. 運用管理コマンドリファレンス > 4.4. JMS > 4.4.3. wojmsdbmgr」を参照してください。
  4. JMSサービスを再起動してください。
補足:データベーススキーマ作成プロパティの既定値

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

注意 :

1.7.3.3. ユーザ管理の設定

ここでは、JMS固有のユーザ管理方式(JMS認証)を利用する場合のユーザ管理について説明します。

デフォルトでは、WebOTXドメインのユーザ管理方式を利用するようになっています。JMS固有のユーザ管理方式を利用する場合は、あらかじめ、設定が必要となります。 設定方法については、[ 1.7.3.10. ユーザ管理方式の設定 ] を参照してください。 また、WebOTXドメインのユーザ管理方式を利用する場合のユーザ管理については、 [ ドメイン構築・基本設定ガイド > 4. ユーザ管理 ] を参照してください。

JMS認証に必要なユーザ管理は、wojmsusermgrコマンドで行います。wojmsusermgrコマンドの詳細については、「4. 運用管理コマンドリファレンス > 4.4. JMS > 4.4.5. wojmsusermgr」を参照してください。
ユーザ情報は、次の場所にあるファイルで管理されています。
${INSTANCE_ROOT}/wojms/instances/wojmsbroker/etc/passwd

グループ
表1.7.3.3-1
グループ
説明
admin JMSに対する管理者権限を有するグループです。
user 管理者権限を持たず、クライアントアプリケーションからのアクセスに必要な権限だけを有するグループです。
コネクション確立時にユーザ認証を行う場合に使用するユーザをこのグループに定義します。
anonymous user同等の権限を有するグループです。
コネクション確立時にユーザ認証を行わない場合に暗黙的に使用するユーザを定義します。
このグループに定義できるユーザは唯一です。
状態

管理者は任意ユーザの登録情報の状態(アクティブ/非アクティブ)を変更することができます。

ユーザ名とパスワードの形式

次の文字は、ユーザ名として使用できません。

表1.7.3.3-2
文字
説明
* アスタリスク
, カンマ
: コロン
デフォルトの設定
表1.7.3.3-3
ユーザ名 パスワード グループ 状態
admin adminadmin admin アクティブ
guest guest anonymous アクティブ

※ JMSサーバの起動時にはadmin権限が必要です。JMSサーバを起動する運用管理エージェント側の定義には、あらかじめこのデフォルト値が設定されています。

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

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

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

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

形式 :
connection.resourceVariant.access.principalType = principals
表1.7.3.4-1
要素
説明
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

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

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

形式 :
resourceType.resourceVariant.operation.access.principalType = principals
表1.7.3.5-1
要素
説明
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

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

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

形式 :
resourceType.create.access.principalType = principals
表1.7.3.6-1
要素
説明
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

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

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

  1. 自己署名型証明書の生成
    wojmskeytoolコマンドでJMSサーバの自己署名型証明書を生成してください。wojmskeytoolコマンドの詳細は、「4. 運用管理コマンドリファレンス > 4.4. JMS > 4.4.4. wojmskeytool」を参照してください。
    # wojmskeytool -broker
    

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

  2. 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サーバ再起動後に、wojmscmd list svcコマンドで確認することができます。wojmscmd list svcコマンドの詳細は、「4. 運用管理コマンドリファレンス > 4.4. JMS > 4.4.4. wojmskeytool > 4.4.2.9. list svc」を参照してください。

  3. JMSサーバの再起動
    次のいずれかの方法でキーストアのパスワードを指定してJMSサーバを再起動してください。
    1. 起動引数で指定する
    2. パスワードファイルを使用する

    詳細は、「1.7.3.8. パスワードファイルの使用」を参照してください。

  4. 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サーバのホストのポート番号」の値を指定します。
      補足 : コネクションファクトリリソースに対するプロパティ設定
      統合運用管理ツールの場合
      「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
      

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

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

  1. パスワードファイルの作成
    パスワードファイルの作成は、次の位置にある雛形を利用してください。
    ${AS_INSTALL}/wojms/etc/passfile.sample
    パスワードファイルには次のパスワードを指定することができます。
    表1.7.3.8-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に設定した内容は無視されます。

1.7.3.9. Standard/Enterprise で動作させる場合の設定

Standard/Enterprise において、TPモニタ上でMessage-Driven Bean(MDB)やJMSの非同期受信を行うCORBAアプリケーションを起動する場合の設定について説明します。

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

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

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

    表1.7.3.9-1
    プロパティ
    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を利用して、以下のプロパティを設定します。

    表1.7.3.9-2
    プロパティ
    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間にまたがることに注意してください。
    表1.7.3.9-3
    プロパティ
    設定値
    wojmsConfiguredClientID クライアント識別子
    wojmsEnableSharedClientID true
CORBAアプリケーションでTopicのマルチコンシューマ負荷分散を利用する場合

CORBAアプリケーションでTopicのマルチコンシューマ負荷分散を利用する場合は、自動的にクライアント識別子とその共有フラグを設定します。この場合のクライアント識別子は、[アプリケーショングループ名]_[プロセスグループ名]です。 以下の方法でクライアント識別子を明示的に指定することも可能です。

  1. プログラムでの設定
    javax.jms.TopicConnectionのsetClientIDメソッドで指定してください。

  2. プロセスグループでの設定
    プロセスグループのシステムプロパティに以下のプロパティを指定してください。
    同じプロセスグループの中で複数のコンシューマを生成するような場合、クライアント識別子の共有範囲が複数のコンシューマ間にまたがることに注意してください。
    表1.7.3.9-4
    プロパティ
    説明
    wojmsConfiguredClientID クライアント識別子

  3. コネクションファクトリリソースでの設定
    使用するコネクションファクトリリソースの以下の属性を指定してください。
    同じコネクションファクトリリソースを複数のコンシューマで利用すると、クライアント識別子の共有範囲が複数のコンシューマ間にまたがることに注意してください。
    server.resources.jms-resource.jms-connection-factory.connection-factory-name
    表1.7.3.9-5
    プロパティ
    説明
    wojmsConfiguredClientID クライアント識別子
CORBAアプリケーションでWebOTXアプリケーション管理機能を利用する場合

JMSの非同期受信を行うCORBAアプリケーションで次のようなWebOTXのアプリケーション管理機能を利用するための設定について説明します。

  1. プロセスの障害監視・閉塞機能
    MessageListenerの呼び出しが指定した時間経過しても応答しない場合や、プロセスが異常終了した場合に、該当するプロセスを閉塞し、指定にしたがってプロセスを再起動します。

  2. 性能情報の採取機能
    MessageListener呼び出しに要した時間や、呼び出し回数といった性能および統計情報を採取します。

    アプリケーション管理機能を利用するためには、プロセスグループに次のJavaシステムプロパティを設定してください。
    表1.7.3.9-6
    プロパティ名
    説明
    wojmsEnableReliableThread アプリケーション管理機能を利用するかどうかを指定します。
    true アプリケーション管理機能を有効にします。
    false アプリケーション管理機能を無効にします(既定値)。
    wojmsReliableRetryAttempts アプリケーション管理機能を有効にした場合の、管理機能に対する初期処理が失敗した場合のリトライ回数を指定します。
    既定値は、200回です。
    wojmsReliableRetryInterval アプリケーション管理機能を有効にした場合の、管理機能に対する初期処理が失敗した場合のリトライ間隔を、秒単位で指定します。
    既定値は、3(秒)です。

1.7.3.10. ユーザ管理方式の設定

ここでは、JMSサーバに接続するユーザの管理方式を設定する方法について説明します。

  1. JMSサーバのプロパティファイルに、認証方式を指定するためのプロパティを設定します。プロパティの詳細については、「1.7.2.7. JMSのプロパティ/属性一覧 > JMSサーバのプロパティ」を参照してください。

    ユーザ管理方式を指定するためのプロパティについて説明します。

    表1.7.3.10-1
    プロパティ名
    説明 設定値
    WebOTXドメインの管理方式 JMS認証
    wojms.authentication.provider JMSサーバに接続するユーザの管理方式を指定します。 APSERVER WOJMS
    wojms.authentication.type JMSクライアントからパスワードを送信する際のタイプを指定します。 basic digest
    wojms.authentication.<type>.user_repository 認証に使用されるユーザリポシトリのタイプを指定します。 <type>には、wojms.authentication.type プロパティの値を指定します。 jaas file
  2. JMSサービスを再起動します。
Memo
JMS認証を利用する際、wojmsusermgrコマンドを実行する場合は、install.propertiesファイルのwojms.authentication.providerプロパティをWOJMSに設定してください。

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

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

再配信回数

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

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

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

再配信の遅延時間は、コネクションファクトリリソース、送信先、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 :
表1.7.3.11-2
属性名 説明 既定値
wojmsRedeliveryDelay 再配信遅延時間。メッセージ再配信で、配信の遅延時間を秒単位で指定します。0は、待ち合わせ無しを意味します。 0 (待ち合わせ無し)

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

セッション単位で指定する場合については、[リファレンス集 開発編(共通) > 3. リソース > 3.2. JMS > 3.2.2. 拡張インタフェース]を参照してください。

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

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

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

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

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

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

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

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

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

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

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

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

1.7.3.13. 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.〜で始まるプロパティは、出力ファイルのローテートはできません。ローテートの要/不要に応じて、どちらかのタイプのプロパティを指定してください。各プロパティの詳細については、「1.7.2.9. JMSクライアントのプロパティ」を参照してください。

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

Java EE環境で、JMSを分散トランザクションに参加させる場合、トランザクションサービスのJCAリソースを登録する必要があります。
JCAリソースの登録方法については、「ドメイン構築・基本設定ガイド > 7. WebOTXの内部サービス > 7.4. Transactionサービス > 7.4.2. リソースの登録・削除」を参照してください。

注意 :

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

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


図1.7.3.15-1

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

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

    表1.7.3.15-1
    項目 設定値
    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サーバでは以下の操作ができなくなります。それ以外の操作は正常に行えます。
        - 物理的な送信先の生成/削除/プロパティ更新
        - 永続サブスクリプションの削除

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

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

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

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

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


図1.7.3.16-1

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

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

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


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


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


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


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




1.7.3.18. 他社JMSプロバイダ接続の設定

ここでは、他社JMSプロバイダ接続に関する設定について説明します。

他社JMSプロバイダ側では、次の作業が必要です。
  1. JNDIへの登録
WebOTX側では、次の作業が必要です。
  1. 他社JMSプロバイダ実装クラスに関する設定
  2. リソースアダプタの設定
  3. リソースアダプタの配備
  4. コネクタコネクションプールの生成
  5. コネクタリソースの生成
  6. 管理対象オブジェクトの生成
  7. 配備記述子の定義

他社JMSプロバイダ側の作業
(1) JNDIへの登録
接続に必要な送信先とコネクションファクトリオブジェクトをJNDIに登録します。

登録には他社JMSプロバイダが提供している管理ツールなどを使用しますが、他社JNDIプロバイダとの接続に必要な実装クラス群とプロパティの情報が必要となります。

WebOTX JNDIに対して登録する場合に必要な情報については、 [ アプリケーション開発ガイド(共通) > 4. JNDIアプリケーションの開発 > 4.1. プログラミング・開発ガイド > 4.1.1. 環境設定 ] を参照してください。
登録情報を永続化するために次のプロパティを指定するようにしてください。指定しない場合、JNDIの再起動で登録情報が消失することになります。
有用なプロパティ
webotx.jndi.persistent=true



WebOTX側の作業
(1) 他社JMSプロバイダ実装クラスに関する設定
汎用JMSリソースアダプタや、MDBなどのJava EEアプリケーションから他社JMSプロバイダ実装クラスが参照できるように、次のディレクトリ配下に必要なクラス群を格納してください。この作業はドメイン停止中に行ってください。

格納先
${INSTANCE_ROOT}/lib

WebOTX JNDIで登録情報の永続化を有功にしているにも関わらず、WebOTXの再起動により登録情報が参照できなくなる場合、永続化した登録情報の復元時にクラス参照が解決ができていないことが考えられます。この場合は、ドメインの「サーバのクラスパス」属性に必要なクラス群を指定してください。

統合運用管理ツールの場合
「WebOTX 管理ドメイン[<ホスト名>]」-「<ドメイン名>」-「アプリケーションサーバ」-「JVM構成」の「クラスパス」タブの「サーバのクラスパス」属性に指定します。

運用管理コマンドの場合
set コマンドで server.java-config.server-classpath 属性に指定します。UNIXでの実行例を示します(以降同様)。
otxadmin> set server.java-config.server-classpath=/other/jms/lib/a.jar:/other/jms/lib/b.jar:/other/jms/lib/c.jar

クラス群を指定しても参照できない場合、永続化した登録情報の復元時にセキュリティ例外が発生していることが考えられます。 例えば、リフレクション権限が不足する場合には、次の例外が発生します。
java.security.AccessControlException: access denied (java.lang.reflect.ReflectPermission suppressAccessChecks)

この場合、セキュリティログ(${INSTANCE_ROOT}/logs/agent/webotx_security.log)で詳細を確認し、必要な権限を以下のセキュリティポリシファイルに追加してください。
${INSTANCE_ROOT}/config/server.policy

(2) リソースアダプタの設定
汎用JMSリソースアダプタに関する設定を生成します。

アダプタ名
genjmsra

統合運用管理ツールの場合
「WebOTX 管理ドメイン[<ホスト名>]」-「<ドメイン名>」-「リソース」-「コネクタモジュール構成情報」-【コネクタモジュールのための構成情報を登録】操作

運用管理コマンドの場合
create-resource-adapter-config コマンドを利用します。
otxadmin> create-resource-adapter-config --property ProviderIntegrationMode=jndi:SupportsXA=true:RMPolicy=OnePerPhysicalConnection:UseFirstXAForRedelivery=true:JndiProperties=java.naming.factory.initial\\=jp.co.nec.WebOTX.jndi.SerialInitContextFactory,java.naming.provider.url\\=corbaname\\:\\/\\/host\\:2809 genjmsra
ここには、他社JMSプロバイダの送信先やコネクションファクトリオブジェクトを登録したJNDIに関する情報などを指定します。

表1.7.3.18-1
プロパティ名 説 明 既定値
ProviderIntegrationMode 他社JMSプロバイダとの連携方式を指定します。
jndi:オブジェクトをJNDIからlookupします。
javabean:オブジェクトをリフレクションで生成します。

※V8.1ではjavabeanをサポートしていません。必ずjndiを指定してください。
javabean
JndiProperties JNDIプロバイダに適用するプロパティ群(カンマで区切られた名前と値のペア)を指定します。
WebOTX JNDIを利用する場合は、次のプロパティが必要です。
java.naming.factory.initial=jp.co.nec.WebOTX.jndi.SerialInitContextFactory
java.naming.provider.url=corbaname://host:port
接続先のホスト名とポート番号を指定します。
 
SupportsXA XAのサポート可否を指定します。
true:XAをサポートします。
false:XAをサポートしません。
false
UserName コネクション接続時に使用するユーザ名を指定します。  
Password コネクション接続時に使用するパスワードを指定します。  
RMPolicy 他社JMSプロバイダ実装のXAResourceをラップしたオブジェクトにおいて、isSameRM()呼び出しをどのように処理するかを指定します。
ProviderManaged:他社JMSプロバイダ実装のXAResourceに委譲します。
OnePerPhysicalConnection:ラップオブジェクトで判断します。

※「IBM WebSphere MQ」の場合、同じキューマネージャに対する受信と送信が2フェーズコミットメントになるケースでOnePerPhysicalConnectionの指定が必要です。
ProviderManaged
UseFirstXAForRedelivery MDBのアダプタ内での再配信機能が有効な場合に、再配信の有無が決定するまでXAトランザクションの開始を遅延させる処理を無効にするか否かを指定します。
true:無効にします。
false:有効にします。

※「IBM WebSphere MQ」の場合、XAトランザクションの開始を遅延させることができません。MDBのアダプタ内での再配信機能を有効にする場合には必ずtrueを指定してください。
false


(3) リソースアダプタの配備
汎用JMSリソースアダプタを配備します。

RARファイル
${AS_INSTALL}/wojms/lib/genjmsra.rar

統合運用管理ツールの場合
「WebOTX 管理ドメイン[<ホスト名>]」-「<ドメイン名>」-「アプリケーション」-【コンポーネントの配備】操作

運用管理コマンドの場合
deploy コマンドを利用します。
otxadmin> deploy ${AS_INSTALL}/wojms/lib/genjmsra.rar
(4) コネクタコネクションプールの生成
アプリケーションで使用するJMSコネクションファクトリに関するコネクタコネクションリソースを生成します。
MDBのメッセージ受信に関するものは生成する必要はありません。

統合運用管理ツールの場合
「WebOTX 管理ドメイン[<ホスト名>]」-「<ドメイン名>」-「リソース」-「コネクタコネクションプール」-【コネクションプールの登録】操作

運用管理コマンドの場合
create-connector-connection-poolコマンドを利用します。
otxadmin> create-connector-connection-pool --raname genjmsra --connectiondefinition javax.jms.QueueConnectionFactory --transactionsupport XATransaction --property ConnectionFactoryJndiName=other/ReplyQCF:ConnectionValidationEnabled=true mypool
ここには、JNDIに登録された他社JMSプロバイダのコネクションファクトリオブジェクトとの関連付けなどを指定します。

表1.7.3.18-2
プロパティ名 説 明 既定値
ConnectionFactoryJndiName 他社JMSプロバイダが登録したコネクションファクトリのJNDI名を指定します。  
ConnectionValidationEnabled 例外リスナでコネクション例外を捕捉し、CONNECTION_ERROR_OCCUREDイベントをアプリケーションサーバに通知するか否かを指定します。
true:通知します。
false:通知しません。
false
SyncExceptionListenerEnabled 非同期受信型メッセージリスナを設定しなければ例外リスナが機能しないJMSプロバイダの場合、コネクション例外を認識することができません。これを回避するために、一時的な送信先を利用した非同期受信型メッセージリスナを生成するか否かを指定します。ConnectionValidationEnabledをtrueにした場合に有効です。
true:生成します。
false:生成しません。
false
ClientId コネクションで使用するクライアントIDを指定します。  


(5) コネクタリソースの生成
アプリケーションで使用するJMSコネクションファクトリに関するコネクタリソースを生成します。
MDBのメッセージ受信に関するものは生成する必要はありません。

統合運用管理ツールの場合
「WebOTX 管理ドメイン[<ホスト名>]」-「<ドメイン名>」-「リソース」-「コネクタリソース」-【コネクタリソースの登録】操作

運用管理コマンドの場合
create-connector-resource コマンドを利用します。
otxadmin> create-connector-resource --poolname mypool jms/ReplyQCF
汎用JMSリソースアダプタ固有の設定はありません。

分散トランザクションに参加させる場合、「1.7.3.14. 分散トランザクションへの参加」の作業を行ってください。


(6) 管理対象オブジェクトの生成
アプリケーションで使用するJMS送信先に関する管理対象オブジェクトリソースを生成します。
MDBのメッセージ受信に関するものは生成する必要はありません。

統合運用管理ツールの場合
「WebOTX 管理ドメイン[<ホスト名>]」-「<ドメイン名>」-「リソース」-「リソースアダプタ」-【リソースアダプタの管理オブジェクトの登録】操作

運用管理コマンドの場合
create-admin-object コマンドを利用します。
otxadmin> create-admin-object --raname genjmsra --restype javax.jms.Queue --property DestinationJndiName=other/ReplyQueue jms/ReplyQueue
ここには、JNDIに登録された他社JMSプロバイダの送信先オブジェクトとの関連付けなどを行います。

表1.7.3.18-3
プロパティ名 説 明 既定値
DestinationJndiName 他社JMSプロバイダが登録した送信先のJNDI名を指定します。  


(7) 配備記述子の定義
MDBに関する設定は、配備記述子(nec-ejb-jar.xml)のmdb-resource-adapter要素に定義します。

<?xml version="1.0" encoding="UTF-8"?>
<nec-ejb-jar>
 <enterprise-beans>
  <ejb>
   <ejb-name>MyMDB</ejb-name>
   ・・・・・
   <mdb-resource-adapter>
    <resource-adapter-mid>genjmsra</resource-adapter-mid>
    <activation-config>
     <activation-config-property>
      <activation-config-property-name>ConnectionFactoryJndiName</activation-config-property-name>
     <activation-config-property-value>other/RequestQCF</activation-config-property-value>
     </activation-config-property>
     <activation-config-property>
      <activation-config-property-name>DestinationJndiName</activation-config-property-name>
      <activation-config-property-value>other/RequestQueue</activation-config-property-value>
     </activation-config-property>
     ・・・・・
    </activation-config>
   </mdb-resource-adapter>
  </ejb>
 </enterprise-beans>
</nec-ejb-jar>

resource-adapter-mid要素には、汎用JMSリソースアダプタの識別子を指定します。

識別子
genjmsra

activation-config要素には、メッセージ受信に関する汎用JMSリソースアダプタのActivationSpecプロパティを指定します。ここには、JNDIに登録された他社JMSプロバイダの送信先やコネクションファクトリオブジェクトなどを指定します。

表1.7.3.18-4
プロパティ名 説 明 既定値
ConnectionFactoryJndiName 他社JMSプロバイダが登録したコネクションファクトリのJNDI名を指定します。  
DestinationJndiName 他社JMSプロバイダが登録した送信先のJNDI名を指定します。  
DestinationType 送信先のタイプを指定します。
javax.jms.Queue:キュー
javax.jms.Topic:トピック
 
SubscriptionDurability Topicサブスクリプションの持続性を指定します。
Durable:持続性
Non-Durable:非持続性
Non-Durable
SubscriptionName Topicサブスクリプション名を指定します。  
MessageSelector メッセージセレクタを指定します。  
ClientID クライアントIDを指定します。  
MaxPoolSize メッセージの多重処理のためにリソースアダプタが生成するServerSessionPoolの最大数を指定します。
この値は、MDBの最大プール数に合わせてください。
8
MaxWaitTime ServerSessionPoolからのServerSession取得時の待ち合わせ時間(秒)を指定します。 この値を超えると、メッセージ配信が失敗します。 3
ReconnectAttempts コネクションの再接続回数を指定します。 0
ReconnectInterval コネクションの再接続間隔(秒)を指定します。 0
RedeliveryAttempts MDBで実行時例外が発生した場合にアダプタ内で再配信する回数を指定します。 0
RedeliveryInterval MDBで実行時例外が発生した場合にアダプタ内で再配信する間隔(秒)を指定します 0
EndpointReleaseTimeout エンドポイントの解放待ち合わせ時間(秒)を指定します。 180
SyncExceptionListenerEnabled 非同期受信型メッセージリスナを設定しなければ例外リスナが機能しないJMSプロバイダの場合、コネクション例外を認識することができません。これを回避するために、一時的な送信先を利用した非同期受信型メッセージリスナを生成するか否かを指定します。ReconnectAttemptsが1以上の場合に有効です。
true:生成します。
false:生成しません。
false

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

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

表1.7.3.19-1
プロパティ名 説 明 既定値
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