Oracle® Fusion Middleware Oracle Data Integrator接続およびナレッジ・モジュール・ガイド 11gリリース1(11.1.1) B62261-01 |
|
戻る |
次へ |
この章では、Oracle Data IntegratorでのJava Message Services(JMS)の使用方法について説明します。
この章の内容は次のとおりです。
Oracle Data Integratorには、JMS宛先を統合するための、単純で透過的な方法が用意されています。この章では、テキスト・ペイロードを使用するJMSメッセージのバッチ・モードでの処理について説明します。XMLペイロードの処理の説明は、第23章「JMS XML」を参照してください。
JMSナレッジ・モジュールは、最も一般的なJMS準拠のミドルウェア(Oracle Service Bus、Sonic MQ、IBM Websphere MQなど)に適用されます。これらのほとんどのナレッジ・モジュールには、メッセージを確実に配信するためのトランザクション処理が含まれます。
この項では、JMS宛先のメッセージの構造を説明します。
JMSメッセージは次の3つのセクションで構成されます。
ヘッダー
ヘッダーのヘッダー・フィールドには、メッセージ関連の標準メタデータが含まれます。標準メタデータには、宛先(JMSDestination)メッセージID(JMSMessageID)メッセージ・タイプ(JMSType)などがあります。
プロパティ
プロパティ・セクションには、メッセージ関連の追加のメタデータが含まれます。これらのメタデータはプロパティであり、次の3つのグループに分けられます。
オプションのJMSヘッダーであるJMS定義のプロパティ。名前の先頭にJMSXが付きます(JMSXUserID、JMSXAppIDなど)。
プロバイダ固有のプロパティ。ルーター・ベンダー固有のプロパティです。名前の先頭にJMS_<vendor name>が付きます。
アプリケーション固有のプロパティ。これらのプロパティは、メッセージを送信するアプリケーションに依存します。メッセージ・ペイロードに含まれないユーザー定義の情報です。
ヘッダー・セクションおよびプロパティ・セクションでは、次のような一連のヘッダー・フィールドおよびプロパティが提供されます。
固有のJavaデータ型(boolean、string、shortなど)が指定されている。
アクセスして読取りまたは書込み(もしくはその両方)を行える。
JMSセレクタを介してルーター上でフィルタ処理するために使用できる。
ペイロード
ペイロード・セクションにはメッセージの内容が含まれます。この内容は、テキスト、XML、バイナリなど、何でも構いません。
Oracle Data Integratorでは、JMS宛先によって配信されるJMSテキストおよびバイト・メッセージの処理が可能です。各メッセージはデータ行のコンテナとして扱われ、JMSキューまたはJMSトピック・テクノロジを介して処理されます。
JMSキューまたはJMSトピック・テクノロジでは、各JMS宛先がフラット・ファイル・データストアと同様に定義されます。宛先内の各メッセージは、データストアのレコードです。
トポロジでは、単一の物理スキーマを使用して、各JMSルーターがJMSトピックまたはキューのデータ・サーバーとして定義されます。つまり、1つのデータ・サーバーを使用してトピックにアクセスし、別のデータ・サーバーを使用してキューにアクセスするために、JMSルーターは2回定義される可能性があります。
各JMS宛先(トピックまたはキュー)は、リソース名がJMS宛先の名前(ルーターで定義されたキューまたはトピックの名前)と一致する、JMSデータストアとして定義されます。モデルによって、異なるトピックまたはキューに関連するメッセージ構造がグループ化されます。
JMSデータストア構造は、同様にフラット・ファイル(デリミタ付きまたは固定幅)に定義されます。メッセージのプロパティまたはヘッダー・フィールドは、JMS固有のデータ型を使用して、このフラット・ファイル構造内で追加の擬似列として宣言できます。宛先内の各メッセージは、JMSデータストアのレコードとして処理されます。
メッセージの処理
JMS宛先は通常のファイル・データストアとして、また、メッセージはこれらのデータストアの行として処理されます。これらのテクノロジにより、メッセージ・セット全体が生成され、各インタフェース内で消費されます。
メッセージのパブリッシュおよび消費には、JMS宛先からのメッセージの削除またはJMS宛先へのメッセージのポストをファイナライズするための、コミット・アクションが必要です。コミットは特に、読取り時に重要です。コミットしない場合、メッセージは読み取られますが消費されません。そのようなメッセージはJMSトピックまたはキューに残るため、後で再度読み取られます。
メッセージの内容および擬似列は、どちらも通常の列として(マッピング、フィルタなどに)統合インタフェース内で使用できます。一部の擬似列(MESSAGE_IDプロパティを表す擬似列など)は読取り専用であり、ヘッダー・フィールドの一部のプロパティはナレッジ・モジュール・オプションを介して使用(または設定)されます。
Data Integratorでは、メッセージ・ペイロード(列)として、またはアプリケーション・プロパティなどのプロパティ(擬似列)を介して、情報を転送できます。
プロパティを使用した情報伝達は、メッセージを生成または消費するサード・パーティ・アプリケーションによって制限されます。
メッセージのフィルタ処理
次の2つの方法で、JMS宛先のメッセージをフィルタ処理できます。
データストアの列および擬似列を使用して、フィルタを定義する。この場合、メッセージの消費後に、Data Integratorによってフィルタ処理操作が実行されます。これは、このフィルタで拒否されるメッセージも消費される可能性があることを意味します。
メッセージ・セレクタ(MESSAGE_SELECTOR KMオプション)を定義する。このタイプのフィルタでは、メッセージのプロパティまたはヘッダー・フィールドのみを使用できます。このフィルタはルーターによって処理され、フィルタ条件を満たすメッセージのみが消費されるため、転送されるメッセージの数が削減されます。
Oracle Data Integratorには、JMSメッセージを処理するためのナレッジ・モジュール(KM)が用意されています。これらのリストを表22-1に示します。
表22-1 JMSナレッジ・モジュール
ナレッジ・モジュール | 説明 |
---|---|
IKM SQL to JMS Append |
任意のSQL準拠ステージング領域からJMS準拠のメッセージのキューまたはトピックへ、テキストまたはバイナリ形式でデータを統合します。 データを変換してターゲットのJMSキューまたはトピックにエクスポートする場合は、このIKMの使用を検討してください。ほとんどのソース・データストアが同じデータ・サーバー上にある場合は、余分なロード・フェーズ(LKM)を発生させないために、このデータ・サーバーをステージング領域として使用することをお薦めします。 このIKMを使用するには、ステージング領域がターゲットと異なる必要があります。 |
LKM JMS to SQL |
テキストまたはバイナリのJMS準拠メッセージのキューまたはトピックから、ステージング領域として使用される任意のSQL準拠データベースへ、データをロードします。エージェントを使用してソース・キュー/トピックから選択されたメッセージを読み取り、動的に作成された一時ステージング表に結果を書き込みます。 メッセージを確実に配信するために、メッセージのコンシューマ(またはサブスクライバ)は、IKMによってデータが実際にターゲットに統合されるまで、読取りをコミットしません。 ソース・データストアの1つがテキストまたはバイナリのJMSメッセージの場合は、このLKMの使用を検討してください。 |
JMSナレッジ・モジュールの使用を開始する前に、この項の情報を必ず読んでください。
インストールを実行する前に、システム要件および動作要件のドキュメントを読んで、使用する環境がインストールする製品の最低インストール要件を満たすことを確認する必要があります。
サポートされているプラットフォームおよびバージョンのリストには、次のOracle Technical Network(OTN)からアクセスできます。
http://www.oracle.com/technology/products/oracle-data-integrator/index.html
JMS宛先へのアクセスは、通常、JNDIサービス経由で行われます。JNDIおよびJMSの構成および固有の要件は、接続先のJMSプロバイダによって異なります。詳細は、JMSプロバイダ固有のドキュメントを参照してください。
Oracle Data Integratorには、JMSプロバイダ専用のドライバは含まれていません。このプロバイダの接続性要件は、JMSプロバイダのドキュメントを参照してください。
トポロジの設定には次が含まれます。
各JMSデータ・サーバーは、ローカル・ネットワーク経由でアクセス可能な1つのJMSプロバイダまたはルーターに対応します。
JMSデータ・サーバーにはJMSキューとJMSトピックの2タイプがあります。
JMSキュー・データ・サーバーは、JMSルーター内の複数のキューへのアクセスに使用されます。
JMSトピック・データ・サーバーは、JMSルーター内の複数のトピックへのアクセスに使用されます。
『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のデータ・サーバーの作成に関する項に記載されている標準の手順で、JMSキュー・テクノロジまたはJMSトピック・テクノロジ用のデータ・サーバーを作成します。この項では、JMSキューまたはJMSトピック・データ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。
「定義」タブ:
名前: Oracle Data Integratorに表示されるデータ・サーバーの名前。
ユーザー/パスワード: ここでは使用しません。これらのフィールドは空のままにします。
「JNDI」タブ:
JNDI認証: このフィールドをNone
に設定します。
JNDIユーザー: JNDIディレクトリに接続するためのユーザー名を入力します(オプションの手順)。
パスワード: このユーザーのパスワード(オプションの手順)。
JNDIプロトコル: リストから「JNDI」プロトコルを選択します(オプションの手順)。
JNDIドライバ: JNDIプロバイダに接続するための初期コンテキスト・ファクトリjavaクラスの名前。例(LDAPの場合): com.sun.jndi.ldap.LdapCtxFactory
JNDI URL: <JMS_RESOURCE>
。例(LDAPの場合):ldap://<host>:<port>/<dn>
JNDIリソース: JMSキューまたはトピックの接続ファクトリに対応するJNDIリソースの論理名。
たとえば、メッセージ・キューにアクセスする場合はQueueConnectionFactory
、トピックにアクセスする場合はTopicConnectionFactory
を指定します。これらのパラメータはJNDIディレクトリおよびプロバイダ固有のものです。
『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の物理スキーマの作成に関する項に記載されている標準の手順で、JMS物理スキーマを作成します。
注意: 各JMSデータ・サーバーに必要な物理スキーマは、1つのみです。 |
『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の論理スキーマの作成に関する項に記載されている標準の手順で、この物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。
JMSを使用してプロジェクトを設定するには、標準の手順に従います。『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の統合プロジェクトの作成に関する項を参照してください。
JMSでの作業を開始するにあたり、使用するプロジェクトに次のナレッジ・モジュールをインポートすることをお薦めします。
IKM SQL to JMS Append
LKM JMS to SQL
この項の内容は次のとおりです。
注意: JMSモデルをリバース・エンジニアリングすることはできません。データストアを作成するには、JMSモデルを作成してJMSデータストアを定義する必要があります。 |
『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のモデルの作成に関する項に記載されている標準の手順で、JMSモデルを作成します。
JMSモデルは、ルーターのトピックまたはキューに対応する一連のデータストアです。各データストアは特定のキューまたはトピックに対応します。データストアの構造によって、このキューまたはトピックのメッセージ構造が定義されます。モデルは常に、論理スキーマに基づきます。特定のコンテキストで、論理スキーマは1つのJMS物理スキーマに対応します。この物理スキーマに対応するデータ・スキーマには、トピックまたはキューが含まれます。
Oracle Data Integrator内の各データストアは、1つのJMSトピックまたはキューです。このトピックまたはキューに含まれる各メッセージは、データストアの1つの行です。
JMSメッセージではあらゆるタイプの情報が伝達されるため、メタデータを取得する方法はありません。そのため、リバース・エンジニアリングは不可能です。
データストアの構造を定義するには、次のいずれかを行います。
データストアをファイル・データストアとして作成し、メッセージ構造を手動で宣言します。
メッセージのリバース・エンジニアリングを自動化するために、Excelスプレッドシートを介してファイル・リバース・エンジニアリングを使用します。このリバース・エンジニアリング方法の詳細は、第3章「ファイル」を参照してください。
別のモデルからJMSモデルへデータストアを複製します。
重要: データストアのリソース名は、それらのデータに対応するメッセージを伝達するJMS宛先の名前(論理JNDI名)と同一にする必要があります。通常、これらの名前では大/小文字が区別されます。 |
擬似列としてのJMSプロパティの宣言
プロパティ擬似列は、メッセージのプロパティまたはヘッダー・フィールドを表します。これらの擬似列は、JMS固有のデータ型を使用して、Oracle Data Integratorモデル内でJMSデータストアの列として定義されます。JMS固有のデータ型は、JMS_xxx(例: JMS String、JMS Long、JMS Intなど)と呼ばれます。
これらのプロパティ擬似列を定義するには、単純に、プロパティと同じ名前の、JMS固有の適切なデータ型が指定された追加の列を宣言します。
標準、プロバイダ固有またはアプリケーション固有のプロパティのような名前で擬似列を定義した場合、擬似列はそのようなプロパティとしてメッセージで消費またはパブリッシュされます。擬似列が標準またはプロバイダ固有のJMSプロパティ・セットにリストされていない場合は、アプリケーション固有の追加のプロパティとみなされます。
たとえば、インタフェースで、CUSTOMERというJMSキューから消費された、またはJMSキューにプッシュされたメッセージのJMSPriorityデフォルト・プロパティを使用または設定するには、CUSTOMERデータストアに(大/小文字を区別して)JMSPriorityという列を追加します。この列では、JMSキュー・テクノロジに対してJMS Intデータ型を使用できます。
警告:
|
JMSプロパティの詳細は、次を参照してください。
JMSは、統合インタフェースのソースまたはターゲットとして使用できます。ステージング領域として使用することはできません。
インタフェースまたはチェック用に選択したKMによって、このインタフェースまたはチェックの機能およびパフォーマンスが決まります。この項に示す推奨事項は、JMSメッセージに関連する様々な状況でのKMの選択に役立ちます。
JMSは、インタフェースのソースまたはターゲットとして使用できます。JMSメッセージ・キューまたはトピックのデータは、ステージング領域として使用される任意のSQL準拠データベースにロードできます。インタフェース・フロー・タブでの、JMSと別のタイプのデータ・サーバー間でデータをロードするためのLKMの選択は、インタフェースのパフォーマンスに関してきわめて重要です。
Oracle Data Integratorには、JMSソースからステージング領域へデータをロードするためのLKM JMS to SQLが用意されています。このLKMは、テキストまたはバイナリのJMS準拠メッセージ・キューまたはトピックから、ステージング領域として使用される任意のSQL準拠データベースへ、データをロードします。
JMS固有のオプションは、表22-2を参照してください。
Oracle Data Integratorには、JMS用に最適化されたデータ統合戦略を実装するIKM SQL to JMS Appendが用意されています。このIKMは、任意のSQL準拠ステージング領域からJMS準拠のメッセージ・キューまたはトピックへ、テキストまたはバイナリ形式でデータを統合します。このIKMのJMS固有のKMオプションは、表22-2を参照してください。
インタフェース・フロー・タブのIKMの選択によって、統合のパフォーマンスおよび可能性が決まります。
JMSナレッジ・モジュール・オプション
JMS IKMおよびLKMのJMS固有のKMオプションは、表22-2を参照してください。
このLKMのJMS固有のオプションは、IKM SQL to JMS Appendのオプションと類似しています。異なるのは次の2点のみです。
DELETE_TEMPORARY_OBJECTSオプションは、LKMのみで使用できます。
PUBLISHオプションは、IKMのみで使用できます。
表22-2 JMS固有のKMオプション
オプション | 用途 | 説明 |
---|---|---|
PUBLISH |
書込み |
宛先に新規メッセージをパブリッシュする場合は、このオプションをチェックします。このオプションは、デフォルトでYesに設定されています。 |
JMS_COMMIT |
読取り/書込み |
メッセージの公開または消費をコミットします。ルーター上で公開または消費をコミットしないためには、このオプションを選択解除します。このオプションは、デフォルトでYesに設定されています。 |
JMSDELIVERYMODE |
書込み |
JMS配信モード(1: 非永続、2: 永続)。永続メッセージはサーバーに残るため、サーバーのクラッシュ時にリカバリされます。 |
JMSEXPIRATION |
書込み |
サーバー上でのメッセージの有効期限をミリ秒で指定します(0〜4 000 000 000)。0の場合、メッセージの有効期限が切れることはありません。 警告: この有効期限を過ぎると、メッセージは期限切れとみなされ、トピックまたはキューからなくなります。インタフェースの開発時には、このパラメータをゼロに設定することをお薦めします。 |
JMSPRIORITY |
書込み |
メッセージの相対的優先度: 0(最低)〜9(最高)。 |
SENDMESSAGETYPE |
書込み |
送信するメッセージのタイプ(1: BytesMessage、2: TextMessage)。 |
JMSTYPE |
書込み |
メッセージの名前(オプション)。 |
CLIENTID |
読取り |
サブスクライバ識別文字列。このオプションは、JMS互換のためにのみ記述されます。 公開には使用されません。 |
DURABLE |
読取り |
D: セッションは永続的です。切断後もサブスクライバ定義がルーター上に残ることを示します。 |
MESSAGEMAXNUMBER |
読取り |
取得されるメッセージの最大数(0〜4 000 000 000)。0: すべてのメッセージが取得されます。 |
MESSAGETIMEOUT |
読取り |
最初のメッセージの待機時間をミリ秒で示します(0〜4 000 000 000)。MESSAGETIMEOUTが0の場合、タイムアウトは発生しません。 MESSAGETIMEOUTおよびMESSAGEMAXNUMBERの両方をゼロにすることはできません。MESSAGETIMEOUT= 0でMESSAGEMAXNUMBER =0の場合、MESSAGETIMEOUTの値として1が使用されます。 警告: このタイムアウト値が小さすぎると、インタフェースによってメッセージが取得されない可能性があります。 |
NEXTMESSAGETIMEOUT |
読取り |
後続の各メッセージの待機時間をミリ秒で示します(0〜4 000 000 000)。デフォルト値は1000です。 警告: この値が小さすぎると、トピックまたはキューにあるメッセージの一部分しか取得されない可能性があります。 |
MESSAGESELECTOR |
読取り |
ISO SQL構文のメッセージ・セレクタ。メッセージ・セレクタの詳細は、22.7.1項「JMSプロパティの使用」を参照してください。 |
この項では、メッセージ・ヘッダーに含まれるJMSプロパティおよび使用方法について説明します。
Oracle Data Integratorでは、JMS標準プロパティに対応する擬似列を表22-3の説明に従って宣言する必要があります。
JMSタイプおよびアクセス・モード列では、Oracle Data IntegratorまたはJavaプログラムのこれらのプロパティの使用が参照されます。Oracle Data Integratorでは、これらのプロパティの一部がIKMオプションを介して使用されるため、擬似列値をインタフェースで設定しないでください。
これらのプロパティのJavaプログラムでの使用方法は、http://java.sun.com/products/jms/
を参照してください。
表22-3 メッセージ・ヘッダーの標準JMSプロパティ
プロパティ | JMS型 | アクセス(読取り/書込み) | 説明 |
---|---|---|---|
JMSDestination |
JMS String |
R |
メッセージの宛先(トピックまたはキュー)の名前。 |
JMSDeliveryMode |
JMS Integer |
R/W(IKMオプションによって設定) |
配信モード: 1 = 非永続、または2 = 永続。永続メッセージは、ルーターがクラッシュした場合でも失われることはありません。 このプロパティは、メッセージの送信時にJMSDELIVERYMODE KMオプションによって設定されます。 |
JMSMessageID |
JMS String |
R |
メッセージの一意の識別子。この識別子はルーターによって内部的に使用されます。 |
JMSTimestamp |
JMS Long |
R |
メッセージ送信操作の日時。この時間は、UTC標準形式で格納されます(1)。 |
JMSExpiration |
JMS Long |
R/W(IKMオプションによって設定) |
メッセージの有効期限の日時。この時間は、UTC標準形式で格納されます(1)。 このプロパティを設定するには、JMSEXPIRATION KMオプションを使用する必要があります。 |
JMSRedelivered |
JMS Boolean |
R |
メッセージが再送されたかどうかを示します。これは、メッセージ・コンシューマがメッセージ受信の確認に失敗した場合に発生します。 |
JMSPriority |
JMS Int |
R/W |
メッセージの返信の送信先となる宛先(トピックまたはキュー)の名前。 |
JMSCorrelationID |
JMS String |
R/W |
メッセージの相関ID。この返信を生成するメッセージのJMSMessageIDが使用される場合があります。また、アプリケーション固有の識別子が使用される場合もあります。 |
JMSType |
JMS String |
R/W(IKMオプションによって設定) |
メッセージ・タイプ・ラベル。このタイプは、メッセージを実用的に説明する文字列値です(例: このプロパティを設定するには、JMSTYPE KMオプションを使用する必要があります。 |
表22-4に、JMS標準のオプションのJMS定義プロパティをリストします。
表22-4 メッセージ・ヘッダーの標準JMSプロパティ
プロパティ | JMS型 | アクセス(読取り/書込み) | 説明 |
---|---|---|---|
JMSXUserID |
JMS String |
R |
クライアント・ユーザーID。 |
JMSXAppID |
JMS String |
R |
クライアント・アプリケーションID。 |
JMSSXProducerTXID |
JMS String |
R |
本番セッションのトランザクションID。このIDは、2つのJMSコミット操作の間にプロデューサが宛先に送信したすべてのメッセージで同一です。 |
JMSSXConsumerTXID |
JMS String |
R |
現在の消費セッションのトランザクションID。このIDは、2つのJMSコミット読取り操作の間にコンシューマが宛先から読み取ったメッセージのバッチで同一です。 |
JMSXRcvTimestamp |
JMS Long |
R |
メッセージの受信日時。この時間は、UTC標準形式で格納されます(1)。 |
JMSXDeliveryCount |
JMS Int |
R |
メッセージの受信回数。常に1に設定されます。 |
JMSXState |
JMS Int |
R |
メッセージの状態。常に2(準備完了)に設定されます。 |
JMSXGroupID |
JMS String |
R/W |
メッセージが属するグループのID。 |
JMSXGroupSeq |
JMS Int |
R/W |
メッセージ・グループ内のメッセージの順序番号。 |
(1): UTC(協定世界時)標準は、1970年1月1日から経過したミリ秒数です。
メッセージには、内容の他にも一連のプロパティが添付されます。これらは、プロバイダ固有のプロパティ、アプリケーション固有(ユーザー定義)のプロパティまたはJMS標準プロパティです。
JMSプロパティはOracle Data Integratorで補足情報として使用され、メッセージのフィルタ処理などに使用されます。
JMSデータストアの定義の際に、インタフェースで使用するJMSプロパティに対応する擬似列を追加する必要があります。詳細は、「擬似列としてのJMSプロパティの宣言」を参照してください。
このタイプのフィルタ処理では、フィルタはJMS読取り問合せの送信時に指定されます。メッセージ・セレクタ・フィルタと一致するメッセージのみが取得されます。メッセージ・セレクタは、Oracle Data IntegratorでMESSAGE_SELECTOR KMオプションを使用して指定されます。
注意: ルーターのフィルタ処理は、JMSの必須機能ではありません。そのため、使用できない場合があります。JMSプロバイダのドキュメントで、この機能が使用可能であることを確認してください。 |
MESSAGE_SELECTORはSQLのWHERE構文でプログラムされます。次の(比較、ブールおよび数値)演算子がサポートされています。
+、-、*、/、=、>、<、<>、>=、<=、OR、AND、BETWEEN、IN、NOT、LIKE、IS NULL
注意:
|
例
優先度が5より高いすべてのメッセージをフィルタ処理する場合
JMSPriority > 5
優先度が6より低く、タイプがSales_Eventのすべてのメッセージをフィルタ処理する場合
NOT JMSPriority < 6 AND JMSType = 'Sales_Event'
フィルタ処理はメッセージの受信後に実行されます。また、ステージング領域で実行する必要がある標準のOracle Data Integratorインタフェース・フィルタを作成することで設定されます。フィルタでは、ソースJMSデータストアの擬似列が使用されます。Oracle Data Integratorデータストアで定義された擬似列は、JMSプロパティを表します。詳細は、「擬似列としてのJMSプロパティの宣言」を参照してください。この方法でフィルタ処理されたメッセージは、キューまたはトピックから消費されたとみなされます。
JMSプロパティの値は、インタフェースのソース・データとして使用できます。これは、マッピングでソースJMSデータストアの擬似列を指定することで実行されます。詳細は、「擬似列としてのJMSプロパティの宣言」を参照してください。
JMSデータストアをターゲット指定するインターフェースで擬似列の値をマップすることで、メッセージの送信時にJMSプロパティを指定できます。一部のプロパティはKMオプションを使用して設定されます。詳細は、22.7項「JMS標準プロパティ」を参照してください。