# mulesoft Jms Connector - Full Documentation # Anypoint Studio を使用した JMS Connector 1.10 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-input-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 6. [ブローカーへの接続を設定します](#configure-connection)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「JMS Connector リファレンス」](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-connector-reference)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する JMS 用 Anypoint Connector (JMS Connector) を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ ウィンドウで、検索項目に「​`jms`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で ​**\[JMS Connector\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-input-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを設定して、JMS Connector で使用できます。 - **\[JMS\] > \[On New Message\]**​ 受信メッセージをリスンすることでフローを開始する - **\[HTTP\] > \[Listener\]**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、​**On New Message**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[JMS Config (JMS 設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別のいずれかを選択します。 - **Active MQ Connection (Active MQ 接続)** - **Active MQ Connection -No Connectivity Test - (Active MQ 接続 - 接続テストなし -)**​ (非推奨) - **Generic Connection (汎用接続)** 1. **\[General (一般)\]**​ タブで、コネクタの接続情報 (ブローカーで必要なライブラリ、JMS 仕様、キャッシュ戦略、認証、接続ファクトリーなど) を指定します。 2. **\[TLS/SSL\]**​ タブで、必要に応じて TLS 設定を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略と XA 接続プールを指定します。 4. **\[OK\]**​ をクリックして、ウィンドウを閉じます。 5. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ でメッセージのコンシューム元である宛先の名前を指定します。 6. **\[On New Message\]**​ 設定画面で他の省略可能な項目を設定します。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。 JMS Connector の操作を追加するには、次の手順に従います。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS Connector\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の右にドラッグします。 次のスクリーンショットは、Anypoint Studio の \[Mule Palette (Mule パレット)\] ビューの JMS Connector の操作を示しています。 ![Anypoint Studio の右側にある \[Mule Palette (Mule パレット)\] ビューから JMS Connector のいずれかの操作を選択する](_images/jms-operations.png) Figure 1. JMS Connector の操作 ## [](#configure-global-element)コネクタのグローバル要素を設定する 接続の問題を回避するには、パブリッシュとコンシュームの両方に共有 JMS 設定を作成する代わりに、パブリッシュとコンシュームに個別の JMS 設定を作成します。JMS Connector にはメッセージのパブリッシュとコンシュームを目的として微調整された一連のデフォルト値が用意されています。設定する必要があるのは、使用する接続のみです。設定に関連するすべての操作のグローバルのデフォルト動作を定義し、カスタム動作が必要な操作でのみ各パラメーターを上書きすることができます。 JMS Connector のグローバル要素を設定する手順は、次のとおりです。 1. Studio キャンバスで操作を選択します。 2. 操作の設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. **\[JMS Config (JMS 設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別のいずれかを選択します。 - **Active MQ Connection (Active MQ 接続)** - **Active MQ Connection -No Connectivity Test - (Active MQ 接続 - 接続テストなし -)**​ (非推奨) - **Generic Connection (汎用接続)** 1. **\[General (一般)\]**​ タブで、コネクタの接続情報 (ブローカーで必要なライブラリ、JMS 仕様、キャッシュ戦略、認証、接続ファクトリーなど) を指定します。 2. **\[TLS/SSL\]**​ タブで、必要に応じて TLS 設定を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略と XA 接続プールを指定します。 4. **\[Consumer (コンシューマー)\]**​ タブで、必要に応じて、フロー内にあるすべての ​**Consume**​ および ​**On New Message**​ 操作のグローバルのデフォルト動作の設定を定義します。 5. **\[Producer (プロデューサー)\]**​ タブで、必要に応じて、フロー内にあるすべての ​**Publish**​ および ​**Publish consume**​ 操作のグローバルのデフォルト動作の設定を定義します。 6. **\[OK\]**​ をクリックして、ウィンドウを閉じます。 次のスクリーンショットは、Anypoint Studio の JMS Connector の ​**\[Global Element Configuration (グローバル要素設定)\]**​ ウィンドウを示しています。 ![JMS Connector の \[Global Element Configuration (グローバル要素設定)\] ウィンドウ](_images/jms-global-configuration.png) Figure 2. JMS Connector の \[Global Element Configuration (グローバル要素設定)\] XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` 次の例では、この設定に関連付けられた ​**Consume**​ または ​**On New Message**​ 操作のいずれかでメッセージをコンシュームするときのデフォルトの​**セレクター**​動作を定義します。また、各 ​**Publish**​ または ​**Publish consume**​ 操作で​**存続期間**​ (TTL) が 60 秒の送信メッセージを生成します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[JMS Config (JMS 設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で ​**\[Active MQ Connection (Active MQ 接続)\]**​ を選択します。 6. **\[Consumer (コンシューマー)\]**​ タブで ​**\[Selector (セレクター)\]**​ 項目を ​`JMSType`​ = \[INVOICE (請求書)\]\` に設定し、受信メッセージを請求書で絞り込みます。 ![「Consumer (コンシューマー)」 タブで、受信メッセージを請求書で絞り込むように 「Selector (セレクター)」 項目を設定します。](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-global-configuration-consumer.png) Figure 3. JMS Connector のコンシューマーのグローバル設定 1. **\[Producer (プロデューサー)\]**​ タブで ​**\[Time to live (存続期間)\]**​ 項目を ​`60000`​ に設定し、メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。 ![「Producer (プロデューサー)」 タブで 「Time to live (存続期間)」 項目を設定し、メッセージがブローカーに残るデフォルトの時間を定義します。](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-global-configuration-producer.png) Figure 4. JMS Connector のプロデューサーのグローバル設定 XML エディターでは、​``​、​`selector`​、および ​`timeToLive`​ の設定は次のように記述されます。 ```xml ``` これらプロパティは必要に応じて操作レベルで上書きできます。次の例では、より短い TTL でメッセージをパブリッシュします。グローバル要素で設定された ​**\[Time to live (存続期間)\]**​ 項目の値を上書きする手順は、次のとおりです。 1. Studio で、フローから ​**\[Publish\]**​ 操作を選択します。 2. **\[Publish\]**​ 設定画面で ​**\[Publish Configuration (パブリッシュ設定)\]**​ セクションまでスクロールダウンします。 3. **\[Time to live (存続期間)\]**​ 項目を ​`10000`​ に設定し、以前に設定したデフォルトのグローバル設定を上書きします。 ![「Publish Configuration (パブリッシュ設定)」 セクションで、「Time to Live (存続期間)」 項目を設定して、以前に設定したデフォルトのグローバル設定を上書きします。](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publish-configuration-1.png) Figure 5. JMS Connector のパブリッシュ設定の上書き XML エディターでは、​``​ および ​`timeToLive`​ の設定は次のように記述されます。 ```xml ``` ## [](#configure-connection)ブローカーへの接続の設定 グローバル要素で接続を設定するには、​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ または ​**\[Generic Connection (汎用接続)\]**​ のいずれかを選択して接続を定義し、接続ライブラリと JMS 仕様をセットアップします。 JMS Connector では、認証済み接続が必要な場合にログイン情報を指定することもできます。また、接続キャッシュを設定してアプリケーションのパフォーマンスを高めることもできます。 ### [](#active-mq-接続の設定)Active MQ 接続の設定 JMS Connector では、​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ 設定を使用することで ActiveMQ 5 がサポートされます。この接続では、​`JMS_1_1 (Default)`​ または ​`JMS_1_0_2b`​ 仕様を使用できます。また、JMS の全般的なすべての接続パラメーターや、ActiveMQ でのみ表示されるカスタムパラメーターを設定することもできます。 ActiveMQ 接続を宣言したら、目的の設定に合わせて​**接続ファクトリー**​をカスタマイズします。接続のすべてのパラメーターにはデフォルト値があります。つまり、自分のユースケースに関連するパラメーターのみを設定する必要があります。また、ActiveMQ 接続では ​**\[Initial redelivery delay (初期再配信遅延)\]**​ などの ActiveMQ 実装専用のパラメーターが公開されています。 次の例では、​**ActiveMQ 接続**​を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[Factory configuration (ファクトリー設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します。 7. **\[Broker url (ブローカー URL)\]**​ 項目値を、接続先のブローカーのアドレス (​`tcp://localhost:61616`​ など) に設定します。 8. **\[OK\]**​ をクリックします。 ![ActiveMQ 接続の設定。](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-activemq-configuration.png) Figure 6. JMS Connector の ActiveMQ 設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ### [](#汎用接続の設定)汎用接続の設定 **\[Generic Connection (汎用接続)\]**​ を使用して、任意のブローカー実装への接続を設定します。JMS Connector には JNDI (Java Naming and Directory Interface) ベースの接続ファクトリービルダーが用意されており、これによってアプリケーションのコンテキストで JNDI を使用して接続を設定できます。 次の例では、JNDI を使用して、​`JMS_2_0`​ 仕様を使用するように Artemis への ​**\[Generic Connection (汎用接続)\]**​ を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 6. **\[Specification (仕様)\]**​ 項目で ​**JMS\_2\_0**​ を選択します。 7. **\[Connection factory (接続ファクトリー)\]**​ 項目で、​**\[Edit inline (インライン編集)\]**​ を選択します。 8. **\[Connection factory jndi name (接続ファクトリーの JNDI 名)\]**​ 項目を ​`ConnectionFactory`​ に設定します。 9. **\[Lookup destination (ルックアップ宛先)\]**​ 項目で、次のいずれかのオプションを選択します。 - **NEVER** ルックアップは実行されず、宛先は既存の JMS セッションを使用して作成されます。 - **TRY\_ALWAYS** JNDI を使用して宛先を探そうと試みて、存在しない場合は、現在の JMS セッションを使用して宛先を作成します。 - **ALWAYS** JNDI 経由でキューまたはトピックが見つからない場合、ルックアップは失敗して ​`JMS:DESTINATION_NOT_FOUND`​ エラーが発生します。 10. **\[Name resolver builder (名前解決機能ビルダー)\]**​ 項目を選択します。 11. **\[Jndi initial context factory (JNDI 初期コンテキストファクトリー)\]**​ 項目を ​`org.apache.activemq.artemis.ActiveMQInitialContextFactory`​ に設定します。 12. **\[Jndi provider url (JDNI プロバイダー URL)\]**​ 項目を ​`tcp://localhost:61616?broker.persistent=false&broker.useJmx=false`​ に設定します。 13. **\[Provider properties (プロバイダープロパティ)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 14. プラス記号 (​**+**​) をクリックして、新しいプロバイダープロパティを追加します。 15. **\[Provider property (プロバイダープロパティ)\]**​ ウィンドウで、​**\[Key (キー)\]**​ 項目を ​`queue.jndi-queue-in`​ に設定し、​**\[Value (値)\]**​ 項目を ​`in.queue`​ に設定します。 16. **\[Finish (完了)\]**​ をクリックします。 17. ステップ 14 を繰り返します。 18. **\[Key (キー)\]**​ 項目を ​`topic.jndi-topic-in`​ に設定し、​**\[Value (値)\]**​ 項目を ​`in.topic`​ に設定します。 19. **\[OK\]**​ をクリックします。 ![汎用接続の設定。](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-generic-configuration.png) Figure 7. JMS Connector の汎用接続 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ### [](#接続ライブラリの設定)接続ライブラリの設定 JMS Connector はどの特定の実装にもバインドされていないため、何らかの接続種別を設定する場合は、常に JMS クライアント実装を含むライブラリを設定する必要があります。Studio のグローバル要素ビューに表示されている ActiveMQ 外部ライブラリと汎用外部ライブラリを設定できます。また、​`pom.xml`​ ファイルにライブラリの連動関係を手動で追加できます。 #### [](#activemq-の外部ライブラリ)ActiveMQ の外部ライブラリ **\[ActiveMQ Connection (ActiveMQ 接続)\]**​ では、3 つのライブラリを設定できます。 - **ActiveMQ KahaDB**​ `activemq-kahadb-store`​ 連動関係は VM トランスポート (​`vm://localhost?broker.persistent=true`​ など) に基づいて永続的なメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter`​ 実装を提供します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-kahadb-store 5.14.4 ``` - **ActiveMQ ブローカー**​ `activemq-broker`​ 連動関係は VM トランスポート (デフォルトで設定される) に基づいてメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.broker.Broker`​ 実装を提供します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-broker 5.14.4 ``` - **ActiveMQ クライアント**​ `activemq-client`​ 連動関係は常に必須です。有効な ​`org.apache.activemq.ActiveMQConnectionFactory`​ 実装を提供する連動関係を選択します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 + ```xml org.apache.activemq activemq-client 5.14.4 ``` これらのライブラリを \[Global Element (グローバル要素)\] ビューで設定する手順は、次のとおりです。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[ActiveMQ KahaDB\]**​、​**\[ActiveMQ Broker (ActiveMQ ブローカー)\]**​、および ​**\[ActiveMQ Client (ActiveMQ クライアント)\]**​ ライブラリが表示されている ​**\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定…​)\]**​ ボタンをクリックし、連動関係をインストールします。 7. 次のインストールオプションのいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​: 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​: ローカルファイルで必要なエンジンライブラリを探してインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​: 連動関係を探してインストールします。 #### [](#汎用外部ライブラリ)汎用外部ライブラリ **\[Generic Connection (汎用接続)\]**​ では、実装の接続ファクトリーで必要なすべてのライブラリを指定します。必ずアプリケーションへのすべての必須の連動関係を指定してください。 次の例では、Apache Artemis などの異なるクライアントライブラリとの汎用接続が必要な JMS 2.0 仕様を使用する接続用の汎用ライブラリを設定します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq artemis-jms-client-all 2.17.0 ``` これらのライブラリを \[Global Element (グローバル要素)\] ビューで設定する手順は、次のとおりです。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 6. **\[JMS Client (JMS クライアント)\]**​ が表示されている ​**\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定)\]**​ ボタンをクリックし、連動関係をインストールします。 7. 次のインストールオプションのいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​: 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​: ローカルファイルで必要なエンジンライブラリを探してインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​: 連動関係を探してインストールします。 ### [](#jms-仕様の設定)JMS 仕様の設定 設定する JMS ​**仕様**​は、接続に関連付けられるブローカー実装でサポートされる必要があります。サポートされない場合、接続は失敗します。 `JMS_2_0`​ でのみ使用可能な機能は、他の仕様では動作しません。 Studio で JMS 仕様を設定する手順は、次のとおりです。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Specification (仕様)\]**​ 項目で、次のサポートされる仕様のいずれかを選択します。 - **JMS\_1\_1​ (デフォルト)** - **JMS\_1\_0\_2​b** - **JMS\_2\_0** 3. **\[OK\]**​ をクリックします。 ![「Specification (仕様)」 項目で、サポートされる仕様のいずれかを選択する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-spec-config.png) Figure 8. JMS Connector の仕様の設定 XML エディターでは、​`specification`​ 設定は次のように記述されます。 ```xml ``` ### [](#接続キャッシュの設定)接続キャッシュの設定 ブローカーに接続して必要な操作を実行するため、JMS Connector ではコンシューマーおよびプロデューサーの複数のセッションが作成されます。これらをキャッシュして再利用することで、アプリケーションのパフォーマンスを高めることができます。JMS Connector では、新規接続を作成するときに使用する ​**\[Caching strategy (キャッシュ戦略)\]**​ 項目を設定できます。デフォルトでは、コンシューマーとプロデューサーの両方がキャッシュされ、多くの同時インスタンスがメモリにキャッシュされます。 **\[No caching (キャッシュしない)\]**​ 設定を使用してセッションキャッシュを無効にしないでください。この設定は、すでに独自のキャッシュを管理しているカスタム接続ファクトリーでのみ使用します。 次の例では、キャッシュ戦略を設定します。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Caching strategy (キャッシュ戦略)\]**​ 項目で、​**\[Default caching (Default) (デフォルトキャッシュ (デフォルト))\]**​ を選択します。 3. **\[Session cache size (セッションキャッシュサイズ)\]**​ 項目を ​`100`​ に設定します。 4. **\[Cache producers (キャッシュプロデューサー)\]**​ を選択します。 5. **\[OK\]**​ をクリックします。 ![「Caching strategy (キャッシュ戦略)」 項目で、目的のキャッシュ戦略を選択する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-caching-config.png) Figure 9. JMS Connector のキャッシュ戦略の設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` 次の XML 例では、​``​ 設定は次のように記述されます。 ```xml ``` ### [](#認証用のクライアント識別子とログイン情報の設定)認証用のクライアント識別子とログイン情報の設定 クライアント識別子は、接続およびそのオブジェクトを、クライアントの代わりにプロバイダーによって保持される状態と関連付けるものです。これは、共有されていない永続的なサブスクリプションを識別するために必要です。​**\[Client id (クライアント ID)\]**​ で識別されるクライアント状態は、同時に 1 つの接続によってのみ使用できます。 次の例では、認証済み接続とクライアント識別子を設定します。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection (接続)\]**​ セクションで、​**\[Username (ユーザー名)\]**​ 項目を ​`${env.user}`​ に設定し、​**\[Password (パスワード)\]**​ 項目を ​`${env.pass}`​ に設定します。 3. **\[Client id (クライアント ID)\]**​ 項目を ​`${env.clientId}`​ に設定します。 4. **\[OK\]**​ をクリックします。 ![「\[Connection (接続)\] セクションで、\[Username (ユーザー名)\]、\[Password (パスワード)\]、\[Client id (クライアント ID)\] 項目を設定する。」](_images/jms-authentication-config.png) Figure 10. JMS Connector の認証済み接続とクライアント識別子の設定 XML エディターでは、​`username`​、​`password`​、および ​`clientId`​ の設定は次のように記述されます。 ```xml ``` ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログを表示することもできます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Anypoint Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-connector-reference) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Anypoint Studio を使用した JMS Connector 1.7 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-input-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 6. [ブローカーへの接続を設定します](#configure-connection)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「JMS Connector リファレンス」](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-connector-reference)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する JMS 用 Anypoint Connector (JMS Connector) を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ ウィンドウで、検索項目に「​`jms`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で ​**\[JMS Connector\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-input-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを設定して、JMS Connector で使用できます。 - **\[JMS\] > \[On New Message\]**​ 受信メッセージをリスンすることでフローを開始する - **\[HTTP\] > \[Listener\]**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、​**On New Message**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[JMS Config (JMS 設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別のいずれかを選択します。 - **Active MQ Connection (Active MQ 接続)** - **Generic Connection (汎用接続)** 1. **\[General (一般)\]**​ タブで、コネクタの接続情報 (ブローカーで必要なライブラリ、JMS 仕様、キャッシュ戦略、認証、接続ファクトリーなど) を指定します。 2. **\[TLS/SSL\]**​ タブで、必要に応じて TLS 設定を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略と XA 接続プールを指定します。 4. **\[OK\]**​ をクリックして、ウィンドウを閉じます。 5. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ でメッセージのコンシューム元である宛先の名前を指定します。 6. **\[On New Message\]**​ 設定画面で他の省略可能な項目を設定します。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。 JMS Connector の操作を追加するには、次の手順に従います。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS Connector\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の右にドラッグします。 次のスクリーンショットは、Anypoint Studio の \[Mule Palette (Mule パレット)\] ビューの JMS Connector の操作を示しています。 ![Anypoint Studio の右側にある \[Mule Palette (Mule パレット)\] ビューから JMS Connector のいずれかの操作を選択する](_images/jms-operations.png) Figure 1. JMS Connector の操作 ## [](#configure-global-element)コネクタのグローバル要素を設定する 接続の問題を回避するには、パブリッシュとコンシュームの両方に共有 JMS 設定を作成する代わりに、パブリッシュとコンシュームに個別の JMS 設定を作成します。JMS Connector にはメッセージのパブリッシュとコンシュームを目的として微調整された一連のデフォルト値が用意されています。設定する必要があるのは、使用する接続のみです。設定に関連するすべての操作のグローバルのデフォルト動作を定義し、カスタム動作が必要な操作でのみ各パラメーターを上書きすることができます。 JMS Connector のグローバル要素を設定する手順は、次のとおりです。 1. Studio キャンバスで操作を選択します。 2. 操作の設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. **\[JMS Config (JMS 設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別のいずれかを選択します。 - **Active MQ Connection (Active MQ 接続)** - **Generic Connection (汎用接続)** 1. **\[General (一般)\]**​ タブで、コネクタの接続情報 (ブローカーで必要なライブラリ、JMS 仕様、キャッシュ戦略、認証、接続ファクトリーなど) を指定します。 2. **\[TLS/SSL\]**​ タブで、必要に応じて TLS 設定を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略と XA 接続プールを指定します。 4. **\[Consumer (コンシューマー)\]**​ タブで、必要に応じて、フロー内にあるすべての ​**Consume**​ および ​**On New Message**​ 操作のグローバルのデフォルト動作の設定を定義します。 5. **\[Producer (プロデューサー)\]**​ タブで、必要に応じて、フロー内にあるすべての ​**Publish**​ および ​**Publish consume**​ 操作のグローバルのデフォルト動作の設定を定義します。 6. **\[OK\]**​ をクリックして、ウィンドウを閉じます。 次のスクリーンショットは、Anypoint Studio の JMS Connector の ​**\[Global Element Configuration (グローバル要素設定)\]**​ ウィンドウを示しています。 ![JMS Connector の \[Global Element Configuration (グローバル要素設定)\] ウィンドウ](_images/jms-global-configuration.png) Figure 2. JMS Connector の \[Global Element Configuration (グローバル要素設定)\] XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` 次の例では、この設定に関連付けられた ​**Consume**​ または ​**On New Message**​ 操作のいずれかでメッセージをコンシュームするときのデフォルトの​**セレクター**​動作を定義します。また、各 ​**Publish**​ または ​**Publish consume**​ 操作で​**存続期間**​ (TTL) が 60 秒の送信メッセージを生成します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[JMS Config (JMS 設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で ​**\[Active MQ Connection (Active MQ 接続)\]**​ を選択します。 6. **\[Consumer (コンシューマー)\]**​ タブで ​**\[Selector (セレクター)\]**​ 項目を ​`JMSType`​ = \[INVOICE (請求書)\]\` に設定し、受信メッセージを請求書で絞り込みます。 ![「Consumer (コンシューマー)」 タブで、受信メッセージを請求書で絞り込むように 「Selector (セレクター)」 項目を設定します。](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-global-configuration-consumer.png) Figure 3. JMS Connector のコンシューマーのグローバル設定 1. **\[Producer (プロデューサー)\]**​ タブで ​**\[Time to live (存続期間)\]**​ 項目を ​`60000`​ に設定し、メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。 ![「Producer (プロデューサー)」 タブで 「Time to live (存続期間)」 項目を設定し、メッセージがブローカーに残るデフォルトの時間を定義します。](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-global-configuration-producer.png) Figure 4. JMS Connector のプロデューサーのグローバル設定 XML エディターでは、​``​、​`selector`​、および ​`timeToLive`​ の設定は次のように記述されます。 ```xml ``` これらプロパティは必要に応じて操作レベルで上書きできます。次の例では、より短い TTL でメッセージをパブリッシュします。グローバル要素で設定された ​**\[Time to live (存続期間)\]**​ 項目の値を上書きする手順は、次のとおりです。 1. Studio で、フローから ​**\[Publish\]**​ 操作を選択します。 2. **\[Publish\]**​ 設定画面で ​**\[Publish Configuration (パブリッシュ設定)\]**​ セクションまでスクロールダウンします。 3. **\[Time to live (存続期間)\]**​ 項目を ​`10000`​ に設定し、以前に設定したデフォルトのグローバル設定を上書きします。 ![「Publish Configuration (パブリッシュ設定)」 セクションで、「Time to Live (存続期間)」 項目を設定して、以前に設定したデフォルトのグローバル設定を上書きします。](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publish-configuration-1.png) Figure 5. JMS Connector のパブリッシュ設定の上書き XML エディターでは、​``​ および ​`timeToLive`​ の設定は次のように記述されます。 ```xml ``` ## [](#configure-connection)ブローカーへの接続の設定 グローバル要素で接続を設定するには、​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ または ​**\[Generic Connection (汎用接続)\]**​ のいずれかを選択して接続を定義し、接続ライブラリと JMS 仕様を設定します。 JMS Connector では、認証済み接続が必要な場合にログイン情報を指定することもできます。また、接続キャッシュを設定してアプリケーションのパフォーマンスを高めることもできます。 ### [](#active-mq-接続の設定)Active MQ 接続の設定 JMS Connector では、​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ 設定を使用することで ActiveMQ 5 がサポートされます。この接続では、​`JMS_1_1 (Default)`​ または ​`JMS_1_0_2b`​ 仕様を使用できます。また、JMS の全般的なすべての接続パラメーターや、ActiveMQ でのみ表示されるカスタムパラメーターを設定することもできます。 ActiveMQ 接続を宣言したら、目的の設定に合わせて​**接続ファクトリー**​をカスタマイズします。接続のすべてのパラメーターにはデフォルト値があります。つまり、自分のユースケースに関連するパラメーターのみを設定する必要があります。また、ActiveMQ 接続では ​**\[Initial redelivery delay (初期再配信遅延)\]**​ などの ActiveMQ 実装専用のパラメーターが公開されています。 次の例では、​**ActiveMQ 接続**​を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[Factory configuration (ファクトリー設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します。 7. **\[Broker url (ブローカー URL)\]**​ 項目値を、接続先のブローカーのアドレス (​`tcp://localhost:61616`​ など) に設定します。 8. **\[OK\]**​ をクリックします。 ![ActiveMQ 接続の設定。](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-activemq-configuration.png) Figure 6. JMS Connector の ActiveMQ 設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ### [](#汎用接続の設定)汎用接続の設定 **\[Generic Connection (汎用接続)\]**​ を使用して、任意のブローカー実装への接続を設定します。JMS Connector には JNDI (Java Naming and Directory Interface) ベースの接続ファクトリービルダーが用意されており、これによってアプリケーションのコンテキストで JNDI を使用して接続を設定できます。 次の例では、JNDI を使用して、​`JMS_2_0`​ 仕様を使用するように Artemis への ​**\[Generic Connection (汎用接続)\]**​ を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 6. **\[Specification (仕様)\]**​ 項目で ​**JMS\_2\_0**​ を選択します。 7. **\[Connection factory (接続ファクトリー)\]**​ 項目で、​**\[Edit inline (インライン編集)\]**​ を選択します。 8. **\[Connection factory jndi name (接続ファクトリーの JNDI 名)\]**​ 項目を ​`ConnectionFactory`​ に設定します。 9. **\[Lookup destination (ルックアップ宛先)\]**​ 項目で、次のいずれかのオプションを選択します。 - **NEVER** ルックアップは実行されず、宛先は既存の JMS セッションを使用して作成されます。 \* \*TRY\_ALWAYS\* JNDI を使用して宛先を探そうと試みて、存在しない場合は、現在の JMS セッションを使用して宛先を作成します。 - **ALWAYS** JNDI 経由でキューまたはトピックが見つからない場合、ルックアップは失敗して ​`JMS:DESTINATION_NOT_FOUND`​ エラーが発生します。 10. **\[Name resolver builder (名前解決機能ビルダー)\]**​ 項目を選択します。 11. **\[Jndi initial context factory (JNDI 初期コンテキストファクトリー)\]**​ 項目を ​`org.apache.activemq.artemis.ActiveMQInitialContextFactory`​ に設定します。 12. **\[Jndi provider url (JDNI プロバイダー URL)\]**​ 項目を ​`tcp://localhost:61616?broker.persistent=false&broker.useJmx=false`​ に設定します。 13. **\[Provider properties (プロバイダープロパティ)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 14. プラス記号 (​**+**​) をクリックして、新しいプロバイダープロパティを追加します。 15. **\[Provider property (プロバイダープロパティ)\]**​ ウィンドウで、​**\[Key (キー)\]**​ 項目を ​`queue.jndi-queue-in`​ に設定し、​**\[Value (値)\]**​ 項目を ​`in.queue`​ に設定します。 16. **\[Finish (完了)\]**​ をクリックします。 17. ステップ 14 を繰り返します。 18. **\[Key (キー)\]**​ 項目を ​`topic.jndi-topic-in`​ に設定し、​**\[Value (値)\]**​ 項目を ​`in.topic`​ に設定します。 19. **\[OK\]**​ をクリックします。 ![汎用接続の設定。](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-generic-configuration.png) Figure 7. JMS Connector の汎用接続 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ### [](#接続ライブラリの設定)接続ライブラリの設定 JMS Connector はどの特定の実装にもバインドされていないため、何らかの接続種別を設定する場合は、常に JMS クライアント実装を含むライブラリを設定する必要があります。Studio のグローバル要素ビューに表示されている ActiveMQ 外部ライブラリと汎用外部ライブラリを設定できます。また、​`pom.xml`​ ファイルにライブラリの連動関係を手動で追加できます。 #### [](#activemq-の外部ライブラリ)ActiveMQ の外部ライブラリ **\[ActiveMQ Connection (ActiveMQ 接続)\]**​ では、3 つのライブラリを設定できます。 - **ActiveMQ KahaDB**​ `activemq-kahadb-store`​ 連動関係は VM トランスポート (​`vm://localhost?broker.persistent=true`​ など) に基づいて永続的なメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter`​ 実装を提供します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-kahadb-store 5.14.4 ``` - **ActiveMQ ブローカー**​ `activemq-broker`​ 連動関係は VM トランスポート (デフォルトで設定される) に基づいてメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.broker.Broker`​ 実装を提供します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-broker 5.14.4 ``` - **ActiveMQ クライアント**​ `activemq-client`​ 連動関係は常に必須です。有効な ​`org.apache.activemq.ActiveMQConnectionFactory`​ 実装を提供する連動関係を選択します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 + ```xml org.apache.activemq activemq-client 5.14.4 ``` これらのライブラリを \[Global Element (グローバル要素)\] ビューで設定する手順は、次のとおりです。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[ActiveMQ KahaDB\]**​、​**\[ActiveMQ Broker (ActiveMQ ブローカー)\]**​、および ​**\[ActiveMQ Client (ActiveMQ クライアント)\]**​ ライブラリが表示されている ​**\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定…​)\]**​ ボタンをクリックし、連動関係をインストールします。 7. 次のインストールオプションのいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​: 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​: ローカルファイルで必要なエンジンライブラリを探してインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​: 連動関係を探してインストールします。 #### [](#汎用外部ライブラリ)汎用外部ライブラリ **\[Generic Connection (汎用接続)\]**​ では、実装の接続ファクトリーで必要なすべてのライブラリを指定します。必ずアプリケーションへのすべての必須の連動関係を指定してください。 次の例では、Apache Artemis などの異なるクライアントライブラリとの汎用接続が必要な JMS 2.0 仕様を使用する接続用の汎用ライブラリを設定します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq artemis-jms-client-all 2.17.0 ``` これらのライブラリを \[Global Element (グローバル要素)\] ビューで設定する手順は、次のとおりです。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 6. **\[JMS Client (JMS クライアント)\]**​ が表示されている ​**\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定)\]**​ ボタンをクリックし、連動関係をインストールします。 7. 次のインストールオプションのいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​: 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​: ローカルファイルで必要なエンジンライブラリを探してインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​: 連動関係を探してインストールします。 ### [](#jms-仕様の設定)JMS 仕様の設定 設定する JMS ​**仕様**​は、接続に関連付けられるブローカー実装でサポートされる必要があります。サポートされない場合、接続は失敗します。 `JMS_2_0`​ でのみ使用可能な機能は、他の仕様では動作しません。 Studio で JMS 仕様を設定する手順は、次のとおりです。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Specification (仕様)\]**​ 項目で、次のサポートされる仕様のいずれかを選択します。 - **JMS\_1\_1​ (デフォルト)** - **JMS\_1\_0\_2​b** - **JMS\_2\_0** 3. **\[OK\]**​ をクリックします。 ![「Specification (仕様)」 項目で、サポートされる仕様のいずれかを選択する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-spec-config.png) Figure 8. JMS Connector の仕様の設定 XML エディターでは、​`specification`​ 設定は次のように記述されます。 ```xml ``` ### [](#接続キャッシュの設定)接続キャッシュの設定 ブローカーに接続して必要な操作を実行するため、JMS Connector ではコンシューマーおよびプロデューサーの複数のセッションが作成されます。これらをキャッシュして再利用することで、アプリケーションのパフォーマンスを高めることができます。JMS Connector では、新規接続を作成するときに使用する ​**\[Caching strategy (キャッシュ戦略)\]**​ 項目を設定できます。デフォルトでは、コンシューマーとプロデューサーの両方がキャッシュされ、多くの同時インスタンスがメモリにキャッシュされます。 **\[No caching (キャッシュしない)\]**​ 設定を使用してセッションキャッシュを無効にしないでください。この設定は、すでに独自のキャッシュを管理しているカスタム接続ファクトリーでのみ使用します。 次の例では、キャッシュ戦略を設定します。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Caching strategy (キャッシュ戦略)\]**​ 項目で、​**\[Default caching (Default) (デフォルトキャッシュ (デフォルト))\]**​ を選択します。 3. **\[Session cache size (セッションキャッシュサイズ)\]**​ 項目を ​`100`​ に設定します。 4. **\[Cache producers (キャッシュプロデューサー)\]**​ を選択します。 5. **\[OK\]**​ をクリックします。 ![「Caching strategy (キャッシュ戦略)」 項目で、目的のキャッシュ戦略を選択する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-caching-config.png) Figure 9. JMS Connector のキャッシュ戦略の設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` 次の XML 例では、​``​ 設定は次のように記述されます。 ```xml ``` ### [](#認証用のクライアント識別子とログイン情報の設定)認証用のクライアント識別子とログイン情報の設定 クライアント識別子は、接続およびそのオブジェクトを、クライアントの代わりにプロバイダーによって保持される状態と関連付けるものです。これは、共有されていない永続的なサブスクリプションを識別するために必要です。​**\[Client id (クライアント ID)\]**​ で識別されるクライアント状態は、同時に 1 つの接続によってのみ使用できます。 次の例では、認証済み接続とクライアント識別子を設定します。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection (接続)\]**​ セクションで、​**\[Username (ユーザー名)\]**​ 項目を ​`${env.user}`​ に設定し、​**\[Password (パスワード)\]**​ 項目を ​`${env.pass}`​ に設定します。 3. **\[Client id (クライアント ID)\]**​ 項目を ​`${env.clientId}`​ に設定します。 4. **\[OK\]**​ をクリックします。 ![「\[Connection (接続)\] セクションで、\[Username (ユーザー名)\]、\[Password (パスワード)\]、\[Client id (クライアント ID)\] 項目を設定する。」](_images/jms-authentication-config.png) Figure 10. JMS Connector の認証済み接続とクライアント識別子の設定 XML エディターでは、​`username`​、​`password`​、および ​`clientId`​ の設定は次のように記述されます。 ```xml ``` ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログを表示することもできます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Anypoint Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-connector-reference) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Anypoint Studio を使用した JMS Connector 1.8 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-input-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 6. [ブローカーへの接続を設定します](#configure-connection)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「JMS Connector リファレンス」](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-connector-reference)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する JMS 用 Anypoint Connector (JMS Connector) を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ ウィンドウで、検索項目に「​`jms`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で ​**\[JMS Connector\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-input-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを設定して、JMS Connector で使用できます。 - **\[JMS\] > \[On New Message\]**​ 受信メッセージをリスンすることでフローを開始する - **\[HTTP\] > \[Listener\]**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、​**On New Message**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[JMS Config (JMS 設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別のいずれかを選択します。 - **Active MQ Connection (Active MQ 接続)** - **Active MQ Connection -No Connectivity Test - (Active MQ 接続 - 接続テストなし -)**​ (非推奨) - **Generic Connection (汎用接続)** 1. **\[General (一般)\]**​ タブで、コネクタの接続情報 (ブローカーで必要なライブラリ、JMS 仕様、キャッシュ戦略、認証、接続ファクトリーなど) を指定します。 2. **\[TLS/SSL\]**​ タブで、必要に応じて TLS 設定を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略と XA 接続プールを指定します。 4. **\[OK\]**​ をクリックして、ウィンドウを閉じます。 5. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ でメッセージのコンシューム元である宛先の名前を指定します。 6. **\[On New Message\]**​ 設定画面で他の省略可能な項目を設定します。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。 JMS Connector の操作を追加するには、次の手順に従います。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS Connector\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の右にドラッグします。 次のスクリーンショットは、Anypoint Studio の \[Mule Palette (Mule パレット)\] ビューの JMS Connector の操作を示しています。 ![Anypoint Studio の右側にある \[Mule Palette (Mule パレット)\] ビューから JMS Connector のいずれかの操作を選択する](_images/jms-operations.png) Figure 1. JMS Connector の操作 ## [](#configure-global-element)コネクタのグローバル要素を設定する 接続の問題を回避するには、パブリッシュとコンシュームの両方に共有 JMS 設定を作成する代わりに、パブリッシュとコンシュームに個別の JMS 設定を作成します。JMS Connector にはメッセージのパブリッシュとコンシュームを目的として微調整された一連のデフォルト値が用意されています。設定する必要があるのは、使用する接続のみです。設定に関連するすべての操作のグローバルのデフォルト動作を定義し、カスタム動作が必要な操作でのみ各パラメーターを上書きすることができます。 JMS Connector のグローバル要素を設定する手順は、次のとおりです。 1. Studio キャンバスで操作を選択します。 2. 操作の設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. **\[JMS Config (JMS 設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別のいずれかを選択します。 - **Active MQ Connection (Active MQ 接続)** - **Active MQ Connection -No Connectivity Test - (Active MQ 接続 - 接続テストなし -)**​ (非推奨) - **Generic Connection (汎用接続)** 1. **\[General (一般)\]**​ タブで、コネクタの接続情報 (ブローカーで必要なライブラリ、JMS 仕様、キャッシュ戦略、認証、接続ファクトリーなど) を指定します。 2. **\[TLS/SSL\]**​ タブで、必要に応じて TLS 設定を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略と XA 接続プールを指定します。 4. **\[Consumer (コンシューマー)\]**​ タブで、必要に応じて、フロー内にあるすべての ​**Consume**​ および ​**On New Message**​ 操作のグローバルのデフォルト動作の設定を定義します。 5. **\[Producer (プロデューサー)\]**​ タブで、必要に応じて、フロー内にあるすべての ​**Publish**​ および ​**Publish consume**​ 操作のグローバルのデフォルト動作の設定を定義します。 6. **\[OK\]**​ をクリックして、ウィンドウを閉じます。 次のスクリーンショットは、Anypoint Studio の JMS Connector の ​**\[Global Element Configuration (グローバル要素設定)\]**​ ウィンドウを示しています。 ![JMS Connector の \[Global Element Configuration (グローバル要素設定)\] ウィンドウ](_images/jms-global-configuration.png) Figure 2. JMS Connector の \[Global Element Configuration (グローバル要素設定)\] XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` 次の例では、この設定に関連付けられた ​**Consume**​ または ​**On New Message**​ 操作のいずれかでメッセージをコンシュームするときのデフォルトの​**セレクター**​動作を定義します。また、各 ​**Publish**​ または ​**Publish consume**​ 操作で​**存続期間**​ (TTL) が 60 秒の送信メッセージを生成します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[JMS Config (JMS 設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で ​**\[Active MQ Connection (Active MQ 接続)\]**​ を選択します。 6. **\[Consumer (コンシューマー)\]**​ タブで ​**\[Selector (セレクター)\]**​ 項目を ​`JMSType`​ = \[INVOICE (請求書)\]\` に設定し、受信メッセージを請求書で絞り込みます。 ![「Consumer (コンシューマー)」 タブで、受信メッセージを請求書で絞り込むように 「Selector (セレクター)」 項目を設定します。](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-global-configuration-consumer.png) Figure 3. JMS Connector のコンシューマーのグローバル設定 1. **\[Producer (プロデューサー)\]**​ タブで ​**\[Time to live (存続期間)\]**​ 項目を ​`60000`​ に設定し、メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。 ![「Producer (プロデューサー)」 タブで 「Time to live (存続期間)」 項目を設定し、メッセージがブローカーに残るデフォルトの時間を定義します。](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-global-configuration-producer.png) Figure 4. JMS Connector のプロデューサーのグローバル設定 XML エディターでは、​``​、​`selector`​、および ​`timeToLive`​ の設定は次のように記述されます。 ```xml ``` これらプロパティは必要に応じて操作レベルで上書きできます。次の例では、より短い TTL でメッセージをパブリッシュします。グローバル要素で設定された ​**\[Time to live (存続期間)\]**​ 項目の値を上書きする手順は、次のとおりです。 1. Studio で、フローから ​**\[Publish\]**​ 操作を選択します。 2. **\[Publish\]**​ 設定画面で ​**\[Publish Configuration (パブリッシュ設定)\]**​ セクションまでスクロールダウンします。 3. **\[Time to live (存続期間)\]**​ 項目を ​`10000`​ に設定し、以前に設定したデフォルトのグローバル設定を上書きします。 ![「Publish Configuration (パブリッシュ設定)」 セクションで、「Time to Live (存続期間)」 項目を設定して、以前に設定したデフォルトのグローバル設定を上書きします。](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publish-configuration-1.png) Figure 5. JMS Connector のパブリッシュ設定の上書き XML エディターでは、​``​ および ​`timeToLive`​ の設定は次のように記述されます。 ```xml ``` ## [](#configure-connection)ブローカーへの接続の設定 グローバル要素で接続を設定するには、​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ または ​**\[Generic Connection (汎用接続)\]**​ のいずれかを選択して接続を定義し、接続ライブラリと JMS 仕様をセットアップします。 JMS Connector では、認証済み接続が必要な場合にログイン情報を指定することもできます。また、接続キャッシュを設定してアプリケーションのパフォーマンスを高めることもできます。 ### [](#active-mq-接続の設定)Active MQ 接続の設定 JMS Connector では、​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ 設定を使用することで ActiveMQ 5 がサポートされます。この接続では、​`JMS_1_1 (Default)`​ または ​`JMS_1_0_2b`​ 仕様を使用できます。また、JMS の全般的なすべての接続パラメーターや、ActiveMQ でのみ表示されるカスタムパラメーターを設定することもできます。 ActiveMQ 接続を宣言したら、目的の設定に合わせて​**接続ファクトリー**​をカスタマイズします。接続のすべてのパラメーターにはデフォルト値があります。つまり、自分のユースケースに関連するパラメーターのみを設定する必要があります。また、ActiveMQ 接続では ​**\[Initial redelivery delay (初期再配信遅延)\]**​ などの ActiveMQ 実装専用のパラメーターが公開されています。 次の例では、​**ActiveMQ 接続**​を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[Factory configuration (ファクトリー設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します。 7. **\[Broker url (ブローカー URL)\]**​ 項目値を、接続先のブローカーのアドレス (​`tcp://localhost:61616`​ など) に設定します。 8. **\[OK\]**​ をクリックします。 ![ActiveMQ 接続の設定。](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-activemq-configuration.png) Figure 6. JMS Connector の ActiveMQ 設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ### [](#汎用接続の設定)汎用接続の設定 **\[Generic Connection (汎用接続)\]**​ を使用して、任意のブローカー実装への接続を設定します。JMS Connector には JNDI (Java Naming and Directory Interface) ベースの接続ファクトリービルダーが用意されており、これによってアプリケーションのコンテキストで JNDI を使用して接続を設定できます。 次の例では、JNDI を使用して、​`JMS_2_0`​ 仕様を使用するように Artemis への ​**\[Generic Connection (汎用接続)\]**​ を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 6. **\[Specification (仕様)\]**​ 項目で ​**JMS\_2\_0**​ を選択します。 7. **\[Connection factory (接続ファクトリー)\]**​ 項目で、​**\[Edit inline (インライン編集)\]**​ を選択します。 8. **\[Connection factory jndi name (接続ファクトリーの JNDI 名)\]**​ 項目を ​`ConnectionFactory`​ に設定します。 9. **\[Lookup destination (ルックアップ宛先)\]**​ 項目で、次のいずれかのオプションを選択します。 - **NEVER** ルックアップは実行されず、宛先は既存の JMS セッションを使用して作成されます。 - **TRY\_ALWAYS** JNDI を使用して宛先を探そうと試みて、存在しない場合は、現在の JMS セッションを使用して宛先を作成します。 - **ALWAYS** JNDI 経由でキューまたはトピックが見つからない場合、ルックアップは失敗して ​`JMS:DESTINATION_NOT_FOUND`​ エラーが発生します。 10. **\[Name resolver builder (名前解決機能ビルダー)\]**​ 項目を選択します。 11. **\[Jndi initial context factory (JNDI 初期コンテキストファクトリー)\]**​ 項目を ​`org.apache.activemq.artemis.ActiveMQInitialContextFactory`​ に設定します。 12. **\[Jndi provider url (JDNI プロバイダー URL)\]**​ 項目を ​`tcp://localhost:61616?broker.persistent=false&broker.useJmx=false`​ に設定します。 13. **\[Provider properties (プロバイダープロパティ)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 14. プラス記号 (​**+**​) をクリックして、新しいプロバイダープロパティを追加します。 15. **\[Provider property (プロバイダープロパティ)\]**​ ウィンドウで、​**\[Key (キー)\]**​ 項目を ​`queue.jndi-queue-in`​ に設定し、​**\[Value (値)\]**​ 項目を ​`in.queue`​ に設定します。 16. **\[Finish (完了)\]**​ をクリックします。 17. ステップ 14 を繰り返します。 18. **\[Key (キー)\]**​ 項目を ​`topic.jndi-topic-in`​ に設定し、​**\[Value (値)\]**​ 項目を ​`in.topic`​ に設定します。 19. **\[OK\]**​ をクリックします。 ![汎用接続の設定。](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-generic-configuration.png) Figure 7. JMS Connector の汎用接続 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ### [](#接続ライブラリの設定)接続ライブラリの設定 JMS Connector はどの特定の実装にもバインドされていないため、何らかの接続種別を設定する場合は、常に JMS クライアント実装を含むライブラリを設定する必要があります。Studio のグローバル要素ビューに表示されている ActiveMQ 外部ライブラリと汎用外部ライブラリを設定できます。また、​`pom.xml`​ ファイルにライブラリの連動関係を手動で追加できます。 #### [](#activemq-の外部ライブラリ)ActiveMQ の外部ライブラリ **\[ActiveMQ Connection (ActiveMQ 接続)\]**​ では、3 つのライブラリを設定できます。 - **ActiveMQ KahaDB**​ `activemq-kahadb-store`​ 連動関係は VM トランスポート (​`vm://localhost?broker.persistent=true`​ など) に基づいて永続的なメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter`​ 実装を提供します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-kahadb-store 5.14.4 ``` - **ActiveMQ ブローカー**​ `activemq-broker`​ 連動関係は VM トランスポート (デフォルトで設定される) に基づいてメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.broker.Broker`​ 実装を提供します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-broker 5.14.4 ``` - **ActiveMQ クライアント**​ `activemq-client`​ 連動関係は常に必須です。有効な ​`org.apache.activemq.ActiveMQConnectionFactory`​ 実装を提供する連動関係を選択します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 + ```xml org.apache.activemq activemq-client 5.14.4 ``` これらのライブラリを \[Global Element (グローバル要素)\] ビューで設定する手順は、次のとおりです。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[ActiveMQ KahaDB\]**​、​**\[ActiveMQ Broker (ActiveMQ ブローカー)\]**​、および ​**\[ActiveMQ Client (ActiveMQ クライアント)\]**​ ライブラリが表示されている ​**\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定…​)\]**​ ボタンをクリックし、連動関係をインストールします。 7. 次のインストールオプションのいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​: 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​: ローカルファイルで必要なエンジンライブラリを探してインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​: 連動関係を探してインストールします。 #### [](#汎用外部ライブラリ)汎用外部ライブラリ **\[Generic Connection (汎用接続)\]**​ では、実装の接続ファクトリーで必要なすべてのライブラリを指定します。必ずアプリケーションへのすべての必須の連動関係を指定してください。 次の例では、Apache Artemis などの異なるクライアントライブラリとの汎用接続が必要な JMS 2.0 仕様を使用する接続用の汎用ライブラリを設定します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq artemis-jms-client-all 2.17.0 ``` これらのライブラリを \[Global Element (グローバル要素)\] ビューで設定する手順は、次のとおりです。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 6. **\[JMS Client (JMS クライアント)\]**​ が表示されている ​**\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定)\]**​ ボタンをクリックし、連動関係をインストールします。 7. 次のインストールオプションのいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​: 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​: ローカルファイルで必要なエンジンライブラリを探してインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​: 連動関係を探してインストールします。 ### [](#jms-仕様の設定)JMS 仕様の設定 設定する JMS ​**仕様**​は、接続に関連付けられるブローカー実装でサポートされる必要があります。サポートされない場合、接続は失敗します。 `JMS_2_0`​ でのみ使用可能な機能は、他の仕様では動作しません。 Studio で JMS 仕様を設定する手順は、次のとおりです。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Specification (仕様)\]**​ 項目で、次のサポートされる仕様のいずれかを選択します。 - **JMS\_1\_1​ (デフォルト)** - **JMS\_1\_0\_2​b** - **JMS\_2\_0** 3. **\[OK\]**​ をクリックします。 ![「Specification (仕様)」 項目で、サポートされる仕様のいずれかを選択する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-spec-config.png) Figure 8. JMS Connector の仕様の設定 XML エディターでは、​`specification`​ 設定は次のように記述されます。 ```xml ``` ### [](#接続キャッシュの設定)接続キャッシュの設定 ブローカーに接続して必要な操作を実行するため、JMS Connector ではコンシューマーおよびプロデューサーの複数のセッションが作成されます。これらをキャッシュして再利用することで、アプリケーションのパフォーマンスを高めることができます。JMS Connector では、新規接続を作成するときに使用する ​**\[Caching strategy (キャッシュ戦略)\]**​ 項目を設定できます。デフォルトでは、コンシューマーとプロデューサーの両方がキャッシュされ、多くの同時インスタンスがメモリにキャッシュされます。 **\[No caching (キャッシュしない)\]**​ 設定を使用してセッションキャッシュを無効にしないでください。この設定は、すでに独自のキャッシュを管理しているカスタム接続ファクトリーでのみ使用します。 次の例では、キャッシュ戦略を設定します。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Caching strategy (キャッシュ戦略)\]**​ 項目で、​**\[Default caching (Default) (デフォルトキャッシュ (デフォルト))\]**​ を選択します。 3. **\[Session cache size (セッションキャッシュサイズ)\]**​ 項目を ​`100`​ に設定します。 4. **\[Cache producers (キャッシュプロデューサー)\]**​ を選択します。 5. **\[OK\]**​ をクリックします。 ![「Caching strategy (キャッシュ戦略)」 項目で、目的のキャッシュ戦略を選択する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-caching-config.png) Figure 9. JMS Connector のキャッシュ戦略の設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` 次の XML 例では、​``​ 設定は次のように記述されます。 ```xml ``` ### [](#認証用のクライアント識別子とログイン情報の設定)認証用のクライアント識別子とログイン情報の設定 クライアント識別子は、接続およびそのオブジェクトを、クライアントの代わりにプロバイダーによって保持される状態と関連付けるものです。これは、共有されていない永続的なサブスクリプションを識別するために必要です。​**\[Client id (クライアント ID)\]**​ で識別されるクライアント状態は、同時に 1 つの接続によってのみ使用できます。 次の例では、認証済み接続とクライアント識別子を設定します。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection (接続)\]**​ セクションで、​**\[Username (ユーザー名)\]**​ 項目を ​`${env.user}`​ に設定し、​**\[Password (パスワード)\]**​ 項目を ​`${env.pass}`​ に設定します。 3. **\[Client id (クライアント ID)\]**​ 項目を ​`${env.clientId}`​ に設定します。 4. **\[OK\]**​ をクリックします。 ![「\[Connection (接続)\] セクションで、\[Username (ユーザー名)\]、\[Password (パスワード)\]、\[Client id (クライアント ID)\] 項目を設定する。」](_images/jms-authentication-config.png) Figure 10. JMS Connector の認証済み接続とクライアント識別子の設定 XML エディターでは、​`username`​、​`password`​、および ​`clientId`​ の設定は次のように記述されます。 ```xml ``` ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログを表示することもできます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Anypoint Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-connector-reference) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Anypoint Studio を使用した JMS Connector 1.9 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-input-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 6. [ブローカーへの接続を設定します](#configure-connection)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「JMS Connector リファレンス」](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-connector-reference)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する JMS 用 Anypoint Connector (JMS Connector) を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ ウィンドウで、検索項目に「​`jms`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で ​**\[JMS Connector\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-input-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを設定して、JMS Connector で使用できます。 - **\[JMS\] > \[On New Message\]**​ 受信メッセージをリスンすることでフローを開始する - **\[HTTP\] > \[Listener\]**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、​**On New Message**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[JMS Config (JMS 設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別のいずれかを選択します。 - **Active MQ Connection (Active MQ 接続)** - **Active MQ Connection -No Connectivity Test - (Active MQ 接続 - 接続テストなし -)**​ (非推奨) - **Generic Connection (汎用接続)** 1. **\[General (一般)\]**​ タブで、コネクタの接続情報 (ブローカーで必要なライブラリ、JMS 仕様、キャッシュ戦略、認証、接続ファクトリーなど) を指定します。 2. **\[TLS/SSL\]**​ タブで、必要に応じて TLS 設定を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略と XA 接続プールを指定します。 4. **\[OK\]**​ をクリックして、ウィンドウを閉じます。 5. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ でメッセージのコンシューム元である宛先の名前を指定します。 6. **\[On New Message\]**​ 設定画面で他の省略可能な項目を設定します。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。 JMS Connector の操作を追加するには、次の手順に従います。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS Connector (VM Connector)\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の右にドラッグします。 次のスクリーンショットは、Anypoint Studio の \[Mule Palette (Mule パレット)\] ビューの JMS Connector の操作を示しています。 ![Anypoint Studio の右側にある \[Mule Palette (Mule パレット)\] ビューから JMS Connector のいずれかの操作を選択する](_images/jms-operations.png) Figure 1. JMS Connector の操作 ## [](#configure-global-element)コネクタのグローバル要素を設定する 接続の問題を回避するには、パブリッシュとコンシュームの両方に共有 JMS 設定を作成する代わりに、パブリッシュとコンシュームに個別の JMS 設定を作成します。JMS Connector にはメッセージのパブリッシュとコンシュームを目的として微調整された一連のデフォルト値が用意されています。設定する必要があるのは、使用する接続のみです。設定に関連するすべての操作のグローバルのデフォルト動作を定義し、カスタム動作が必要な操作でのみ各パラメーターを上書きすることができます。 JMS Connector のグローバル要素を設定する手順は、次のとおりです。 1. Studio キャンバスで操作を選択します。 2. 操作の設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. **\[JMS Config (JMS 設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別のいずれかを選択します。 - **Active MQ Connection (Active MQ 接続)** - **Active MQ Connection -No Connectivity Test - (Active MQ 接続 - 接続テストなし -)**​ (非推奨) - **Generic Connection (汎用接続)** 1. **\[General (一般)\]**​ タブで、コネクタの接続情報 (ブローカーで必要なライブラリ、JMS 仕様、キャッシュ戦略、認証、接続ファクトリーなど) を指定します。 2. **\[TLS/SSL\]**​ タブで、必要に応じて TLS 設定を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略と XA 接続プールを指定します。 4. **\[Consumer (コンシューマー)\]**​ タブで、必要に応じて、フロー内にあるすべての ​**Consume**​ および ​**On New Message**​ 操作のグローバルのデフォルト動作の設定を定義します。 5. **\[Producer (プロデューサー)\]**​ タブで、必要に応じて、フロー内にあるすべての ​**Publish**​ および ​**Publish consume**​ 操作のグローバルのデフォルト動作の設定を定義します。 6. **\[OK\]**​ をクリックして、ウィンドウを閉じます。 次のスクリーンショットは、Anypoint Studio の JMS Connector の ​**\[Global Element Configuration (グローバル要素設定)\]**​ ウィンドウを示しています。 ![JMS Connector の \[Global Element Configuration (グローバル要素設定)\] ウィンドウ](_images/jms-global-configuration.png) Figure 2. JMS Connector の \[Global Element Configuration (グローバル要素設定)\] XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` 次の例では、この設定に関連付けられた ​**Consume**​ または ​**On New Message**​ 操作のいずれかでメッセージをコンシュームするときのデフォルトの​**セレクター**​動作を定義します。また、各 ​**Publish**​ または ​**Publish consume**​ 操作で​**存続期間**​ (TTL) が 60 秒の送信メッセージを生成します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[JMS Config (JMS 設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で ​**\[Active MQ Connection (Active MQ 接続)\]**​ を選択します。 6. **\[Consumer (コンシューマー)\]**​ タブで ​**\[Selector (セレクター)\]**​ 項目を ​`JMSType`​ = \[INVOICE (請求書)\]\` に設定し、受信メッセージを請求書で絞り込みます。 ![「Consumer (コンシューマー)」 タブで、受信メッセージを請求書で絞り込むように 「Selector (セレクター)」 項目を設定します。](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-global-configuration-consumer.png) Figure 3. JMS Connector のコンシューマーのグローバル設定 1. **\[Producer (プロデューサー)\]**​ タブで ​**\[Time to live (存続期間)\]**​ 項目を ​`60000`​ に設定し、メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。 ![「Producer (プロデューサー)」 タブで 「Time to live (存続期間)」 項目を設定し、メッセージがブローカーに残るデフォルトの時間を定義します。](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-global-configuration-producer.png) Figure 4. JMS Connector のプロデューサーのグローバル設定 XML エディターでは、​``​、​`selector`​、および ​`timeToLive`​ の設定は次のように記述されます。 ```xml ``` これらプロパティは必要に応じて操作レベルで上書きできます。次の例では、より短い TTL でメッセージをパブリッシュします。グローバル要素で設定された ​**\[Time to live (存続期間)\]**​ 項目の値を上書きする手順は、次のとおりです。 1. Studio で、フローから ​**\[Publish\]**​ 操作を選択します。 2. **\[Publish\]**​ 設定画面で ​**\[Publish Configuration (パブリッシュ設定)\]**​ セクションまでスクロールダウンします。 3. **\[Time to live (存続期間)\]**​ 項目を ​`10000`​ に設定し、以前に設定したデフォルトのグローバル設定を上書きします。 ![「Publish Configuration (パブリッシュ設定)」 セクションで、「Time to Live (存続期間)」 項目を設定して、以前に設定したデフォルトのグローバル設定を上書きします。](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publish-configuration-1.png) Figure 5. JMS Connector のパブリッシュ設定の上書き XML エディターでは、​``​ および ​`timeToLive`​ の設定は次のように記述されます。 ```xml ``` ## [](#configure-connection)ブローカーへの接続の設定 グローバル要素で接続を設定するには、​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ または ​**\[Generic Connection (汎用接続)\]**​ のいずれかを選択して接続を定義し、接続ライブラリと JMS 仕様を設定します。 JMS Connector では、認証済み接続が必要な場合にログイン情報を指定することもできます。また、接続キャッシュを設定してアプリケーションのパフォーマンスを高めることもできます。 ### [](#active-mq-接続の設定)Active MQ 接続の設定 JMS Connector では、​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ 設定を使用することで ActiveMQ 5 がサポートされます。この接続では、​`JMS_1_1 (Default)`​ または ​`JMS_1_0_2b`​ 仕様を使用できます。また、JMS の全般的なすべての接続パラメーターや、ActiveMQ でのみ表示されるカスタムパラメーターを設定することもできます。 ActiveMQ 接続を宣言したら、目的の設定に合わせて​**接続ファクトリー**​をカスタマイズします。接続のすべてのパラメーターにはデフォルト値があります。つまり、自分のユースケースに関連するパラメーターのみを設定する必要があります。また、ActiveMQ 接続では ​**\[Initial redelivery delay (初期再配信遅延)\]**​ などの ActiveMQ 実装専用のパラメーターが公開されています。 次の例では、​**ActiveMQ 接続**​を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[Factory configuration (ファクトリー設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します。 7. **\[Broker url (ブローカー URL)\]**​ 項目値を、接続先のブローカーのアドレス (​`tcp://localhost:61616`​ など) に設定します。 8. **\[OK\]**​ をクリックします。 ![ActiveMQ 接続の設定。](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-activemq-configuration.png) Figure 6. JMS Connector の ActiveMQ 設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ### [](#汎用接続の設定)汎用接続の設定 **\[Generic Connection (汎用接続)\]**​ を使用して、任意のブローカー実装への接続を設定します。JMS Connector には JNDI (Java Naming and Directory Interface) ベースの接続ファクトリービルダーが用意されており、これによってアプリケーションのコンテキストで JNDI を使用して接続を設定できます。 次の例では、JNDI を使用して、​`JMS_2_0`​ 仕様を使用するように Artemis への ​**\[Generic Connection (汎用接続)\]**​ を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 6. **\[Specification (仕様)\]**​ 項目で ​**JMS\_2\_0**​ を選択します。 7. **\[Connection factory (接続ファクトリー)\]**​ 項目で、​**\[Edit inline (インライン編集)\]**​ を選択します。 8. **\[Connection factory jndi name (接続ファクトリーの JNDI 名)\]**​ 項目を ​`ConnectionFactory`​ に設定します。 9. **\[Lookup destination (ルックアップ宛先)\]**​ 項目で、次のいずれかのオプションを選択します。 - **NEVER** ルックアップは実行されず、宛先は既存の JMS セッションを使用して作成されます。 - **TRY\_ALWAYS** JNDI を使用して宛先を探そうと試みて、存在しない場合は、現在の JMS セッションを使用して宛先を作成します。 - **ALWAYS** JNDI 経由でキューまたはトピックが見つからない場合、ルックアップは失敗して ​`JMS:DESTINATION_NOT_FOUND`​ エラーが発生します。 10. **\[Name resolver builder (名前解決機能ビルダー)\]**​ 項目を選択します。 11. **\[Jndi initial context factory (JNDI 初期コンテキストファクトリー)\]**​ 項目を ​`org.apache.activemq.artemis.ActiveMQInitialContextFactory`​ に設定します。 12. **\[Jndi provider url (JDNI プロバイダー URL)\]**​ 項目を ​`tcp://localhost:61616?broker.persistent=false&broker.useJmx=false`​ に設定します。 13. **\[Provider properties (プロバイダープロパティ)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 14. プラス記号 (​**+**​) をクリックして、新しいプロバイダープロパティを追加します。 15. **\[Provider property (プロバイダープロパティ)\]**​ ウィンドウで、​**\[Key (キー)\]**​ 項目を ​`queue.jndi-queue-in`​ に設定し、​**\[Value (値)\]**​ 項目を ​`in.queue`​ に設定します。 16. **\[Finish (完了)\]**​ をクリックします。 17. ステップ 14 を繰り返します。 18. **\[Key (キー)\]**​ 項目を ​`topic.jndi-topic-in`​ に設定し、​**\[Value (値)\]**​ 項目を ​`in.topic`​ に設定します。 19. **\[OK\]**​ をクリックします。 ![汎用接続の設定。](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-generic-configuration.png) Figure 7. JMS Connector の汎用接続 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ### [](#接続ライブラリの設定)接続ライブラリの設定 JMS Connector はどの特定の実装にもバインドされていないため、何らかの接続種別を設定する場合は、常に JMS クライアント実装を含むライブラリを設定する必要があります。Studio のグローバル要素ビューに表示されている ActiveMQ 外部ライブラリと汎用外部ライブラリを設定できます。また、​`pom.xml`​ ファイルにライブラリの連動関係を手動で追加できます。 #### [](#activemq-の外部ライブラリ)ActiveMQ の外部ライブラリ **\[ActiveMQ Connection (ActiveMQ 接続)\]**​ では、3 つのライブラリを設定できます。 - **ActiveMQ KahaDB**​ `activemq-kahadb-store`​ 連動関係は VM トランスポート (​`vm://localhost?broker.persistent=true`​ など) に基づいて永続的なメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter`​ 実装を提供します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-kahadb-store 5.14.4 ``` - **ActiveMQ ブローカー**​ `activemq-broker`​ 連動関係は VM トランスポート (デフォルトで設定される) に基づいてメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.broker.Broker`​ 実装を提供します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-broker 5.14.4 ``` - **ActiveMQ クライアント**​ `activemq-client`​ 連動関係は常に必須です。有効な ​`org.apache.activemq.ActiveMQConnectionFactory`​ 実装を提供する連動関係を選択します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 + ```xml org.apache.activemq activemq-client 5.14.4 ``` これらのライブラリを \[Global Element (グローバル要素)\] ビューで設定する手順は、次のとおりです。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[ActiveMQ KahaDB\]**​、​**\[ActiveMQ Broker (ActiveMQ ブローカー)\]**​、および ​**\[ActiveMQ Client (ActiveMQ クライアント)\]**​ ライブラリが表示されている ​**\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定…​)\]**​ ボタンをクリックし、連動関係をインストールします。 7. 次のインストールオプションのいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​: 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​: ローカルファイルで必要なエンジンライブラリを探してインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​: 連動関係を探してインストールします。 #### [](#汎用外部ライブラリ)汎用外部ライブラリ **\[Generic Connection (汎用接続)\]**​ では、実装の接続ファクトリーで必要なすべてのライブラリを指定します。必ずアプリケーションへのすべての必須の連動関係を指定してください。 次の例では、Apache Artemis などの異なるクライアントライブラリとの汎用接続が必要な JMS 2.0 仕様を使用する接続用の汎用ライブラリを設定します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq artemis-jms-client-all 2.17.0 ``` これらのライブラリを \[Global Element (グローバル要素)\] ビューで設定する手順は、次のとおりです。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 6. **\[JMS Client (JMS クライアント)\]**​ が表示されている ​**\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定)\]**​ ボタンをクリックし、連動関係をインストールします。 7. 次のインストールオプションのいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​: 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​: ローカルファイルで必要なエンジンライブラリを探してインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​: 連動関係を探してインストールします。 ### [](#jms-仕様の設定)JMS 仕様の設定 設定する JMS ​**仕様**​は、接続に関連付けられるブローカー実装でサポートされる必要があります。サポートされない場合、接続は失敗します。 `JMS_2_0`​ でのみ使用可能な機能は、他の仕様では動作しません。 Studio で JMS 仕様を設定する手順は、次のとおりです。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Specification (仕様)\]**​ 項目で、次のサポートされる仕様のいずれかを選択します。 - **JMS\_1\_1​ (デフォルト)** - **JMS\_1\_0\_2​b** - **JMS\_2\_0** 3. **\[OK\]**​ をクリックします。 ![「Specification (仕様)」 項目で、サポートされる仕様のいずれかを選択する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-spec-config.png) Figure 8. JMS Connector の仕様の設定 XML エディターでは、​`specification`​ 設定は次のように記述されます。 ```xml ``` ### [](#接続キャッシュの設定)接続キャッシュの設定 ブローカーに接続して必要な操作を実行するため、JMS Connector ではコンシューマーおよびプロデューサーの複数のセッションが作成されます。これらをキャッシュして再利用することで、アプリケーションのパフォーマンスを高めることができます。JMS Connector では、新規接続を作成するときに使用する ​**\[Caching strategy (キャッシュ戦略)\]**​ 項目を設定できます。デフォルトでは、コンシューマーとプロデューサーの両方がキャッシュされ、多くの同時インスタンスがメモリにキャッシュされます。 **\[No caching (キャッシュしない)\]**​ 設定を使用してセッションキャッシュを無効にしないでください。この設定は、すでに独自のキャッシュを管理しているカスタム接続ファクトリーでのみ使用します。 次の例では、キャッシュ戦略を設定します。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Caching strategy (キャッシュ戦略)\]**​ 項目で、​**\[Default caching (Default) (デフォルトキャッシュ (デフォルト))\]**​ を選択します。 3. **\[Session cache size (セッションキャッシュサイズ)\]**​ 項目を ​`100`​ に設定します。 4. **\[Cache producers (キャッシュプロデューサー)\]**​ を選択します。 5. **\[OK\]**​ をクリックします。 ![「Caching strategy (キャッシュ戦略)」 項目で、目的のキャッシュ戦略を選択する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-caching-config.png) Figure 9. JMS Connector のキャッシュ戦略の設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` 次の XML 例では、​``​ 設定は次のように記述されます。 ```xml ``` ### [](#認証用のクライアント識別子とログイン情報の設定)認証用のクライアント識別子とログイン情報の設定 クライアント識別子は、接続およびそのオブジェクトを、クライアントの代わりにプロバイダーによって保持される状態と関連付けるものです。これは、共有されていない永続的なサブスクリプションを識別するために必要です。​**\[Client id (クライアント ID)\]**​ で識別されるクライアント状態は、同時に 1 つの接続によってのみ使用できます。 次の例では、認証済み接続とクライアント識別子を設定します。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection (接続)\]**​ セクションで、​**\[Username (ユーザー名)\]**​ 項目を ​`${env.user}`​ に設定し、​**\[Password (パスワード)\]**​ 項目を ​`${env.pass}`​ に設定します。 3. **\[Client id (クライアント ID)\]**​ 項目を ​`${env.clientId}`​ に設定します。 4. **\[OK\]**​ をクリックします。 ![「\[Connection (接続)\] セクションで、\[Username (ユーザー名)\]、\[Password (パスワード)\]、\[Client id (クライアント ID)\] 項目を設定する。」](_images/jms-authentication-config.png) Figure 10. JMS Connector の認証済み接続とクライアント識別子の設定 XML エディターでは、​`username`​、​`password`​、および ​`clientId`​ の設定は次のように記述されます。 ```xml ``` ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログを表示することもできます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Anypoint Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-connector-reference) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector JMS (Java Message Service) 用 Anypoint Connector (JMS Connector) を使用すると、JMS 仕様を実装する任意のメッセージサービスのキューおよびトピックとの間でメッセージを送受信できます。JMS は、メッセージ指向ミドルウェアで広く使用されている API です。分散型アプリケーションの異なるコンポーネント間の通信を疎結合、高信頼性、および非同期にすることができます。JMS Connector の主な機能は次のとおりです。 - 特定の宛先でのパブリッシュおよびサブスクライブパターンのサポート。 - 特定の宛先でのリスンおよび応答パターンのサポート - 特定の宛先での固定または一時応答キューを使用したパブリッシュおよびコンシュームパターンのサポート。 - JMS 2.0、1.1、および 1.0.2 仕様に完全に準拠。 ## [](#始める前に)始める前に このコネクタを使用するには、以下に精通している必要があります。 - Java Message Service - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素とグローバル要素 - Anypoint Studio (Studio) を使用した Mule アプリケーションの作成 アプリケーションを作成するには、Anypoint Platform および Anypoint Studio へのアクセスが必要です。 ## [](#コネクタの一般的なユースケース)コネクタの一般的なユースケース JMS Connector では、次の操作を実行できます。 - 指定した宛先に到着した新しいメッセージをリスンします。 - 新しいメッセージをパブリッシュし、指定した宛先に送信します。 - 指定した任意の宛先からフローの任意の時点でメッセージをコンシュームします。 - 指定した宛先にメッセージをパブリッシュし、指定した別の宛先で応答をコンシュームします。 例については、​[「JMS Connector の例」](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-examples)​を参照してください。 ## [](#jms-メッセージングサポートモデル)JMS メッセージングサポートモデル JMS はメッセージングの 2 つのモデルをサポートしています。 - ポイントツーポイントキュー - トピックのパブリッシュおよびサブスクライブ ### [](#ポイントツーポイントキュー)ポイントツーポイントキュー ポイントツーポイントキューモデルでは、送信者がメッセージを特定のキューに投稿し、受信者が同じキューからそのメッセージを読み取ります。このモデルでは、送信者がメッセージの宛先を知っていて、メッセージをその宛先に直接投稿します。 ポイントツーポイントキューモデルは次のように動作します。 - 受信したメッセージをコンシュームするのは 1 人の受信者のみです。 - 送信者は受信者がメッセージをコンシュームする時点で実行中である必要はなく、受信者はメッセージが送信された時点で実行中である必要はありません。 - 正常に処理されたすべてのメッセージは受信者によって肯定応答されます。 ### [](#トピックのパブリッシュおよびサブスクライブ)トピックのパブリッシュおよびサブスクライブ パブリッシュおよびサブスクライブモデルでは、送信者はメッセージを特定のキューに直接パブリッシュするのではなく特定のメッセージトピックにパブリッシュできます。受信者は、特定のメッセージトピックに関する受信メッセージをコンシュームするようにサブスクライブします。このモデルでは、送信者と受信者は共に互いを認識していません。この概念は、匿名の掲示板に似ています。 パブリッシュおよびサブスクライブモデルは次のように動作します。 - 複数の受信者が受信メッセージをコンシュームします。トピックのサブスクライバーがいない場合は、何も含まれません。 - 送信者は受信者がトピックをサブスクライブできるようにメッセージトピックを作成する必要があります。 - 受信メッセージをコンシュームするには、永続的なサブスクリプションが確立されていない限り、受信者は常にアクティブである必要があります。永続的なサブスクリプションが確立されてる場合、受信者が接続されていない間に送信されたメッセージは、受信者が再接続されたときに再配信されます。 ## [](#次のステップ)次のステップ 前提条件を満たしたら、​[Anypoint Studio](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-studio-configuration)​ で独自のアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector JMS (Java Message Service) 用 Anypoint Connector (JMS Connector) を使用すると、JMS 仕様を実装する任意のメッセージサービスのキューおよびトピックとの間でメッセージを送受信できます。JMS は、メッセージ指向ミドルウェアで広く使用されている API です。分散型アプリケーションの異なるコンポーネント間の通信を疎結合、高信頼性、および非同期にすることができます。JMS Connector の主な機能は次のとおりです。 - 特定の宛先でのパブリッシュおよびサブスクライブパターンのサポート。 - 特定の宛先でのリスンおよび応答パターンのサポート - 特定の宛先での固定または一時応答キューを使用したパブリッシュおよびコンシュームパターンのサポート。 - JMS 2.0、1.1、および 1.0.2 仕様に完全に準拠。 ## [](#始める前に)始める前に このコネクタを使用するには、以下に精通している必要があります。 - Java Message Service - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素とグローバル要素 - Anypoint Studio (Studio) を使用した Mule アプリケーションの作成 アプリケーションを作成するには、Anypoint Platform および Anypoint Studio へのアクセスが必要です。 ## [](#コネクタの一般的なユースケース)コネクタの一般的なユースケース JMS Connector では、次の操作を実行できます。 - 指定した宛先に到着した新しいメッセージをリスンします。 - 新しいメッセージをパブリッシュし、指定した宛先に送信します。 - 指定した任意の宛先からフローの任意の時点でメッセージをコンシュームします。 - 指定した宛先にメッセージをパブリッシュし、指定した別の宛先で応答をコンシュームします。 例については、​[「JMS Connector の例」](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-examples)​を参照してください。 ## [](#jms-メッセージングサポートモデル)JMS メッセージングサポートモデル JMS はメッセージングの 2 つのモデルをサポートしています。 - ポイントツーポイントキュー - トピックのパブリッシュおよびサブスクライブ ### [](#ポイントツーポイントキュー)ポイントツーポイントキュー ポイントツーポイントキューモデルでは、送信者がメッセージを特定のキューに投稿し、受信者が同じキューからそのメッセージを読み取ります。このモデルでは、送信者がメッセージの宛先を知っていて、メッセージをその宛先に直接投稿します。 ポイントツーポイントキューモデルは次のように動作します。 - 受信したメッセージをコンシュームするのは 1 人の受信者のみです。 - 送信者は受信者がメッセージをコンシュームする時点で実行中である必要はなく、受信者はメッセージが送信された時点で実行中である必要はありません。 - 正常に処理されたすべてのメッセージは受信者によって肯定応答されます。 ### [](#トピックのパブリッシュおよびサブスクライブ)トピックのパブリッシュおよびサブスクライブ パブリッシュおよびサブスクライブモデルでは、送信者はメッセージを特定のキューに直接パブリッシュするのではなく特定のメッセージトピックにパブリッシュできます。受信者は、特定のメッセージトピックに関する受信メッセージをコンシュームするようにサブスクライブします。このモデルでは、送信者と受信者は共に互いを認識していません。この概念は、匿名の掲示板に似ています。 パブリッシュおよびサブスクライブモデルは次のように動作します。 - 複数の受信者が受信メッセージをコンシュームします。トピックのサブスクライバーがいない場合は、何も含まれません。 - 送信者は受信者がトピックをサブスクライブできるようにメッセージトピックを作成する必要があります。 - 受信メッセージをコンシュームするには、永続的なサブスクリプションが確立されていない限り、受信者は常にアクティブである必要があります。永続的なサブスクリプションが確立されてる場合、受信者が接続されていない間に送信されたメッセージは、受信者が再接続されたときに再配信されます。 ## [](#次のステップ)次のステップ 前提条件を満たしたら、​[Anypoint Studio](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-studio-configuration)​ で独自のアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector JMS (Java Message Service) 用 Anypoint Connector (JMS Connector) を使用すると、JMS 仕様を実装する任意のメッセージサービスのキューおよびトピックとの間でメッセージを送受信できます。JMS は、メッセージ指向ミドルウェアで広く使用されている API です。分散型アプリケーションの異なるコンポーネント間の通信を疎結合、高信頼性、および非同期にすることができます。JMS Connector の主な機能は次のとおりです。 - 特定の宛先でのパブリッシュおよびサブスクライブパターンのサポート。 - 特定の宛先でのリスンおよび応答パターンのサポート - 特定の宛先での固定または一時応答キューを使用したパブリッシュおよびコンシュームパターンのサポート。 - JMS 2.0、1.1、および 1.0.2 仕様に完全に準拠。 ## [](#始める前に)始める前に このコネクタを使用するには、以下に精通している必要があります。 - Java Message Service - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素とグローバル要素 - Anypoint Studio (Studio) を使用した Mule アプリケーションの作成 アプリケーションを作成するには、Anypoint Platform および Anypoint Studio へのアクセスが必要です。 ## [](#コネクタの一般的なユースケース)コネクタの一般的なユースケース JMS Connector では、次の操作を実行できます。 - 指定した宛先に到着した新しいメッセージをリスンします。 - 新しいメッセージをパブリッシュし、指定した宛先に送信します。 - 指定した任意の宛先からフローの任意の時点でメッセージをコンシュームします。 - 指定した宛先にメッセージをパブリッシュし、指定した別の宛先で応答をコンシュームします。 例については、​[「JMS Connector の例」](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-examples)​を参照してください。 ## [](#jms-メッセージングサポートモデル)JMS メッセージングサポートモデル JMS はメッセージングの 2 つのモデルをサポートしています。 - ポイントツーポイントキュー - トピックのパブリッシュおよびサブスクライブ ### [](#ポイントツーポイントキュー)ポイントツーポイントキュー ポイントツーポイントキューモデルでは、送信者がメッセージを特定のキューに投稿し、受信者が同じキューからそのメッセージを読み取ります。このモデルでは、送信者がメッセージの宛先を知っていて、メッセージをその宛先に直接投稿します。 ポイントツーポイントキューモデルは次のように動作します。 - 受信したメッセージをコンシュームするのは 1 人の受信者のみです。 - 送信者は受信者がメッセージをコンシュームする時点で実行中である必要はなく、受信者はメッセージが送信された時点で実行中である必要はありません。 - 正常に処理されたすべてのメッセージは受信者によって肯定応答されます。 ### [](#トピックのパブリッシュおよびサブスクライブ)トピックのパブリッシュおよびサブスクライブ パブリッシュおよびサブスクライブモデルでは、送信者はメッセージを特定のキューに直接パブリッシュするのではなく特定のメッセージトピックにパブリッシュできます。受信者は、特定のメッセージトピックに関する受信メッセージをコンシュームするようにサブスクライブします。このモデルでは、送信者と受信者は共に互いを認識していません。この概念は、匿名の掲示板に似ています。 パブリッシュおよびサブスクライブモデルは次のように動作します。 - 複数の受信者が受信メッセージをコンシュームします。トピックのサブスクライバーがいない場合は、何も含まれません。 - 送信者は受信者がトピックをサブスクライブできるようにメッセージトピックを作成する必要があります。 - 受信メッセージをコンシュームするには、永続的なサブスクリプションが確立されていない限り、受信者は常にアクティブである必要があります。永続的なサブスクリプションが確立されてる場合、受信者が接続されていない間に送信されたメッセージは、受信者が再接続されたときに再配信されます。 ## [](#次のステップ)次のステップ 前提条件を満たしたら、​[Anypoint Studio](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-studio-configuration)​ で独自のアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector 1.10 JMS (Java Message Service) 用 Anypoint Connector (JMS Connector) を使用すると、JMS 仕様を実装する任意のメッセージサービスのキューおよびトピックとの間でメッセージを送受信できます。JMS は、メッセージ指向ミドルウェアで広く使用されている API です。分散型アプリケーションの異なるコンポーネント間の通信を疎結合、高信頼性、および非同期にすることができます。JMS Connector の主な機能は次のとおりです。 - 特定の宛先でのパブリッシュおよびサブスクライブパターンのサポート。 - 特定の宛先でのリスンおよび応答パターンのサポート - 特定の宛先での固定または一時応答キューを使用したパブリッシュおよびコンシュームパターンのサポート。 - JMS 2.0、1.1、および 1.0.2 仕様に完全に準拠。 ## [](#始める前に)始める前に このコネクタを使用するには、以下に精通している必要があります。 - Java Message Service - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素とグローバル要素 - Anypoint Studio (Studio) を使用した Mule アプリケーションの作成 アプリケーションを作成するには、Anypoint Platform および Anypoint Studio へのアクセスが必要です。 ## [](#コネクタの一般的なユースケース)コネクタの一般的なユースケース JMS Connector では、次の操作を実行できます。 - 指定した宛先に到着した新しいメッセージをリスンします。 - 新しいメッセージをパブリッシュし、指定した宛先に送信します。 - 指定した任意の宛先からフローの任意の時点でメッセージをコンシュームします。 - 指定した宛先にメッセージをパブリッシュし、指定した別の宛先で応答をコンシュームします。 例については、​[「JMS Connector の例」](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-examples)​を参照してください。 ## [](#jms-メッセージングサポートモデル)JMS メッセージングサポートモデル JMS はメッセージングの 2 つのモデルをサポートしています。 - ポイントツーポイントキュー - トピックのパブリッシュおよびサブスクライブ ### [](#ポイントツーポイントキュー)ポイントツーポイントキュー ポイントツーポイントキューモデルでは、送信者がメッセージを特定のキューに投稿し、受信者が同じキューからそのメッセージを読み取ります。このモデルでは、送信者がメッセージの宛先を知っていて、メッセージをその宛先に直接投稿します。 ポイントツーポイントキューモデルは次のように動作します。 - 受信したメッセージをコンシュームするのは 1 人の受信者のみです。 - 送信者は受信者がメッセージをコンシュームする時点で実行中である必要はなく、受信者はメッセージが送信された時点で実行中である必要はありません。 - 正常に処理されたすべてのメッセージは受信者によって肯定応答されます。 ### [](#トピックのパブリッシュおよびサブスクライブ)トピックのパブリッシュおよびサブスクライブ パブリッシュおよびサブスクライブモデルでは、送信者はメッセージを特定のキューに直接パブリッシュするのではなく特定のメッセージトピックにパブリッシュできます。受信者は、特定のメッセージトピックに関する受信メッセージをコンシュームするようにサブスクライブします。このモデルでは、送信者と受信者は共に互いを認識していません。この概念は、匿名の掲示板に似ています。 パブリッシュおよびサブスクライブモデルは次のように動作します。 - 複数の受信者が受信メッセージをコンシュームします。トピックのサブスクライバーがいない場合は、何も含まれません。 - 送信者は受信者がトピックをサブスクライブできるようにメッセージトピックを作成する必要があります。 - 受信メッセージをコンシュームするには、永続的なサブスクリプションが確立されていない限り、受信者は常にアクティブである必要があります。永続的なサブスクリプションが確立されてる場合、受信者が接続されていない間に送信されたメッセージは、受信者が再接続されたときに再配信されます。 ## [](#次のステップ)次のステップ 前提条件を満たしたら、​[Anypoint Studio](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-studio-configuration)​ で独自のアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector での XA トランザクションの設定 **\[XA Connection Pool (XA 接続プール)\]**​ および ​**\[Transaction Type (トランザクション種別)\]**​ 項目を設定すると、JMS 用 Anypoint Connector (JMS Connector) では拡張アーキテクチャトランザクション (XA トランザクション) を使用するオプションが提供されます。 ## [](#始める前に)始める前に 始める前に、[XA Transactions](https://docs.mulesoft.com/mule-runtime/latest/xa-transactions) について理解していることを確認します。 ## [](#xa-トランザクションの設定)XA トランザクションの設定 XA トランザクションを設定するには、次の手順に従います。 1. **\[JMS Config (JMS 設定)\]**​ で、​**\[Min pool size (最小プールサイズ)\]**​、​**\[Max pool size (最大プールサイズ)\]**​、および ​**\[Max idle seconds (最大アイドル秒)\]**​ の ​**\[XA Connection Pool (XA 接続プール)\]**​ 項目を設定します。 ```xml ``` 1. **JMS Listener**​ ソースの ​**\[XA Transaction (XA トランザクション)\]**​ 項目を ​`[XA]`​ に設定します。 ```xml ``` **設定 XML**​ エディターウィンドウでは、Mule アプリケーション設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 [JMS Connector の例](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-examples) # JMS Connector でのトランザクションの管理 JMS のトランザクションアクションでは、トランザクションが実行されたときにのみ実行する一連の操作を実行できます。この機能は次の場合に使用します。 - トランザクションの一部としてメッセージをパブリッシュする **Publish**​ 操作を使用する場合、アプリケーションは、トランザクションの実行後にメッセージを宛先に送信します。何らかの理由でトランザクションが失敗してロールバックが発生すると、メッセージは送信されません。 - トランザクションの一部としてメッセージをコンシュームする **On New Message**​ ソースまたは ​**Consume**​ 操作のいずれかを使用する場合、メッセージはトランザクションの実行後にのみ肯定応答されます。トランザクションがロールバックされると、メッセージは再配信のために宛先に返されます。 JMS 用 Anypoint Connector (JMS Connector) では、​**\[Transactional action (トランザクションアクション)\]**​ 項目を設定して操作を実行できます。 ## [](#ソースのトランザクションの設定)ソースのトランザクションの設定 メッセージを送信するときに ​**On New Message**​ ソースでトランザクションアクションを使用する場合、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。この設定により、それぞれの新規メッセージはトランザクションで処理されます。このトランザクションはフローのすべてのコンポーネントに伝播され、フローの実行が正常に完了した後に実行されます。フローの実行でエラーが返された場合、トランザクションはロールバックされます。 デフォルトでは、フローの他のコンポーネントは ​**On New Message**​ によって作成されたトランザクションに参加しません。ソーストランザクションを使用して他の操作を実行するには、該当のコンポーネントで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ または ​`JOIN_IF_POSSIBLE`​ に設定します。 次の例では、新規メッセージのトランザクションアクションを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`${originQueue}`​ に設定します。 3. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 ![「Advanced (詳細)」 タブで 「Transactional action (トランザクションアクション)」 項目を 「ALWAYS\_BEGIN」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-transaction-1.png) Figure 1. JMS Connector のトランザクションアクションの設定 XML エディターでは、​``​ および ​`transactionalAction`​ の設定は次のように記述されます。 ```xml ``` ## [](#操作のトランザクションの設定)操作のトランザクションの設定 **Publish**​ や ​**Consume**​ などの操作をトランザクションの一部として実行するには、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ または ​`JOIN_IF_POSSIBLE`​ に設定します。 次の例では、​**On New Message**​ ソースにより開始されたトランザクションに参加する ​**Publish**​ および ​**Consume**​ 操作を設定します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`${originQueue}`​ に設定します。 4. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 5. **\[Publish\]**​ 操作を ​**\[On New Message\]**​ ソースの右にドラッグします。 6. **\[Destination (宛先)\]**​ 項目を ​`#[attributes.properties.userProperties.redirectDestination]`​ に設定します。 7. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`JOIN_IF_POSSIBLE`​ に設定します。 8. **\[Consume\]**​ 操作を ​**\[Publish\]**​ 操作の右にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`#[attributes.properties.userProperties.callbackDestination]`​ に設定します。 10. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`JOIN_IF_POSSIBLE`​ に設定します。 ![「Advanced (詳細)」 タブで 「Transactional action (トランザクションアクション)」 項目を 「JOIN\_IF\_POSSIBLE」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-transaction-2.png) Figure 2. JMS Connector の Consume 操作用のトランザクションアクションの設定 XML エディターでは、​`transactionalAction`​ 設定は次のように記述されます。 ```xml ``` 次の例では、Try スコープコンポーネント、JMS の ​**Publish**​ 操作と ​**Publish consume**​ 操作、Validation Module の ​**Is true**​ 操作を使用して、スコープ設定されたトランザクションを設定します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Listener\]**​ 設定画面で、​**\[Path (パス)\]**​ 項目を ​`/orders`​ に設定します。 4. **\[Try\]**​ スコープコンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 5. **\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 6. JMS の ​**\[Publish\]**​ 操作を ​**\[Try\]**​ スコープコンポーネントにドラッグします。 7. **\[Destination (宛先)\]**​ 項目を ​`${billingService}`​ に設定し、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ に設定します。 8. JMS の ​**\[Publish\]**​ 操作を最初の ​**\[Publish\]**​ 操作の右にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`${shipmentService}`​ に設定し、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ に設定します。 10. **\[Publish consume\]**​ 操作を 2 番目の ​**\[Publish\]**​ 操作の右にドラッグします。 11. **\[Destination (宛先)\]**​ 項目を ​`${invoicesVerificationService}`​ に設定します。 12. Validation Module の ​**\[Is true\]**​ 操作を ​**\[Publish consume\]**​ 操作の右にドラッグします。 13. **\[Expression (式)\]**​ メニューで ​**\[Expression (式)\]**​ を選択し、値を ​`#[payload]`​ に設定します。 XML エディターでは、​`transactionalAction`​ の設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [JMS Connector の例](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-examples) - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-connector-reference) # JMS Connector でのトランザクションの管理 JMS のトランザクションアクションでは、トランザクションが実行されたときにのみ実行する一連の操作を実行できます。この機能は次の場合に使用します。 - トランザクションの一部としてメッセージをパブリッシュする **Publish**​ 操作を使用する場合、アプリケーションは、トランザクションの実行後にメッセージを宛先に送信します。何らかの理由でトランザクションが失敗してロールバックが発生すると、メッセージは送信されません。 - トランザクションの一部としてメッセージをコンシュームする **On New Message**​ ソースまたは ​**Consume**​ 操作のいずれかを使用する場合、メッセージはトランザクションの実行後にのみ肯定応答されます。トランザクションがロールバックされると、メッセージは再配信のために宛先に返されます。 JMS 用 Anypoint Connector (JMS Connector) では、​**\[Transactional action (トランザクションアクション)\]**​ 項目を設定して操作を実行できます。 ## [](#ソースのトランザクションの設定)ソースのトランザクションの設定 メッセージを送信するときに ​**On New Message**​ ソースでトランザクションアクションを使用する場合、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。この設定により、それぞれの新規メッセージはトランザクションで処理されます。このトランザクションはフローのすべてのコンポーネントに伝播され、フローの実行が正常に完了した後に実行されます。フローの実行でエラーが返された場合、トランザクションはロールバックされます。 デフォルトでは、フローの他のコンポーネントは ​**On New Message**​ によって作成されたトランザクションに参加しません。ソーストランザクションを使用して他の操作を実行するには、該当のコンポーネントで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ または ​`JOIN_IF_POSSIBLE`​ に設定します。 次の例では、新規メッセージのトランザクションアクションを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`${originQueue}`​ に設定します。 3. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 ![「Advanced (詳細)」 タブで 「Transactional action (トランザクションアクション)」 項目を 「ALWAYS\_BEGIN」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-transaction-1.png) Figure 1. JMS Connector のトランザクションアクションの設定 XML エディターでは、​``​ および ​`transactionalAction`​ の設定は次のように記述されます。 ```xml ``` ## [](#操作のトランザクションの設定)操作のトランザクションの設定 **Publish**​ や ​**Consume**​ などの操作をトランザクションの一部として実行するには、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ または ​`JOIN_IF_POSSIBLE`​ に設定します。 次の例では、​**On New Message**​ ソースにより開始されたトランザクションに参加する ​**Publish**​ および ​**Consume**​ 操作を設定します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`${originQueue}`​ に設定します。 4. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 5. **\[Publish\]**​ 操作を ​**\[On New Message\]**​ ソースの右にドラッグします。 6. **\[Destination (宛先)\]**​ 項目を ​`#[attributes.properties.userProperties.redirectDestination]`​ に設定します。 7. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`JOIN_IF_POSSIBLE`​ に設定します。 8. **\[Consume\]**​ 操作を ​**\[Publish\]**​ 操作の右にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`#[attributes.properties.userProperties.callbackDestination]`​ に設定します。 10. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`JOIN_IF_POSSIBLE`​ に設定します。 ![「Advanced (詳細)」 タブで 「Transactional action (トランザクションアクション)」 項目を 「JOIN\_IF\_POSSIBLE」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-transaction-2.png) Figure 2. JMS Connector の Consume 操作用のトランザクションアクションの設定 XML エディターでは、​`transactionalAction`​ 設定は次のように記述されます。 ```xml ``` 次の例では、Try スコープコンポーネント、JMS の ​**Publish**​ 操作と ​**Publish consume**​ 操作、Validation Module の ​**Is true**​ 操作を使用して、スコープ設定されたトランザクションを設定します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Listener\]**​ 設定画面で、​**\[Path (パス)\]**​ 項目を ​`/orders`​ に設定します。 4. **\[Try\]**​ スコープコンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 5. **\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 6. JMS の ​**\[Publish\]**​ 操作を ​**\[Try\]**​ スコープコンポーネントにドラッグします。 7. **\[Destination (宛先)\]**​ 項目を ​`${billingService}`​ に設定し、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ に設定します。 8. JMS の ​**\[Publish\]**​ 操作を最初の ​**\[Publish\]**​ 操作の右にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`${shipmentService}`​ に設定し、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ に設定します。 10. **\[Publish consume\]**​ 操作を 2 番目の ​**\[Publish\]**​ 操作の右にドラッグします。 11. **\[Destination (宛先)\]**​ 項目を ​`${invoicesVerificationService}`​ に設定します。 12. Validation Module の ​**\[Is true\]**​ 操作を ​**\[Publish consume\]**​ 操作の右にドラッグします。 13. **\[Expression (式)\]**​ メニューで ​**\[Expression (式)\]**​ を選択し、値を ​`#[payload]`​ に設定します。 XML エディターでは、​`transactionalAction`​ の設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [JMS Connector の例](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-examples) - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-connector-reference) # JMS Connector でのトランザクションの管理 JMS のトランザクションアクションでは、トランザクションが実行されたときにのみ実行する一連の操作を実行できます。この機能は次の場合に使用します。 - トランザクションの一部としてメッセージをパブリッシュする **Publish**​ 操作を使用する場合、アプリケーションは、トランザクションの実行後にメッセージを宛先に送信します。何らかの理由でトランザクションが失敗してロールバックが発生すると、メッセージは送信されません。 - トランザクションの一部としてメッセージをコンシュームする **On New Message**​ ソースまたは ​**Consume**​ 操作のいずれかを使用する場合、メッセージはトランザクションの実行後にのみ肯定応答されます。トランザクションがロールバックされると、メッセージは再配信のために宛先に返されます。 JMS 用 Anypoint Connector (JMS Connector) では、​**\[Transactional action (トランザクションアクション)\]**​ 項目を設定して操作を実行できます。 ## [](#ソースのトランザクションの設定)ソースのトランザクションの設定 メッセージを送信するときに ​**On New Message**​ ソースでトランザクションアクションを使用する場合、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。この設定により、それぞれの新規メッセージはトランザクションで処理されます。このトランザクションはフローのすべてのコンポーネントに伝播され、フローの実行が正常に完了した後に実行されます。フローの実行でエラーが返された場合、トランザクションはロールバックされます。 デフォルトでは、フローの他のコンポーネントは ​**On New Message**​ によって作成されたトランザクションに参加しません。ソーストランザクションを使用して他の操作を実行するには、該当のコンポーネントで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ または ​`JOIN_IF_POSSIBLE`​ に設定します。 次の例では、新規メッセージのトランザクションアクションを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`${originQueue}`​ に設定します。 3. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 ![「Advanced (詳細)」 タブで 「Transactional action (トランザクションアクション)」 項目を 「ALWAYS\_BEGIN」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-transaction-1.png) Figure 1. JMS Connector のトランザクションアクションの設定 XML エディターでは、​``​ および ​`transactionalAction`​ の設定は次のように記述されます。 ```xml ``` ## [](#操作のトランザクションの設定)操作のトランザクションの設定 **Publish**​ や ​**Consume**​ などの操作をトランザクションの一部として実行するには、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ または ​`JOIN_IF_POSSIBLE`​ に設定します。 次の例では、​**On New Message**​ ソースにより開始されたトランザクションに参加する ​**Publish**​ および ​**Consume**​ 操作を設定します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`${originQueue}`​ に設定します。 4. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 5. **\[Publish\]**​ 操作を ​**\[On New Message\]**​ ソースの右にドラッグします。 6. **\[Destination (宛先)\]**​ 項目を ​`#[attributes.properties.userProperties.redirectDestination]`​ に設定します。 7. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`JOIN_IF_POSSIBLE`​ に設定します。 8. **\[Consume\]**​ 操作を ​**\[Publish\]**​ 操作の右にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`#[attributes.properties.userProperties.callbackDestination]`​ に設定します。 10. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`JOIN_IF_POSSIBLE`​ に設定します。 ![「Advanced (詳細)」 タブで 「Transactional action (トランザクションアクション)」 項目を 「JOIN\_IF\_POSSIBLE」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-transaction-2.png) Figure 2. JMS Connector の Consume 操作用のトランザクションアクションの設定 XML エディターでは、​`transactionalAction`​ 設定は次のように記述されます。 ```xml ``` 次の例では、Try スコープコンポーネント、JMS の ​**Publish**​ 操作と ​**Publish consume**​ 操作、Validation Module の ​**Is true**​ 操作を使用して、スコープ設定されたトランザクションを設定します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Listener\]**​ 設定画面で、​**\[Path (パス)\]**​ 項目を ​`/orders`​ に設定します。 4. **\[Try\]**​ スコープコンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 5. **\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 6. JMS の ​**\[Publish\]**​ 操作を ​**\[Try\]**​ スコープコンポーネントにドラッグします。 7. **\[Destination (宛先)\]**​ 項目を ​`${billingService}`​ に設定し、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ に設定します。 8. JMS の ​**\[Publish\]**​ 操作を最初の ​**\[Publish\]**​ 操作の右にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`${shipmentService}`​ に設定し、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ に設定します。 10. **\[Publish consume\]**​ 操作を 2 番目の ​**\[Publish\]**​ 操作の右にドラッグします。 11. **\[Destination (宛先)\]**​ 項目を ​`${invoicesVerificationService}`​ に設定します。 12. Validation Module の ​**\[Is true\]**​ 操作を ​**\[Publish consume\]**​ 操作の右にドラッグします。 13. **\[Expression (式)\]**​ メニューで ​**\[Expression (式)\]**​ を選択し、値を ​`#[payload]`​ に設定します。 XML エディターでは、​`transactionalAction`​ の設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [JMS Connector の例](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-examples) - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-connector-reference) # JMS Connector でのトランザクションの管理 JMS のトランザクションアクションでは、トランザクションが実行されたときにのみ実行する一連の操作を実行できます。この機能は次の場合に使用します。 - トランザクションの一部としてメッセージをパブリッシュする **Publish**​ 操作を使用する場合、アプリケーションは、トランザクションの実行後にメッセージを宛先に送信します。何らかの理由でトランザクションが失敗してロールバックが発生すると、メッセージは送信されません。 - トランザクションの一部としてメッセージをコンシュームする **On New Message**​ ソースまたは ​**Consume**​ 操作のいずれかを使用する場合、メッセージはトランザクションの実行後にのみ肯定応答されます。トランザクションがロールバックされると、メッセージは再配信のために宛先に返されます。 JMS 用 Anypoint Connector (JMS Connector) では、​**\[Transactional action (トランザクションアクション)\]**​ 項目を設定して操作を実行できます。 ## [](#ソースのトランザクションの設定)ソースのトランザクションの設定 メッセージを送信するときに ​**On New Message**​ ソースでトランザクションアクションを使用する場合、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。この設定により、それぞれの新規メッセージはトランザクションで処理されます。このトランザクションはフローのすべてのコンポーネントに伝播され、フローの実行が正常に完了した後に実行されます。フローの実行でエラーが返された場合、トランザクションはロールバックされます。 デフォルトでは、フローの他のコンポーネントは ​**On New Message**​ によって作成されたトランザクションに参加しません。ソーストランザクションを使用して他の操作を実行するには、該当のコンポーネントで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ または ​`JOIN_IF_POSSIBLE`​ に設定します。 次の例では、新規メッセージのトランザクションアクションを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`${originQueue}`​ に設定します。 3. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 ![「Advanced (詳細)」 タブで 「Transactional action (トランザクションアクション)」 項目を 「ALWAYS\_BEGIN」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-transaction-1.png) Figure 1. JMS Connector のトランザクションアクションの設定 XML エディターでは、​``​ および ​`transactionalAction`​ の設定は次のように記述されます。 ```xml ``` ## [](#操作のトランザクションの設定)操作のトランザクションの設定 **Publish**​ や ​**Consume**​ などの操作をトランザクションの一部として実行するには、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ または ​`JOIN_IF_POSSIBLE`​ に設定します。 次の例では、​**On New Message**​ ソースにより開始されたトランザクションに参加する ​**Publish**​ および ​**Consume**​ 操作を設定します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`${originQueue}`​ に設定します。 4. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 5. **\[Publish\]**​ 操作を ​**\[On New Message\]**​ ソースの右にドラッグします。 6. **\[Destination (宛先)\]**​ 項目を ​`#[attributes.properties.userProperties.redirectDestination]`​ に設定します。 7. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`JOIN_IF_POSSIBLE`​ に設定します。 8. **\[Consume\]**​ 操作を ​**\[Publish\]**​ 操作の右にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`#[attributes.properties.userProperties.callbackDestination]`​ に設定します。 10. **\[Advanced (詳細)\]**​ タブで ​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`JOIN_IF_POSSIBLE`​ に設定します。 ![「Advanced (詳細)」 タブで 「Transactional action (トランザクションアクション)」 項目を 「JOIN\_IF\_POSSIBLE」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-transaction-2.png) Figure 2. JMS Connector の Consume 操作用のトランザクションアクションの設定 XML エディターでは、​`transactionalAction`​ 設定は次のように記述されます。 ```xml ``` 次の例では、Try スコープコンポーネント、JMS の ​**Publish**​ 操作と ​**Publish consume**​ 操作、Validation Module の ​**Is true**​ 操作を使用して、スコープ設定されたトランザクションを設定します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Listener\]**​ 設定画面で、​**\[Path (パス)\]**​ 項目を ​`/orders`​ に設定します。 4. **\[Try\]**​ スコープコンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 5. **\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 6. JMS の ​**\[Publish\]**​ 操作を ​**\[Try\]**​ スコープコンポーネントにドラッグします。 7. **\[Destination (宛先)\]**​ 項目を ​`${billingService}`​ に設定し、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ に設定します。 8. JMS の ​**\[Publish\]**​ 操作を最初の ​**\[Publish\]**​ 操作の右にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`${shipmentService}`​ に設定し、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_JOIN`​ に設定します。 10. **\[Publish consume\]**​ 操作を 2 番目の ​**\[Publish\]**​ 操作の右にドラッグします。 11. **\[Destination (宛先)\]**​ 項目を ​`${invoicesVerificationService}`​ に設定します。 12. Validation Module の ​**\[Is true\]**​ 操作を ​**\[Publish consume\]**​ 操作の右にドラッグします。 13. **\[Expression (式)\]**​ メニューで ​**\[Expression (式)\]**​ を選択し、値を ​`#[payload]`​ に設定します。 XML エディターでは、​`transactionalAction`​ の設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [JMS Connector の例](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-examples) - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-connector-reference) # JMS Connector の XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio に追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/current/mule-jms.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.connectors mule-jms-connector x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`jms`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector の XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio に追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/current/mule-jms.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.connectors mule-jms-connector x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`jms`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector の XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio に追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/current/mule-jms.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.connectors mule-jms-connector x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`jms`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector の XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio に追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/current/mule-jms.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.connectors mule-jms-connector x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`jms`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector のトラブルシューティング JMS 用 Anypoint Connector (Java Message Service Connector) のトラブルシューティングを行うには、冗長ログの有効化、肯定応答の問題のトラブルシューティング、JMS の停止したコンシュームメッセージのトラブルシューティング、バインディングモードの使用時の再デプロイメントエラーのトラブルシューティング、一般的なスローメッセージの解釈に関する情報を理解しておいてください。 ## [](#冗長ログの有効化)冗長ログの有効化 場合によって、アプリケーションが失敗している理由がわからず、アプリケーションの JMS サーバーとのやりとりで何が行われているかについて理解を深める必要があることがあります。 詳細なログを収集する手順は、次のとおりです。 - 設定ファイルを使用して、サーバー側のログレベルを引き上げます。 - JMS Connector の冗長ログを有効にします。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクト名を開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. 次の行がすでに ​`log4j2.xml`​ ファイル内にある場合は、そのコメントを解除して有効にします。それ以外の場合、次の行を追加します。 ```xml ``` ## [](#肯定応答の問題のトラブルシューティング)肯定応答の問題のトラブルシューティング メッセージの肯定応答に関してアプリケーションの設定に矛盾が生じる理由はいくつか考えられます。 アプリケーションのセッション肯定応答は次のように設定できます。 - **IMMEDIATE** - **AUTO** - **MANUAL** - **DUPS\_OK** セッション肯定応答を ​**IMMEDIATE**​ に設定すると、メッセージは受信されると直ちに肯定応答されます。​**IMMEDIATE**​ 肯定応答を ​**Ack**​ または ​**Recovery session**​ 操作と組み合わせないでください。 セッション肯定応答を ​**AUTO**​ に設定すると、イベントが完了したときに ​**On New Message**​ ソースで肯定応答が制御されるか、イベントの処理中にエラーが発生した場合はセッションが回復します。​**AUTO**​ 肯定応答のアプリケーションで手動肯定応答またはセッション回復を追加すると、チャネルで操作が重複します。 セッション肯定応答を ​**MANUAL**​ または ​**DUPS\_OK**​ に設定する場合は、フロー実行のすべてのパスでメッセージ肯定応答またはセッション回復を取得することを確認してください。確認しなかった場合、メッセージがリークし、作業単位の最大深度に達したときにコンシューマーが無応答になる可能性があります。 この問題を解決する手順は、次のとおりです。 フローデザインを詳しく調べて、すべてのメッセージが肯定応答されるか、セッションが回復することを確認してください。 ## [](#jms-の停止したコンシュームメッセージのトラブルシューティング)JMS の停止したコンシュームメッセージのトラブルシューティング 通常、JMS の停止したコンシュームメッセージは肯定応答されていない大量のメッセージに関連しています。Mule アプリケーションに ​**On New Message**​ ソースまたは ​**Consume**​ 操作とメッセージの手動肯定応答があり、メッセージのすべてのパスに適切な肯定応答またはセッション回復設定があるわけではない場合、Mule アプリケーションでコンシューマーが無応答になる場合があります。 このエラーを解決する手順は、次のとおりです。 ブローカー側で肯定応答されていないメッセージの深度をチェックし、アプリケーションロジックを確認します。 ## [](#バインディングモード使用時の再デプロイメントエラーのトラブルシューティング)バインディングモード使用時の再デプロイメントエラーのトラブルシューティング 接続にバインディングモードを使用している場合、ドライバーは JNI リソースを読み込みます。JNI リソースは一度しか読み込めないため、アプリケーションを再デプロイすると、エラーがスローされます。 このエラーを解決する手順は、次のとおりです。 ドメインレベルでドライバー連動関係を追加します。これにより、アプリケーションの再デプロイメントが可能になります。 ## [](#ha-環境と永続的なサブスクリプションのトラブルシューティング)HA 環境と永続的なサブスクリプションのトラブルシューティング HA (高可用性) システムの設定は、2 つのコンポーネントで構成されています。 - プライマリノード 継続的なサービスを提供するメインノード。 - セカンダリノード 同じサービスを提供する、プライマリノードの複製。 両方のノードは同一で、要求を受信可能であるため、エンドユーザーはシステムクラッシュを認識せずに透過的にシステムを使用し続けることができます。 ただし、永続的なサブスクリプションを使用する場合、一方のノードのみで接続が初期化され、もう一方のノードでは初期化されません。このシナリオでは、ノードは同一ですが、両方が同時に受信可能であることはあり得ません。なぜなら、接続しているのは一方のノードのみで、もう一方のノードは接続していないからです。HA クラスターで実行されている Mule の現在の設計は、プライマリノードの障害に対応できるようにすべてのノードで接続を初期化することを意図しています。 こうした理由から、JMS Connector では HA クラスター環境での永続的な ActiveMQ サブスクリプションはサポートされていません。 このシナリオの解決方法は、次のとおりです。 コンテナのライフサイクルを管理して、プライマリノードでの障害を検出し、新しいノードを開始するフォールバックソリューションを実装します。 ## [](#prefetch-issues)プリフェッチの問題のトラブルシューティング 既知の問題として、JMS ドライバーまたはブローカーのプリフェッチ設定を MANUAL ACK および同時コンシューマーと組み合わせたり、フローごとに複数のメッセージをコンシュームしたりすると、予期しない順序でメッセージがコンシュームされることがあります。 JMS ブローカーではネットワークリソースを効率的に使用するためのプリフェッチポリシーが実装されており、プッシュモデルを使用してメッセージがコンシューマーにディスパッチされるため、コンシューマーには、処理可能なメッセージのローカルバッファが常に存在します。 JMS ドライバーまたはブローカーにプリフェッチサイズ設定がある場合、各コンシューマーで、コンシューム可能なメッセージのバッファが保持されます。バッファ内のメッセージ数は、ブローカー実装とカスタムパラメーター化に応じて決まります。 JMS Connector の ​**Consume**​ 操作では、操作ごとのコンシューマーを使用して一度に 1 つのメッセージがコンシュームされます。つまり、各操作でメッセージのバッファが保持されますが、仕様ではバッファ内の最初のメッセージのみがコンシュームされます。これにより、メッセージのコンシューム順序に関して予期しない動作が発生します。次のシナリオを考えてみます。 ### [](#同時フロー)同時フロー 条件 - 同じフローを 2 つの異なる実行スレッド (スレッド A とスレッド B) で同時に実行します。 - JMS ドライバーまたはブローカーのプリフェッチサイズは 10 に設定されています。 - キューには 100 件のメッセージがあります。 フローの反復 1: - スレッド A: コンシューマー A が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 1 ~ 10)。 - スレッド B: コンシューマー B が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 11 ~ 20。最初の 10 件のメッセージはコンシューマー A にプッシュされたため)。 - スレッド A: コンシューマー A でメッセージ 1 が肯定応答され、メッセージ 2 ~ 10 がブローカーに返されました。 - スレッド B: コンシューマー B でメッセージ 11 が肯定応答され、メッセージ 12 ~ 20 がブローカーに返されました。 - メッセージ 1 と 11 がコンシュームされました。 フローの反復 2: - スレッド A: コンシューマー A が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 2、3、4、5、6、7、8、9、10、12)。 - スレッド B: コンシューマー B が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 13 ~ 22)。 - スレッド A: コンシューマー A でメッセージ 2 が肯定応答され、メッセージ 3、4、5、6、7、8、9、10、12 がブローカーに返されました。 - スレッド B: コンシューマー B でメッセージ 13 が肯定応答され、メッセージ 14 ~ 20 がブローカーに返されました。 - メッセージ 2 と 13 がコンシュームされました。 フローの反復 3: - スレッド A: コンシューマー A が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 3、4、5、6、7、8、9、10、12、14)。 - スレッド B: コンシューマー B が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 15 ~ 24)。 - スレッド A: コンシューマー A でメッセージ 3 が肯定応答され、メッセージ 4、5、6、7、8、9、10、12、14 がブローカーに返されました。 - スレッド B: コンシューマー B でメッセージ 15 が肯定応答され、メッセージ 16 ~ 24 がブローカーに返されました。 - メッセージ 3 と 15 がコンシュームされました。 回避策: - フローの ​**\[Max Concurrency (最大同時実行)\]**​ 項目値を ​`1`​ に設定して実行を強制的にシリアル化すると、コンシュームされるメッセージの順序が期待どおりになります。 - 他の方法として、ブローカーでのプリフェッチを無効にすることもできます。プリフェッチを無効にするには、サードパーティ JMS ベンダープロバイダーのドキュメントを参照してください。 ### [](#同じフローでの複数のコンシューム)同じフローでの複数のコンシューム 条件 - foreach ブロック内でメッセージ 1 ~ 4 がコンシュームされます。 - 最初のポイントでコンシュームされたメッセージがメッセージのコレクションに追加されます。これらのメッセージは後で処理および肯定応答されます。 - JMS ドライバー/ブローカーのプリフェッチサイズは 2 に設定されています。 - キューには 4 件のメッセージがあります。 - JMS の ​**Consume**​ 操作の ​**\[Ack mode (肯定応答モード)\]**​ 項目は ​`[MANUAL]`​ に設定されており、メッセージは foreach ブロック内で、最初のポイントで作成されたコレクションを使用して肯定応答されます。 フローの反復 1: - Foreach の反復 1 1: - コンシューマー 1 が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 2 件のメッセージがあります (メッセージ 1 と 2)。 - メッセージ 1 がコレクションに追加されます。 - Foreach の反復 2: - コンシューマー 2 が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 2 件のメッセージがあります (メッセージ 3 と 4)。 - メッセージ 3 がコレクションに追加されます。 - Foreach の反復 3: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 4: - キュー内に使用可能なメッセージはありません。 foreach によって作成されたコレクションのメッセージ (1、3) が肯定応答され、残りのメッセージ (2、4) はキューに返されます。 フローの反復 2: - Foreach の反復 1: - コンシューマー 1 が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 2 件のメッセージがあります (メッセージ 2 と 4)。 - メッセージ 2 がコレクションに追加されます。 - Foreach の反復 2: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 3: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 4: - キュー内に使用可能なメッセージはありません。 foreach によって作成されたコレクションのメッセージ (2) が肯定応答され、残りのメッセージ (4) はキューに返されます。 フローの反復 3: - Foreach の反復 1: - コンシューマー 1 が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 1 件のメッセージがあります (メッセージ 4)。 - メッセージ 4 がコレクションに追加されます。 - Foreach の反復 2: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 3: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 4: - キュー内に使用可能なメッセージはありません。 foreach によって作成されたコレクションのメッセージ (4) が肯定応答されます。 フローの反復をまとめると、フローの 3 回の反復によってキュー内の 4 件のメッセージがコンシュームされます。順序は守られていません。 - 反復 1: \[1、3\] - 反復 2: \[2\] - 反復 3: \[4\] 回避策: - ブローカーでのプリフェッチを無効にします。プリフェッチを無効にするには、サードパーティ JMS ベンダープロバイダーのドキュメントを参照してください。 - ブローカーでのプリフェッチを無効にできない場合は、JMS の ​**Consume**​ 操作で ​**\[Ack mode (肯定応答モード)\]**​ 項目を ​`[IMMEDIATE]`​ に設定し、メッセージが肯定応答されるまでローカルバッファでメッセージを保持しないようにします。 - ユースケースに応じて、JMS の ​**Consume**​ 操作を使用してメッセージをポーリングする代わりに JMS の ​**On New Message**​ リスナーを使用してメッセージの到着時にメッセージを処理します。メッセージをチャンクで処理する必要がある場合は、Aggregators Module の ​**\[Size based aggregator (サイズベースのアグリゲーター)\]**​ スコープを使用して、後で処理するメッセージのコレクションを作成します。 ## [](#jms-connector-を使用した-activemq-のトラブルシューティング)JMS Connector を使用した ActiveMQ のトラブルシューティング ActiveMQ バージョン 5.16.x 以降を使用していて、トランザクション外で XAConnection (ActiveMQXAConnection で実装) と XASession (ActiveMQXASession で実装) を使用しようとすると、次の JMS 例外メッセージが表示されます。 `javax.jms.JMSException: Session’s XAResource has not been enlisted in a distributed transaction. (javax.jms.JMSException: セッションの XAResource が、分散されたトランザクション内で取得されませんでした)` この問題を解決するには、次のいずれかのオプションを選択します。 - トランザクションコンテキスト内で XA 対応の操作を実行します。 - ブローカー URL で ​`jms.xaAckMode=1`​ クエリパラメーターを渡して、XA 操作をトランザクションコンテキスト外で実行します。例: ブローカー URL: `vm://localhost?jms.xaAckMode=1`
ActiveMQ バージョン 5.16.x を使用する場合、ActiveMQ ドライバーバージョン 5.16.4 以降を使用してください。
## [](#一般的なスローを理解する)一般的なスローを理解する 次に、一般的なスローメッセージとその解釈方法のリストを示します。 - JMS:ACK インフライトメッセージの肯定応答のコンテキストでエラーが発生しました。 - JMS:CONNECTIVITY 接続が有効ではなくなりました。破棄されますが、アプリケーションの設定で定義されている場合、再接続ポリシーを適用できます。 - JMS:CONSUMING WMQ からのメッセージのコンシューム中にエラーが発生しました。このエラーは保留中のメッセージが存在していないことに関連している場合もあります。 - JMS:DESTINATION\_NOT\_FOUND JMS Connector が宛先を発見または作成できません。 - JMS:RETRY\_EXHAUSTED 操作の最大再試行回数に達しました。 - JMS:SECURITY セキュリティ関連のエラーが原因でスローされた例外。 - JMS:TIMEOUT 要求された操作のタイムアウトを超えました。 - JMS:ILLEGAL\_BODY メッセージ本文が無効であり、サポートされる種別に変換できません。 - JMS:PUBLISHING 対象キューまたはトピックへのパブリッシュ中にエラーが発生しました。 ## [](#関連情報)関連情報 - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-connector-reference) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [Known Issues](https://help.salesforce.com/s/issues) # JMS Connector のトラブルシューティング JMS 用 Anypoint Connector (Java Message Service Connector) のトラブルシューティングを行うには、冗長ログの有効化、肯定応答の問題のトラブルシューティング、JMS の停止したコンシュームメッセージのトラブルシューティング、バインディングモードの使用時の再デプロイメントエラーのトラブルシューティング、一般的なスローメッセージの解釈に関する情報を理解しておいてください。 ## [](#冗長ログの有効化)冗長ログの有効化 場合によって、アプリケーションが失敗している理由がわからず、アプリケーションの JMS サーバーとのやりとりで何が行われているかについて理解を深める必要があることがあります。 詳細なログを収集する手順は、次のとおりです。 - 設定ファイルを使用して、サーバー側のログレベルを引き上げます。 - JMS Connector の冗長ログを有効にします。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクト名を開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. 次の行がすでに ​`log4j2.xml`​ ファイル内にある場合は、そのコメントを解除して有効にします。それ以外の場合、次の行を追加します。 ```xml ``` ## [](#肯定応答の問題のトラブルシューティング)肯定応答の問題のトラブルシューティング メッセージの肯定応答に関してアプリケーションの設定に矛盾が生じる理由はいくつか考えられます。 アプリケーションのセッション肯定応答は次のように設定できます。 - **IMMEDIATE** - **AUTO** - **MANUAL** - **DUPS\_OK** セッション肯定応答を ​**IMMEDIATE**​ に設定すると、メッセージは受信されると直ちに肯定応答されます。​**IMMEDIATE**​ 肯定応答を ​**Ack**​ または ​**Recovery session**​ 操作と組み合わせないでください。 セッション肯定応答を ​**AUTO**​ に設定すると、イベントが完了したときに ​**On New Message**​ ソースで肯定応答が制御されるか、イベントの処理中にエラーが発生した場合はセッションが回復します。​**AUTO**​ 肯定応答のアプリケーションで手動肯定応答またはセッション回復を追加すると、チャネルで操作が重複します。 セッション肯定応答を ​**MANUAL**​ または ​**DUPS\_OK**​ に設定する場合は、フロー実行のすべてのパスでメッセージ肯定応答またはセッション回復を取得することを確認してください。確認しなかった場合、メッセージがリークし、作業単位の最大深度に達したときにコンシューマーが無応答になる可能性があります。 この問題を解決する手順は、次のとおりです。 フローデザインを詳しく調べて、すべてのメッセージが肯定応答されるか、セッションが回復することを確認してください。 ## [](#jms-の停止したコンシュームメッセージのトラブルシューティング)JMS の停止したコンシュームメッセージのトラブルシューティング 通常、JMS の停止したコンシュームメッセージは肯定応答されていない大量のメッセージに関連しています。Mule アプリケーションに ​**On New Message**​ ソースまたは ​**Consume**​ 操作とメッセージの手動肯定応答があり、メッセージのすべてのパスに適切な肯定応答またはセッション回復設定があるわけではない場合、Mule アプリケーションでコンシューマーが無応答になる場合があります。 このエラーを解決する手順は、次のとおりです。 ブローカー側で肯定応答されていないメッセージの深度をチェックし、アプリケーションロジックを確認します。 ## [](#バインディングモード使用時の再デプロイメントエラーのトラブルシューティング)バインディングモード使用時の再デプロイメントエラーのトラブルシューティング 接続にバインディングモードを使用している場合、ドライバーは JNI リソースを読み込みます。JNI リソースは一度しか読み込めないため、アプリケーションを再デプロイすると、エラーがスローされます。 このエラーを解決する手順は、次のとおりです。 ドメインレベルでドライバー連動関係を追加します。これにより、アプリケーションの再デプロイメントが可能になります。 ## [](#ha-環境と永続的なサブスクリプションのトラブルシューティング)HA 環境と永続的なサブスクリプションのトラブルシューティング HA (高可用性) システムの設定は、2 つのコンポーネントで構成されています。 - プライマリノード 継続的なサービスを提供するメインノード。 - セカンダリノード 同じサービスを提供する、プライマリノードの複製。 両方のノードは同一で、要求を受信可能であるため、エンドユーザーはシステムクラッシュを認識せずに透過的にシステムを使用し続けることができます。 ただし、永続的なサブスクリプションを使用する場合、一方のノードのみで接続が初期化され、もう一方のノードでは初期化されません。このシナリオでは、ノードは同一ですが、両方が同時に受信可能であることはあり得ません。なぜなら、接続しているのは一方のノードのみで、もう一方のノードは接続していないからです。HA クラスターで実行されている Mule の現在の設計は、プライマリノードの障害に対応できるようにすべてのノードで接続を初期化することを意図しています。 こうした理由から、JMS Connector では HA クラスター環境での永続的な ActiveMQ サブスクリプションはサポートされていません。 このシナリオの解決方法は、次のとおりです。 コンテナのライフサイクルを管理して、プライマリノードでの障害を検出し、新しいノードを開始するフォールバックソリューションを実装します。 ## [](#prefetch-issues)プリフェッチの問題のトラブルシューティング 既知の問題として、JMS ドライバーまたはブローカーのプリフェッチ設定を MANUAL ACK および同時コンシューマーと組み合わせたり、フローごとに複数のメッセージをコンシュームしたりすると、予期しない順序でメッセージがコンシュームされることがあります。 JMS ブローカーではネットワークリソースを効率的に使用するためのプリフェッチポリシーが実装されており、プッシュモデルを使用してメッセージがコンシューマーにディスパッチされるため、コンシューマーには、処理可能なメッセージのローカルバッファが常に存在します。 JMS ドライバーまたはブローカーにプリフェッチサイズ設定がある場合、各コンシューマーで、コンシューム可能なメッセージのバッファが保持されます。バッファ内のメッセージ数は、ブローカー実装とカスタムパラメーター化に応じて決まります。 JMS Connector の ​**Consume**​ 操作では、操作ごとのコンシューマーを使用して一度に 1 つのメッセージがコンシュームされます。つまり、各操作でメッセージのバッファが保持されますが、仕様ではバッファ内の最初のメッセージのみがコンシュームされます。これにより、メッセージのコンシューム順序に関して予期しない動作が発生します。次のシナリオを考えてみます。 ### [](#同時フロー)同時フロー 条件 - 同じフローを 2 つの異なる実行スレッド (スレッド A とスレッド B) で同時に実行します。 - JMS ドライバーまたはブローカーのプリフェッチサイズは 10 に設定されています。 - キューには 100 件のメッセージがあります。 フローの反復 1: - スレッド A: コンシューマー A が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 1 ~ 10)。 - スレッド B: コンシューマー B が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 11 ~ 20。最初の 10 件のメッセージはコンシューマー A にプッシュされたため)。 - スレッド A: コンシューマー A でメッセージ 1 が肯定応答され、メッセージ 2 ~ 10 がブローカーに返されました。 - スレッド B: コンシューマー B でメッセージ 11 が肯定応答され、メッセージ 12 ~ 20 がブローカーに返されました。 - メッセージ 1 と 11 がコンシュームされました。 フローの反復 2: - スレッド A: コンシューマー A が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 2、3、4、5、6、7、8、9、10、12)。 - スレッド B: コンシューマー B が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 13 ~ 22)。 - スレッド A: コンシューマー A でメッセージ 2 が肯定応答され、メッセージ 3、4、5、6、7、8、9、10、12 がブローカーに返されました。 - スレッド B: コンシューマー B でメッセージ 13 が肯定応答され、メッセージ 14 ~ 20 がブローカーに返されました。 - メッセージ 2 と 13 がコンシュームされました。 フローの反復 3: - スレッド A: コンシューマー A が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 3、4、5、6、7、8、9、10、12、14)。 - スレッド B: コンシューマー B が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 15 ~ 24)。 - スレッド A: コンシューマー A でメッセージ 3 が肯定応答され、メッセージ 4、5、6、7、8、9、10、12、14 がブローカーに返されました。 - スレッド B: コンシューマー B でメッセージ 15 が肯定応答され、メッセージ 16 ~ 24 がブローカーに返されました。 - メッセージ 3 と 15 がコンシュームされました。 回避策: - フローの ​**\[Max Concurrency (最大同時実行)\]**​ 項目値を ​`1`​ に設定して実行を強制的にシリアル化すると、コンシュームされるメッセージの順序が期待どおりになります。 - 他の方法として、ブローカーでのプリフェッチを無効にすることもできます。プリフェッチを無効にするには、サードパーティ JMS ベンダープロバイダーのドキュメントを参照してください。 ### [](#同じフローでの複数のコンシューム)同じフローでの複数のコンシューム 条件 - foreach ブロック内でメッセージ 1 ~ 4 がコンシュームされます。 - 最初のポイントでコンシュームされたメッセージがメッセージのコレクションに追加されます。これらのメッセージは後で処理および肯定応答されます。 - JMS ドライバー/ブローカーのプリフェッチサイズは 2 に設定されています。 - キューには 4 件のメッセージがあります。 - JMS の ​**Consume**​ 操作の ​**\[Ack mode (肯定応答モード)\]**​ 項目は ​`[MANUAL]`​ に設定されており、メッセージは foreach ブロック内で、最初のポイントで作成されたコレクションを使用して肯定応答されます。 フローの反復 1: - Foreach の反復1 1: - コンシューマー 1 が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 2 件のメッセージがあります (メッセージ 1 と 2)。 - メッセージ 1 がコレクションに追加されます。 - Foreach の反復 2: - コンシューマー 2 が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 2 件のメッセージがあります (メッセージ 3 と 4)。 - メッセージ 3 がコレクションに追加されます。 - Foreach の反復 3: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 4: - キュー内に使用可能なメッセージはありません。 foreach によって作成されたコレクションのメッセージ (1、3) が肯定応答され、残りのメッセージ (2、4) はキューに返されます。 フローの反復 2: - Foreach の反復 1: - コンシューマー 1 が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 2 件のメッセージがあります (メッセージ 2 と 4)。 - メッセージ 2 がコレクションに追加されます。 - Foreach の反復 2: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 3: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 4: - キュー内に使用可能なメッセージはありません。 foreach によって作成されたコレクションのメッセージ (2) が肯定応答され、残りのメッセージ (4) はキューに返されます。 フローの反復 3: - Foreach の反復 1: - コンシューマー 1 が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 1 件のメッセージがあります (メッセージ 4)。 - メッセージ 4 がコレクションに追加されます。 - Foreach の反復 2: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 3: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 4: - キュー内に使用可能なメッセージはありません。 foreach によって作成されたコレクションのメッセージ (4) が肯定応答されます。 フローの反復をまとめると、フローの 3 回の反復によってキュー内の 4 件のメッセージがコンシュームされます。順序は守られていません。 - 反復 1: \[1、3\] - 反復 2: \[2\] - 反復 3: \[4\] 回避策: - ブローカーでのプリフェッチを無効にします。プリフェッチを無効にするには、サードパーティ JMS ベンダープロバイダーのドキュメントを参照してください。 - ブローカーでのプリフェッチを無効にできない場合は、JMS の ​**Consume**​ 操作で ​**\[Ack mode (肯定応答モード)\]**​ 項目を ​`[IMMEDIATE]`​ に設定し、メッセージが肯定応答されるまでローカルバッファでメッセージを保持しないようにします。 - ユースケースに応じて、JMS の ​**Consume**​ 操作を使用してメッセージをポーリングする代わりに JMS の ​**On New Message**​ リスナーを使用してメッセージの到着時にメッセージを処理します。メッセージをチャンクで処理する必要がある場合は、Aggregators Module の ​**\[Size based aggregator (サイズベースのアグリゲーター)\]**​ スコープを使用して、後で処理するメッセージのコレクションを作成します。 ## [](#一般的なスローを理解する)一般的なスローを理解する 次に、一般的なスローメッセージとその解釈方法のリストを示します。 - JMS:ACK インフライトメッセージの肯定応答のコンテキストでエラーが発生しました。 - JMS:CONNECTIVITY 接続が有効ではなくなりました。破棄されますが、アプリケーションの設定で定義されている場合、再接続ポリシーを適用できます。 - JMS:CONSUMING WMQ からのメッセージのコンシューム中にエラーが発生しました。このエラーは保留中のメッセージが存在していないことに関連している場合もあります。 - JMS:DESTINATION\_NOT\_FOUND JMS Connector が宛先を発見または作成できません。 - JMS:RETRY\_EXHAUSTED 操作の最大再試行回数に達しました。 - JMS:SECURITY セキュリティ関連のエラーが原因でスローされた例外。 - JMS:TIMEOUT 要求された操作のタイムアウトを超えました。 - JMS:ILLEGAL\_BODY メッセージ本文が無効であり、サポートされる種別に変換できません。 - JMS:PUBLISHING 対象キューまたはトピックへのパブリッシュ中にエラーが発生しました。 ## [](#関連情報)関連情報 - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-connector-reference) # JMS Connector のトラブルシューティング JMS 用 Anypoint Connector (Java Message Service Connector) のトラブルシューティングを行うには、冗長ログの有効化、肯定応答の問題のトラブルシューティング、JMS の停止したコンシュームメッセージのトラブルシューティング、バインディングモードの使用時の再デプロイメントエラーのトラブルシューティング、一般的なスローメッセージの解釈に関する情報を理解しておいてください。 ## [](#冗長ログの有効化)冗長ログの有効化 場合によって、アプリケーションが失敗している理由がわからず、アプリケーションの JMS サーバーとのやりとりで何が行われているかについて理解を深める必要があることがあります。 詳細なログを収集する手順は、次のとおりです。 - 設定ファイルを使用して、サーバー側のログレベルを引き上げます。 - JMS Connector の冗長ログを有効にします。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクト名を開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. 次の行がすでに ​`log4j2.xml`​ ファイル内にある場合は、そのコメントを解除して有効にします。それ以外の場合、次の行を追加します。 ```xml ``` ## [](#肯定応答の問題のトラブルシューティング)肯定応答の問題のトラブルシューティング メッセージの肯定応答に関してアプリケーションの設定に矛盾が生じる理由はいくつか考えられます。 アプリケーションのセッション肯定応答は次のように設定できます。 - **IMMEDIATE** - **AUTO** - **MANUAL** - **DUPS\_OK** セッション肯定応答を ​**IMMEDIATE**​ に設定すると、メッセージは受信されると直ちに肯定応答されます。​**IMMEDIATE**​ 肯定応答を ​**Ack**​ または ​**Recovery session**​ 操作と組み合わせないでください。 セッション肯定応答を ​**AUTO**​ に設定すると、イベントが完了したときに ​**On New Message**​ ソースで肯定応答が制御されるか、イベントの処理中にエラーが発生した場合はセッションが回復します。​**AUTO**​ 肯定応答のアプリケーションで手動肯定応答またはセッション回復を追加すると、チャネルで操作が重複します。 セッション肯定応答を ​**MANUAL**​ または ​**DUPS\_OK**​ に設定する場合は、フロー実行のすべてのパスでメッセージ肯定応答またはセッション回復を取得することを確認してください。確認しなかった場合、メッセージがリークし、作業単位の最大深度に達したときにコンシューマーが無応答になる可能性があります。 この問題を解決する手順は、次のとおりです。 フローデザインを詳しく調べて、すべてのメッセージが肯定応答されるか、セッションが回復することを確認してください。 ## [](#jms-の停止したコンシュームメッセージのトラブルシューティング)JMS の停止したコンシュームメッセージのトラブルシューティング 通常、JMS の停止したコンシュームメッセージは肯定応答されていない大量のメッセージに関連しています。Mule アプリケーションに ​**On New Message**​ ソースまたは ​**Consume**​ 操作とメッセージの手動肯定応答があり、メッセージのすべてのパスに適切な肯定応答またはセッション回復設定があるわけではない場合、Mule アプリケーションでコンシューマーが無応答になる場合があります。 このエラーを解決する手順は、次のとおりです。 ブローカー側で肯定応答されていないメッセージの深度をチェックし、アプリケーションロジックを確認します。 ## [](#バインディングモード使用時の再デプロイメントエラーのトラブルシューティング)バインディングモード使用時の再デプロイメントエラーのトラブルシューティング 接続にバインディングモードを使用している場合、ドライバーは JNI リソースを読み込みます。JNI リソースは一度しか読み込めないため、アプリケーションを再デプロイすると、エラーがスローされます。 このエラーを解決する手順は、次のとおりです。 ドメインレベルでドライバー連動関係を追加します。これにより、アプリケーションの再デプロイメントが可能になります。 ## [](#ha-環境と永続的なサブスクリプションのトラブルシューティング)HA 環境と永続的なサブスクリプションのトラブルシューティング HA (高可用性) システムの設定は、2 つのコンポーネントで構成されています。 - プライマリノード 継続的なサービスを提供するメインノード。 - セカンダリノード 同じサービスを提供する、プライマリノードの複製。 両方のノードは同一で、要求を受信可能であるため、エンドユーザーはシステムクラッシュを認識せずに透過的にシステムを使用し続けることができます。 ただし、永続的なサブスクリプションを使用する場合、一方のノードのみで接続が初期化され、もう一方のノードでは初期化されません。このシナリオでは、ノードは同一ですが、両方が同時に受信可能であることはあり得ません。なぜなら、接続しているのは一方のノードのみで、もう一方のノードは接続していないからです。HA クラスターで実行されている Mule の現在の設計は、プライマリノードの障害に対応できるようにすべてのノードで接続を初期化することを意図しています。 こうした理由から、JMS Connector では HA クラスター環境での永続的な ActiveMQ サブスクリプションはサポートされていません。 このシナリオの解決方法は、次のとおりです。 コンテナのライフサイクルを管理して、プライマリノードでの障害を検出し、新しいノードを開始するフォールバックソリューションを実装します。 ## [](#prefetch-issues)プリフェッチの問題のトラブルシューティング 既知の問題として、JMS ドライバーまたはブローカーのプリフェッチ設定を MANUAL ACK および同時コンシューマーと組み合わせたり、フローごとに複数のメッセージをコンシュームしたりすると、予期しない順序でメッセージがコンシュームされることがあります。 JMS ブローカーではネットワークリソースを効率的に使用するためのプリフェッチポリシーが実装されており、プッシュモデルを使用してメッセージがコンシューマーにディスパッチされるため、コンシューマーには、処理可能なメッセージのローカルバッファが常に存在します。 JMS ドライバーまたはブローカーにプリフェッチサイズ設定がある場合、各コンシューマーで、コンシューム可能なメッセージのバッファが保持されます。バッファ内のメッセージ数は、ブローカー実装とカスタムパラメーター化に応じて決まります。 JMS Connector の ​**Consume**​ 操作では、操作ごとのコンシューマーを使用して一度に 1 つのメッセージがコンシュームされます。つまり、各操作でメッセージのバッファが保持されますが、仕様ではバッファ内の最初のメッセージのみがコンシュームされます。これにより、メッセージのコンシューム順序に関して予期しない動作が発生します。次のシナリオを考えてみます。 ### [](#同時フロー)同時フロー 条件 - 同じフローを 2 つの異なる実行スレッド (スレッド A とスレッド B) で同時に実行します。 - JMS ドライバーまたはブローカーのプリフェッチサイズは 10 に設定されています。 - キューには 100 件のメッセージがあります。 フローの反復 1: - スレッド A: コンシューマー A が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 1 ~ 10)。 - スレッド B: コンシューマー B が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 11 ~ 20。最初の 10 件のメッセージはコンシューマー A にプッシュされたため)。 - スレッド A: コンシューマー A でメッセージ 1 が肯定応答され、メッセージ 2 ~ 10 がブローカーに返されました。 - スレッド B: コンシューマー B でメッセージ 11 が肯定応答され、メッセージ 12 ~ 20 がブローカーに返されました。 - メッセージ 1 と 11 がコンシュームされました。 フローの反復 2: - スレッド A: コンシューマー A が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 2、3、4、5、6、7、8、9、10、12)。 - スレッド B: コンシューマー B が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 13 ~ 22)。 - スレッド A: コンシューマー A でメッセージ 2 が肯定応答され、メッセージ 3、4、5、6、7、8、9、10、12 がブローカーに返されました。 - スレッド B: コンシューマー B でメッセージ 13 が肯定応答され、メッセージ 14 ~ 20 がブローカーに返されました。 - メッセージ 2 と 13 がコンシュームされました。 フローの反復 3: - スレッド A: コンシューマー A が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 3、4、5、6、7、8、9、10、12、14)。 - スレッド B: コンシューマー B が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 10 件のメッセージがあります (メッセージ 15 ~ 24)。 - スレッド A: コンシューマー A でメッセージ 3 が肯定応答され、メッセージ 4、5、6、7、8、9、10、12、14 がブローカーに返されました。 - スレッド B: コンシューマー B でメッセージ 15 が肯定応答され、メッセージ 16 ~ 24 がブローカーに返されました。 - メッセージ 3 と 15 がコンシュームされました。 回避策: - フローの ​**\[Max Concurrency (最大同時実行)\]**​ 項目値を ​`1`​ に設定して実行を強制的にシリアル化すると、コンシュームされるメッセージの順序が期待どおりになります。 - 他の方法として、ブローカーでのプリフェッチを無効にすることもできます。プリフェッチを無効にするには、サードパーティ JMS ベンダープロバイダーのドキュメントを参照してください。 ### [](#同じフローでの複数のコンシューム)同じフローでの複数のコンシューム 条件 - foreach ブロック内でメッセージ 1 ~ 4 がコンシュームされます。 - 最初のポイントでコンシュームされたメッセージがメッセージのコレクションに追加されます。これらのメッセージは後で処理および肯定応答されます。 - JMS ドライバー/ブローカーのプリフェッチサイズは 2 に設定されています。 - キューには 4 件のメッセージがあります。 - JMS の ​**Consume**​ 操作の ​**\[Ack mode (肯定応答モード)\]**​ 項目は ​`[MANUAL]`​ に設定されており、メッセージは foreach ブロック内で、最初のポイントで作成されたコレクションを使用して肯定応答されます。 フローの反復 1: - Foreach の反復 1 1: - コンシューマー 1 が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 2 件のメッセージがあります (メッセージ 1 と 2)。 - メッセージ 1 がコレクションに追加されます。 - Foreach の反復 2: - コンシューマー 2 が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 2 件のメッセージがあります (メッセージ 3 と 4)。 - メッセージ 3 がコレクションに追加されます。 - Foreach の反復 3: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 4: - キュー内に使用可能なメッセージはありません。 foreach によって作成されたコレクションのメッセージ (1、3) が肯定応答され、残りのメッセージ (2、4) はキューに返されます。 フローの反復 2: - Foreach の反復 1: - コンシューマー 1 が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 2 件のメッセージがあります (メッセージ 2 と 4)。 - メッセージ 2 がコレクションに追加されます。 - Foreach の反復 2: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 3: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 4: - キュー内に使用可能なメッセージはありません。 foreach によって作成されたコレクションのメッセージ (2) が肯定応答され、残りのメッセージ (4) はキューに返されます。 フローの反復 3: - Foreach の反復 1: - コンシューマー 1 が作成され、そのローカルバッファにはブローカーによりプッシュされた処理可能な 1 件のメッセージがあります (メッセージ 4)。 - メッセージ 4 がコレクションに追加されます。 - Foreach の反復 2: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 3: - キュー内に使用可能なメッセージはありません。 - Foreach の反復 4: - キュー内に使用可能なメッセージはありません。 foreach によって作成されたコレクションのメッセージ (4) が肯定応答されます。 フローの反復をまとめると、フローの 3 回の反復によってキュー内の 4 件のメッセージがコンシュームされます。順序は守られていません。 - 反復 1: \[1、3\] - 反復 2: \[2\] - 反復 3: \[4\] 回避策: - ブローカーでのプリフェッチを無効にします。プリフェッチを無効にするには、サードパーティ JMS ベンダープロバイダーのドキュメントを参照してください。 - ブローカーでのプリフェッチを無効にできない場合は、JMS の ​**Consume**​ 操作で ​**\[Ack mode (肯定応答モード)\]**​ 項目を ​`[IMMEDIATE]`​ に設定し、メッセージが肯定応答されるまでローカルバッファでメッセージを保持しないようにします。 - ユースケースに応じて、JMS の ​**Consume**​ 操作を使用してメッセージをポーリングする代わりに JMS の ​**On New Message**​ リスナーを使用してメッセージの到着時にメッセージを処理します。メッセージをチャンクで処理する必要がある場合は、Aggregators Module の ​**\[Size based aggregator (サイズベースのアグリゲーター)\]**​ スコープを使用して、後で処理するメッセージのコレクションを作成します。 ## [](#一般的なスローを理解する)一般的なスローを理解する 次に、一般的なスローメッセージとその解釈方法のリストを示します。 - JMS:ACK インフライトメッセージの肯定応答のコンテキストでエラーが発生しました。 - JMS:CONNECTIVITY 接続が有効ではなくなりました。破棄されますが、アプリケーションの設定で定義されている場合、再接続ポリシーを適用できます。 - JMS:CONSUMING WMQ からのメッセージのコンシューム中にエラーが発生しました。このエラーは保留中のメッセージが存在していないことに関連している場合もあります。 - JMS:DESTINATION\_NOT\_FOUND JMS Connector が宛先を発見または作成できません。 - JMS:RETRY\_EXHAUSTED 操作の最大再試行回数に達しました。 - JMS:SECURITY セキュリティ関連のエラーが原因でスローされた例外。 - JMS:TIMEOUT 要求された操作のタイムアウトを超えました。 - JMS:ILLEGAL\_BODY メッセージ本文が無効であり、サポートされる種別に変換できません。 - JMS:PUBLISHING 対象キューまたはトピックへのパブリッシュ中にエラーが発生しました。 ## [](#関連情報)関連情報 - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-connector-reference) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [Known Issues](https://help.salesforce.com/s/issues) # JMS Connector の例 JMS 用 Anypoint Connector (JMS Connector) を最大限活用するには、次のコネクタ操作の設定例を参照してください。 - [ActiveMQ 接続の設定](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-activemq-configuration) ActiveMQ に接続するように JMS Connector を設定します。 - [メッセージ肯定応答の管理](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-ack) 成功時の自動肯定応答、即時肯定応答、手動肯定応答など、さまざまな肯定応答設定を管理するように JMS Connector を設定します。 - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-listener) 新しいメッセージが宛先に到着したときにリスンするように ​**On New Message**​ ソースを設定します。 - [新規メッセージのパブリッシュ](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-publish) 新しいメッセージを作成して指定した宛先に送信するように ​**Publish**​ 操作を設定します。 - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-consume) フローの任意の時点で任意の宛先からのメッセージをコンシュームするように ​**Consume**​ 操作を設定します。 - [メッセージのパブリッシュと返信のリスン](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-publish-consume) メッセージを任意の宛先にパブリッシュし、別の宛先で応答を待機するように ​**Publish consume**​ 操作を設定します。 - [フロー内のメッセージのパブリッシュおよびコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-publish-consume-example) 2 つのフロー内でメッセージをパブリッシュおよびコンシュームするように ​**Publish consume**​ 操作を設定し、相関 ID を使用して受信メッセージが特定の送信メッセージへの返信であることを確認します。 - [トランザクションの管理](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-transactions) トランザクションがコミットされたときにのみ実行される一連の操作を実行するように JMS Connector を設定します。 - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-topic-subscription) コンシューマーの接続に関するサブスクリプションの動作と、コンシューマー間の相互動作を制御するように JMS Connector のトピックサブスクリプションを設定します。 - [XA トランザクションの設定](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-xa-transactions) **\[XA Connection Pool (XA 接続プール)\]**​ および ​**\[Transaction Type (トランザクション種別)\]**​ 項目を使用して XA トランザクションを設定します。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector の例 JMS 用 Anypoint Connector (JMS Connector) を最大限活用するには、次のコネクタ操作の設定例を参照してください。 - [ActiveMQ 接続の設定](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-activemq-configuration) ActiveMQ に接続するように JMS Connector を設定します。 - [メッセージ肯定応答の管理](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-ack) 成功時の自動肯定応答、即時肯定応答、手動肯定応答など、さまざまな肯定応答設定を管理するように JMS Connector を設定します。 - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-listener) 新しいメッセージが宛先に到着したときにリスンするように ​**On New Message**​ ソースを設定します。 - [新規メッセージのパブリッシュ](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-publish) 新しいメッセージを作成して指定した宛先に送信するように ​**Publish**​ 操作を設定します。 - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-consume) フローの任意の時点で任意の宛先からのメッセージをコンシュームするように ​**Consume**​ 操作を設定します。 - [メッセージのパブリッシュと返信のリスン](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-publish-consume) メッセージを任意の宛先にパブリッシュし、別の宛先で応答を待機するように ​**Publish consume**​ 操作を設定します。 - [フロー内のメッセージのパブリッシュおよびコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-publish-consume-example) 2 つのフロー内でメッセージをパブリッシュおよびコンシュームするように ​**Publish consume**​ 操作を設定し、相関 ID を使用して受信メッセージが特定の送信メッセージへの返信であることを確認します。 - [トランザクションの管理](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-transactions) トランザクションがコミットされたときにのみ実行される一連の操作を実行するように JMS Connector を設定します。 - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-topic-subscription) コンシューマーの接続に関するサブスクリプションの動作と、コンシューマー間の相互動作を制御するように JMS Connector のトピックサブスクリプションを設定します。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector の例 JMS 用 Anypoint Connector (JMS Connector) を最大限活用するには、次のコネクタ操作の設定例を参照してください。 - [ActiveMQ 接続の設定](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-activemq-configuration) ActiveMQ に接続するように JMS Connector を設定します。 - [メッセージ肯定応答の管理](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-ack) 成功時の自動肯定応答、即時肯定応答、手動肯定応答など、さまざまな肯定応答設定を管理するように JMS Connector を設定します。 - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-listener) 新しいメッセージが宛先に到着したときにリスンするように ​**On New Message**​ ソースを設定します。 - [新規メッセージのパブリッシュ](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-publish) 新しいメッセージを作成して指定した宛先に送信するように ​**Publish**​ 操作を設定します。 - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-consume) フローの任意の時点で任意の宛先からのメッセージをコンシュームするように ​**Consume**​ 操作を設定します。 - [メッセージのパブリッシュと返信のリスン](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-publish-consume) メッセージを任意の宛先にパブリッシュし、別の宛先で応答を待機するように ​**Publish consume**​ 操作を設定します。 - [フロー内のメッセージのパブリッシュおよびコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-publish-consume-example) 2 つのフロー内でメッセージをパブリッシュおよびコンシュームするように ​**Publish consume**​ 操作を設定し、相関 ID を使用して受信メッセージが特定の送信メッセージへの返信であることを確認します。 - [トランザクションの管理](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-transactions) トランザクションがコミットされたときにのみ実行される一連の操作を実行するように JMS Connector を設定します。 - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-topic-subscription) コンシューマーの接続に関するサブスクリプションの動作と、コンシューマー間の相互動作を制御するように JMS Connector のトピックサブスクリプションを設定します。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector の例 JMS 用 Anypoint Connector (JMS Connector) を最大限活用するには、次のコネクタ操作の設定例を参照してください。 - [ActiveMQ 接続の設定](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-activemq-configuration) ActiveMQ に接続するように JMS Connector を設定します。 - [メッセージ肯定応答の管理](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-ack) 成功時の自動肯定応答、即時肯定応答、手動肯定応答など、さまざまな肯定応答設定を管理するように JMS Connector を設定します。 - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-listener) 新しいメッセージが宛先に到着したときにリスンするように ​**On New Message**​ ソースを設定します。 - [新規メッセージのパブリッシュ](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-publish) 新しいメッセージを作成して指定した宛先に送信するように ​**Publish**​ 操作を設定します。 - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-consume) フローの任意の時点で任意の宛先からのメッセージをコンシュームするように ​**Consume**​ 操作を設定します。 - [メッセージのパブリッシュと返信のリスン](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-publish-consume) メッセージを任意の宛先にパブリッシュして別の宛先で応答を待機するように ​**Publish consume**​ 操作を設定します。 - [フロー内のメッセージのパブリッシュおよびコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-publish-consume-example) 2 つのフロー内でメッセージをパブリッシュおよびコンシュームするように ​**Publish consume**​ 操作を設定し、相関 ID を使用して受信メッセージが特定の送信メッセージへの返信であることを確認します。 - [トランザクションの管理](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-transactions) トランザクションがコミットされたときにのみ実行される一連の操作を実行するように JMS Connector を設定します。 - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-topic-subscription) コンシューマーの接続に関するサブスクリプションの動作と、コンシューマー間の相互動作を制御するように JMS Connector のトピックサブスクリプションを設定します。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector リファレンス 1.10 JMS 用 Anypoint Connector (JMS Connector) は JMS 1.0.2b、1.1、および 2.0 互換の MuleSoft 拡張機能であり、JMS メッセージをコンシュームおよび生成するために使用されます。この拡張機能では、トピックとキュー、永続的なサブスクライバー、肯定応答モード、ローカルトランザクションを含むすべての JMS 機能がサポートされます。 リリースノート: [JMS Connector リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/connector-jms) ## [](#設定)設定 * * * ### [](#config)デフォルト設定 JMS Connector の基本設定 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Encoding (エンコード)

String (文字列)

メッセージにエンコードが指定されていない場合に使用するメッセージ本文のデフォルトエンコード。

Content Type (コンテンツタイプ)

String (文字列)

メッセージにコンテンツタイプが指定されていない場合に使用するメッセージ本文のデフォルトの contentType。

/

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

メッセージのパブリッシュ時に correlationId を指定するかどうか。操作レベルで指定されるカスタム相関 ID と、現在のイベントから引用されるデフォルト相関 ID の両方に適用されます。

AUTO

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Mule Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。必要に応じて、インスタンスがパージされます。

Ack Mode (肯定応答モード)

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • AUTO

  • MANUAL

  • DUPS_OK

メッセージをコンシュームするときに使用する ConsumerAckMode。メッセージソースレベルで上書きできます。transactionType が LOCAL (ローカル) または MULTI (マルチ) の場合、この属性は IMMEDIATE (即時) である必要があります。

AUTO

Consumer Type (コンシューマー種別)

次のいずれかになります。

メッセージをコンシュームするときにデフォルトで使用する ConsumerType。メッセージソースレベルで上書きできます。

Selector (セレクター)

String (文字列)

メッセージをコンシュームするときに絞り込みに使用するデフォルトのセレクター。メッセージソースレベルで上書きできます。

Max Redelivery (最大再配信数)

Number (数値)

このパラメーターはここで設定しないでください (効果がないため)。[ActiveMQConnectionFactoryConfiguration]を参照してください。

0

Persistent Delivery (永続的な配信)

Boolean (ブール)

Message#getJMSDeliveryMode のデフォルト値を設定します。true の場合、DeliveryMode#PERSISTENT モードが使用されます。これにより、JMS プロバイダーで障害が発生してもメッセージが送信中に失われないように格別の注意を払うことが JMS プロバイダーに指示されます。

false

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの Message#getJMSPriority を定義します。

4

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

0

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#timeToLive 属性に使用できる時間単位。 デフォルトは MILLISECONDS (ミリ秒) です。

MILLISECONDS

Disable Message Id (メッセージ ID の無効化)

Boolean (ブール)

ブローカーでの Message#getJMSMessageID 生成を無効にするために、メッセージを生成するときに使用するデフォルト値を定義します。プロバイダーによっては、効果がある場合とない場合があります。

false

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

ブローカーでの Message#getJMSTimestamp 生成を無効にするために、メッセージを生成するときに使用するデフォルト値を定義します。プロバイダーによっては、効果がある場合とない場合があります。

false

Delivery Delay (配信遅延)

Number (数値)

これは、送信方法で指定された deliveryDelay 値をメッセージが送信された時間に追加することで計算されるメッセージ配信遅延時間を決定するために使用されます。 JmsSpecification#​JMS_2_0​ でのみ使用されます。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#deliveryDelay 属性に使用できる時間単位。 デフォルトは MILLISECONDS (ミリ秒) です。

MILLISECONDS

Jms Type (JMS 種別)

String (文字列)

メッセージが送信されるときにクライアントによって指定されるメッセージの JMSType 識別子。

## [](#操作)操作 - [Ack](#ack) - [Consume](#consume) - [Publish](#publish) - [Publish Consume](#publishConsume) - [Recover Session](#recoverSession) ### [](#関連付けられたソース)関連付けられたソース - [On New Message](#listener) ### [](#consume)Consume `` 特定の宛先から単一のメッセージをコンシュームするための操作です。 #### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージをコンシュームする宛先の名前。

x

Consumer Type (コンシューマー種別)

次のいずれかになります。

特定の宛先に必要な MessageConsumer の種別と、宛先種別に基づいて必要となるその他の設定。

Ack Mode (肯定応答モード)

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • MANUAL

メッセージとセッションで設定する ConsumerAckMode。

Selector (セレクター)

String (文字列)

メッセージの絞り込みに使用するカスタム JMS セレクター。

Content Type (コンテンツタイプ)

String (文字列)

メッセージのコンテンツタイプ。

Encoding (エンコード)

String (文字列)

メッセージのコンテンツのエンコード。

Maximum Wait (最大待機)

Number (数値)

タイムアウトとなる前にメッセージを待つ最大時間。

10000

Maximum Wait Unit (最大待機単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maximumWaitTime 設定で使用する時間単位。

MILLISECONDS

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

トランザクションに関する操作で実行できる結合アクションの種別。

JOIN_IF_POSSIBLE

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力)出力

Type (型)

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー)スロー - JMS:RETRY\_EXHAUSTED - JMS:ACK - JMS:DESTINATION\_NOT\_FOUND - JMS:SECURITY - JMS:TIMEOUT - JMS:CONNECTIVITY - JMS:CONSUMING ### [](#publish)Publish `` ユーザーが JMS 宛先にメッセージを送信できるようにする操作。 #### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージの送信先となる宛先の名前。

x

Destination Type (宛先種別)

Enumeration (列挙)。次のいずれかになります。

  • QUEUE

  • TOPIC

宛先の DestinationType。

QUEUE

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

操作のトランザクションアクション。パブリッシュをトランザクションとして実行するかどうかを指定します。

JOIN_IF_POSSIBLE

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション。

Body (本文)

Any (任意)

メッセージの本文。

#[payload]

JMS Type (JMS 種別)

String (文字列)

メッセージの JMSType ヘッダー。

Correlation ID (相関 ID)

String (文字列)

メッセージの JMSCorrelationID ヘッダー。

Send Content-Type (コンテンツタイプの送信)

Boolean (ブール)

本文種別がメッセージプロパティとして送信される場合は true。

true

Content-Type

String (文字列)

本文のコンテンツタイプ。

Send Encoding (エンコードの送信)

Boolean (ブール)

本文の outboundEncoding がメッセージプロパティとして送信される場合は true。

true

Encoding (エンコード)

String (文字列)

メッセージの本文の outboundEncoding。

Reply To (応答先)

このメッセージの応答先の JMSReplyTo ヘッダー情報。

User Properties (ユーザープロパティ)

Object (オブジェクト)

このメッセージに設定されるカスタムユーザープロパティ。

JMSX Properties (JMSX プロパティ)

このメッセージに設定される JMSX プロパティ。

Persistent Delivery (永続的な配信)

Boolean (ブール)

true の場合、メッセージは PERSISTENT JMSDeliveryMode を使用して送信されます。

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの JMSPriority 値。

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

timeToLive 設定で使用する時間単位。

Disable Message Id (メッセージ ID の無効化)

Boolean (ブール)

true の場合、MessageID を生成しないようにメッセージにフラグが付けられます。

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

true の場合、送信タイムスタンプを生成しないようにメッセージにフラグが付けられます。

Delivery Delay (配信遅延)

Number (数値)

JMS 2.0 でのみ使用。メッセージの配信を遅らせるための配信遅延時間。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

deliveryDelay 設定で使用する時間単位。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

### [](#次の設定の場合-2)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-2)スロー - JMS:RETRY\_EXHAUSTED - JMS:ILLEGAL\_BODY - JMS:PUBLISHING - JMS:DESTINATION\_NOT\_FOUND - JMS:SECURITY - JMS:CONNECTIVITY ### [](#publishConsume)Publish Consume `` ユーザーが JMS 宛先にメッセージを送信し、指定された ReplyTo 宛先または動的に作成される一時的な宛先への応答を待機できるようにする操作。 #### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージの送信先となる宛先の名前。

x

Request-Reply Pattern (要求-応答パターン)

Enumeration (列挙)。次のいずれかになります。

  • CORRELATION_ID​

  • MESSAGE_ID​

  • NONE (なし)

CORRELATION_ID

Send Correlation ID (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション。

Body (本文)

Any (任意)

メッセージの本文。

#[payload]

JMS Type (JMS 種別)

String (文字列)

メッセージの JMSType ヘッダー。

Correlation ID (相関 ID)

String (文字列)

メッセージの JMSCorrelationID ヘッダー。

Send Content-Type (コンテンツタイプの送信)

Boolean (ブール)

本文種別がメッセージプロパティとして送信される場合は true。

true

Content-Type

String (文字列)

本文のコンテンツタイプ。

Send Encoding (エンコードの送信)

Boolean (ブール)

本文の outboundEncoding がメッセージプロパティとして送信される場合は true。

true

Encoding (エンコード)

String (文字列)

メッセージの本文の outboundEncoding。

Reply To (応答先)

このメッセージの応答先の JMSReplyTo ヘッダー情報。

User Properties (ユーザープロパティ)

Object (オブジェクト)

このメッセージに設定されるカスタムユーザープロパティ。

JMSX Properties (JMSX プロパティ)

このメッセージに設定される JMSX プロパティ。

Persistent Delivery (永続的な配信)

Boolean (ブール)

true の場合、メッセージは PERSISTENT JMSDeliveryMode を使用して送信されます。

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの JMSPriority 値。

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

timeToLive 設定で使用する時間単位。

Disable Message Id (メッセージ ID の無効化)

Boolean (ブール)

true の場合、MessageID を生成しないようにメッセージにフラグが付けられます。

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

true の場合、送信タイムスタンプを生成しないようにメッセージにフラグが付けられます。

Delivery Delay (配信遅延)

Number (数値)

JMS 2.0 でのみ使用。メッセージの配信を遅らせるための配信遅延時間。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

deliveryDelay 設定で使用する時間単位。

Ack Mode (肯定応答モード)

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • MANUAL

メッセージをコンシュームするときに使用するセッション肯定応答モード。

Maximum Wait (最大待機)

Number (数値)

タイムアウトとなる前にメッセージの到着を待つ最大時間。

10000

Maximum Wait Unit (最大待機単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maximumWaitTime 設定で使用する時間単位。

MILLISECONDS

Content Type (コンテンツタイプ)

String (文字列)

コンシュームするメッセージ本文のコンテンツタイプ。

Encoding (エンコード)

String (文字列)

コンシュームするメッセージ本文のエンコード。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-2)出力

Type (型)

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合-3)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-3)スロー - JMS:RETRY\_EXHAUSTED - JMS:ILLEGAL\_BODY - JMS:ACK - JMS:PUBLISHING - JMS:DESTINATION\_NOT\_FOUND - JMS:SECURITY - JMS:TIMEOUT - JMS:CONNECTIVITY - JMS:CONSUMING ### [](#ack)Ack `` メッセージのコンシューム中に AckMode#MANUAL モードが選択された場合にユーザーが肯定応答を実行できるようにします。JMS 仕様に従い、単一のメッセージに対する肯定応答は自動的に同じ JmsSession で生成されるすべてのメッセージの肯定応答として機能します。 #### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Ack Id

String (文字列)

肯定応答するメッセージの AckId。

x

#### [](#スロー-4)スロー - JMS:ACK ### [](#recoverSession)Recover Session `` メッセージのコンシューム中に AckMode#MANUAL モードが選択された場合にユーザーがセッション回復を実行できるようにします。JMS 仕様の定義により、セッションリカバリーを実行すると、そのリカバリー以前にコンシュームされていて肯定応答されていなかったすべてのメッセージが再配信されます。 #### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Ack Id

String (文字列)

リカバリーするメッセージセッションの AckId。

x

#### [](#スロー-5)スロー - JMS:SESSION\_RECOVER ## [](#ソース)ソース ### [](#listener)On New Message `` 宛先の JMS サブスクライバー。受信メッセージをリスンできるようにします。 #### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージをコンシュームする宛先の名前。

x

Consumer Type (コンシューマー種別)

次のいずれかになります。

指定された宛先で使用するコンシューマーの種別。

肯定応答モード

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • AUTO

  • MANUAL

  • DUPS_OK

メッセージをコンシュームするときに使用するセッション肯定応答モード。

Selector (セレクター)

String (文字列)

受信メッセージの絞り込みに使用する JMS セレクター。

Inbound Content-Type (受信のコンテンツタイプ)

String (文字列)

メッセージ本文のコンテンツタイプ。

Inbound Encoding (インバウンドエンコード)

String (文字列)

メッセージ本文の inboundEncoding。

Number Of Consumers (コンシューマーの数)

Number (数値)

JMS メッセージを受信するために使用する同時コンシューマー数。

4

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_BEGIN​

  • NONE (なし)

ソースがトランザクションに関して実行できる開始アクションの種別。

NONE (なし)

Transaction Type (トランザクション種別)

Enumeration (列挙)。次のいずれかになります。

  • LOCAL

  • XA

作成するトランザクションの種別。使用できるかどうかは、Mule バージョンによって決まります。

LOCAL

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時、このソースをプライマリノード上でのみ実行する必要があるかどうか。

true

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

Ignore JMS replyTo header (JMS replyTo ヘッダーを無視)

Boolean (ブール)

宛先ヘッダーが含まれるメッセージの自動応答が必要ない場合は True

false

Body (本文)

Any (任意)

メッセージの本文。

#[payload]

JMS Type (JMS 種別)

String (文字列)

メッセージの JMSType ヘッダー。

Correlation ID (相関 ID)

String (文字列)

メッセージの JMSCorrelationID ヘッダー。

Send Content-Type (コンテンツタイプの送信)

Boolean (ブール)

本文種別がメッセージプロパティとして送信される場合は true。

true

Content-Type

String (文字列)

本文のコンテンツタイプ。

Send Encoding (エンコードの送信)

Boolean (ブール)

本文の outboundEncoding がメッセージプロパティとして送信される場合は true。

true

Encoding (エンコード)

String (文字列)

メッセージの本文の outboundEncoding。

Reply To (応答先)

このメッセージの応答先の JMSReplyTo ヘッダー情報。

User Properties (ユーザープロパティ)

Object (オブジェクト)

このメッセージに設定されるカスタムユーザープロパティ。

JMSX Properties (JMSX プロパティ)

このメッセージに設定される JMSX プロパティ。

Persistent Delivery (永続的な配信)

Boolean (ブール)

配信を永続的な設定で行うかどうか。

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの JMSPriority 値。

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

timeToLive 設定で使用する時間単位。

Disable Message ID (メッセージ ID の無効化)

Boolean (ブール)

true の場合、MessageID を生成しないようにメッセージにフラグが付けられます。

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

true の場合、送信タイムスタンプを生成しないようにメッセージにフラグが付けられます。

Delivery Delay (配信遅延)

Number (数値)

JMS 2.0 でのみ使用。メッセージの配信を遅らせるための配信遅延時間。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

deliveryDelay 設定で使用する時間単位。

Send Correlation ID (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション

Request Reply Pattern (要求応答パターン)

Enumeration (列挙)。次のいずれかになります。

  • CORRELATION_ID​

  • MESSAGE_ID​

  • NONE (なし)

使用する要求応答パターンを示します。デフォルトでは、受信メッセージの相関 ID を使用して、Reply-To を実行します。メッセージ ID パターンを設定する場合、受信メッセージのメッセージ ID を使用して ReplyTo が実行されます。[NONE (なし)] が選択されている場合、相関 ID は自動的に設定されません。

CORRELATION_ID

#### [](#出力-3)出力

Type (型)

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合-4)次の設定の場合 - [デフォルト設定](#config) ## [](#型)型 ### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maxIdleTime 属性の時間単位

### [](#JMSAttributes)JMS 属性
項目 型 説明 デフォルト値 必須

Properties (プロパティ)

JMS メッセージ内に存在するすべてのプロパティのコンテナ要素。

Headers (ヘッダー)

Any (任意)

JMS メッセージのすべての可能なヘッダー。

x

Ack Id

String (文字列)

現在のメッセージを肯定応答するために必要なセッション肯定応答 ID (ある場合)。ない場合は null。

### [](#JMSMessageProperties)JMS メッセージのプロパティ
項目 型 説明 デフォルト値 必須

すべて

Any (任意)

フラット化されたマップとしての JMS メッセージのすべてのプロパティ。

x

User Properties (ユーザープロパティ)

Any (任意)

JMS メッセージのユーザーが指定したプロパティ。

x

Jms Properties (JMS プロパティ)

Any (任意)

JMS メッセージブローカーおよびプロバイダープロパティ。

x

Jmsx Properties (JMSX プロパティ)

JMS メッセージの JMSX プロパティ。

### [](#JMSXProperties)JMSX Properties (JMSX プロパティ)
項目 型 説明 デフォルト値 必須

Jmsx User ID (JMSX ユーザー ID)

String (文字列)

メッセージを送信するユーザーの ID。

Jmsx App ID (JMSX アプリケーション ID)

String (文字列)

メッセージを送信するアプリケーションの ID。

Jmsx Delivery Count (JMSX 配信数)

Number (数値)

メッセージ配信の試行回数。

Jmsx Group ID (JMSX グループ ID)

String (文字列)

メッセージのメッセージグループの ID。

Jmsx Group Seq (JMSX グループシーケンス)

Number (数値)

グループ内のメッセージの連番。

Jmsx Producer TXID (JMSX プロデューサー TXID)

String (文字列)

メッセージを生成したトランザクションの ID。

Jmsx Consumer TXID (JMSX コンシューマー TXID)

String (文字列)

メッセージをコンシュームしたトランザクションの ID。

Jmsx Rcv Timestamp (JMSX 受信タイムスタンプ)

Number (数値)

JMS がコンシューマーにメッセージを配信した時間。

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery (最大再配信数)

Number (数値)

このパラメーターはここで設定しないでください (効果がないため)。[ActiveMQConnectionFactoryConfiguration]を参照してください。

0

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。設定しない場合、デフォルトの SHA-256 になります。

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、useSecureHash が false の場合にのみ設定できます。

Object Store (オブジェクトストア)

Object Store (オブジェクトストア)

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#JmsDestination)JMS Destination (JMS 宛先)
項目 型 説明 デフォルト値 必須

Destination (宛先)

String (文字列)

メッセージへの応答の送信先となる宛先の名前。

x

Destination Type (宛先種別)

Enumeration (列挙)。次のいずれかになります。

  • QUEUE

  • TOPIC

この宛先の種別。

QUEUE

### [](#JmsxProperties)JMSX Properties (JMSX プロパティ)
項目 型 説明 デフォルト値 必須

Jmsx User ID (JMSX ユーザー ID)

String (文字列)

メッセージを送信するユーザーの ID。

Jmsx App ID (JMSX アプリケーション ID)

String (文字列)

メッセージを送信するアプリケーションの ID。

Jmsx Delivery Count (JMSX 配信数)

Number (数値)

メッセージ配信の試行回数。

Jmsx Group ID (JMSX グループ ID)

String (文字列)

メッセージのメッセージグループの ID。

Jmsx Group Seq (JMSX グループシーケンス)

Number (数値)

グループ内のメッセージの連番。

Jmsx Producer TXID (JMSX プロデューサー TXID)

String (文字列)

メッセージを生成したトランザクションの ID。

Jmsx Consumer TXID (JMSX コンシューマー TXID)

String (文字列)

メッセージをコンシュームしたトランザクションの ID。

Jmsx Rcv Timestamp (JMSX 受信タイムスタンプ)

Number (数値)

JMS がコンシューマーにメッセージを配信した時間。

### [](#Tls)TLS
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。

Trust Store (トラストストア)

Key Store (キーストア)

Revocation Check (取り消し確認)

### [](#TrustStore)トラストストア
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true の場合、証明書の検証が実行されず、攻撃に対して接続が脆弱になります。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

キーストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーがある場合、この属性は、使用する鍵の別名を示します。定義しない場合、デフォルトでファイル内の最初の鍵が使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#standard-revocation-check)Standard Revocation Check (標準の取り消し確認)
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に OCSP ではなく CRL を試みます。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法 (以前に選択されていない方法) を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#custom-ocsp-responder)Custom OCSP Responder (カスタム OCSP レスポンダー)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#crl-file)CRL File (CRL ファイル)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#ActiveMQConnectionFactoryConfiguration)Active MQ 接続ファクトリー設定
項目 型 説明 デフォルト値 必須

Broker Url (ブローカー URL)

String (文字列)

接続するブローカーのアドレス。

vm://localhost?broker.persistent=false&broker.useJmx=false

Enable Xa (Xa の有効化)

Boolean (ブール)

ConnectionFactory は XA をサポートする必要があります。

false

Initial Redelivery Delay (初期再配信遅延)

Number (数値)

RedeliveryPolicy#getInitialRedeliveryDelay() の設定に使用します。この機能は、XA コンテキストでは使用できません。

1000

Redelivery Delay (再配信遅延)

Number (数値)

RedeliveryPolicy#getRedeliveryDelay() の設定に使用します。この機能は、XA コンテキストでは使用できません。

1000

Max Redelivery (最大再配信数)

Number (数値)

RedeliveryPolicy#getMaximumRedeliveries() の設定に使用します。メッセージがデッドレターキューに送信される前に再配信される最大回数を設定します。 配信なしは 0 で表され、-1 は無限に再配信を受け入れることを意味します。

0

信頼されるパッケージ

Array of String (文字列の配列)

送信および受信することが許可されたクラスのパッケージ。バージョン 5.12.2 および 5.13.0 以降、ActiveMQ では、ObjectMessages を使用してエクスチェンジできるパッケージを明示的に許可する必要があります。

すべてのパッケージを信頼

Boolean (ブール)

すべてのパッケージのクラスを送受信できるかどうかを示します。このパラメーターを有効にすると、悪意のあるペイロードがホストシステムを不正に使用する可能性があるため、安全ではなくなります。バージョン 5.12.2 および 5.13.0 以降、ActiveMQ では、ObjectMessages を使用してエクスチェンジできるパッケージを明示的に許可する必要があります。

false

### [](#topic-consumer)Topic Consumer (トピックコンシューマー)
項目 型 説明 デフォルト値 必須

Durable (永続的)

Boolean (ブール)

クライアントが接続されていない場合にメッセージがキャッシュされるかどうかを示します。

false

Shared (共有)

Boolean (ブール)

サブスクリプションがコンシューマー間で共有されるかどうかを示します。

false

No Local (非ローカル)

Boolean (ブール)

独自の接続によって公開されるメッセージの配信を抑制します。

false

Subscription Name (サブスクリプション名)

String (文字列)

サブスクリプションの名前。

### [](#default-caching)Default Caching (デフォルトキャッシュ)
項目 型 説明 デフォルト値 必須

Session Cache Size (セッションキャッシュサイズ)

Number (数値)

セッションキャッシュのサイズ。

Cache Producers (キャッシュプロデューサー)

Boolean (ブール)

プロデューサーをキャッシュするかどうかを示します。

true

Cache Consumers (キャッシュコンシューマー)

Boolean (ブール)

コンシューマーをキャッシュするかどうかを示します。

true

### [](#JndiConnectionFactory)JNDI Connection Factory (JNDI 接続ファクトリー)
項目 型 説明 デフォルト値 必須

Connection Factory Jndi Name (接続ファクトリー JNDI 名)

String (文字列)

JNDI を使用して検出する ConnectionFactory の名前であり、ConnectionFactory の代理として使用されます。

x

Lookup Destination (ルックアップ宛先)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • ALWAYS

  • TRY_ALWAYS

宛先。

NEVER

Name Resolver Provider (名前解決機能プロバイダー)

JndiNameResolver のプロバイダー。

x

### [](#JndiNameResolverProvider)JNDI Name Resolver Provider (JNDI 名前解決機能プロバイダー)
項目 型 説明 デフォルト値 必須

Custom JNDI Name Resolver (カスタム JNDI 名前解決機能)

カスタム JndiNameResolver 実装への参照。

Name Resolver Builder (名前解決機能ビルダー)

SimpleJndiNameResolver をビルドするために必要なプロパティ。

### [](#JndiNameResolverProperties)JNDI Name Resolver Properties (JNDI 名前解決機能プロパティ)
項目 型 説明 デフォルト値 必須

Jndi Initial Context Factory (JNDI 初期コンテキストファクトリー)

String (文字列)

初期コンテキストを作成するファクトリークラスの完全修飾名。

x

Jndi Provider Url (JNDI プロバイダー URL)

String (文字列)

JNDI サービスプロバイダー URL。

Provider Properties (プロバイダープロパティ)

Object (オブジェクト)

JNDI 名前解決機能コンテキストに渡すプロパティ。

### [](#SimpleJndiNameResolver)Simple JNDI Name Resolver (シンプル JNDI 名前解決機能)
項目 型 説明 デフォルト値 必須

Context Factory (コンテキストファクトリー)

Object (オブジェクト)

初期コンテキストを作成するファクトリークラスの完全修飾名。

Jndi Initial Factory (JNDI 初期ファクトリー)

String (文字列)

使用する初期コンテキストファクトリーを指定するための環境プロパティの名前。

Jndi Provider Properties (JNDI プロバイダープロパティ)

Object (オブジェクト)

JNDI 名前解決機能コンテキストに渡すプロパティ。

Jndi Provider Url (JNDI プロバイダー URL)

String (文字列)

JNDI プロバイダーの URL。

### [](#CachedJndiNameResolver)Cached JNDI Name Resolver (キャッシュされた JNDI 名前解決機能)
項目 型 説明 デフォルト値 必須

Context Factory (コンテキストファクトリー)

Object (オブジェクト)

初期コンテキストを作成するファクトリークラスの完全修飾クラス名。

Jndi Initial Factory (JNDI 初期ファクトリー)

String (文字列)

使用する初期コンテキストファクトリーを指定するための環境プロパティの名前。

Jndi Provider Properties (JNDI プロバイダープロパティ)

Object (オブジェクト)

JNDI 名前解決機能コンテキストに渡すプロパティ。

Jndi Provider Url (JNDI プロバイダー URL)

String (文字列)

JNDI プロバイダーの URL。

### [](#システムプロパティ)システムプロパティ コネクタの以下のシステムプロパティを設定できます。
プロパティ 説明

mule.jms.generic.additionalCertificateFileName

追加する SSL 証明書が含まれる JKS ファイルの名前。

mule.jms.generic.additionalCertificatePassword

mule.jms.generic.additionalCertificatePassword​ プロパティに設定するトラストストアパスワード。

mule.jms.operation.artemis.dispose.delay

アンデプロイフェーズ中の遅延を設定して、スレッドリークを回避し、Artemis が JMS ブローカーを使用して開いたチャネルを閉じる時間を確保します。このプロパティは、Artemis が、選択された JMS ドライバーである場合に設定します。

これらのシステムプロパティを設定するときに、​**\[Caching strategy (キャッシュ戦略)\]**​ 項目を ​**\[Default caching (Default) (デフォルトキャッシュ (デフォルト))\]**​ ではなく、この項目を ​**\[No caching (キャッシュしない)\]**​ に設定してください。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector リファレンス 1.7 JMS Connector バージョン 1.7 JMS 用 Anypoint Connector (JMS Connector) は JMS 1.0.2b、1.1、および 2.0 互換の MuleSoft 拡張機能であり、JMS メッセージをコンシュームおよび生成するために使用されます。この拡張機能では、トピックとキュー、永続的なサブスクライバー、肯定応答モード、ローカルトランザクションを含むすべての JMS 機能がサポートされます。 リリースノート: [JMS Connector リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/connector-jms) ## [](#設定)設定 * * * ### [](#config)デフォルト設定 JMS Connector の基本設定 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Encoding (エンコード)

String (文字列)

メッセージにエンコードが指定されていない場合に使用するメッセージ本文のデフォルトエンコード。

Content Type (コンテンツタイプ)

String (文字列)

メッセージにコンテンツタイプが指定されていない場合に使用するメッセージ本文のデフォルトの contentType。

/

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

メッセージのパブリッシュ時に correlationId を指定するかどうか。操作レベルで指定されるカスタム相関 ID と、現在のイベントから引用されるデフォルト相関 ID の両方に適用されます。

AUTO

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Mule Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。必要に応じて、インスタンスがパージされます。

Ack Mode (肯定応答モード)

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • AUTO

  • MANUAL

  • DUPS_OK

メッセージをコンシュームするときに使用する ConsumerAckMode。メッセージソースレベルで上書きできます。transactionType が LOCAL (ローカル) または MULTI (マルチ) の場合、この属性は IMMEDIATE (即時) である必要があります。

AUTO

Consumer Type (コンシューマー種別)

次のいずれかになります。

メッセージをコンシュームするときにデフォルトで使用する ConsumerType。メッセージソースレベルで上書きできます。

Selector (セレクター)

String (文字列)

メッセージをコンシュームするときに絞り込みに使用するデフォルトのセレクター。メッセージソースレベルで上書きできます。

Max Redelivery (最大再配信数)

Number (数値)

NOTE:​ このパラメーターはコネクタで設定しないでください (効果がないため)。これは、ブローカー側で設定する必要があります。

メッセージを破棄するまでの再配信数を設定するために使用します。配信なしは 0 で表され、-1 は無限に再配信を受け入れることを意味します。

0

Persistent Delivery (永続的な配信)

Boolean (ブール)

Message#getJMSDeliveryMode のデフォルト値を設定します。true の場合、DeliveryMode#PERSISTENT モードが使用されます。これにより、JMS プロバイダーで障害が発生してもメッセージが送信中に失われないように格別の注意を払うことが JMS プロバイダーに指示されます。

false

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの Message#getJMSPriority を定義します。

4

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

0

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#timeToLive 属性に使用できる時間単位。 デフォルトは MILLISECONDS (ミリ秒) です。

MILLISECONDS

Disable Message Id (メッセージ ID の無効化)

Boolean (ブール)

ブローカーでの Message#getJMSMessageID 生成を無効にするために、メッセージを生成するときに使用するデフォルト値を定義します。プロバイダーによっては、効果がある場合とない場合があります。

false

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

ブローカーでの Message#getJMSTimestamp 生成を無効にするために、メッセージを生成するときに使用するデフォルト値を定義します。プロバイダーによっては、効果がある場合とない場合があります。

false

Delivery Delay (配信遅延)

Number (数値)

これは、送信方法で指定された deliveryDelay 値をメッセージが送信された時間に追加することで計算されるメッセージ配信遅延時間を決定するために使用されます。 JmsSpecification#​JMS_2_0​ でのみ使用されます。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#deliveryDelay 属性に使用できる時間単位。 デフォルトは MILLISECONDS (ミリ秒) です。

MILLISECONDS

Jms Type (JMS 種別)

String (文字列)

メッセージが送信されるときにクライアントによって指定されるメッセージの JMSType 識別子。

## [](#操作)操作 - [Ack](#ack) - [Consume](#consume) - [Publish](#publish) - [Publish Consume](#publishConsume) - [Recover Session](#recoverSession) ### [](#関連付けられたソース)関連付けられたソース - [On New Message](#listener) ### [](#consume)Consume `` 特定の宛先から単一のメッセージをコンシュームするための操作です。 #### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージをコンシュームする宛先の名前。

x

Consumer Type (コンシューマー種別)

次のいずれかになります。

特定の宛先に必要な MessageConsumer の種別と、宛先種別に基づいて必要となるその他の設定。

Ack Mode (肯定応答モード)

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • MANUAL

メッセージとセッションで設定する ConsumerAckMode。

Selector (セレクター)

String (文字列)

メッセージの絞り込みに使用するカスタム JMS セレクター。

Content Type (コンテンツタイプ)

String (文字列)

メッセージのコンテンツのコンテンツタイプ。

Encoding (エンコード)

String (文字列)

メッセージのコンテンツのエンコード。

Maximum Wait (最大待機)

Number (数値)

タイムアウトとなる前にメッセージを待つ最大時間。

10000

Maximum Wait Unit (最大待機単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maximumWaitTime 設定で使用する時間単位。

MILLISECONDS

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

トランザクションに関する操作で実行できる結合アクションの種別。

JOIN_IF_POSSIBLE

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力)出力

型

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー)スロー - JMS:RETRY\_EXHAUSTED - JMS:ACK - JMS:DESTINATION\_NOT\_FOUND - JMS:SECURITY - JMS:TIMEOUT - JMS:CONNECTIVITY - JMS:CONSUMING ### [](#publish)Publish `` ユーザーが JMS 宛先にメッセージを送信できるようにする操作。 #### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージの送信先となる宛先の名前。

x

Destination Type (宛先種別)

Enumeration (列挙)。次のいずれかになります。

  • QUEUE

  • TOPIC

宛先の DestinationType。

QUEUE

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

操作のトランザクションアクション。パブリッシュをトランザクションとして実行するかどうかを指定します。

JOIN_IF_POSSIBLE

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション。

Body (本文)

Any (任意)

メッセージの本文。

#[payload]

JMS Type (JMS 種別)

String (文字列)

メッセージの JMSType ヘッダー。

Correlation ID (相関 ID)

String (文字列)

メッセージの JMSCorrelationID ヘッダー。

Send Content-Type (コンテンツタイプの送信)

Boolean (ブール)

本文種別がメッセージプロパティとして送信される場合は true。

true

Content-Type

String (文字列)

本文のコンテンツタイプ。

Send Encoding (エンコードの送信)

Boolean (ブール)

本文の outboundEncoding がメッセージプロパティとして送信される場合は true。

true

Encoding (エンコード)

String (文字列)

メッセージの本文の outboundEncoding。

Reply To (応答先)

このメッセージの応答先の JMSReplyTo ヘッダー情報。

User Properties (ユーザープロパティ)

Object (オブジェクト)

このメッセージに設定されるカスタムユーザープロパティ。

JMSX Properties (JMSX プロパティ)

このメッセージに設定される JMSX プロパティ。

Persistent Delivery (永続的な配信)

Boolean (ブール)

true の場合、メッセージは PERSISTENT JMSDeliveryMode を使用して送信されます。

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの JMSPriority 値。

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

timeToLive 設定で使用する時間単位。

Disable Message Id (メッセージ ID の無効化)

Boolean (ブール)

true の場合、MessageID を生成しないようにメッセージにフラグが付けられます。

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

true の場合、送信タイムスタンプを生成しないようにメッセージにフラグが付けられます。

Delivery Delay (配信遅延)

Number (数値)

JMS 2.0 でのみ使用。メッセージの配信を遅らせるための配信遅延時間。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

deliveryDelay 設定で使用する時間単位。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

### [](#次の設定の場合-2)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-2)スロー - JMS:RETRY\_EXHAUSTED - JMS:ILLEGAL\_BODY - JMS:PUBLISHING - JMS:DESTINATION\_NOT\_FOUND - JMS:SECURITY - JMS:CONNECTIVITY ### [](#publishConsume)Publish Consume `` ユーザーが JMS 宛先にメッセージを送信し、指定された ReplyTo 宛先または動的に作成される一時的な宛先への応答を待機できるようにする操作。 #### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージの送信先となる宛先の名前。

x

Request-Reply Pattern (要求-応答パターン)

Enumeration (列挙)。次のいずれかになります。

  • CORRELATION_ID​

  • MESSAGE_ID​

  • None (なし)

CORRELATION_ID

Send Correlation ID (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション。

Body (本文)

Any (任意)

メッセージの本文。

#[payload]

JMS Type (JMS 種別)

String (文字列)

メッセージの JMSType ヘッダー。

Correlation ID (相関 ID)

String (文字列)

メッセージの JMSCorrelationID ヘッダー。

Send Content-Type (コンテンツタイプの送信)

Boolean (ブール)

本文種別がメッセージプロパティとして送信される場合は true。

true

Content-Type

String (文字列)

本文のコンテンツタイプ。

Send Encoding (エンコードの送信)

Boolean (ブール)

本文の outboundEncoding がメッセージプロパティとして送信される場合は true。

true

Encoding (エンコード)

String (文字列)

メッセージの本文の outboundEncoding。

Reply To (応答先)

このメッセージの応答先の JMSReplyTo ヘッダー情報。

User Properties (ユーザープロパティ)

Object (オブジェクト)

このメッセージに設定されるカスタムユーザープロパティ。

JMSX Properties (JMSX プロパティ)

このメッセージに設定される JMSX プロパティ。

Persistent Delivery (永続的な配信)

Boolean (ブール)

true の場合、メッセージは PERSISTENT JMSDeliveryMode を使用して送信されます。

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの JMSPriority 値。

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

timeToLive 設定で使用する時間単位。

Disable Message Id (メッセージ ID の無効化)

Boolean (ブール)

true の場合、MessageID を生成しないようにメッセージにフラグが付けられます。

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

true の場合、送信タイムスタンプを生成しないようにメッセージにフラグが付けられます。

Delivery Delay (配信遅延)

Number (数値)

JMS 2.0 でのみ使用。メッセージの配信を遅らせるための配信遅延時間。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

deliveryDelay 設定で使用する時間単位。

Ack Mode (肯定応答モード)

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • MANUAL

メッセージをコンシュームするときに使用するセッション肯定応答モード。

Maximum Wait (最大待機)

Number (数値)

タイムアウトとなる前にメッセージの到着を待つ最大時間。

10000

Maximum Wait Unit (最大待機単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maximumWaitTime 設定で使用する時間単位。

MILLISECONDS

Content Type (コンテンツタイプ)

String (文字列)

コンシュームするメッセージ本文のコンテンツタイプ。

Encoding (エンコード)

String (文字列)

コンシュームするメッセージ本文のエンコード。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-2)出力

型

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合-3)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-3)スロー - JMS:RETRY\_EXHAUSTED - JMS:ILLEGAL\_BODY - JMS:ACK - JMS:PUBLISHING - JMS:DESTINATION\_NOT\_FOUND - JMS:SECURITY - JMS:TIMEOUT - JMS:CONNECTIVITY - JMS:CONSUMING ### [](#ack)Ack `` メッセージのコンシューム中に AckMode#MANUAL モードが選択された場合にユーザーが肯定応答を実行できるようにします。JMS 仕様に従い、単一のメッセージに対する肯定応答は自動的に同じ JmsSession で生成されるすべてのメッセージの肯定応答として機能します。 #### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Ack Id

String (文字列)

肯定応答するメッセージの AckId。

x

#### [](#スロー-4)スロー - JMS:ACK ### [](#recoverSession)Recover Session `` メッセージのコンシューム中に AckMode#MANUAL モードが選択された場合にユーザーがセッション回復を実行できるようにします。JMS 仕様の定義により、セッションリカバリーを実行すると、そのリカバリー以前にコンシュームされていて肯定応答されていなかったすべてのメッセージが再配信されます。 #### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Ack Id

String (文字列)

リカバリーするメッセージセッションの AckId。

x

#### [](#スロー-5)スロー - JMS:SESSION\_RECOVER ## [](#ソース)ソース ### [](#listener)On New Message `` 宛先の JMS サブスクライバー。受信メッセージをリスンできるようにします。 #### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージをコンシュームする宛先の名前。

x

Consumer Type (コンシューマー種別)

次のいずれかになります。

指定された宛先で使用するコンシューマーの種別。

肯定応答モード

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • AUTO

  • MANUAL

  • DUPS_OK

メッセージをコンシュームするときに使用するセッション肯定応答モード。

Selector (セレクター)

String (文字列)

受信メッセージの絞り込みに使用する JMS セレクター。

Inbound Content-Type (受信のコンテンツタイプ)

String (文字列)

メッセージ本文のコンテンツタイプ。

Inbound Encoding (インバウンドエンコーディング)

String (文字列)

メッセージ本文の inboundEncoding。

Number Of Consumers (コンシューマーの数)

Number (数値)

JMS メッセージを受信するために使用する同時コンシューマー数。

4

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_BEGIN​

  • None (なし)

ソースがトランザクションに関して実行できる開始アクションの種別。

None (なし)

Transaction Type (トランザクション種別)

Enumeration (列挙)。次のいずれかになります。

  • LOCAL

  • XA

作成するトランザクションの種別。使用できるかどうかは、Mule バージョンによって決まります。

LOCAL

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時、このソースをプライマリノード上でのみ実行する必要があるかどうか。

true

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

Ignore JMS replyTo header (JMS replyTo ヘッダーを無視)

Boolean (ブール)

宛先ヘッダーが含まれるメッセージの自動応答が必要ない場合は True

false

Body (本文)

Any (任意)

メッセージの本文。

#[payload]

JMS Type (JMS 種別)

String (文字列)

メッセージの JMSType ヘッダー。

Correlation ID (相関 ID)

String (文字列)

メッセージの JMSCorrelationID ヘッダー。

Send Content-Type (コンテンツタイプの送信)

Boolean (ブール)

本文種別がメッセージプロパティとして送信される場合は true。

true

Content-Type

String (文字列)

本文のコンテンツタイプ。

Send Encoding (エンコードの送信)

Boolean (ブール)

本文の outboundEncoding がメッセージプロパティとして送信される場合は true。

true

Encoding (エンコード)

String (文字列)

メッセージの本文の outboundEncoding。

Reply To (応答先)

このメッセージの応答先の JMSReplyTo ヘッダー情報。

User Properties (ユーザープロパティ)

Object (オブジェクト)

このメッセージに設定されるカスタムユーザープロパティ。

JMSX Properties (JMSX プロパティ)

このメッセージに設定される JMSX プロパティ。

Persistent Delivery (永続的な配信)

Boolean (ブール)

配信を永続的な設定で行うかどうか。

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの JMSPriority 値。

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

timeToLive 設定で使用する時間単位。

Disable Message ID (メッセージ ID の無効化)

Boolean (ブール)

true の場合、MessageID を生成しないようにメッセージにフラグが付けられます。

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

true の場合、送信タイムスタンプを生成しないようにメッセージにフラグが付けられます。

Delivery Delay (配信遅延)

Number (数値)

JMS 2.0 でのみ使用。メッセージの配信を遅らせるための配信遅延時間。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

deliveryDelay 設定で使用する時間単位。

Send Correlation ID (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション

Request Reply Pattern (要求応答パターン)

Enumeration (列挙)。次のいずれかになります。

  • CORRELATION_ID​

  • MESSAGE_ID​

  • None (なし)

使用する要求応答パターンを示します。デフォルトでは、受信メッセージの相関 ID を使用して、Reply-To を実行します。メッセージ ID パターンを設定する場合、受信メッセージのメッセージ ID を使用して ReplyTo が実行されます。[NONE (なし)] が選択されている場合、相関 ID は自動的に設定されません。

CORRELATION_ID

#### [](#出力-3)出力

型

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合-4)次の設定の場合 - [デフォルト設定](#config) ## [](#型)型 ### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maxIdleTime 属性の時間単位

### [](#JMSAttributes)JMS 属性
項目 型 説明 デフォルト値 必須

Properties (プロパティ)

JMS メッセージ内に存在するすべてのプロパティのコンテナ要素。

Headers (ヘッダー)

Any (任意)

JMS メッセージのすべての可能なヘッダー。

x

Ack Id

String (文字列)

現在のメッセージを肯定応答するために必要なセッション肯定応答 ID (ある場合)。ない場合は null。

### [](#JMSMessageProperties)JMS メッセージのプロパティ
項目 型 説明 デフォルト値 必須

すべて

Any (任意)

フラット化されたマップとしての JMS メッセージのすべてのプロパティ。

x

User Properties (ユーザープロパティ)

Any (任意)

JMS メッセージのユーザーが指定したプロパティ。

x

Jms Properties (JMS プロパティ)

Any (任意)

JMS メッセージブローカーおよびプロバイダープロパティ。

x

Jmsx Properties (JMSX プロパティ)

JMS メッセージの JMSX プロパティ。

### [](#JMSXProperties)JMSX Properties (JMSX プロパティ)
項目 型 説明 デフォルト値 必須

Jmsx User ID (JMSX ユーザー ID)

String (文字列)

メッセージを送信するユーザーの ID。

Jmsx App ID (JMSX アプリケーション ID)

String (文字列)

メッセージを送信するアプリケーションの ID。

Jmsx Delivery Count (JMSX 配信数)

Number (数値)

メッセージ配信の試行回数。

Jmsx Group ID (JMSX グループ ID)

String (文字列)

メッセージのメッセージグループの ID。

Jmsx Group Seq (JMSX グループシーケンス)

Number (数値)

グループ内のメッセージの連番。

Jmsx Producer TXID (JMSX プロデューサー TXID)

String (文字列)

メッセージを生成したトランザクションの ID。

Jmsx Consumer TXID (JMSX コンシューマー TXID)

String (文字列)

メッセージをコンシュームしたトランザクションの ID。

Jmsx Rcv Timestamp (JMSX 受信タイムスタンプ)

Number (数値)

JMS がコンシューマーにメッセージを配信した時間。

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

NOTE:​ このパラメーターはコネクタで設定しないでください (効果がないため)。これは、ブローカー側で設定する必要があります。

正常に処理されずにプロセス失敗メッセージがトリガーされるまでにメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。設定しない場合、デフォルトの SHA-256 になります。

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、useSecureHash が false の場合にのみ設定できます。

Object Store (オブジェクトストア)

Object Store (オブジェクトストア)

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#JmsDestination)JMS Destination (JMS 宛先)
項目 型 説明 デフォルト値 必須

Destination (宛先)

String (文字列)

メッセージへの応答の送信先となる宛先の名前。

x

Destination Type (宛先種別)

Enumeration (列挙)。次のいずれかになります。

  • QUEUE

  • TOPIC

この宛先の種別。

QUEUE

### [](#JmsxProperties)JMSX Properties (JMSX プロパティ)
項目 型 説明 デフォルト値 必須

Jmsx User ID (JMSX ユーザー ID)

String (文字列)

メッセージを送信するユーザーの ID。

Jmsx App ID (JMSX アプリケーション ID)

String (文字列)

メッセージを送信するアプリケーションの ID。

Jmsx Delivery Count (JMSX 配信数)

Number (数値)

メッセージ配信の試行回数。

Jmsx Group ID (JMSX グループ ID)

String (文字列)

メッセージのメッセージグループの ID。

Jmsx Group Seq (JMSX グループシーケンス)

Number (数値)

グループ内のメッセージの連番。

Jmsx Producer TXID (JMSX プロデューサー TXID)

String (文字列)

メッセージを生成したトランザクションの ID。

Jmsx Consumer TXID (JMSX コンシューマー TXID)

String (文字列)

メッセージをコンシュームしたトランザクションの ID。

Jmsx Rcv Timestamp (JMSX 受信タイムスタンプ)

Number (数値)

JMS がコンシューマーにメッセージを配信した時間。

### [](#Tls)TLS
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。

Trust Store (トラストストア)

Key Store (キーストア)

Revocation Check (取り消し確認)

### [](#TrustStore)トラストストア
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true の場合、証明書の検証が実行されず、攻撃に対して接続が脆弱になります。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

キーストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーがある場合、この属性は、使用する鍵の別名を示します。定義しない場合、デフォルトでファイル内の最初の鍵が使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#standard-revocation-check)Standard Revocation Check (標準の取り消し確認)
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に OCSP ではなく CRL を試みます。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法 (以前に選択されていない方法) を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#custom-ocsp-responder)Custom OCSP Responder (カスタム OCSP レスポンダー)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#crl-file)CRL File (CRL ファイル)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#ActiveMQConnectionFactoryConfiguration)Active MQ 接続ファクトリー設定
項目 型 説明 デフォルト値 必須

Broker Url (ブローカー URL)

String (文字列)

接続するブローカーのアドレス。

vm://localhost?broker.persistent=false&broker.useJmx=false

Enable Xa (Xa の有効化)

Boolean (ブール)

ConnectionFactory は XA をサポートする必要があります。

false

Initial Redelivery Delay (初期再配信遅延)

Number (数値)

RedeliveryPolicy#getInitialRedeliveryDelay() の設定に使用します。

1000

Redelivery Delay (再配信遅延)

Number (数値)

RedeliveryPolicy#getRedeliveryDelay() の設定に使用します。

1000

Max Redelivery (最大再配信数)

Number (数値)

NOTE:​ このパラメーターはコネクタで設定しないでください (効果がないため)。これは、ブローカー側で設定する必要があります。

RedeliveryPolicy#getMaximumRedeliveries() の設定に使用します。 配信なしは 0 で表され、-1 は無限に再配信を受け入れることを意味します。

0

信頼されるパッケージ

Array of String (文字列の配列)

送信および受信することが許可されたクラスのパッケージ。バージョン 5.12.2 および 5.13.0 以降、ActiveMQ では、ObjectMessages を使用してエクスチェンジできるパッケージを明示的に許可する必要があります。

すべてのパッケージを信頼

Boolean (ブール)

すべてのパッケージのクラスを送受信できるかどうかを示します。このパラメーターを有効にすると、悪意のあるペイロードがホストシステムを不正に使用する可能性があるため、安全ではなくなります。バージョン 5.12.2 および 5.13.0 以降、ActiveMQ では、ObjectMessages を使用してエクスチェンジできるパッケージを明示的に許可する必要があります。

false

### [](#topic-consumer)Topic Consumer (トピックコンシューマー)
項目 型 説明 デフォルト値 必須

Durable (永続的)

Boolean (ブール)

クライアントが接続されていない場合にメッセージがキャッシュされるかどうかを示します。

false

Shared (共有)

Boolean (ブール)

サブスクリプションがコンシューマー間で共有されるかどうかを示します。

false

No Local (非ローカル)

Boolean (ブール)

独自の接続によって公開されるメッセージの配信を抑制します。

false

Subscription Name (サブスクリプション名)

String (文字列)

サブスクリプションの名前。

### [](#default-caching)Default Caching (デフォルトキャッシュ)
項目 型 説明 デフォルト値 必須

Session Cache Size (セッションキャッシュサイズ)

Number (数値)

セッションキャッシュのサイズ。

Cache Producers (キャッシュプロデューサー)

Boolean (ブール)

プロデューサーをキャッシュするかどうかを示します。

true

Cache Consumers (キャッシュコンシューマー)

Boolean (ブール)

コンシューマーをキャッシュするかどうかを示します。

true

### [](#JndiConnectionFactory)JNDI Connection Factory (JNDI 接続ファクトリー)
項目 型 説明 デフォルト値 必須

Connection Factory Jndi Name (接続ファクトリー JNDI 名)

String (文字列)

JNDI を使用して検出する ConnectionFactory の名前であり、ConnectionFactory の代理として使用されます。

x

Lookup Destination (ルックアップ宛先)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • ALWAYS

  • TRY_ALWAYS

宛先。

NEVER

Name Resolver Provider (名前解決機能プロバイダー)

JndiNameResolver のプロバイダー。

x

### [](#JndiNameResolverProvider)JNDI Name Resolver Provider (JNDI 名前解決機能プロバイダー)
項目 型 説明 デフォルト値 必須

Custom JNDI Name Resolver (カスタム JNDI 名前解決機能)

カスタム JndiNameResolver 実装への参照。

Name Resolver Builder (名前解決機能ビルダー)

SimpleJndiNameResolver をビルドするために必要なプロパティ。

### [](#JndiNameResolverProperties)JNDI Name Resolver Properties (JNDI 名前解決機能プロパティ)
項目 型 説明 デフォルト値 必須

Jndi Initial Context Factory (JNDI 初期コンテキストファクトリー)

String (文字列)

初期コンテキストを作成するファクトリークラスの完全修飾名。

x

Jndi Provider Url (JNDI プロバイダー URL)

String (文字列)

JNDI サービスプロバイダー URL。

Provider Properties (プロバイダープロパティ)

Object (オブジェクト)

JNDI 名前解決機能コンテキストに渡すプロパティ。

### [](#SimpleJndiNameResolver)Simple JNDI Name Resolver (シンプル JNDI 名前解決機能)
項目 型 説明 デフォルト値 必須

Context Factory (コンテキストファクトリー)

Object (オブジェクト)

初期コンテキストを作成するファクトリークラスの完全修飾名。

Jndi Initial Factory (JNDI 初期ファクトリー)

String (文字列)

使用する初期コンテキストファクトリーを指定するための環境プロパティの名前。

Jndi Provider Properties (JNDI プロバイダープロパティ)

Object (オブジェクト)

JNDI 名前解決機能コンテキストに渡すプロパティ。

Jndi Provider Url (JNDI プロバイダー URL)

String (文字列)

JNDI プロバイダーの URL。

### [](#CachedJndiNameResolver)Cached JNDI Name Resolver (キャッシュされた JNDI 名前解決機能)
項目 型 説明 デフォルト値 必須

Context Factory (コンテキストファクトリー)

Object (オブジェクト)

初期コンテキストを作成するファクトリークラスの完全修飾クラス名。

Jndi Initial Factory (JNDI 初期ファクトリー)

String (文字列)

使用する初期コンテキストファクトリーを指定するための環境プロパティの名前。

Jndi Provider Properties (JNDI プロバイダープロパティ)

Object (オブジェクト)

JNDI 名前解決機能コンテキストに渡すプロパティ。

Jndi Provider Url (JNDI プロバイダー URL)

String (文字列)

JNDI プロバイダーの URL。

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector リファレンス 1.8 JMS Connector バージョン 1.8 JMS 用 Anypoint Connector (JMS Connector) は JMS 1.0.2b、1.1、および 2.0 互換の MuleSoft 拡張機能であり、JMS メッセージをコンシュームおよび生成するために使用されます。この拡張機能では、トピックとキュー、永続的なサブスクライバー、肯定応答モード、ローカルトランザクションを含むすべての JMS 機能がサポートされます。 リリースノート: [JMS Connector リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/connector-jms) ## [](#設定)設定 * * * ### [](#config)デフォルト設定 JMS Connector の基本設定 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Encoding (エンコード)

String (文字列)

メッセージにエンコードが指定されていない場合に使用するメッセージ本文のデフォルトエンコード。

Content Type (コンテンツタイプ)

String (文字列)

メッセージにコンテンツタイプが指定されていない場合に使用するメッセージ本文のデフォルトの contentType。

/

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

メッセージのパブリッシュ時に correlationId を指定するかどうか。操作レベルで指定されるカスタム相関 ID と、現在のイベントから引用されるデフォルト相関 ID の両方に適用されます。

AUTO

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Mule Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。必要に応じて、インスタンスがパージされます。

Ack Mode (肯定応答モード)

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • AUTO

  • MANUAL

  • DUPS_OK

メッセージをコンシュームするときに使用する ConsumerAckMode。メッセージソースレベルで上書きできます。transactionType が LOCAL (ローカル) または MULTI (マルチ) の場合、この属性は IMMEDIATE (即時) である必要があります。

AUTO

Consumer Type (コンシューマー種別)

次のいずれかになります。

メッセージをコンシュームするときにデフォルトで使用する ConsumerType。メッセージソースレベルで上書きできます。

Selector (セレクター)

String (文字列)

メッセージをコンシュームするときに絞り込みに使用するデフォルトのセレクター。メッセージソースレベルで上書きできます。

Max Redelivery (最大再配信数)

Number (数値)

このパラメーターはコネクタで設定しないでください (効果がないため)。これは、ブローカー側で設定する必要があります。

メッセージを破棄するまでの再配信数を設定するために使用します。配信なしは 0 で表され、-1 は無限に再配信を受け入れることを意味します。

0

Persistent Delivery (永続的な配信)

Boolean (ブール)

Message#getJMSDeliveryMode のデフォルト値を設定します。true の場合、DeliveryMode#PERSISTENT モードが使用されます。これにより、JMS プロバイダーで障害が発生してもメッセージが送信中に失われないように格別の注意を払うことが JMS プロバイダーに指示されます。

false

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの Message#getJMSPriority を定義します。

4

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

0

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#timeToLive 属性に使用できる時間単位。 デフォルトは MILLISECONDS (ミリ秒) です。

MILLISECONDS

Disable Message Id (メッセージ ID の無効化)

Boolean (ブール)

ブローカーでの Message#getJMSMessageID 生成を無効にするために、メッセージを生成するときに使用するデフォルト値を定義します。プロバイダーによっては、効果がある場合とない場合があります。

false

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

ブローカーでの Message#getJMSTimestamp 生成を無効にするために、メッセージを生成するときに使用するデフォルト値を定義します。プロバイダーによっては、効果がある場合とない場合があります。

false

Delivery Delay (配信遅延)

Number (数値)

これは、送信方法で指定された deliveryDelay 値をメッセージが送信された時間に追加することで計算されるメッセージ配信遅延時間を決定するために使用されます。 JmsSpecification#​JMS_2_0​ でのみ使用されます。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#deliveryDelay 属性に使用できる時間単位。 デフォルトは MILLISECONDS (ミリ秒) です。

MILLISECONDS

Jms Type (JMS 種別)

String (文字列)

メッセージが送信されるときにクライアントによって指定されるメッセージの JMSType 識別子。

## [](#操作)操作 - [Ack](#ack) - [Consume](#consume) - [Publish](#publish) - [Publish Consume](#publishConsume) - [Recover Session](#recoverSession) ### [](#関連付けられたソース)関連付けられたソース - [On New Message](#listener) ### [](#consume)Consume `` 特定の宛先から単一のメッセージをコンシュームするための操作です。 #### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージのコンシュームする宛先の名前。

x

Consumer Type (コンシューマー種別)

次のいずれかになります。

特定の宛先に必要な MessageConsumer の種別と、宛先種別に基づいて必要となるその他の設定。

Ack Mode (肯定応答モード)

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • MANUAL

メッセージとセッションで設定する ConsumerAckMode。

Selector (セレクター)

String (文字列)

メッセージの絞り込みに使用するカスタム JMS セレクター。

Content Type (コンテンツタイプ)

String (文字列)

メッセージのコンテンツタイプ。

Encoding (エンコード)

String (文字列)

メッセージのコンテンツのエンコード。

Maximum Wait (最大待機)

Number (数値)

タイムアウトとなる前にメッセージを待つ最大時間。

10000

Maximum Wait Unit (最大待機単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maximumWaitTime 設定で使用する時間単位。

MILLISECONDS

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

トランザクションに関する操作で実行できる結合アクションの種別。

JOIN_IF_POSSIBLE

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力)出力

型

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー)スロー - JMS:RETRY\_EXHAUSTED - JMS:ACK - JMS:DESTINATION\_NOT\_FOUND - JMS:SECURITY - JMS:TIMEOUT - JMS:CONNECTIVITY - JMS:CONSUMING ### [](#publish)Publish `` ユーザーが JMS 宛先にメッセージを送信できるようにする操作。 #### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージの送信先となる宛先の名前。

x

Destination Type (宛先種別)

Enumeration (列挙)。次のいずれかになります。

  • QUEUE

  • TOPIC

宛先の DestinationType。

QUEUE

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

操作のトランザクションアクション。パブリッシュをトランザクションとして実行するかどうかを指定します。

JOIN_IF_POSSIBLE

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション。

Body (本文)

Any (任意)

メッセージの本文。

#[payload]

JMS Type (JMS 種別)

String (文字列)

メッセージの JMSType ヘッダー。

Correlation ID (相関 ID)

String (文字列)

メッセージの JMSCorrelationID ヘッダー。

Send Content-Type (コンテンツタイプの送信)

Boolean (ブール)

本文種別がメッセージプロパティとして送信される場合は true。

true

Content-Type

String (文字列)

本文のコンテンツタイプ。

Send Encoding (エンコードの送信)

Boolean (ブール)

本文の outboundEncoding がメッセージプロパティとして送信される場合は true。

true

Encoding (エンコード)

String (文字列)

メッセージの本文の outboundEncoding。

Reply To (応答先)

このメッセージの応答先の JMSReplyTo ヘッダー情報。

User Properties (ユーザープロパティ)

Object (オブジェクト)

このメッセージに設定されるカスタムユーザープロパティ。

JMSX Properties (JMSX プロパティ)

このメッセージに設定される JMSX プロパティ。

Persistent Delivery (永続的な配信)

Boolean (ブール)

true の場合、メッセージは PERSISTENT JMSDeliveryMode を使用して送信されます。

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの JMSPriority 値。

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

timeToLive 設定で使用する時間単位。

Disable Message Id (メッセージ ID の無効化)

Boolean (ブール)

true の場合、MessageID を生成しないようにメッセージにフラグが付けられます。

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

true の場合、送信タイムスタンプを生成しないようにメッセージにフラグが付けられます。

Delivery Delay (配信遅延)

Number (数値)

JMS 2.0 でのみ使用。メッセージの配信を遅らせるための配信遅延時間。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

deliveryDelay 設定で使用する時間単位。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

### [](#次の設定の場合-2)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-2)スロー - JMS:RETRY\_EXHAUSTED - JMS:ILLEGAL\_BODY - JMS:PUBLISHING - JMS:DESTINATION\_NOT\_FOUND - JMS:SECURITY - JMS:CONNECTIVITY ### [](#publishConsume)Publish Consume `` ユーザーが JMS 宛先にメッセージを送信し、指定された ReplyTo 宛先または動的に作成される一時的な宛先への応答を待機できるようにする操作。 #### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージの送信先となる宛先の名前。

x

Request-Reply Pattern (要求-応答パターン)

Enumeration (列挙)。次のいずれかになります。

  • CORRELATION_ID​

  • MESSAGE_ID​

  • None (なし)

CORRELATION_ID

Send Correlation ID (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション。

Body (本文)

Any (任意)

メッセージの本文。

#[payload]

JMS Type (JMS 種別)

String (文字列)

メッセージの JMSType ヘッダー。

Correlation ID (相関 ID)

String (文字列)

メッセージの JMSCorrelationID ヘッダー。

Send Content-Type (コンテンツタイプの送信)

Boolean (ブール)

本文種別がメッセージプロパティとして送信される場合は true。

true

Content-Type

String (文字列)

本文のコンテンツタイプ。

Send Encoding (エンコードの送信)

Boolean (ブール)

本文の outboundEncoding がメッセージプロパティとして送信される場合は true。

true

Encoding (エンコード)

String (文字列)

メッセージの本文の outboundEncoding。

Reply To (応答先)

このメッセージの応答先の JMSReplyTo ヘッダー情報。

User Properties (ユーザープロパティ)

Object (オブジェクト)

このメッセージに設定されるカスタムユーザープロパティ。

JMSX Properties (JMSX プロパティ)

このメッセージに設定される JMSX プロパティ。

Persistent Delivery (永続的な配信)

Boolean (ブール)

true の場合、メッセージは PERSISTENT JMSDeliveryMode を使用して送信されます。

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの JMSPriority 値。

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

timeToLive 設定で使用する時間単位。

Disable Message Id (メッセージ ID の無効化)

Boolean (ブール)

true の場合、MessageID を生成しないようにメッセージにフラグが付けられます。

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

true の場合、送信タイムスタンプを生成しないようにメッセージにフラグが付けられます。

Delivery Delay (配信遅延)

Number (数値)

JMS 2.0 でのみ使用。メッセージの配信を遅らせるための配信遅延時間。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

deliveryDelay 設定で使用する時間単位。

Ack Mode (肯定応答モード)

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • MANUAL

メッセージをコンシュームするときに使用するセッション肯定応答モード。

Maximum Wait (最大待機)

Number (数値)

タイムアウトとなる前にメッセージの到着を待つ最大時間。

10000

Maximum Wait Unit (最大待機単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maximumWaitTime 設定で使用する時間単位。

MILLISECONDS

Content Type (コンテンツタイプ)

String (文字列)

コンシュームするメッセージ本文のコンテンツタイプ。

Encoding (エンコード)

String (文字列)

コンシュームするメッセージ本文のエンコード。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-2)出力

型

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合-3)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-3)スロー - JMS:RETRY\_EXHAUSTED - JMS:ILLEGAL\_BODY - JMS:ACK - JMS:PUBLISHING - JMS:DESTINATION\_NOT\_FOUND - JMS:SECURITY - JMS:TIMEOUT - JMS:CONNECTIVITY - JMS:CONSUMING ### [](#ack)Ack `` メッセージのコンシューム中に AckMode#MANUAL モードが選択された場合にユーザーが肯定応答を実行できるようにします。JMS 仕様に従い、単一のメッセージに対する肯定応答は自動的に同じ JmsSession で生成されるすべてのメッセージの肯定応答として機能します。 #### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Ack Id

String (文字列)

肯定応答するメッセージの AckId。

x

#### [](#スロー-4)スロー - JMS:ACK ### [](#recoverSession)Recover Session `` メッセージのコンシューム中に AckMode#MANUAL モードが選択された場合にユーザーがセッション回復を実行できるようにします。JMS 仕様の定義により、セッションリカバリーを実行すると、そのリカバリー以前にコンシュームされていて肯定応答されていなかったすべてのメッセージが再配信されます。 #### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Ack Id

String (文字列)

リカバリーするメッセージセッションの AckId。

x

#### [](#スロー-5)スロー - JMS:SESSION\_RECOVER ## [](#ソース)ソース ### [](#listener)On New Message `` 宛先の JMS サブスクライバー。受信メッセージをリスンできるようにします。 #### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージのコンシュームする宛先の名前。

x

Consumer Type (コンシューマー種別)

次のいずれかになります。

指定された宛先で使用するコンシューマーの種別。

肯定応答モード

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • AUTO

  • MANUAL

  • DUPS_OK

メッセージをコンシュームするときに使用するセッション肯定応答モード。

Selector (セレクター)

String (文字列)

受信メッセージの絞り込みに使用する JMS セレクター。

Inbound Content-Type (受信のコンテンツタイプ)

String (文字列)

メッセージ本文のコンテンツタイプ。

Inbound Encoding (インバウンドエンコーディング)

String (文字列)

メッセージ本文の inboundEncoding。

Number Of Consumers (コンシューマーの数)

Number (数値)

JMS メッセージを受信するために使用する同時コンシューマー数。

4

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_BEGIN​

  • None (なし)

ソースがトランザクションに関して実行できる開始アクションの種別。

None (なし)

Transaction Type (トランザクション種別)

Enumeration (列挙)。次のいずれかになります。

  • LOCAL

  • XA

作成するトランザクションの種別。使用できるかどうかは、Mule バージョンによって決まります。

LOCAL

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時、このソースをプライマリノード上でのみ実行する必要があるかどうか。

true

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

Ignore JMS replyTo header (JMS replyTo ヘッダーを無視)

Boolean (ブール)

宛先ヘッダーが含まれるメッセージの自動応答が必要ない場合は True

false

Body (本文)

Any (任意)

メッセージの本文。

#[payload]

JMS Type (JMS 種別)

String (文字列)

メッセージの JMSType ヘッダー。

Correlation ID (相関 ID)

String (文字列)

メッセージの JMSCorrelationID ヘッダー。

Send Content-Type (コンテンツタイプの送信)

Boolean (ブール)

本文種別がメッセージプロパティとして送信される場合は true。

true

Content-Type

String (文字列)

本文のコンテンツタイプ。

Send Encoding (エンコードの送信)

Boolean (ブール)

本文の outboundEncoding がメッセージプロパティとして送信される場合は true。

true

Encoding (エンコード)

String (文字列)

メッセージの本文の outboundEncoding。

Reply To (応答先)

このメッセージの応答先の JMSReplyTo ヘッダー情報。

User Properties (ユーザープロパティ)

Object (オブジェクト)

このメッセージに設定されるカスタムユーザープロパティ。

JMSX Properties (JMSX プロパティ)

このメッセージに設定される JMSX プロパティ。

Persistent Delivery (永続的な配信)

Boolean (ブール)

配信を永続的な設定で行うかどうか。

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの JMSPriority 値。

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

timeToLive 設定で使用する時間単位。

Disable Message ID (メッセージ ID の無効化)

Boolean (ブール)

true の場合、MessageID を生成しないようにメッセージにフラグが付けられます。

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

true の場合、送信タイムスタンプを生成しないようにメッセージにフラグが付けられます。

Delivery Delay (配信遅延)

Number (数値)

JMS 2.0 でのみ使用。メッセージの配信を遅らせるための配信遅延時間。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

deliveryDelay 設定で使用する時間単位。

Send Correlation ID (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション

Request Reply Pattern (要求応答パターン)

Enumeration (列挙)。次のいずれかになります。

  • CORRELATION_ID​

  • MESSAGE_ID​

  • None (なし)

使用する要求応答パターンを示します。デフォルトでは、受信メッセージの相関 ID を使用して、Reply-To を実行します。メッセージ ID パターンを設定する場合、受信メッセージのメッセージ ID を使用して ReplyTo が実行されます。[NONE (なし)] が選択されている場合、相関 ID は自動的に設定されません。

CORRELATION_ID

#### [](#出力-3)出力

型

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合-4)次の設定の場合 - [デフォルト設定](#config) ## [](#型)型 ### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maxIdleTime 属性の時間単位

### [](#JMSAttributes)JMS 属性
項目 型 説明 デフォルト値 必須

Properties (プロパティ)

JMS メッセージ内に存在するすべてのプロパティのコンテナ要素。

Headers (ヘッダー)

Any (任意)

JMS メッセージのすべての可能なヘッダー。

x

Ack Id

String (文字列)

現在のメッセージを肯定応答するために必要なセッション肯定応答 ID (ある場合)。ない場合は null。

### [](#JMSMessageProperties)JMS メッセージのプロパティ
項目 型 説明 デフォルト値 必須

すべて

Any (任意)

フラット化されたマップとしての JMS メッセージのすべてのプロパティ。

x

User Properties (ユーザープロパティ)

Any (任意)

JMS メッセージのユーザーが指定したプロパティ。

x

Jms Properties (JMS プロパティ)

Any (任意)

JMS メッセージブローカーおよびプロバイダープロパティ。

x

Jmsx Properties (JMSX プロパティ)

JMS メッセージの JMSX プロパティ。

### [](#JMSXProperties)JMSX Properties (JMSX プロパティ)
項目 型 説明 デフォルト値 必須

Jmsx User ID (JMSX ユーザー ID)

String (文字列)

メッセージを送信するユーザーの ID。

Jmsx App ID (JMSX アプリケーション ID)

String (文字列)

メッセージを送信するアプリケーションの ID。

Jmsx Delivery Count (JMSX 配信数)

Number (数値)

メッセージ配信の試行回数。

Jmsx Group ID (JMSX グループ ID)

String (文字列)

メッセージのメッセージグループの ID。

Jmsx Group Seq (JMSX グループシーケンス)

Number (数値)

グループ内のメッセージの連番。

Jmsx Producer TXID (JMSX プロデューサー TXID)

String (文字列)

メッセージを生成したトランザクションの ID。

Jmsx Consumer TXID (JMSX コンシューマー TXID)

String (文字列)

メッセージをコンシュームしたトランザクションの ID。

Jmsx Rcv Timestamp (JMSX 受信タイムスタンプ)

Number (数値)

JMS がコンシューマーにメッセージを配信した時間。

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

このパラメーターはコネクタで設定しないでください (効果がないため)。これは、ブローカー側で設定する必要があります。

正常に処理されずにプロセス失敗メッセージがトリガーされるまでにメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。設定しない場合、デフォルトの SHA-256 になります。

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、useSecureHash が false の場合にのみ設定できます。

Object Store (オブジェクトストア)

Object Store (オブジェクトストア)

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#JmsDestination)JMS Destination (JMS 宛先)
項目 型 説明 デフォルト値 必須

Destination (宛先)

String (文字列)

メッセージへの応答の送信先となる宛先の名前。

x

Destination Type (宛先種別)

Enumeration (列挙)。次のいずれかになります。

  • QUEUE

  • TOPIC

この宛先の種別。

QUEUE

### [](#JmsxProperties)JMSX Properties (JMSX プロパティ)
項目 型 説明 デフォルト値 必須

Jmsx User ID (JMSX ユーザー ID)

String (文字列)

メッセージを送信するユーザーの ID。

Jmsx App ID (JMSX アプリケーション ID)

String (文字列)

メッセージを送信するアプリケーションの ID。

Jmsx Delivery Count (JMSX 配信数)

Number (数値)

メッセージ配信の試行回数。

Jmsx Group ID (JMSX グループ ID)

String (文字列)

メッセージのメッセージグループの ID。

Jmsx Group Seq (JMSX グループシーケンス)

Number (数値)

グループ内のメッセージの連番。

Jmsx Producer TXID (JMSX プロデューサー TXID)

String (文字列)

メッセージを生成したトランザクションの ID。

Jmsx Consumer TXID (JMSX コンシューマー TXID)

String (文字列)

メッセージをコンシュームしたトランザクションの ID。

Jmsx Rcv Timestamp (JMSX 受信タイムスタンプ)

Number (数値)

JMS がコンシューマーにメッセージを配信した時間。

### [](#Tls)TLS
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。

Trust Store (トラストストア)

Key Store (キーストア)

Revocation Check (取り消し確認)

### [](#TrustStore)Trust Store (トラストストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true の場合、証明書の検証が実行されず、攻撃に対して接続が脆弱になります。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

キーストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーがある場合、この属性は、使用する鍵の別名を示します。定義しない場合、デフォルトでファイル内の最初の鍵が使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#standard-revocation-check)Standard Revocation Check (標準の取り消し確認)
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に OCSP ではなく CRL を試みます。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法 (以前に選択されていない方法) を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#custom-ocsp-responder)Custom OCSP Responder (カスタム OCSP レスポンダー)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#crl-file)CRL File (CRL ファイル)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#ActiveMQConnectionFactoryConfiguration)Active MQ 接続ファクトリー設定
項目 型 説明 デフォルト値 必須

Broker Url (ブローカー URL)

String (文字列)

接続するブローカーのアドレス。

vm://localhost?broker.persistent=false&broker.useJmx=false

Enable Xa (Xa の有効化)

Boolean (ブール)

ConnectionFactory は XA をサポートする必要があります。

false

Initial Redelivery Delay (初期再配信遅延)

Number (数値)

RedeliveryPolicy#getInitialRedeliveryDelay() の設定に使用します。この機能は、XA コンテキストでは使用できません。

1000

Redelivery Delay (再配信遅延)

Number (数値)

RedeliveryPolicy#getRedeliveryDelay() の設定に使用します。この機能は、XA コンテキストでは使用できません。

1000

Max Redelivery (最大再配信数)

Number (数値)

このパラメーターはコネクタで設定しないでください (効果がないため)。これは、ブローカー側で設定する必要があります。

RedeliveryPolicy#getMaximumRedeliveries() の設定に使用します。 配信なしは 0 で表され、-1 は無限に再配信を受け入れることを意味します。

0

信頼されるパッケージ

Array of String (文字列の配列)

送信および受信することが許可されたクラスのパッケージ。バージョン 5.12.2 および 5.13.0 以降、ActiveMQ では、ObjectMessages を使用してエクスチェンジできるパッケージを明示的に許可する必要があります。

すべてのパッケージを信頼

Boolean (ブール)

すべてのパッケージのクラスを送受信できるかどうかを示します。このパラメーターを有効にすると、悪意のあるペイロードがホストシステムを不正に使用する可能性があるため、安全ではなくなります。バージョン 5.12.2 および 5.13.0 以降、ActiveMQ では、ObjectMessages を使用してエクスチェンジできるパッケージを明示的に許可する必要があります。

false

### [](#topic-consumer)Topic Consumer (トピックコンシューマー)
項目 型 説明 デフォルト値 必須

Durable (永続的)

Boolean (ブール)

クライアントが接続されていない場合にメッセージがキャッシュされるかどうかを示します。

false

Shared (共有)

Boolean (ブール)

サブスクリプションがコンシューマー間で共有されるかどうかを示します。

false

No Local (非ローカル)

Boolean (ブール)

独自の接続によって公開されるメッセージの配信を抑制します。

false

Subscription Name (サブスクリプション名)

String (文字列)

サブスクリプションの名前。

### [](#default-caching)Default Caching (デフォルトキャッシュ)
項目 型 説明 デフォルト値 必須

Session Cache Size (セッションキャッシュサイズ)

Number (数値)

セッションキャッシュのサイズ。

Cache Producers (キャッシュプロデューサー)

Boolean (ブール)

プロデューサーをキャッシュするかどうかを示します。

true

Cache Consumers (キャッシュコンシューマー)

Boolean (ブール)

コンシューマーをキャッシュするかどうかを示します。

true

### [](#JndiConnectionFactory)JNDI Connection Factory (JNDI 接続ファクトリー)
項目 型 説明 デフォルト値 必須

Connection Factory Jndi Name (接続ファクトリー JNDI 名)

String (文字列)

JNDI を使用して検出する ConnectionFactory の名前であり、ConnectionFactory の代理として使用されます。

x

Lookup Destination (ルックアップ宛先)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • ALWAYS

  • TRY_ALWAYS

宛先。

NEVER

Name Resolver Provider (名前解決機能プロバイダー)

JndiNameResolver のプロバイダー。

x

### [](#JndiNameResolverProvider)JNDI Name Resolver Provider (JNDI 名前解決機能プロバイダー)
項目 型 説明 デフォルト値 必須

Custom JNDI Name Resolver (カスタム JNDI 名前解決機能)

カスタム JndiNameResolver 実装への参照。

Name Resolver Builder (名前解決機能ビルダー)

SimpleJndiNameResolver をビルドするために必要なプロパティ。

### [](#JndiNameResolverProperties)JNDI Name Resolver Properties (JNDI 名前解決機能プロパティ)
項目 型 説明 デフォルト値 必須

Jndi Initial Context Factory (JNDI 初期コンテキストファクトリー)

String (文字列)

初期コンテキストを作成するファクトリークラスの完全修飾名。

x

Jndi Provider Url (JNDI プロバイダー URL)

String (文字列)

JNDI サービスプロバイダー URL。

Provider Properties (プロバイダープロパティ)

Object (オブジェクト)

JNDI 名前解決機能コンテキストに渡すプロパティ。

### [](#SimpleJndiNameResolver)Simple JNDI Name Resolver (シンプル JNDI 名前解決機能)
項目 型 説明 デフォルト値 必須

Context Factory (コンテキストファクトリー)

Object (オブジェクト)

初期コンテキストを作成するファクトリークラスの完全修飾名。

Jndi Initial Factory (JNDI 初期ファクトリー)

String (文字列)

使用する初期コンテキストファクトリーを指定するための環境プロパティの名前。

Jndi Provider Properties (JNDI プロバイダープロパティ)

Object (オブジェクト)

JNDI 名前解決機能コンテキストに渡すプロパティ。

Jndi Provider Url (JNDI プロバイダー URL)

String (文字列)

JNDI プロバイダーの URL。

### [](#CachedJndiNameResolver)Cached JNDI Name Resolver (キャッシュされた JNDI 名前解決機能)
項目 型 説明 デフォルト値 必須

Context Factory (コンテキストファクトリー)

Object (オブジェクト)

初期コンテキストを作成するファクトリークラスの完全修飾クラス名。

Jndi Initial Factory (JNDI 初期ファクトリー)

String (文字列)

使用する初期コンテキストファクトリーを指定するための環境プロパティの名前。

Jndi Provider Properties (JNDI プロバイダープロパティ)

Object (オブジェクト)

JNDI 名前解決機能コンテキストに渡すプロパティ。

Jndi Provider Url (JNDI プロバイダー URL)

String (文字列)

JNDI プロバイダーの URL。

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector リファレンス 1.9 JMS 用 Anypoint Connector (JMS Connector) は JMS 1.0.2b、1.1、および 2.0 互換の MuleSoft 拡張機能であり、JMS メッセージをコンシュームおよび生成するために使用されます。この拡張機能では、トピックとキュー、永続的なサブスクライバー、肯定応答モード、ローカルトランザクションを含むすべての JMS 機能がサポートされます。 リリースノート: [JMS Connector リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/connector-jms) ## [](#設定)設定 * * * ### [](#config)デフォルト設定 JMS Connector の基本設定 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Encoding (エンコード)

String (文字列)

メッセージにエンコードが指定されていない場合に使用するメッセージ本文のデフォルトエンコード。

Content Type (コンテンツタイプ)

String (文字列)

メッセージにコンテンツタイプが指定されていない場合に使用するメッセージ本文のデフォルトの contentType。

/

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

メッセージのパブリッシュ時に correlationId を指定するかどうか。操作レベルで指定されるカスタム相関 ID と、現在のイベントから引用されるデフォルト相関 ID の両方に適用されます。

AUTO

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Mule Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。必要に応じて、インスタンスがパージされます。

Ack Mode (肯定応答モード)

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • AUTO

  • MANUAL

  • DUPS_OK

メッセージをコンシュームするときに使用する ConsumerAckMode。メッセージソースレベルで上書きできます。transactionType が LOCAL (ローカル) または MULTI (マルチ) の場合、この属性は IMMEDIATE (即時) である必要があります。

AUTO

Consumer Type (コンシューマー種別)

次のいずれかになります。

メッセージをコンシュームするときにデフォルトで使用する ConsumerType。メッセージソースレベルで上書きできます。

Selector (セレクター)

String (文字列)

メッセージをコンシュームするときに絞り込みに使用するデフォルトのセレクター。メッセージソースレベルで上書きできます。

Max Redelivery (最大再配信数)

Number (数値)

このパラメーターはここで設定しないでください (効果がないため)。[ActiveMQConnectionFactoryConfiguration]を参照してください。

0

Persistent Delivery (永続的な配信)

Boolean (ブール)

Message#getJMSDeliveryMode のデフォルト値を設定します。true の場合、DeliveryMode#PERSISTENT モードが使用されます。これにより、JMS プロバイダーで障害が発生してもメッセージが送信中に失われないように格別の注意を払うことが JMS プロバイダーに指示されます。

false

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの Message#getJMSPriority を定義します。

4

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

0

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#timeToLive 属性に使用できる時間単位。 デフォルトは MILLISECONDS (ミリ秒) です。

MILLISECONDS

Disable Message Id (メッセージ ID の無効化)

Boolean (ブール)

ブローカーでの Message#getJMSMessageID 生成を無効にするために、メッセージを生成するときに使用するデフォルト値を定義します。プロバイダーによっては、効果がある場合とない場合があります。

false

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

ブローカーでの Message#getJMSTimestamp 生成を無効にするために、メッセージを生成するときに使用するデフォルト値を定義します。プロバイダーによっては、効果がある場合とない場合があります。

false

Delivery Delay (配信遅延)

Number (数値)

これは、送信方法で指定された deliveryDelay 値をメッセージが送信された時間に追加することで計算されるメッセージ配信遅延時間を決定するために使用されます。 JmsSpecification#​JMS_2_0​ でのみ使用されます。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#deliveryDelay 属性に使用できる時間単位。 デフォルトは MILLISECONDS (ミリ秒) です。

MILLISECONDS

Jms Type (JMS 種別)

String (文字列)

メッセージが送信されるときにクライアントによって指定されるメッセージの JMSType 識別子。

## [](#操作)操作 - [Ack](#ack) - [Consume](#consume) - [Publish](#publish) - [Publish Consume](#publishConsume) - [Recover Session](#recoverSession) ### [](#関連付けられたソース)関連付けられたソース - [On New Message](#listener) ### [](#consume)Consume `` 特定の宛先から単一のメッセージをコンシュームするための操作です。 #### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージのコンシュームする宛先の名前。

x

Consumer Type (コンシューマー種別)

次のいずれかになります。

特定の宛先に必要な MessageConsumer の種別と、宛先種別に基づいて必要となるその他の設定。

Ack Mode (肯定応答モード)

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • MANUAL

メッセージとセッションで設定する ConsumerAckMode。

Selector (セレクター)

String (文字列)

メッセージの絞り込みに使用するカスタム JMS セレクター。

Content Type (コンテンツタイプ)

String (文字列)

メッセージのコンテンツタイプ。

Encoding (エンコード)

String (文字列)

メッセージのコンテンツのエンコード。

Maximum Wait (最大待機)

Number (数値)

タイムアウトとなる前にメッセージを待つ最大時間。

10000

Maximum Wait Unit (最大待機単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

maximumWaitTime 設定で使用する時間単位。

MILLISECONDS

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

トランザクションに関する操作で実行できる結合アクションの種別。

JOIN_IF_POSSIBLE

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力)出力

型

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー)スロー - JMS:RETRY\_EXHAUSTED - JMS:ACK - JMS:DESTINATION\_NOT\_FOUND - JMS:SECURITY - JMS:TIMEOUT - JMS:CONNECTIVITY - JMS:CONSUMING ### [](#publish)Publish `` ユーザーが JMS 宛先にメッセージを送信できるようにする操作。 #### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージの送信先となる宛先の名前。

x

Destination Type (宛先種別)

Enumeration (列挙)。次のいずれかになります。

  • QUEUE

  • TOPIC

宛先の DestinationType。

QUEUE

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

操作のトランザクションアクション。パブリッシュをトランザクションとして実行するかどうかを指定します。

JOIN_IF_POSSIBLE

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション

Body (本文)

Any (任意)

メッセージの本文。

#[payload]

JMS Type (JMS 種別)

String (文字列)

メッセージの JMSType ヘッダー。

Correlation ID (相関 ID)

String (文字列)

メッセージの JMSCorrelationID ヘッダー。

Send Content-Type (コンテンツタイプの送信)

Boolean (ブール)

本文種別がメッセージプロパティとして送信される場合は true。

true

Content-Type

String (文字列)

本文のコンテンツタイプ。

Send Encoding (エンコードの送信)

Boolean (ブール)

本文の outboundEncoding がメッセージプロパティとして送信される場合は true。

true

Encoding (エンコード)

String (文字列)

メッセージの本文の outboundEncoding。

Reply To (返信先)

このメッセージの応答先の JMSReplyTo ヘッダー情報。

User Properties (ユーザープロパティ)

Object (オブジェクト)

このメッセージに設定されるカスタムユーザープロパティ。

JMSX Properties (JMSX プロパティ)

このメッセージに設定される JMSX プロパティ。

Persistent Delivery (永続的な配信)

Boolean (ブール)

true の場合、メッセージは PERSISTENT JMSDeliveryMode を使用して送信されます。

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの JMSPriority 値。

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

timeToLive 設定で使用する時間単位。

Disable Message Id (メッセージ ID の無効化)

Boolean (ブール)

true の場合、MessageID を生成しないようにメッセージにフラグが付けられます。

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

true の場合、送信タイムスタンプを生成しないようにメッセージにフラグが付けられます。

Delivery Delay (配信遅延)

Number (数値)

JMS 2.0 でのみ使用。メッセージの配信を遅らせるための配信遅延時間。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

deliveryDelay 設定で使用する時間単位。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

### [](#次の設定の場合-2)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-2)スロー - JMS:RETRY\_EXHAUSTED - JMS:ILLEGAL\_BODY - JMS:PUBLISHING - JMS:DESTINATION\_NOT\_FOUND - JMS:SECURITY - JMS:CONNECTIVITY ### [](#publishConsume)Publish Consume `` ユーザーが JMS 宛先にメッセージを送信し、指定された ReplyTo 宛先または動的に作成される一時的な宛先への応答を待機できるようにする操作。 #### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージの送信先となる宛先の名前。

x

Request-Reply Pattern (要求-応答パターン)

Enumeration (列挙)。次のいずれかになります。

  • CORRELATION_ID​

  • MESSAGE_ID​

  • None (なし)

CORRELATION_ID

Send Correlation ID (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション

Body (本文)

Any (任意)

メッセージの本文。

#[payload]

JMS Type (JMS 種別)

String (文字列)

メッセージの JMSType ヘッダー。

Correlation ID (相関 ID)

String (文字列)

メッセージの JMSCorrelationID ヘッダー。

Send Content-Type (コンテンツタイプの送信)

Boolean (ブール)

本文種別がメッセージプロパティとして送信される場合は true。

true

Content-Type

String (文字列)

本文のコンテンツタイプ。

Send Encoding (エンコードの送信)

Boolean (ブール)

本文の outboundEncoding がメッセージプロパティとして送信される場合は true。

true

Encoding (エンコード)

String (文字列)

メッセージの本文の outboundEncoding。

Reply To (返信先)

このメッセージの応答先の JMSReplyTo ヘッダー情報。

User Properties (ユーザープロパティ)

Object (オブジェクト)

このメッセージに設定されるカスタムユーザープロパティ。

JMSX Properties (JMSX プロパティ)

このメッセージに設定される JMSX プロパティ。

Persistent Delivery (永続的な配信)

Boolean (ブール)

true の場合、メッセージは PERSISTENT JMSDeliveryMode を使用して送信されます。

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの JMSPriority 値。

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

timeToLive 設定で使用する時間単位。

Disable Message Id (メッセージ ID の無効化)

Boolean (ブール)

true の場合、MessageID を生成しないようにメッセージにフラグが付けられます。

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

true の場合、送信タイムスタンプを生成しないようにメッセージにフラグが付けられます。

Delivery Delay (配信遅延)

Number (数値)

JMS 2.0 でのみ使用。メッセージの配信を遅らせるための配信遅延時間。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

deliveryDelay 設定で使用する時間単位。

Ack Mode (肯定応答モード)

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • MANUAL

メッセージをコンシュームするときに使用するセッション肯定応答モード。

Maximum Wait (最大待機)

Number (数値)

タイムアウトとなる前にメッセージの到着を待つ最大時間。

10000

Maximum Wait Unit (最大待機単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

maximumWaitTime 設定で使用する時間単位。

MILLISECONDS

Content Type (コンテンツタイプ)

String (文字列)

コンシュームするメッセージ本文のコンテンツタイプ。

Encoding (エンコード)

String (文字列)

コンシュームするメッセージ本文のエンコード。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-2)出力

型

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合-3)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-3)スロー - JMS:RETRY\_EXHAUSTED - JMS:ILLEGAL\_BODY - JMS:ACK - JMS:PUBLISHING - JMS:DESTINATION\_NOT\_FOUND - JMS:SECURITY - JMS:TIMEOUT - JMS:CONNECTIVITY - JMS:CONSUMING ### [](#ack)Ack `` メッセージのコンシューム中に AckMode#MANUAL モードが選択された場合にユーザーが肯定応答を実行できるようにします。JMS 仕様に従い、単一のメッセージに対する肯定応答は自動的に同じ JmsSession で生成されるすべてのメッセージの肯定応答として機能します。 #### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Ack Id

String (文字列)

肯定応答するメッセージの AckId。

x

#### [](#スロー-4)スロー - JMS:ACK ### [](#recoverSession)Recover Session `` メッセージのコンシューム中に AckMode#MANUAL モードが選択された場合にユーザーがセッション回復を実行できるようにします。JMS 仕様の定義により、セッションリカバリーを実行すると、そのリカバリー以前にコンシュームされていて肯定応答されていなかったすべてのメッセージが再配信されます。 #### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Ack Id

String (文字列)

リカバリーするメッセージセッションの AckId。

x

#### [](#スロー-5)スロー - JMS:SESSION\_RECOVER ## [](#ソース)ソース ### [](#listener)On New Message `` 宛先の JMS サブスクライバー。受信メッセージをリスンできるようにします。 #### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Destination (宛先)

String (文字列)

メッセージのコンシュームする宛先の名前。

x

Consumer Type (コンシューマー種別)

次のいずれかになります。

指定された宛先で使用するコンシューマーの種別。

肯定応答モード

Enumeration (列挙)。次のいずれかになります。

  • IMMEDIATE

  • AUTO

  • MANUAL

  • DUPS_OK

メッセージをコンシュームするときに使用するセッション肯定応答モード。

Selector (セレクター)

String (文字列)

受信メッセージの絞り込みに使用する JMS セレクター。

Inbound Content-Type (受信のコンテンツタイプ)

String (文字列)

メッセージ本文のコンテンツタイプ。

Inbound Encoding (インバウンドエンコード)

String (文字列)

メッセージ本文の inboundEncoding。

Number Of Consumers (コンシューマーの数)

Number (数値)

JMS メッセージを受信するために使用する同時コンシューマー数。

4

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_BEGIN​

  • None (なし)

ソースがトランザクションに関して実行できる開始アクションの種別。

None (なし)

Transaction Type (トランザクション種別)

Enumeration (列挙)。次のいずれかになります。

  • LOCAL

  • XA

作成するトランザクションの種別。使用できるかどうかは、Mule バージョンによって決まります。

LOCAL

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時、このソースをプライマリノード上でのみ実行する必要があるかどうか。

true

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

Ignore JMS replyTo header (JMS replyTo ヘッダーを無視)

Boolean (ブール)

宛先ヘッダーが含まれるメッセージの自動応答が必要ない場合は True

false

Body (本文)

Any (任意)

メッセージの本文。

#[payload]

JMS Type (JMS 種別)

String (文字列)

メッセージの JMSType ヘッダー。

Correlation ID (相関 ID)

String (文字列)

メッセージの JMSCorrelationID ヘッダー。

Send Content-Type (コンテンツタイプの送信)

Boolean (ブール)

本文種別がメッセージプロパティとして送信される場合は true。

true

Content-Type

String (文字列)

本文のコンテンツタイプ。

Send Encoding (エンコードの送信)

Boolean (ブール)

本文の outboundEncoding がメッセージプロパティとして送信される場合は true。

true

Encoding (エンコード)

String (文字列)

メッセージの本文の outboundEncoding。

Reply To (返信先)

このメッセージの応答先の JMSReplyTo ヘッダー情報。

User Properties (ユーザープロパティ)

Object (オブジェクト)

このメッセージに設定されるカスタムユーザープロパティ。

JMSX Properties (JMSX プロパティ)

このメッセージに設定される JMSX プロパティ。

Persistent Delivery (永続的な配信)

Boolean (ブール)

配信を永続的な設定で行うかどうか。

Priority (優先度)

Number (数値)

メッセージを送信するときに使用するデフォルトの JMSPriority 値。

Time To Live (存続期間)

Number (数値)

メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。

Time To Live Unit (存続期間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

timeToLive 設定で使用する時間単位。

Disable Message ID (メッセージ ID の無効化)

Boolean (ブール)

true の場合、MessageID を生成しないようにメッセージにフラグが付けられます。

Disable Message Timestamp (メッセージタイムスタンプの無効化)

Boolean (ブール)

true の場合、送信タイムスタンプを生成しないようにメッセージにフラグが付けられます。

Delivery Delay (配信遅延)

Number (数値)

JMS 2.0 でのみ使用。メッセージの配信を遅らせるための配信遅延時間。

Delivery Delay Unit (配信遅延単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

deliveryDelay 設定で使用する時間単位。

Send Correlation ID (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション

Request Reply Pattern (要求応答パターン)

Enumeration (列挙)。次のいずれかになります。

  • CORRELATION_ID​

  • MESSAGE_ID​

  • None (なし)

使用する要求応答パターンを示します。デフォルトでは、受信メッセージの相関 ID を使用して、Reply-To を実行します。メッセージ ID パターンを設定する場合、受信メッセージのメッセージ ID を使用して ReplyTo が実行されます。[NONE (なし)] が選択されている場合、相関 ID は自動的に設定されません。

CORRELATION_ID

#### [](#出力-3)出力

型

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合-4)次の設定の場合 - [デフォルト設定](#config) ## [](#型)型 ### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

maxIdleTime 属性の時間単位

### [](#JMSAttributes)JMS 属性
項目 型 説明 デフォルト値 必須

Properties (プロパティ)

JMS メッセージ内に存在するすべてのプロパティのコンテナ要素。

Headers (ヘッダー)

Any (任意)

JMS メッセージのすべての可能なヘッダー。

x

Ack Id

String (文字列)

現在のメッセージを肯定応答するために必要なセッション肯定応答 ID (ある場合)。ない場合は null。

### [](#JMSMessageProperties)JMS メッセージのプロパティ
項目 型 説明 デフォルト値 必須

すべて

Any (任意)

フラット化されたマップとしての JMS メッセージのすべてのプロパティ。

x

User Properties (ユーザープロパティ)

Any (任意)

JMS メッセージのユーザーが指定したプロパティ。

x

Jms Properties (JMS プロパティ)

Any (任意)

JMS メッセージブローカーおよびプロバイダープロパティ。

x

Jmsx Properties (JMSX プロパティ)

JMS メッセージの JMSX プロパティ。

### [](#JMSXProperties)JMSX Properties (JMSX プロパティ)
項目 型 説明 デフォルト値 必須

Jmsx User ID (JMSX ユーザー ID)

String (文字列)

メッセージを送信するユーザーの ID。

Jmsx App ID (JMSX アプリケーション ID)

String (文字列)

メッセージを送信するアプリケーションの ID。

Jmsx Delivery Count (JMSX 配信数)

Number (数値)

メッセージ配信の試行回数。

Jmsx Group ID (JMSX グループ ID)

String (文字列)

メッセージのメッセージグループの ID。

Jmsx Group Seq (JMSX グループシーケンス)

Number (数値)

グループ内のメッセージの連番。

Jmsx Producer TXID (JMSX プロデューサー TXID)

String (文字列)

メッセージを生成したトランザクションの ID。

Jmsx Consumer TXID (JMSX コンシューマー TXID)

String (文字列)

メッセージをコンシュームしたトランザクションの ID。

Jmsx Rcv Timestamp (JMSX 受信タイムスタンプ)

Number (数値)

JMS がコンシューマーにメッセージを配信した時間。

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery (最大再配信数)

Number (数値)

このパラメーターはここで設定しないでください (効果がないため)。[ActiveMQConnectionFactoryConfiguration]を参照してください。

0

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。設定しない場合、デフォルトの SHA-256 になります。

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、useSecureHash が false の場合にのみ設定できます。

Object Store (オブジェクトストア)

Object Store (オブジェクトストア)

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#JmsDestination)JMS Destination (JMS 宛先)
項目 型 説明 デフォルト値 必須

Destination (宛先)

String (文字列)

メッセージへの応答の送信先となる宛先の名前。

x

Destination Type (宛先種別)

Enumeration (列挙)。次のいずれかになります。

  • QUEUE

  • TOPIC

この宛先の種別。

QUEUE

### [](#JmsxProperties)JMSX Properties (JMSX プロパティ)
項目 型 説明 デフォルト値 必須

Jmsx User ID (JMSX ユーザー ID)

String (文字列)

メッセージを送信するユーザーの ID。

Jmsx App ID (JMSX アプリケーション ID)

String (文字列)

メッセージを送信するアプリケーションの ID。

Jmsx Delivery Count (JMSX 配信数)

Number (数値)

メッセージ配信の試行回数。

Jmsx Group ID (JMSX グループ ID)

String (文字列)

メッセージのメッセージグループの ID。

Jmsx Group Seq (JMSX グループシーケンス)

Number (数値)

グループ内のメッセージの連番。

Jmsx Producer TXID (JMSX プロデューサー TXID)

String (文字列)

メッセージを生成したトランザクションの ID。

Jmsx Consumer TXID (JMSX コンシューマー TXID)

String (文字列)

メッセージをコンシュームしたトランザクションの ID。

Jmsx Rcv Timestamp (JMSX 受信タイムスタンプ)

Number (数値)

JMS がコンシューマーにメッセージを配信した時間。

### [](#Tls)TLS
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。

Trust Store (トラストストア)

Key Store (キーストア)

Revocation Check (取り消し確認)

### [](#TrustStore)Trust Store (トラストストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true の場合、証明書の検証が実行されず、攻撃に対して接続が脆弱になります。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

キーストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーがある場合、この属性は、使用する鍵の別名を示します。定義しない場合、デフォルトでファイル内の最初の鍵が使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#standard-revocation-check)Standard Revocation Check (標準の取り消し確認)
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に OCSP ではなく CRL を試みます。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法 (以前に選択されていない方法) を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#custom-ocsp-responder)Custom OCSP Responder (カスタム OCSP レスポンダー)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#crl-file)CRL File (CRL ファイル)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#ActiveMQConnectionFactoryConfiguration)Active MQ 接続ファクトリー設定
項目 型 説明 デフォルト値 必須

Broker Url (ブローカー URL)

String (文字列)

接続するブローカーのアドレス。

vm://localhost?broker.persistent=false&broker.useJmx=false

Enable Xa (Xa の有効化)

Boolean (ブール)

ConnectionFactory は XA をサポートする必要があります。

false

Initial Redelivery Delay (初期再配信遅延)

Number (数値)

RedeliveryPolicy#getInitialRedeliveryDelay() の設定に使用します。この機能は、XA コンテキストでは使用できません。

1000

Redelivery Delay (再配信遅延)

Number (数値)

RedeliveryPolicy#getRedeliveryDelay() の設定に使用します。この機能は、XA コンテキストでは使用できません。

1000

Max Redelivery (最大再配信数)

Number (数値)

RedeliveryPolicy#getMaximumRedeliveries() の設定に使用します。メッセージがデッドレターキューに送信される前に再配信される最大回数を設定します。 配信なしは 0 で表され、-1 は無限に再配信を受け入れることを意味します。

0

信頼されるパッケージ

Array of String (文字列の配列)

送信および受信することが許可されたクラスのパッケージ。バージョン 5.12.2 および 5.13.0 以降、ActiveMQ では、ObjectMessages を使用してエクスチェンジできるパッケージを明示的に許可する必要があります。

すべてのパッケージを信頼

Boolean (ブール)

すべてのパッケージのクラスを送受信できるかどうかを示します。このパラメーターを有効にすると、悪意のあるペイロードがホストシステムを不正に使用する可能性があるため、安全ではなくなります。バージョン 5.12.2 および 5.13.0 以降、ActiveMQ では、ObjectMessages を使用してエクスチェンジできるパッケージを明示的に許可する必要があります。

false

### [](#topic-consumer)Topic Consumer (トピックコンシューマー)
項目 型 説明 デフォルト値 必須

Durable (永続的)

Boolean (ブール)

クライアントが接続されていない場合にメッセージがキャッシュされるかどうかを示します。

false

Shared (共有)

Boolean (ブール)

サブスクリプションがコンシューマー間で共有されるかどうかを示します。

false

No Local (非ローカル)

Boolean (ブール)

独自の接続によって公開されるメッセージの配信を抑制します。

false

Subscription Name (サブスクリプション名)

String (文字列)

サブスクリプションの名前。

### [](#default-caching)Default Caching (デフォルトキャッシュ)
項目 型 説明 デフォルト値 必須

Session Cache Size (セッションキャッシュサイズ)

Number (数値)

セッションキャッシュのサイズ。

Cache Producers (キャッシュプロデューサー)

Boolean (ブール)

プロデューサーをキャッシュするかどうかを示します。

true

Cache Consumers (キャッシュコンシューマー)

Boolean (ブール)

コンシューマーをキャッシュするかどうかを示します。

true

### [](#JndiConnectionFactory)JNDI Connection Factory (JNDI 接続ファクトリー)
項目 型 説明 デフォルト値 必須

Connection Factory Jndi Name (接続ファクトリー JNDI 名)

String (文字列)

JNDI を使用して検出する ConnectionFactory の名前であり、ConnectionFactory の代理として使用されます。

x

Lookup Destination (ルックアップ宛先)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • ALWAYS

  • TRY_ALWAYS

宛先。

NEVER

Name Resolver Provider (名前解決機能プロバイダー)

JndiNameResolver のプロバイダー。

x

### [](#JndiNameResolverProvider)JNDI Name Resolver Provider (JNDI 名前解決機能プロバイダー)
項目 型 説明 デフォルト値 必須

Custom JNDI Name Resolver (カスタム JNDI 名前解決機能)

カスタム JndiNameResolver 実装への参照。

Name Resolver Builder (名前解決機能ビルダー)

SimpleJndiNameResolver をビルドするために必要なプロパティ。

### [](#JndiNameResolverProperties)JNDI Name Resolver Properties (JNDI 名前解決機能プロパティ)
項目 型 説明 デフォルト値 必須

Jndi Initial Context Factory (JNDI 初期コンテキストファクトリー)

String (文字列)

初期コンテキストを作成するファクトリークラスの完全修飾名。

x

Jndi Provider Url (JNDI プロバイダー URL)

String (文字列)

JNDI サービスプロバイダー URL。

Provider Properties (プロバイダープロパティ)

Object (オブジェクト)

JNDI 名前解決機能コンテキストに渡すプロパティ。

### [](#SimpleJndiNameResolver)Simple JNDI Name Resolver (シンプル JNDI 名前解決機能)
項目 型 説明 デフォルト値 必須

Context Factory (コンテキストファクトリー)

Object (オブジェクト)

初期コンテキストを作成するファクトリークラスの完全修飾名。

Jndi Initial Factory (JNDI 初期ファクトリー)

String (文字列)

使用する初期コンテキストファクトリーを指定するための環境プロパティの名前。

Jndi Provider Properties (JNDI プロバイダープロパティ)

Object (オブジェクト)

JNDI 名前解決機能コンテキストに渡すプロパティ。

Jndi Provider Url (JNDI プロバイダー URL)

String (文字列)

JNDI プロバイダーの URL。

### [](#CachedJndiNameResolver)Cached JNDI Name Resolver (キャッシュされた JNDI 名前解決機能)
項目 型 説明 デフォルト値 必須

Context Factory (コンテキストファクトリー)

Object (オブジェクト)

初期コンテキストを作成するファクトリークラスの完全修飾クラス名。

Jndi Initial Factory (JNDI 初期ファクトリー)

String (文字列)

使用する初期コンテキストファクトリーを指定するための環境プロパティの名前。

Jndi Provider Properties (JNDI プロバイダープロパティ)

Object (オブジェクト)

JNDI 名前解決機能コンテキストに渡すプロパティ。

Jndi Provider Url (JNDI プロバイダー URL)

String (文字列)

JNDI プロバイダーの URL。

### [](#システムプロパティ)システムプロパティ コネクタの以下のシステムプロパティを設定できます。
プロパティ 説明

mule.jms.generic.additionalCertificateFileName

追加する SSL 証明書が含まれる JKS ファイルの名前。

mule.jms.generic.additionalCertificatePassword

mule.jms.generic.additionalCertificatePassword​ プロパティに設定するトラストストアパスワード。

これらのシステムプロパティを設定するときに、​**\[Caching strategy (キャッシュ戦略)\]**​ 項目を ​**\[Default caching (Default) (デフォルトキャッシュ (デフォルト))\]**​ ではなく、この項目を ​**\[No caching (キャッシュしない)\]**​ に設定してください。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # JMS Connector を使用したトピックサブスクリプションの設定 JMS のトピックサブスクリプションにより、コンシューマーの接続に関するサブスクリプションの動作と、コンシューマーがやり取りする方法を設定できます。 JMS 用 Anypoint Connector (JMS Connector) の ​**Consumer**​ および ​**On New Message**​ 操作では、​**\[Consumer type (コンシューマー種別)\]**​ 項目で ​**\[Topic consumer (トピックコンシューマー)\]**​ 設定を選択することで、トピックサブスクリプションを管理します。 ## [](#永続的なサブスクリプションの設定)永続的なサブスクリプションの設定 永続的なサブスクリプションにより、コンシューマーのオフライン中にトピックにパブリッシュされたメッセージを受信できます。 JMS プロバイダーでは、キューに送信されたメッセージを保存する場合と同様にトピックに送信またはパブリッシュされたメッセージを保存します。別のアプリケーションの ​**\[Topic consumer (トピックコンシューマー)\]**​ 設定で同じ接続、クライアント ID、トピック、およびサブスクリプション名が使用されている場合、サブスクリプションは再アクティブ化され、サブスクライバーが非アクティブになっていた間にパブリッシュされたメッセージが JMS プロバイダーにより配信されます。 次の例では、​**\[Topic consumer (トピックコンシューマー)\]**​ を ​**\[Durable (永続的)\]**​ に設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`#[vars.destination]`​ に設定します。 3. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 4. **\[Durable (永続的)\]**​ オプションを選択します。 5. **\[Subscription name (サブスクリプション名)\]**​ を ​`SampleSub`​ に設定します。 ![Consume 操作の画面のトピックコンシューマーの設定で \[Durable (永続的)\] を選択する](_images/jms-topic-durable.png) Figure 1. JMS Connector のトピックコンシューマーの永続的の設定 XML エディターでは、​``​ および ​`durable`​ の設定は次のように記述されます。 ```xml ``` ## [](#共有サブスクリプションの設定)共有サブスクリプションの設定 JMS 仕様 1.1 の接続では、一度に複数のコンシューマーをトピックのサブスクリプションに含めることはできません。つまり、トピックサブスクリプションのメッセージ処理作業を共有できないため、アプリケーションの拡張性が制限されます。 JMS 仕様 2.0 の接続では、この制限がなくなり、同じサブスクリプションで共有コンシューマーを設定できます。 次の例では、​**\[Topic consumer (トピックコンシューマー)\]**​ を ​**\[Shared (共有)\]**​ に設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`InvoiceEventsTopic`​ に設定します。 3. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 4. **\[Shared (共有)\]**​ オプションを選択します。 5. **\[Subscription name (サブスクリプション名)\]**​ を ​`ClusterSubscription`​ に設定します。 ![Consume 操作の画面のトピックコンシューマーの設定で \[Shared (共有)\] を選択する](_images/jms-topic-shared.png) Figure 2. JMS Connector のトピックコンシューマーの共有の設定 XML エディターでは、​``​ および ​`shared`​ の設定は次のように記述されます。 ```xml ``` ## [](#非ローカルサブスクリプションの設定)非ローカルサブスクリプションの設定 同じアプリケーションによってトピックにパブリッシュされたメッセージを、受信しないようにしたいといった場合があります。同じ接続によってトピックにパブリッシュされたメッセージをコンシューマーが受信しないようにするには、​**\[Topic consumer (トピックコンシューマー)\]**​ 項目を ​**\[No local (非ローカル)\]**​ に設定します。非ローカルとして設定されているコンシューマーを共有サブスクリプションの一部に加えることはできません。 次の例では、​**\[Topic consumer (トピックコンシューマー)\]**​ を ​**\[No local (非ローカル)\]**​ に設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`{notificationsChannel}`​ に設定します。 3. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 4. **\[No local (非ローカル)\]**​ オプションを選択します。 ![Consume 操作の画面のトピックコンシューマーの設定で \[No local (非ローカル)\] を選択する](_images/jms-topic-nolocal.png) Figure 3. JMS Connector のトピックコンシューマーの非ローカルの設定 XML エディターでは、​``​ および ​`noLocal`​ の設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-listener) - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-consume) # JMS Connector を使用したトピックサブスクリプションの設定 JMS のトピックサブスクリプションにより、コンシューマーの接続に関するサブスクリプションの動作と、コンシューマーがやり取りする方法を設定できます。 JMS 用 Anypoint Connector (JMS Connector) の ​**Consumer**​ および ​**On New Message**​ 操作では、​**\[Consumer type (コンシューマー種別)\]**​ 項目で ​**\[Topic consumer (トピックコンシューマー)\]**​ 設定を選択することで、トピックサブスクリプションを管理します。 ## [](#永続的なサブスクリプションの設定)永続的なサブスクリプションの設定 永続的なサブスクリプションにより、コンシューマーのオフライン中にトピックにパブリッシュされたメッセージを受信できます。 JMS プロバイダーでは、キューに送信されたメッセージを保存する場合と同様にトピックに送信またはパブリッシュされたメッセージを保存します。別のアプリケーションの ​**\[Topic consumer (トピックコンシューマー)\]**​ 設定で同じ接続、クライアント ID、トピック、およびサブスクリプション名が使用されている場合、サブスクリプションは再アクティブ化され、サブスクライバーが非アクティブになっていた間にパブリッシュされたメッセージが JMS プロバイダーにより配信されます。 次の例では、​**\[Topic consumer (トピックコンシューマー)\]**​ を ​**\[Durable (永続的)\]**​ に設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`#[vars.destination]`​ に設定します。 3. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 4. **\[Durable (永続的)\]**​ オプションを選択します。 5. **\[Subscription name (サブスクリプション名)\]**​ を ​`SampleSub`​ に設定します。 ![Consume 操作の画面のトピックコンシューマーの設定で \[Durable (永続的)\] を選択する](_images/jms-topic-durable.png) Figure 1. JMS Connector のトピックコンシューマーの永続的の設定 XML エディターでは、​``​ および ​`durable`​ の設定は次のように記述されます。 ```xml ``` ## [](#共有サブスクリプションの設定)共有サブスクリプションの設定 JMS 仕様 1.1 の接続では、一度に複数のコンシューマーをトピックのサブスクリプションに含めることはできません。つまり、トピックサブスクリプションのメッセージ処理作業を共有できないため、アプリケーションの拡張性が制限されます。 JMS 仕様 2.0 の接続では、この制限がなくなり、同じサブスクリプションで共有コンシューマーを設定できます。 次の例では、​**\[Topic consumer (トピックコンシューマー)\]**​ を ​**\[Shared (共有)\]**​ に設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`InvoiceEventsTopic`​ に設定します。 3. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 4. **\[Shared (共有)\]**​ オプションを選択します。 5. **\[Subscription name (サブスクリプション名)\]**​ を ​`ClusterSubscription`​ に設定します。 ![Consume 操作の画面のトピックコンシューマーの設定で \[Shared (共有)\] を選択する](_images/jms-topic-shared.png) Figure 2. JMS Connector のトピックコンシューマーの共有の設定 XML エディターでは、​``​ および ​`shared`​ の設定は次のように記述されます。 ```xml ``` ## [](#非ローカルサブスクリプションの設定)非ローカルサブスクリプションの設定 同じアプリケーションによってトピックにパブリッシュされたメッセージを、受信しないようにしたいといった場合があります。同じ接続によってトピックにパブリッシュされたメッセージをコンシューマーが受信しないようにするには、​**\[Topic consumer (トピックコンシューマー)\]**​ 項目を ​**\[No local (非ローカル)\]**​ に設定します。非ローカルとして設定されているコンシューマーを共有サブスクリプションの一部に加えることはできません。 次の例では、​**\[Topic consumer (トピックコンシューマー)\]**​ を ​**\[No local (非ローカル)\]**​ に設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`{notificationsChannel}`​ に設定します。 3. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 4. **\[No local (非ローカル)\]**​ オプションを選択します。 ![Consume 操作の画面のトピックコンシューマーの設定で \[No local (非ローカル)\] を選択する](_images/jms-topic-nolocal.png) Figure 3. JMS Connector のトピックコンシューマーの非ローカルの設定 XML エディターでは、​``​ および ​`noLocal`​ の設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-listener) - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-consume) # JMS Connector を使用したトピックサブスクリプションの設定 JMS のトピックサブスクリプションにより、コンシューマーの接続に関するサブスクリプションの動作と、コンシューマーがやり取りする方法を設定できます。 JMS 用 Anypoint Connector (JMS Connector) の ​**Consumer**​ および ​**On New Message**​ 操作では、​**\[Consumer type (コンシューマー種別)\]**​ 項目で ​**\[Topic consumer (トピックコンシューマー)\]**​ 設定を選択することで、トピックサブスクリプションを管理します。 ## [](#永続的なサブスクリプションの設定)永続的なサブスクリプションの設定 永続的なサブスクリプションにより、コンシューマーのオフライン中にトピックにパブリッシュされたメッセージを受信できます。 JMS プロバイダーでは、キューに送信されたメッセージを保存する場合と同様にトピックに送信またはパブリッシュされたメッセージを保存します。別のアプリケーションの ​**\[Topic consumer (トピックコンシューマー)\]**​ 設定で同じ接続、クライアント ID、トピック、およびサブスクリプション名が使用されている場合、サブスクリプションは再アクティブ化され、サブスクライバーが非アクティブになっていた間にパブリッシュされたメッセージが JMS プロバイダーにより配信されます。 次の例では、​**\[Topic consumer (トピックコンシューマー)\]**​ を ​**\[Durable (永続的)\]**​ に設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`#[vars.destination]`​ に設定します。 3. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 4. **\[Durable (永続的)\]**​ オプションを選択します。 5. **\[Subscription name (サブスクリプション名)\]**​ を ​`SampleSub`​ に設定します。 ![Consume 操作の画面のトピックコンシューマーの設定で \[Durable (永続的)\] を選択する](_images/jms-topic-durable.png) Figure 1. JMS Connector のトピックコンシューマーの永続的の設定 XML エディターでは、​``​ および ​`durable`​ の設定は次のように記述されます。 ```xml ``` ## [](#共有サブスクリプションの設定)共有サブスクリプションの設定 JMS 仕様 1.1 の接続では、一度に複数のコンシューマーをトピックのサブスクリプションに含めることはできません。つまり、トピックサブスクリプションのメッセージ処理作業を共有できないため、アプリケーションの拡張性が制限されます。 JMS 仕様 2.0 の接続では、この制限がなくなり、同じサブスクリプションで共有コンシューマーを設定できます。 次の例では、​**\[Topic consumer (トピックコンシューマー)\]**​ を ​**\[Shared (共有)\]**​ に設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`InvoiceEventsTopic`​ に設定します。 3. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 4. **\[Shared (共有)\]**​ オプションを選択します。 5. **\[Subscription name (サブスクリプション名)\]**​ を ​`ClusterSubscription`​ に設定します。 ![Consume 操作の画面のトピックコンシューマーの設定で \[Shared (共有)\] を選択する](_images/jms-topic-shared.png) Figure 2. JMS Connector のトピックコンシューマーの共有の設定 XML エディターでは、​``​ および ​`shared`​ の設定は次のように記述されます。 ```xml ``` ## [](#非ローカルサブスクリプションの設定)非ローカルサブスクリプションの設定 同じアプリケーションによってトピックにパブリッシュされたメッセージを、受信しないようにしたいといった場合があります。同じ接続によってトピックにパブリッシュされたメッセージをコンシューマーが受信しないようにするには、​**\[Topic consumer (トピックコンシューマー)\]**​ 項目を ​**\[No local (非ローカル)\]**​ に設定します。非ローカルとして設定されているコンシューマーを共有サブスクリプションの一部に加えることはできません。 次の例では、​**\[Topic consumer (トピックコンシューマー)\]**​ を ​**\[No local (非ローカル)\]**​ に設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`{notificationsChannel}`​ に設定します。 3. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 4. **\[No local (非ローカル)\]**​ オプションを選択します。 ![Consume 操作の画面のトピックコンシューマーの設定で \[No local (非ローカル)\] を選択する](_images/jms-topic-nolocal.png) Figure 3. JMS Connector のトピックコンシューマーの非ローカルの設定 XML エディターでは、​``​ および ​`noLocal`​ の設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-listener) - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-consume) # JMS Connector を使用したトピックサブスクリプションの設定 JMS のトピックサブスクリプションにより、コンシューマーの接続に関するサブスクリプションの動作と、コンシューマーがやり取りする方法を設定できます。 JMS 用 Anypoint Connector (JMS Connector) の ​**Consumer**​ および ​**On New Message**​ 操作では、​**\[Consumer type (コンシューマー種別)\]**​ 項目で ​**\[Topic consumer (トピックコンシューマー)\]**​ 設定を選択することで、トピックサブスクリプションを管理します。 ## [](#永続的なサブスクリプションの設定)永続的なサブスクリプションの設定 永続的なサブスクリプションにより、コンシューマーのオフライン中にトピックにパブリッシュされたメッセージを受信できます。 JMS プロバイダーでは、キューに送信されたメッセージを保存する場合と同様にトピックに送信またはパブリッシュされたメッセージを保存します。別のアプリケーションの ​**\[Topic consumer (トピックコンシューマー)\]**​ 設定で同じ接続、クライアント ID、トピック、およびサブスクリプション名が使用されている場合、サブスクリプションは再アクティブ化され、サブスクライバーが非アクティブになっていた間にパブリッシュされたメッセージが JMS プロバイダーにより配信されます。 次の例では、​**\[Topic consumer (トピックコンシューマー)\]**​ を ​**\[Durable (永続的)\]**​ に設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`#[vars.destination]`​ に設定します。 3. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 4. **\[Durable (永続的)\]**​ オプションを選択します。 5. **\[Subscription name (サブスクリプション名)\]**​ を ​`SampleSub`​ に設定します。 ![Consume 操作の画面のトピックコンシューマーの設定で \[Durable (永続的)\] を選択する](_images/jms-topic-durable.png) Figure 1. JMS Connector のトピックコンシューマーの永続的の設定 XML エディターでは、​``​ および ​`durable`​ の設定は次のように記述されます。 ```xml ``` ## [](#共有サブスクリプションの設定)共有サブスクリプションの設定 JMS 仕様 1.1 の接続では、一度に複数のコンシューマーをトピックのサブスクリプションに含めることはできません。つまり、トピックサブスクリプションのメッセージ処理作業を共有できないため、アプリケーションの拡張性が制限されます。 JMS 仕様 2.0 の接続では、この制限がなくなり、同じサブスクリプションで共有コンシューマーを設定できます。 次の例では、​**\[Topic consumer (トピックコンシューマー)\]**​ を ​**\[Shared (共有)\]**​ に設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`InvoiceEventsTopic`​ に設定します。 3. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 4. **\[Shared (共有)\]**​ オプションを選択します。 5. **\[Subscription name (サブスクリプション名)\]**​ を ​`ClusterSubscription`​ に設定します。 ![Consume 操作の画面のトピックコンシューマーの設定で \[Shared (共有)\] を選択する](_images/jms-topic-shared.png) Figure 2. JMS Connector のトピックコンシューマーの共有の設定 XML エディターでは、​``​ および ​`shared`​ の設定は次のように記述されます。 ```xml ``` ## [](#非ローカルサブスクリプションの設定)非ローカルサブスクリプションの設定 同じアプリケーションによってトピックにパブリッシュされたメッセージを、受信しないようにしたいといった場合があります。同じ接続によってトピックにパブリッシュされたメッセージをコンシューマーが受信しないようにするには、​**\[Topic consumer (トピックコンシューマー)\]**​ 項目を ​**\[No local (非ローカル)\]**​ に設定します。非ローカルとして設定されているコンシューマーを共有サブスクリプションの一部に加えることはできません。 次の例では、​**\[Topic consumer (トピックコンシューマー)\]**​ を ​**\[No local (非ローカル)\]**​ に設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`{notificationsChannel}`​ に設定します。 3. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 4. **\[No local (非ローカル)\]**​ オプションを選択します。 ![Consume 操作の画面のトピックコンシューマーの設定で \[No local (非ローカル)\] を選択する](_images/jms-topic-nolocal.png) Figure 3. JMS Connector のトピックコンシューマーの非ローカルの設定 XML エディターでは、​``​ および ​`noLocal`​ の設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-listener) - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-consume) # JMS Connector を使用したメッセージのコンシューム JMS 用 Anypoint Connector (JMS Connector) の ​**Consume**​ 操作を使用すると、フローの任意の時点で任意の指定宛先からのメッセージをコンシュームできます。 ## [](#キューからのメッセージのコンシューム)キューからのメッセージのコンシューム 次の例では、​**\[Destination (宛先)\]**​ 項目で指定したキュー内の新規メッセージをコンシュームするように ​**Consume**​ 操作を設定します。この操作では、キューで JMS メッセージが使用可能になるたびに Mule メッセージが返されます。Mule メッセージは次の要素で構成されます。 - ペイロードとしてのメッセージのコンテンツ - メッセージ属性に含まれるメッセージのメタデータ このメタデータは、3 つの部分から構成され、JMS メッセージで使用できるすべての情報にマップされます。 - AckId - ヘッダー - プロパティ デフォルトでは、コンシュームされたメッセージは、メッセージを受信するフローの実行が正常に完了した場合にのみ肯定応答されます (「ACKed」)。何らかの処理を行った後でメッセージの肯定応答を制御する場合は、​`ackMode`​ を ​`MANUAL`​ に設定します。 メッセージ肯定応答についての詳細は、​[「メッセージ肯定応答の管理」](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-ack)​を参照してください。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[Consume\]**​ を選択します。 2. **\[Consume\]**​ を Studio キャンバスにドラッグします。 3. **\[Consume\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 ![Consume 操作の画面で \[Destination (宛先)\] 項目を、メッセージのコンシューム元である宛先の名前に設定する](_images/jms-consume-queue.png) Figure 1. JMS Connector の Consume の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#トピックサブスクリプションからのメッセージのコンシューム)トピックサブスクリプションからのメッセージのコンシューム 次の例では、​**\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定し、トピックサブスクリプションから新規メッセージをコンシュームするように ​**Consume**​ 操作を設定します。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[Consume\]**​ を選択します。 2. **\[Consume\]**​ を Studio キャンバスにドラッグします。 3. **\[Consume\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 5. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 ![Consume 操作の画面で \[Destination (宛先)\] 項目を設定し、\[Consumer Type (コンシューマー種別)\] 項目を \[Topic consumer (トピックコンシューマー)\] に設定する](_images/jms-consume-topic.png) Figure 2. JMS Connector の Consume のトピックサブスクリプションの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#メッセージの待機)メッセージの待機 デフォルトでは、​**Consume**​ 操作では、メッセージを最大 10,000 ミリ秒待機した後、エラー ​`JMS:TIMEOUT`​ を送信します。 ユーザーのユースケースに合わせて、​**\[Maximum wait (最大待機)\]**​ および ​**\[Maximum wait unit (最大待機単位)\]**​ 項目を設定します。 メッセージの到着を無制限に待つ場合は、​**\[Maximum wait (最大待機)\]**​ 項目を ​`-1`​ に設定します。これで、​`JMS:TIMEOUT`​ エラーが回避されます。 ## [](#メッセージのポーリング)メッセージのポーリング 特定の頻度でメッセージをポーリングする場合、メッセージの待機でコンシューマーをブロックすることは望まれませんが、代わりに、メッセージが存在する場合にメッセージのコンシュームを試みることはできます。 この場合、​**\[Maximum wait (最大待機)\]**​ 項目を ​`0`​ に設定します。これにより、待機は発生せず、指定した宛先に使用できるメッセージがなくてもエラーはスローされません。 コンシュームできるメッセージが存在しない場合、​**Consume**​ 操作の出力は ​`null`​ になり、エラーはスローされません。 ## [](#受信メッセージの絞り込み)受信メッセージの絞り込み JMS Connector では、​**Consume**​ 操作の ​**\[Selector (セレクター)\]**​ 項目で指定した標準の JMS セレクター言語に基づいて、コンシュームするメッセージを絞り込むことができます。これにより、セレクター言語に一致するメッセージのみが受信され、宛先にある他のメッセージはすべて無視されます。 次の例では、他のキューよりも先にメッセージを処理する優先キューを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`openTickets`​ に設定します。 3. **\[Selector (セレクター)\]**​ 項目を ​`JMSPriority=8`​ に設定します。 JMS Connector の On New Message のメッセージの絞り込み image::jms-consume-selector.png\[Consume 操作の画面で、受信メッセージを絞り込むように \[Selector (セレクター)\] 項目を設定する\] XML エディターでは、​`selector`​ 設定は次のように記述されます。 ```xml ``` ## [](#mime-タイプとエンコードの設定)MIME タイプとエンコードの設定 JMS Connector では、​`MM_MESSAGE_CONTENT_TYPE`​ プロパティに基づいてメッセージの MIME タイプ (​`contentType`​) を判別します。ただし、メッセージのコンテンツを管理する必要がある場合は、​**\[Content-Type (コンテンツタイプ)\]**​ 項目を、必要な特定のコンテンツタイプ値に設定します。 デフォルトでは、他の情報が提供されていない場合、JMS Connector は Mule Runtime Engine のデフォルトエンコードがメッセージのエンコードと一致するものと想定します。別の種別のエンコードを設定するには、​**\[Encoding (エンコード)\]**​ 項目を使用します。 次の例では、コンテンツタイプとエンコードを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Content-Type (コンテンツタイプ)\]**​ 項目を ​`application/JSON`​ に設定します。 3. **\[Encoding (エンコード)\]**​ 項目を ​`UTF-8`​ に設定します。 ![Consume 操作の画面で、\[Content-Type (コンテンツタイプ)\] 項目と \[Encoding (エンコード)\] 項目を設定する](_images/jms-consume-types-encoding.png) Figure 3. JMS Connector の Consume のコンテンツタイプとエンコード XML エディターでは、​`contentType`​ および ​`encoding`​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-topic-subscription) - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-listener) - [プリフェッチの問題のトラブルシューティング](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-troubleshooting#prefetch-issues) # JMS Connector を使用したメッセージのコンシューム JMS 用 Anypoint Connector (JMS Connector) の ​**Consume**​ 操作を使用すると、フローの任意の時点で任意の指定宛先からのメッセージをコンシュームできます。 ## [](#キューからのメッセージのコンシューム)キューからのメッセージのコンシューム 次の例では、​**\[Destination (宛先)\]**​ 項目で指定したキュー内の新規メッセージをコンシュームするように ​**Consume**​ 操作を設定します。この操作では、キューで JMS メッセージが使用可能になるたびに Mule メッセージが返されます。Mule メッセージは次の要素で構成されます。 - ペイロードとしてのメッセージの内容 - メッセージ属性に含まれるメッセージのメタデータ このメタデータは、3 つの部分から構成され、JMS メッセージで使用できるすべての情報にマップされます。 - AckId - ヘッダー - プロパティ デフォルトでは、コンシュームされたメッセージは、メッセージを受信するフローの実行が正常に完了した場合にのみ肯定応答されます (「ACKed」)。何らかの処理を行った後でメッセージの肯定応答を制御する場合は、​`ackMode`​ を ​`MANUAL`​ に設定します。 メッセージ肯定応答についての詳細は、​[「メッセージ肯定応答の管理」](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-ack)​を参照してください。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[Consume\]**​ を選択します。 2. **\[Consume\]**​ を Studio キャンバスにドラッグします。 3. **\[Consume\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 ![Consume 操作の画面で \[Destination (宛先)\] 項目を、メッセージのコンシューム元である宛先の名前に設定する](_images/jms-consume-queue.png) Figure 1. JMS Connector の Consume の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#トピックサブスクリプションからのメッセージのコンシューム)トピックサブスクリプションからのメッセージのコンシューム 次の例では、​**\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定し、トピックサブスクリプションから新規メッセージをコンシュームするように ​**Consume**​ 操作を設定します。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[Consume\]**​ を選択します。 2. **\[Consume\]**​ を Studio キャンバスにドラッグします。 3. **\[Consume\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 5. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 ![Consume 操作の画面で \[Destination (宛先)\] 項目を設定し、\[Consumer Type (コンシューマー種別)\] 項目を \[Topic consumer (トピックコンシューマー)\] に設定する](_images/jms-consume-topic.png) Figure 2. JMS Connector の Consume のトピックサブスクリプションの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#メッセージの待機)メッセージの待機 デフォルトでは、​**Consume**​ 操作では、メッセージを最大 10,000 ミリ秒待機した後、エラー ​`JMS:TIMEOUT`​ を送信します。 ユーザーのユースケースに合わせて、​**\[Maximum wait (最大待機)\]**​ および ​**\[Maximum wait unit (最大待機単位)\]**​ 項目を設定します。 メッセージの到着を無制限に待つ場合は、​**\[Maximum wait (最大待機)\]**​ 項目を ​`-1`​ に設定します。これで、​`JMS:TIMEOUT`​ エラーが回避されます。 ## [](#メッセージのポーリング)メッセージのポーリング 特定の頻度でメッセージをポーリングする場合、メッセージの待機でコンシューマーをブロックすることは望まれませんが、代わりに、メッセージが存在する場合にメッセージのコンシュームを試みることはできます。 この場合、​**\[Maximum wait (最大待機)\]**​ 項目を ​`0`​ に設定します。これにより、待機は発生せず、指定した宛先に使用できるメッセージがなくてもエラーはスローされません。 コンシュームできるメッセージが存在しない場合、​**Consume**​ 操作の出力は ​`null`​ になり、エラーはスローされません。 ## [](#受信メッセージの絞り込み)受信メッセージの絞り込み JMS Connector では、​**Consume**​ 操作の ​**\[Selector (セレクター)\]**​ 項目で指定した標準の JMS セレクター言語に基づいて、コンシュームするメッセージを絞り込むことができます。これにより、セレクター言語に一致するメッセージのみが受信され、宛先にある他のメッセージはすべて無視されます。 次の例では、他のキューよりも先にメッセージを処理する優先キューを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`openTickets`​ に設定します。 3. **\[Selector (セレクター)\]**​ 項目を ​`JMSPriority=8`​ に設定します。 JMS Connector の On New Message のメッセージの絞り込み image::jms-consume-selector.png\[Consume 操作の画面で、受信メッセージを絞り込むように \[Selector (セレクター)\] 項目を設定する\] XML エディターでは、​`selector`​ 設定は次のように記述されます。 ```xml ``` ## [](#mime-タイプとエンコードの設定)MIME タイプとエンコードの設定 JMS Connector では、​`MM_MESSAGE_CONTENT_TYPE`​ プロパティに基づいてメッセージの MIME タイプ (​`contentType`​) を判別します。ただし、メッセージの内容を管理する必要がある場合は、​**\[Content-Type (コンテンツの種類)\]**​ 項目を、必要な特定のコンテンツの種類値に設定します。 デフォルトでは、他の情報が提供されていない場合、JMS Connector は Mule Runtime Engine のデフォルトエンコードがメッセージのエンコードと一致するものと想定します。別の種別のエンコードを設定するには、​**\[Encoding (エンコード)\]**​ 項目を使用します。 次の例では、コンテンツの種類とエンコードを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Content-Type (コンテンツの種類)\]**​ 項目を ​`application/JSON`​ に設定します。 3. **\[Encoding (エンコード)\]**​ 項目を ​`UTF-8`​ に設定します。 ![Consume 操作の画面で、\[Content-Type (コンテンツの種類)\] 項目と \[Encoding (エンコード)\] 項目を設定する](_images/jms-consume-types-encoding.png) Figure 3. JMS Connector の Consume のコンテンツの種類とエンコード XML エディターでは、​`contentType`​ および ​`encoding`​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-topic-subscription) - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-listener) # JMS Connector を使用したメッセージのコンシューム JMS 用 Anypoint Connector (JMS Connector) の ​**Consume**​ 操作を使用すると、フローの任意の時点で任意の指定宛先からのメッセージをコンシュームできます。 ## [](#キューからのメッセージのコンシューム)キューからのメッセージのコンシューム 次の例では、​**\[Destination (宛先)\]**​ 項目で指定したキュー内の新規メッセージをコンシュームするように ​**Consume**​ 操作を設定します。この操作では、キューで JMS メッセージが使用可能になるたびに Mule メッセージが返されます。Mule メッセージは次の要素で構成されます。 - ペイロードとしてのメッセージの内容 - メッセージ属性に含まれるメッセージのメタデータ このメタデータは、3 つの部分から構成され、JMS メッセージで使用できるすべての情報にマップされます。 - AckId - ヘッダー - プロパティ デフォルトでは、コンシュームされたメッセージは、メッセージを受信するフローの実行が正常に完了した場合にのみ肯定応答されます (「ACKed」)。何らかの処理を行った後でメッセージの肯定応答を制御する場合は、​`ackMode`​ を ​`MANUAL`​ に設定します。 メッセージ肯定応答についての詳細は、​[「メッセージ肯定応答の管理」](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-ack)​を参照してください。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[Consume\]**​ を選択します。 2. **\[Consume\]**​ を Studio キャンバスにドラッグします。 3. **\[Consume\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 ![Consume 操作の画面で \[Destination (宛先)\] 項目を、メッセージのコンシューム元である宛先の名前に設定する](_images/jms-consume-queue.png) Figure 1. JMS Connector の Consume の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#トピックサブスクリプションからのメッセージのコンシューム)トピックサブスクリプションからのメッセージのコンシューム 次の例では、​**\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定し、トピックサブスクリプションから新規メッセージをコンシュームするように ​**Consume**​ 操作を設定します。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[Consume\]**​ を選択します。 2. **\[Consume\]**​ を Studio キャンバスにドラッグします。 3. **\[Consume\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 5. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 ![Consume 操作の画面で \[Destination (宛先)\] 項目を設定し、\[Consumer Type (コンシューマー種別)\] 項目を \[Topic consumer (トピックコンシューマー)\] に設定する](_images/jms-consume-topic.png) Figure 2. JMS Connector の Consume のトピックサブスクリプションの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#メッセージの待機)メッセージの待機 デフォルトでは、​**Consume**​ 操作では、メッセージを最大 10,000 ミリ秒待機した後、エラー ​`JMS:TIMEOUT`​ を送信します。 ユーザーのユースケースに合わせて、​**\[Maximum wait (最大待機)\]**​ および ​**\[Maximum wait unit (最大待機単位)\]**​ 項目を設定します。 メッセージの到着を無制限に待つ場合は、​**\[Maximum wait (最大待機)\]**​ 項目を ​`-1`​ に設定します。これで、​`JMS:TIMEOUT`​ エラーが回避されます。 ## [](#メッセージのポーリング)メッセージのポーリング 特定の頻度でメッセージをポーリングする場合、メッセージの待機でコンシューマーをブロックすることは望まれませんが、代わりに、メッセージが存在する場合にメッセージのコンシュームを試みることはできます。 この場合、​**\[Maximum wait (最大待機)\]**​ 項目を ​`0`​ に設定します。これにより、待機は発生せず、指定した宛先に使用できるメッセージがなくてもエラーはスローされません。 コンシュームできるメッセージが存在しない場合、​**Consume**​ 操作の出力は ​`null`​ になり、エラーはスローされません。 ## [](#受信メッセージの絞り込み)受信メッセージの絞り込み JMS Connector では、​**Consume**​ 操作の ​**\[Selector (セレクター)\]**​ 項目で指定した標準の JMS セレクター言語に基づいて、コンシュームするメッセージを絞り込むことができます。これにより、セレクター言語に一致するメッセージのみが受信され、宛先にある他のメッセージはすべて無視されます。 次の例では、他のキューよりも先にメッセージを処理する優先キューを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`openTickets`​ に設定します。 3. **\[Selector (セレクター)\]**​ 項目を ​`JMSPriority=8`​ に設定します。 JMS Connector の On New Message のメッセージの絞り込み image::jms-consume-selector.png\[Consume 操作の画面で、受信メッセージを絞り込むように \[Selector (セレクター)\] 項目を設定する\] XML エディターでは、​`selector`​ 設定は次のように記述されます。 ```xml ``` ## [](#mime-タイプとエンコードの設定)MIME タイプとエンコードの設定 JMS Connector では、​`MM_MESSAGE_CONTENT_TYPE`​ プロパティに基づいてメッセージの MIME タイプ (​`contentType`​) を判別します。ただし、メッセージの内容を管理する必要がある場合は、​**\[Content-Type (内容の種類)\]**​ 項目を、必要な特定の内容の種類値に設定します。 デフォルトでは、他の情報が提供されていない場合、JMS Connector は Mule Runtime Engine のデフォルトエンコードがメッセージのエンコードと一致するものと想定します。別の種別のエンコードを設定するには、​**\[Encoding (エンコード)\]**​ 項目を使用します。 次の例では、内容の種類とエンコードを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Content-Type (内容の種類)\]**​ 項目を ​`application/JSON`​ に設定します。 3. **\[Encoding (エンコード)\]**​ 項目を ​`UTF-8`​ に設定します。 ![Consume 操作の画面で、\[Content-Type (内容の種類)\] 項目と \[Encoding (エンコード)\] 項目を設定する](_images/jms-consume-types-encoding.png) Figure 3. JMS Connector の Consume の内容の種類とエンコード XML エディターでは、​`contentType`​ および ​`encoding`​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-topic-subscription) - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-listener) - [プリフェッチの問題のトラブルシューティング](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-troubleshooting#prefetch-issues) # JMS Connector を使用したメッセージのコンシューム JMS 用 Anypoint Connector (JMS Connector) の ​**Consume**​ 操作を使用すると、フローの任意の時点で任意の指定宛先からのメッセージをコンシュームできます。 ## [](#キューからのメッセージのコンシューム)キューからのメッセージのコンシューム 次の例では、​**\[Destination (宛先)\]**​ 項目で指定したキュー内の新規メッセージをコンシュームするように ​**Consume**​ 操作を設定します。この操作では、キューで JMS メッセージが使用可能になるたびに Mule メッセージが返されます。Mule メッセージは次の要素で構成されます。 - ペイロードとしてのメッセージのコンテンツ - メッセージ属性に含まれるメッセージのメタデータ このメタデータは、3 つの部分から構成され、JMS メッセージで使用できるすべての情報にマップされます。 - AckId - ヘッダー - プロパティ デフォルトでは、コンシュームされたメッセージは、メッセージを受信するフローの実行が正常に完了した場合にのみ肯定応答されます (「ACKed」)。何らかの処理を行った後でメッセージの肯定応答を制御する場合は、​`ackMode`​ を ​`MANUAL`​ に設定します。 メッセージ肯定応答についての詳細は、​[「メッセージ肯定応答の管理」](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-ack)​を参照してください。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[Consume\]**​ を選択します。 2. **\[Consume\]**​ を Studio キャンバスにドラッグします。 3. **\[Consume\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 ![Consume 操作の画面で \[Destination (宛先)\] 項目を、メッセージのコンシューム元である宛先の名前に設定する](_images/jms-consume-queue.png) Figure 1. JMS Connector の Consume の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#トピックサブスクリプションからのメッセージのコンシューム)トピックサブスクリプションからのメッセージのコンシューム 次の例では、​**\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定し、トピックサブスクリプションから新規メッセージをコンシュームするように ​**Consume**​ 操作を設定します。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[Consume\]**​ を選択します。 2. **\[Consume\]**​ を Studio キャンバスにドラッグします。 3. **\[Consume\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 5. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 ![Consume 操作の画面で \[Destination (宛先)\] 項目を設定し、\[Consumer Type (コンシューマー種別)\] 項目を \[Topic consumer (トピックコンシューマー)\] に設定する](_images/jms-consume-topic.png) Figure 2. JMS Connector の Consume のトピックサブスクリプションの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#メッセージの待機)メッセージの待機 デフォルトでは、​**Consume**​ 操作では、メッセージを最大 10,000 ミリ秒待機した後、エラー ​`JMS:TIMEOUT`​ を送信します。 ユーザーのユースケースに合わせて、​**\[Maximum wait (最大待機)\]**​ および ​**\[Maximum wait unit (最大待機単位)\]**​ 項目を設定します。 メッセージの到着を無制限に待つ場合は、​**\[Maximum wait (最大待機)\]**​ 項目を ​`-1`​ に設定します。これで、​`JMS:TIMEOUT`​ エラーが回避されます。 ## [](#メッセージのポーリング)メッセージのポーリング 特定の頻度でメッセージをポーリングする場合、メッセージの待機でコンシューマーをブロックすることは望まれませんが、代わりに、メッセージが存在する場合にメッセージのコンシュームを試みることはできます。 この場合、​**\[Maximum wait (最大待機)\]**​ 項目を ​`0`​ に設定します。これにより、待機は発生せず、指定した宛先に使用できるメッセージがなくてもエラーはスローされません。 コンシュームできるメッセージが存在しない場合、​**Consume**​ 操作の出力は ​`null`​ になり、エラーはスローされません。 ## [](#受信メッセージの絞り込み)受信メッセージの絞り込み JMS Connector では、​**Consume**​ 操作の ​**\[Selector (セレクター)\]**​ 項目で指定した標準の JMS セレクター言語に基づいて、コンシュームするメッセージを絞り込むことができます。これにより、セレクター言語に一致するメッセージのみが受信され、宛先にある他のメッセージはすべて無視されます。 次の例では、他のキューよりも先にメッセージを処理する優先キューを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`openTickets`​ に設定します。 3. **\[Selector (セレクター)\]**​ 項目を ​`JMSPriority=8`​ に設定します。 JMS Connector の On New Message のメッセージの絞り込み image::jms-consume-selector.png\[Consume 操作の画面で、受信メッセージを絞り込むように \[Selector (セレクター)\] 項目を設定する\] XML エディターでは、​`selector`​ 設定は次のように記述されます。 ```xml ``` ## [](#mime-タイプとエンコードの設定)MIME タイプとエンコードの設定 JMS Connector では、​`MM_MESSAGE_CONTENT_TYPE`​ プロパティに基づいてメッセージの MIME タイプ (​`contentType`​) を判別します。ただし、メッセージのコンテンツを管理する必要がある場合は、​**\[Content-Type (コンテンツタイプ)\]**​ 項目を、必要な特定のコンテンツタイプ値に設定します。 デフォルトでは、他の情報が提供されていない場合、JMS Connector は Mule Runtime Engine のデフォルトエンコードがメッセージのエンコードと一致するものと想定します。別の種別のエンコードを設定するには、​**\[Encoding (エンコード)\]**​ 項目を使用します。 次の例では、コンテンツタイプとエンコードを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Content-Type (コンテンツタイプ)\]**​ 項目を ​`application/JSON`​ に設定します。 3. **\[Encoding (エンコード)\]**​ 項目を ​`UTF-8`​ に設定します。 ![Consume 操作の画面で、\[Content-Type (コンテンツタイプ)\] 項目と \[Encoding (エンコード)\] 項目を設定する](_images/jms-consume-types-encoding.png) Figure 3. JMS Connector の Consume のコンテンツタイプとエンコード XML エディターでは、​`contentType`​ および ​`encoding`​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-topic-subscription) - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-listener) - [プリフェッチの問題のトラブルシューティング](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-troubleshooting#prefetch-issues) # JMS Connector を使用したメッセージのパブリッシュ JMS 用 Anypoint Connector (JMS Connector) の ​**Publish**​ 操作を使用すると、新しい JMS メッセージを作成し、キューまたはトピックにかかわらず指定した宛先に送信できます。この操作を使用して、メッセージのコンテンツだけでなく、必要なヘッダーも設定できます。 ## [](#キューへのメッセージのパブリッシュ)キューへのメッセージのパブリッシュ **Publish**​ 操作では、メッセージペイロード内のすべての内容を、指定したキューにパブリッシュします。次の例では、​**\[Destination (宛先)\]**​ 項目で指定したキューにメッセージをパブリッシュするように操作を設定します: 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`invoiceQueue`​ など) に設定します。 ![「Publish」 設定画面で 「Destination (宛先)」 項目を、メッセージの送信先である宛先の名前に設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publish-config-1.png) Figure 1. キューへの Publish 操作の設定 XML エディターでは、​``​ および ​`destination`​ の設定は次のように記述されます。 ```xml ``` 適切な形式ではないためにペイロードを変換する必要がある場合、​**Publish**​ 操作の前に DataWeave 変換を配置できますが、これによりメッセージペイロードが変更され、変換の後に配置された操作に影響することがあります。 この影響を回避するには、​**Publish**​ 操作の内部に DataWeave 変換を配置します。この変換では、送信中のメッセージに影響することなく、パブリッシュするコンテンツが生成されます。次の例では、操作の内部で変換を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`invoiceQueue`​ など) に設定します。 3. **\[Body (本文)\]**​ 項目で、次の DataWeave 変換を設定します。 ```DataWeave %dw 2.0 output application/json --- payload.payments ``` ![「Publish」 設定画面で、DataWeave 変換を 「Body (本文)」 項目の内部に配置する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publish-config-2.png) Figure 2. Publish 操作での DataWeave 変換の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml #[%dw 2.0 output application/json --- payload.payments ] ``` ## [](#トピックへのメッセージのパブリッシュ)トピックへのメッセージのパブリッシュ **Publish**​ 操作では、指定したトピック宛先にメッセージをパブリッシュすることもできます。操作とメッセージのすべての設定は同じため、​**\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定するだけで済みます。 次の例では、トピック宛先にメッセージをパブリッシュするように操作を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名に設定します。例: .トピック宛先への Publish 操作の設定 image::jms-publish-config-3.png\[「Publish」 設定画面で、「Destination type (宛先種別)」 項目を 「TOPIC (トピック)」 に設定する\] XML エディターでは、​``​ および ​`destinationType`​ の設定は次のように記述されます。 ```xml #[%dw 2.0 output application/json --- payload.payments ] ``` ## [](#メッセージ配信のカスタマイズ)メッセージ配信のカスタマイズ 各 JMS メッセージには一連のヘッダーがあり、これらを使用して存続期間やメッセージの優先度などのメタデータを渡すことができます。 ### [](#優先キューの設定)優先キューの設定 優先キューを設定するには、​**\[Priority (優先度)\]**​ 項目をデフォルトとは異なる値に設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`priorityQueue`​ など) に設定します。 3. **\[Publish Configuration (パブリッシュ設定)\]**​ セクションで、​**\[Priority (優先度)\]**​ 項目を ​`attributes.queryParams.priority`​ に設定します。 ![「Publish」 設定画面で、「Priority (優先度)」 項目の値を設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publish-config-4.png) Figure 3. Publish 操作の優先度の設定 XML エディターでは、​``​ および ​`priority`​ の設定は次のように記述されます。 ```xml ``` ### [](#存続期間の設定)存続期間の設定 パブリッシュされた各 JMS メッセージは、存続期間ヘッダーと共に送信されます。このヘッダーではメッセージをコンシュームできる期間が宣言され、この期間が過ぎるとメッセージの有効期限が切れます。操作で ​**\[Time to live (存続期間)\]**​ 項目と ​**\[Time to live unit (存続期間単位)\]**​ 項目を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`vars.destination`​ など) に設定します。 3. **\[Publish Configuration (パブリッシュ設定)\]**​ セクションで、​**\[Time to live (存続期間)\]**​ 項目を ​`vars.timeToLive`​ に設定します。 4. **\[Time to live unit (存続期間単位)\]**​ 項目を ​**\[SECONDS (秒)\]**​ に設定します。 ![「Publish」 設定画面で、「Time to live (存続期間)」 項目の値を設定し、「Time to live unit (存続期間単位)」 を 「SECONDS (秒)」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publish-config-5.png) Figure 4. Publish 操作の存続期間の設定 XML エディターでは、​`timeToLive`​ および ​`timeToLiveUnit`​ の設定は次のように記述されます。 ```xml ``` JMS 2.0 仕様を使用している場合は、メッセージをコンシューマーが使用できるようになるまでの待機時間であるメッセージ配信遅延を制御することもできます。操作で ​**\[Delivery delay (配信遅延)\]**​ 項目と ​**\[Delivery delay unit (配信遅延単位)\]**​ 項目を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`vars.destination`​ など) に設定します。 3. **\[Delivery delay (配信遅延)\]**​ 項目を ​`${msgInitialDelay}`​ に設定します。 4. **\[Delivery delay unit (配信遅延単位)\]**​ 項目を ​**\[MILLISECONDS (ミリ秒)\]**​ に設定します。 ![「Publish」 設定画面で、「Delivery Delay (配信遅延)」 項目の値を設定し、「Delivery Delay Unit (配信遅延単位)」 項目を 「MILLISECONDS (ミリ秒)」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publish-config-6.png) Figure 5. Publish 操作の配信遅延の設定 XML エディターでは、​`deliveryDelay`​ および ​`deliveryDelayUnit`​ の設定は次のように記述されます。 ```xml ``` ## [](#応答宛先の設定)応答宛先の設定 送信されたメッセージへの非同期応答が必要な場合、​**Publish**​ 操作を使用すると、​**\[Reply to (応答先)\]**​ 項目で任意の応答宛先を宣言できます。応答宛先は、JMS ヘッダーとしてメッセージのコンシューマーに渡されます。 次の例では、応答宛先を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`vars.destination`​ など) に設定します。 3. **\[Reply to (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 4. **\[Destination name (宛先名)\]**​ 項目を ​`${completionEventsDestination}`​ に設定します。 5. **\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定します。 ![「\[Publish\] 設定画面で、\[Reply To (応答先)\] を \[Edit inline (インライン編集)\] に設定し、\[Destination name (宛先名)\] 項目の名前を設定し、\[Destination type (宛先種別)\] 項目を \[TOPIC (トピック)\] に設定する。」](_images/jms-publish-config-7.png) Figure 6. Publish 操作の応答先の設定 XML エディターでは、​``​、​`destination`​、および ​`destinationType`​ の設定は次のように記述されます。 ```xml ``` ## [](#相関-id-の設定)相関 ID の設定 **Publish**​ 操作では、​**\[Correlation ID (相関 ID)\]**​ 項目で送信メッセージの相関 ID を設定できます。 まず、メッセージのパブリッシュ時に相関 ID を送信するかどうかを設定する必要があります。送信する場合、​**\[Send correlation id (相関 ID を送信)\]**​ 項目を次のいずれかのオプションに設定します。 - **ALWAYS**​ 常にヘッダーを送信する - **NEVER**​ ヘッダーを送信しない - **AUTO**​ デフォルト値。アプリケーションの設定を使用する 次に、メッセージを送信するイベントの相関 ID を使用するか、メッセージビルダーで独自のカスタム相関 ID を設定できます。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`attributes.headers.replyTo.destination`​ など) に設定します。 3. **\[Send correlation id (相関 ID を送信)\]**​ 項目を ​**\[ALWAYS (常時)\]**​ に設定します。 4. **\[Correlation ID (相関 ID)\]**​ 項目を ​`attributes.headers.correlationId`​ に設定します。 ![「Publish」 設定画面で、「Send correlation ID (相関 ID を送信)」 項目を 「ALWAYS (常時)」 に設定し、「Correlation ID (相関 ID)」 項目をカスタム値に設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publish-config-8.png) Figure 7. Publish 操作の相関 ID の設定 XML エディターでは、​`endCorrelationId`​ および ​`correlationId`​ の設定は次のように記述されます。 ```xml ``` ## [](#メッセージプロパティの設定)メッセージプロパティの設定 JMS メッセージで各種プロパティを使用して、他のメッセージングシステムとの互換性の確立やカスタムメッセージセレクターの作成などを行うことができます。プロパティの一部はよく知られた JMS 標準プロパティですが、その他にも実装やカスタムユーザー設定に基づくプロパティがあります。​**Publish**​ 操作では、これらのプロパティをすべてメッセージ内で直接設定できます。 ### [](#ユーザープロパティの設定)ユーザープロパティの設定 送信メッセージのプロパティを設定する必要がある場合、メッセージ内で ​**\[Properties (プロパティ)\]**​ 項目を設定し、DataWeave を使用してマップのインライン宣言を行います。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`${bridgeDestination}`​ など) に設定します。 3. **\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定します。 4. **\[Body (本文)\]**​ 項目を ​`"bridged_" ++ payload`​ に設定します。 5. **\[Properties (プロパティ)\]**​ 項目を次の DataWeave コードに設定します。 ```DataWeave { AUTH_TYPE: 'jwt', AUTH_TOKEN: attributes.queryParams.token } ``` ![「Publish」 設定画面で、「Body (本文)」 項目と 「Properties (プロパティ)」 項目を設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publish-config-9.png) Figure 8. Publish 操作のプロパティの設定 XML エディターでは、​``​ および ​``​ の設定は次のように記述されます。 ```xml #["bridged_" ++ payload] #[{ AUTH_TYPE: 'jwt', AUTH_TOKEN: attributes.queryParams.token }] ``` ### [](#jmsx-プロパティの設定)JMSX プロパティの設定 JMS 仕様には JMSX プロパティが含まれます。このプロパティは、メッセージに関するメタデータが含まれるよく知られたプロパティセットです。次の例では、メッセージの ​**\[JMSX Properties (JMSX プロパティ)\]**​ 項目でこのプロパティを設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`${bridgeDestination}`​ など) に設定します。 3. **\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定します。 4. **\[Body (本文)\]**​ 項目を ​`"bridged_" ++ payload`​ に設定します。 5. **\[JMSX Properties (JMSX プロパティ)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 6. **\[Jmsx group id (Jmsx グループ ID)\]**​ 項目を ​`vars.currentGroup`​ に設定します。 7. **\[Jmsx user id (Jmsx ユーザー ID)\]**​ 項目を ​`${username}`​ に設定します。 ![「Publish」 設定画面で、「JMSX Properties (JMSX プロパティ)」 項目を 「Edit Inline (インライン編集)」 に設定し、「Jmsx group id (JMSX グループ ID)」 項目と 「Jmsx user id (JMSX ユーザー ID)」 項目を設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publish-config-10.png) Figure 9. Publish 操作の JMSX プロパティの設定 XML エディターでは、​``​、​`jmsxGroupID`​、および ​`jmsxUserID`​ の設定は次のように記述されます。 ```xml #["bridged_" ++ payload] ``` ## [](#関連情報)関連情報 [メッセージのパブリッシュと応答のコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-publish-consume) # JMS Connector を使用したメッセージのパブリッシュ JMS 用 Anypoint Connector (JMS Connector) の ​**Publish**​ 操作を使用すると、新しい JMS メッセージを作成し、キューまたはトピックにかかわらず指定した宛先に送信できます。この操作を使用して、メッセージの内容だけでなく、必要なヘッダーも設定できます。 ## [](#キューへのメッセージのパブリッシュ)キューへのメッセージのパブリッシュ **Publish**​ 操作では、メッセージペイロード内のすべての内容を、指定したキューにパブリッシュします。次の例では、​**\[Destination (宛先)\]**​ 項目で指定したキューにメッセージをパブリッシュするように操作を設定します: 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`invoiceQueue`​ など) に設定します。 ![「Publish」 設定画面で 「Destination (宛先)」 項目を、メッセージの送信先である宛先の名前に設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publish-config-1.png) Figure 1. キューへの Publish 操作の設定 XML エディターでは、​``​ および ​`destination`​ の設定は次のように記述されます。 ```xml ``` 適切な形式ではないためにペイロードを変換する必要がある場合、​**Publish**​ 操作の前に DataWeave 変換を配置できますが、これによりメッセージペイロードが変更され、変換の後に配置された操作に影響することがあります。 この影響を回避するには、​**Publish**​ 操作の内部に DataWeave 変換を配置します。この変換では、送信中のメッセージに影響することなく、パブリッシュするコンテンツが生成されます。次の例では、操作の内部で変換を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`invoiceQueue`​ など) に設定します。 3. **\[Body (本文)\]**​ 項目で、次の DataWeave 変換を設定します。 ```DataWeave %dw 2.0 output application/json --- payload.payments ``` ![「Publish」 設定画面で、DataWeave 変換を 「Body (本文)」 項目の内部に配置する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publish-config-2.png) Figure 2. Publish 操作での DataWeave 変換の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml #[%dw 2.0 output application/json --- payload.payments ] ``` ## [](#トピックへのメッセージのパブリッシュ)トピックへのメッセージのパブリッシュ **Publish**​ 操作では、指定したトピック宛先にメッセージをパブリッシュすることもできます。操作とメッセージのすべての設定は同じため、​**\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定するだけで済みます。 次の例では、トピック宛先にメッセージをパブリッシュするように操作を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名に設定します。例: .トピック宛先への Publish 操作の設定 image::jms-publish-config-3.png\[「Publish」 設定画面で、「Destination type (宛先種別)」 項目を 「TOPIC (トピック)」 に設定する\] XML エディターでは、​``​ および ​`destinationType`​ の設定は次のように記述されます。 ```xml #[%dw 2.0 output application/json --- payload.payments ] ``` ## [](#メッセージ配信のカスタマイズ)メッセージ配信のカスタマイズ 各 JMS メッセージには一連のヘッダーがあり、これらを使用して存続期間やメッセージの優先度などのメタデータを渡すことができます。 ### [](#優先キューの設定)優先キューの設定 優先キューを設定するには、​**\[Priority (優先度)\]**​ 項目をデフォルトとは異なる値に設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`priorityQueue`​ など) に設定します。 3. **\[Publish Configuration (パブリッシュ設定)\]**​ セクションで、​**\[Priority (優先度)\]**​ 項目を ​`attributes.queryParams.priority`​ に設定します。 ![「Publish」 設定画面で、「Priority (優先度)」 項目の値を設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publish-config-4.png) Figure 3. Publish 操作の優先度の設定 XML エディターでは、​``​ および ​`priority`​ の設定は次のように記述されます。 ```xml ``` ### [](#存続期間の設定)存続期間の設定 パブリッシュされた各 JMS メッセージは、存続期間ヘッダーと共に送信されます。このヘッダーではメッセージをコンシュームできる期間が宣言され、この期間が過ぎるとメッセージの有効期限が切れます。操作で ​**\[Time to live (存続期間)\]**​ 項目と ​**\[Time to live unit (存続期間単位)\]**​ 項目を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`vars.destination`​ など) に設定します。 3. **\[Publish Configuration (パブリッシュ設定)\]**​ セクションで、​**\[Time to live (存続期間)\]**​ 項目を ​`vars.timeToLive`​ に設定します。 4. **\[Time to live unit (存続期間単位)\]**​ 項目を ​**\[SECONDS (秒)\]**​ に設定します。 ![「Publish」 設定画面で、「Time to live (存続期間)」 項目の値を設定し、「Time to live unit (存続期間単位)」 を 「SECONDS (秒)」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publish-config-5.png) Figure 4. Publish 操作の存続期間の設定 XML エディターでは、​`timeToLive`​ および ​`timeToLiveUnit`​ の設定は次のように記述されます。 ```xml ``` JMS 2.0 仕様を使用している場合は、メッセージをコンシューマーが使用できるようになるまでの待機時間であるメッセージ配信遅延を制御することもできます。操作で ​**\[Delivery delay (配信遅延)\]**​ 項目と ​**\[Delivery delay unit (配信遅延単位)\]**​ 項目を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`vars.destination`​ など) に設定します。 3. **\[Delivery delay (配信遅延)\]**​ 項目を ​`${msgInitialDelay}`​ に設定します。 4. **\[Delivery delay unit (配信遅延単位)\]**​ 項目を ​**\[MILLISECONDS (ミリ秒)\]**​ に設定します。 ![「Publish」 設定画面で、「Delivery Delay (配信遅延)」 項目の値を設定し、「Delivery Delay Unit (配信遅延単位)」 項目を 「MILLISECONDS (ミリ秒)」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publish-config-6.png) Figure 5. Publish 操作の配信遅延の設定 XML エディターでは、​`deliveryDelay`​ および ​`deliveryDelayUnit`​ の設定は次のように記述されます。 ```xml ``` ## [](#応答宛先の設定)応答宛先の設定 送信されたメッセージへの非同期応答が必要な場合、​**Publish**​ 操作を使用すると、​**\[Reply to (応答先)\]**​ 項目で任意の応答宛先を宣言できます。応答宛先は、JMS ヘッダーとしてメッセージのコンシューマーに渡されます。 次の例では、応答宛先を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`vars.destination`​ など) に設定します。 3. **\[Reply to (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 4. **\[Destination name (宛先名)\]**​ 項目を ​`${completionEventsDestination}`​ に設定します。 5. **\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定します。 ![「\[Publish\] 設定画面で、\[Reply To (応答先)\] を \[Edit inline (インライン編集)\] に設定し、\[Destination name (宛先名)\] 項目の名前を設定し、\[Destination type (宛先種別)\] 項目を \[TOPIC (トピック)\] に設定する。」](_images/jms-publish-config-7.png) Figure 6. Publish 操作の応答先の設定 XML エディターでは、​``​、​`destination`​、および ​`destinationType`​ の設定は次のように記述されます。 ```xml ``` ## [](#相関-id-の設定)相関 ID の設定 **Publish**​ 操作では、​**\[Correlation ID (相関 ID)\]**​ 項目で送信メッセージの相関 ID を設定できます。 まず、メッセージのパブリッシュ時に相関 ID を送信するかどうかを設定する必要があります。送信する場合、​**\[Send correlation id (相関 ID を送信)\]**​ 項目を次のいずれかのオプションに設定します。 - **ALWAYS**​ 常にヘッダーを送信する - **NEVER**​ ヘッダーを送信しない - **AUTO**​ デフォルト値。アプリケーションの設定を使用する 次に、メッセージを送信するイベントの相関 ID を使用するか、メッセージビルダーで独自のカスタム相関 ID を設定できます。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`attributes.headers.replyTo.destination`​ など) に設定します。 3. **\[Send correlation id (相関 ID を送信)\]**​ 項目を ​**\[ALWAYS (常時)\]**​ に設定します。 4. **\[Correlation ID (相関 ID)\]**​ 項目を ​`attributes.headers.correlationId`​ に設定します。 ![「Publish」 設定画面で、「Send correlation ID (相関 ID を送信)」 項目を 「ALWAYS (常時)」 に設定し、「Correlation ID (相関 ID)」 項目をカスタム値に設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publish-config-8.png) Figure 7. Publish 操作の相関 ID の設定 XML エディターでは、​`endCorrelationId`​ および ​`correlationId`​ の設定は次のように記述されます。 ```xml ``` ## [](#メッセージプロパティの設定)メッセージプロパティの設定 JMS メッセージで各種プロパティを使用して、他のメッセージングシステムとの互換性の確立やカスタムメッセージセレクターの作成などを行うことができます。プロパティの一部はよく知られた JMS 標準プロパティですが、その他にも実装やカスタムユーザー設定に基づくプロパティがあります。​**Publish**​ 操作では、これらのプロパティをすべてメッセージ内で直接設定できます。 ### [](#ユーザープロパティの設定)ユーザープロパティの設定 送信メッセージのプロパティを設定する必要がある場合、メッセージ内で ​**\[Properties (プロパティ)\]**​ 項目を設定し、DataWeave を使用してマップのインライン宣言を行います。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`${bridgeDestination}`​ など) に設定します。 3. **\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定します。 4. **\[Body (本文)\]**​ 項目を ​`"bridged_" ++ payload`​ に設定します。 5. **\[Properties (プロパティ)\]**​ 項目を次の DataWeave コードに設定します。 ```DataWeave { AUTH_TYPE: 'jwt', AUTH_TOKEN: attributes.queryParams.token } ``` ![「Publish」 設定画面で、「Body (本文)」 項目と 「Properties (プロパティ)」 項目を設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publish-config-9.png) Figure 8. Publish 操作のプロパティの設定 XML エディターでは、​``​ および ​``​ の設定は次のように記述されます。 ```xml #["bridged_" ++ payload] #[{ AUTH_TYPE: 'jwt', AUTH_TOKEN: attributes.queryParams.token }] ``` ### [](#jmsx-プロパティの設定)JMSX プロパティの設定 JMS 仕様には JMSX プロパティが含まれます。このプロパティは、メッセージに関するメタデータが含まれるよく知られたプロパティセットです。次の例では、メッセージの ​**\[JMSX Properties (JMSX プロパティ)\]**​ 項目でこのプロパティを設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`${bridgeDestination}`​ など) に設定します。 3. **\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定します。 4. **\[Body (本文)\]**​ 項目を ​`"bridged_" ++ payload`​ に設定します。 5. **\[JMSX Properties (JMSX プロパティ)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 6. **\[Jmsx group id (Jmsx グループ ID)\]**​ 項目を ​`vars.currentGroup`​ に設定します。 7. **\[Jmsx user id (Jmsx ユーザー ID)\]**​ 項目を ​`${username}`​ に設定します。 ![「Publish」 設定画面で、「JMSX Properties (JMSX プロパティ)」 項目を 「Edit Inline (インライン編集)」 に設定し、「Jmsx group id (JMSX グループ ID)」 項目と 「Jmsx user id (JMSX ユーザー ID)」 項目を設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publish-config-10.png) Figure 9. Publish 操作の JMSX プロパティの設定 XML エディターでは、​``​、​`jmsxGroupID`​、および ​`jmsxUserID`​ の設定は次のように記述されます。 ```xml #["bridged_" ++ payload] ``` ## [](#関連情報)関連情報 [メッセージのパブリッシュと応答のコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-publish-consume) # JMS Connector を使用したメッセージのパブリッシュ JMS 用 Anypoint Connector (JMS Connector) の ​**Publish**​ 操作を使用すると、新しい JMS メッセージを作成し、キューまたはトピックにかかわらず指定した宛先に送信できます。この操作を使用して、メッセージの内容だけでなく、必要なヘッダーも設定できます。 ## [](#キューへのメッセージのパブリッシュ)キューへのメッセージのパブリッシュ **Publish**​ 操作では、メッセージペイロード内のすべての内容を、指定したキューにパブリッシュします。次の例では、​**\[Destination (宛先)\]**​ 項目で指定したキューにメッセージをパブリッシュするように操作を設定します: 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`invoiceQueue`​ など) に設定します。 ![「Publish」 設定画面で 「Destination (宛先)」 項目を、メッセージの送信先である宛先の名前に設定する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publish-config-1.png) Figure 1. キューへの Publish 操作の設定 XML エディターでは、​``​ および ​`destination`​ の設定は次のように記述されます。 ```xml ``` 適切な形式ではないためにペイロードを変換する必要がある場合、​**Publish**​ 操作の前に DataWeave 変換を配置できますが、これによりメッセージペイロードが変更され、変換の後に配置された操作に影響することがあります。 この影響を回避するには、​**Publish**​ 操作の内部に DataWeave 変換を配置します。この変換では、送信中のメッセージに影響することなく、パブリッシュするコンテンツが生成されます。次の例では、操作の内部で変換を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`invoiceQueue`​ など) に設定します。 3. **\[Body (本文)\]**​ 項目で、次の DataWeave 変換を設定します。 ```DataWeave %dw 2.0 output application/json --- payload.payments ``` ![「Publish」 設定画面で、DataWeave 変換を 「Body (本文)」 項目の内部に配置する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publish-config-2.png) Figure 2. Publish 操作での DataWeave 変換の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml #[%dw 2.0 output application/json --- payload.payments ] ``` ## [](#トピックへのメッセージのパブリッシュ)トピックへのメッセージのパブリッシュ **Publish**​ 操作では、指定したトピック宛先にメッセージをパブリッシュすることもできます。操作とメッセージのすべての設定は同じため、​**\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定するだけで済みます。 次の例では、トピック宛先にメッセージをパブリッシュするように操作を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名に設定します。例: .トピック宛先への Publish 操作の設定 image::jms-publish-config-3.png\[「Publish」 設定画面で、「Destination type (宛先種別)」 項目を 「TOPIC (トピック)」 に設定する\] XML エディターでは、​``​ および ​`destinationType`​ の設定は次のように記述されます。 ```xml #[%dw 2.0 output application/json --- payload.payments ] ``` ## [](#メッセージ配信のカスタマイズ)メッセージ配信のカスタマイズ 各 JMS メッセージには一連のヘッダーがあり、これらを使用して存続期間やメッセージの優先度などのメタデータを渡すことができます。 ### [](#優先キューの設定)優先キューの設定 優先キューを設定するには、​**\[Priority (優先度)\]**​ 項目をデフォルトとは異なる値に設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`priorityQueue`​ など) に設定します。 3. **\[Publish Configuration (パブリッシュ設定)\]**​ セクションで、​**\[Priority (優先度)\]**​ 項目を ​`attributes.queryParams.priority`​ に設定します。 ![「Publish」 設定画面で、「Priority (優先度)」 項目の値を設定する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publish-config-4.png) Figure 3. Publish 操作の優先度の設定 XML エディターでは、​``​ および ​`priority`​ の設定は次のように記述されます。 ```xml ``` ### [](#存続期間の設定)存続期間の設定 パブリッシュされた各 JMS メッセージは、存続期間ヘッダーと共に送信されます。このヘッダーではメッセージをコンシュームできる期間が宣言され、この期間が過ぎるとメッセージの有効期限が切れます。操作で ​**\[Time to live (存続期間)\]**​ 項目と ​**\[Time to live unit (存続期間単位)\]**​ 項目を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`vars.destination`​ など) に設定します。 3. **\[Publish Configuration (パブリッシュ設定)\]**​ セクションで、​**\[Time to live (存続期間)\]**​ 項目を ​`vars.timeToLive`​ に設定します。 4. **\[Time to live unit (存続期間単位)\]**​ 項目を ​**\[SECONDS (秒)\]**​ に設定します。 ![「Publish」 設定画面で、「Time to live (存続期間)」 項目の値を設定し、「Time to live unit (存続期間単位)」 を 「SECONDS (秒)」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publish-config-5.png) Figure 4. Publish 操作の存続期間の設定 XML エディターでは、​`timeToLive`​ および ​`timeToLiveUnit`​ の設定は次のように記述されます。 ```xml ``` JMS 2.0 仕様を使用している場合は、メッセージをコンシューマーが使用できるようになるまでの待機時間であるメッセージ配信遅延を制御することもできます。操作で ​**\[Delivery delay (配信遅延)\]**​ 項目と ​**\[Delivery delay unit (配信遅延単位)\]**​ 項目を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`vars.destination`​ など) に設定します。 3. **\[Delivery delay (配信遅延)\]**​ 項目を ​`${msgInitialDelay}`​ に設定します。 4. **\[Delivery delay unit (配信遅延単位)\]**​ 項目を ​**\[MILLISECONDS (ミリ秒)\]**​ に設定します。 ![「Publish」 設定画面で、「Delivery Delay (配信遅延)」 項目の値を設定し、「Delivery Delay Unit (配信遅延単位)」 項目を 「MILLISECONDS (ミリ秒)」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publish-config-6.png) Figure 5. Publish 操作の配信遅延の設定 XML エディターでは、​`deliveryDelay`​ および ​`deliveryDelayUnit`​ の設定は次のように記述されます。 ```xml ``` ## [](#応答宛先の設定)応答宛先の設定 送信されたメッセージへの非同期応答が必要な場合、​**Publish**​ 操作を使用すると、​**\[Reply to (応答先)\]**​ 項目で任意の応答宛先を宣言できます。応答宛先は、JMS ヘッダーとしてメッセージのコンシューマーに渡されます。 次の例では、応答宛先を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`vars.destination`​ など) に設定します。 3. **\[Reply to (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 4. **\[Destination name (宛先名)\]**​ 項目を ​`${completionEventsDestination}`​ に設定します。 5. **\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定します。 ![「Publish」 設定画面で、「Reply To (応答先)」 を 「Edit inline (インライン編集)」 に設定し、「Destination name (宛先名)」 項目の名前を設定し、「Destination type (宛先種別)」 項目を 「TOPIC (トピック)」 に設定する。](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publish-config-7.png) Figure 6. Publish 操作の応答先の設定 XML エディターでは、​``​、​`destination`​、および ​`destinationType`​ の設定は次のように記述されます。 ```xml ``` ## [](#相関-id-の設定)相関 ID の設定 **Publish**​ 操作では、​**\[Correlation ID (相関 ID)\]**​ 項目で送信メッセージの相関 ID を設定できます。 まず、メッセージのパブリッシュ時に相関 ID を送信するかどうかを設定する必要があります。送信する場合、​**\[Send correlation id (相関 ID を送信)\]**​ 項目を次のいずれかのオプションに設定します。 - **ALWAYS**​ 常にヘッダーを送信する - **NEVER**​ ヘッダーを送信しない - **AUTO**​ デフォルト値。アプリケーションの設定を使用する 次に、メッセージを送信するイベントの相関 ID を使用するか、メッセージビルダーで独自のカスタム相関 ID を設定できます。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`attributes.headers.replyTo.destination`​ など) に設定します。 3. **\[Send correlation id (相関 ID を送信)\]**​ 項目を ​**\[ALWAYS (常時)\]**​ に設定します。 4. **\[Correlation ID (相関 ID)\]**​ 項目を ​`attributes.headers.correlationId`​ に設定します。 ![「Publish」 設定画面で、「Send correlation ID (相関 ID を送信)」 項目を 「ALWAYS (常時)」 に設定し、「Correlation ID (相関 ID)」 項目をカスタム値に設定する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publish-config-8.png) Figure 7. Publish 操作の相関 ID の設定 XML エディターでは、​`endCorrelationId`​ および ​`correlationId`​ の設定は次のように記述されます。 ```xml ``` ## [](#メッセージプロパティの設定)メッセージプロパティの設定 JMS メッセージで各種プロパティを使用して、他のメッセージングシステムとの互換性の確立やカスタムメッセージセレクターの作成などを行うことができます。プロパティの一部はよく知られた JMS 標準プロパティですが、その他にも実装やカスタムユーザー設定に基づくプロパティがあります。​**Publish**​ 操作では、これらのプロパティをすべてメッセージ内で直接設定できます。 ### [](#ユーザープロパティの設定)ユーザープロパティの設定 送信メッセージのプロパティを設定する必要がある場合、メッセージ内で ​**\[Properties (プロパティ)\]**​ 項目を設定し、DataWeave を使用してマップのインライン宣言を行います。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`${bridgeDestination}`​ など) に設定します。 3. **\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定します。 4. **\[Body (本文)\]**​ 項目を ​`"bridged_" ++ payload`​ に設定します。 5. **\[Properties (プロパティ)\]**​ 項目を次の DataWeave コードに設定します。 ```DataWeave { AUTH_TYPE: 'jwt', AUTH_TOKEN: attributes.queryParams.token } ``` ![「Publish」 設定画面で、「Body (本文)」 項目と 「Properties (プロパティ)」 項目を設定する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publish-config-9.png) Figure 8. Publish 操作のプロパティの設定 XML エディターでは、​``​ および ​``​ の設定は次のように記述されます。 ```xml #["bridged_" ++ payload] #[{ AUTH_TYPE: 'jwt', AUTH_TOKEN: attributes.queryParams.token }] ``` ### [](#jmsx-プロパティの設定)JMSX プロパティの設定 JMS 仕様には JMSX プロパティが含まれます。このプロパティは、メッセージに関するメタデータが含まれるよく知られたプロパティセットです。次の例では、メッセージの ​**\[JMSX Properties (JMSX プロパティ)\]**​ 項目でこのプロパティを設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`${bridgeDestination}`​ など) に設定します。 3. **\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定します。 4. **\[Body (本文)\]**​ 項目を ​`"bridged_" ++ payload`​ に設定します。 5. **\[JMSX Properties (JMSX プロパティ)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 6. **\[Jmsx group id (Jmsx グループ ID)\]**​ 項目を ​`vars.currentGroup`​ に設定します。 7. **\[Jmsx user id (Jmsx ユーザー ID)\]**​ 項目を ​`${username}`​ に設定します。 ![「Publish」 設定画面で、「JMSX Properties (JMSX プロパティ)」 項目を 「Edit Inline (インライン編集)」 に設定し、「Jmsx group id (JMSX グループ ID)」 項目と 「Jmsx user id (JMSX ユーザー ID)」 項目を設定する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publish-config-10.png) Figure 9. Publish 操作の JMSX プロパティの設定 XML エディターでは、​``​、​`jmsxGroupID`​、および ​`jmsxUserID`​ の設定は次のように記述されます。 ```xml #["bridged_" ++ payload] ``` ## [](#関連情報)関連情報 [メッセージのパブリッシュと応答のコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-publish-consume) # JMS Connector を使用したメッセージのパブリッシュ JMS 用 Anypoint Connector (JMS Connector) の ​**Publish**​ 操作を使用すると、新しい JMS メッセージを作成し、キューまたはトピックにかかわらず指定した宛先に送信できます。この操作を使用して、メッセージのコンテンツだけでなく、必要なヘッダーも設定できます。 ## [](#キューへのメッセージのパブリッシュ)キューへのメッセージのパブリッシュ **Publish**​ 操作では、メッセージペイロード内のすべての内容を、指定したキューにパブリッシュします。次の例では、​**\[Destination (宛先)\]**​ 項目で指定したキューにメッセージをパブリッシュするように操作を設定します: 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`invoiceQueue`​ など) に設定します。 ![「Publish」 設定画面で 「Destination (宛先)」 項目を、メッセージの送信先である宛先の名前に設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publish-config-1.png) Figure 1. キューへの Publish 操作の設定 XML エディターでは、​``​ および ​`destination`​ の設定は次のように記述されます。 ```xml ``` 適切な形式ではないためにペイロードを変換する必要がある場合、​**Publish**​ 操作の前に DataWeave 変換を配置できますが、これによりメッセージペイロードが変更され、変換の後に配置された操作に影響することがあります。 この影響を回避するには、​**Publish**​ 操作の内部に DataWeave 変換を配置します。この変換では、送信中のメッセージに影響することなく、パブリッシュするコンテンツが生成されます。次の例では、操作の内部で変換を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`invoiceQueue`​ など) に設定します。 3. **\[Body (本文)\]**​ 項目で、次の DataWeave 変換を設定します。 ```DataWeave %dw 2.0 output application/json --- payload.payments ``` ![「Publish」 設定画面で、DataWeave 変換を 「Body (本文)」 項目の内部に配置する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publish-config-2.png) Figure 2. Publish 操作での DataWeave 変換の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml #[%dw 2.0 output application/json --- payload.payments ] ``` ## [](#トピックへのメッセージのパブリッシュ)トピックへのメッセージのパブリッシュ **Publish**​ 操作では、指定したトピック宛先にメッセージをパブリッシュすることもできます。操作とメッセージのすべての設定は同じため、​**\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定するだけで済みます。 次の例では、トピック宛先にメッセージをパブリッシュするように操作を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名に設定します。例: .トピック宛先への Publish 操作の設定 image::jms-publish-config-3.png\[「Publish」 設定画面で、「Destination type (宛先種別)」 項目を 「TOPIC (トピック)」 に設定する\] XML エディターでは、​``​ および ​`destinationType`​ の設定は次のように記述されます。 ```xml #[%dw 2.0 output application/json --- payload.payments ] ``` ## [](#メッセージ配信のカスタマイズ)メッセージ配信のカスタマイズ 各 JMS メッセージには一連のヘッダーがあり、これらを使用して存続期間やメッセージの優先度などのメタデータを渡すことができます。 ### [](#優先キューの設定)優先キューの設定 優先キューを設定するには、​**\[Priority (優先度)\]**​ 項目をデフォルトとは異なる値に設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`priorityQueue`​ など) に設定します。 3. **\[Publish Configuration (パブリッシュ設定)\]**​ セクションで、​**\[Priority (優先度)\]**​ 項目を ​`attributes.queryParams.priority`​ に設定します。 ![「Publish」 設定画面で、「Priority (優先度)」 項目の値を設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publish-config-4.png) Figure 3. Publish 操作の優先度の設定 XML エディターでは、​``​ および ​`priority`​ の設定は次のように記述されます。 ```xml ``` ### [](#存続期間の設定)存続期間の設定 パブリッシュされた各 JMS メッセージは、存続期間ヘッダーと共に送信されます。このヘッダーではメッセージをコンシュームできる期間が宣言され、この期間が過ぎるとメッセージの有効期限が切れます。操作で ​**\[Time to live (存続期間)\]**​ 項目と ​**\[Time to live unit (存続期間単位)\]**​ 項目を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`vars.destination`​ など) に設定します。 3. **\[Publish Configuration (パブリッシュ設定)\]**​ セクションで、​**\[Time to live (存続期間)\]**​ 項目を ​`vars.timeToLive`​ に設定します。 4. **\[Time to live unit (存続期間単位)\]**​ 項目を ​**\[SECONDS (秒)\]**​ に設定します。 ![「Publish」 設定画面で、「Time to live (存続期間)」 項目の値を設定し、「Time to live unit (存続期間単位)」 を 「SECONDS (秒)」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publish-config-5.png) Figure 4. Publish 操作の存続期間の設定 XML エディターでは、​`timeToLive`​ および ​`timeToLiveUnit`​ の設定は次のように記述されます。 ```xml ``` JMS 2.0 仕様を使用している場合は、メッセージをコンシューマーが使用できるようになるまでの待機時間であるメッセージ配信遅延を制御することもできます。操作で ​**\[Delivery delay (配信遅延)\]**​ 項目と ​**\[Delivery delay unit (配信遅延単位)\]**​ 項目を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`vars.destination`​ など) に設定します。 3. **\[Delivery delay (配信遅延)\]**​ 項目を ​`${msgInitialDelay}`​ に設定します。 4. **\[Delivery delay unit (配信遅延単位)\]**​ 項目を ​**\[MILLISECONDS (ミリ秒)\]**​ に設定します。 ![「Publish」 設定画面で、「Delivery Delay (配信遅延)」 項目の値を設定し、「Delivery Delay Unit (配信遅延単位)」 項目を 「MILLISECONDS (ミリ秒)」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publish-config-6.png) Figure 5. Publish 操作の配信遅延の設定 XML エディターでは、​`deliveryDelay`​ および ​`deliveryDelayUnit`​ の設定は次のように記述されます。 ```xml ``` ## [](#応答宛先の設定)応答宛先の設定 送信されたメッセージへの非同期応答が必要な場合、​**Publish**​ 操作を使用すると、​**\[Reply to (応答先)\]**​ 項目で任意の応答宛先を宣言できます。応答宛先は、JMS ヘッダーとしてメッセージのコンシューマーに渡されます。 次の例では、応答宛先を設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`vars.destination`​ など) に設定します。 3. **\[Reply to (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 4. **\[Destination name (宛先名)\]**​ 項目を ​`${completionEventsDestination}`​ に設定します。 5. **\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定します。 ![「\[Publish\] 設定画面で、\[Reply To (応答先)\] を \[Edit inline (インライン編集)\] に設定し、\[Destination name (宛先名)\] 項目の名前を設定し、\[Destination type (宛先種別)\] 項目を \[TOPIC (トピック)\] に設定する。」](_images/jms-publish-config-7.png) Figure 6. Publish 操作の応答先の設定 XML エディターでは、​``​、​`destination`​、および ​`destinationType`​ の設定は次のように記述されます。 ```xml ``` ## [](#相関-id-の設定)相関 ID の設定 **Publish**​ 操作では、​**\[Correlation ID (相関 ID)\]**​ 項目で送信メッセージの相関 ID を設定できます。 まず、メッセージのパブリッシュ時に相関 ID を送信するかどうかを設定する必要があります。送信する場合、​**\[Send correlation id (相関 ID を送信)\]**​ 項目を次のいずれかのオプションに設定します。 - **ALWAYS**​ 常にヘッダーを送信する - **NEVER**​ ヘッダーを送信しない - **AUTO**​ デフォルト値。アプリケーションの設定を使用する 次に、メッセージを送信するイベントの相関 ID を使用するか、メッセージビルダーで独自のカスタム相関 ID を設定できます。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`attributes.headers.replyTo.destination`​ など) に設定します。 3. **\[Send correlation id (相関 ID を送信)\]**​ 項目を ​**\[ALWAYS (常時)\]**​ に設定します。 4. **\[Correlation ID (相関 ID)\]**​ 項目を ​`attributes.headers.correlationId`​ に設定します。 ![「Publish」 設定画面で、「Send correlation ID (相関 ID を送信)」 項目を 「ALWAYS (常時)」 に設定し、「Correlation ID (相関 ID)」 項目をカスタム値に設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publish-config-8.png) Figure 7. Publish 操作の相関 ID の設定 XML エディターでは、​`endCorrelationId`​ および ​`correlationId`​ の設定は次のように記述されます。 ```xml ``` ## [](#メッセージプロパティの設定)メッセージプロパティの設定 JMS メッセージで各種プロパティを使用して、他のメッセージングシステムとの互換性の確立やカスタムメッセージセレクターの作成などを行うことができます。プロパティの一部はよく知られた JMS 標準プロパティですが、その他にも実装やカスタムユーザー設定に基づくプロパティがあります。​**Publish**​ 操作では、これらのプロパティをすべてメッセージ内で直接設定できます。 ### [](#ユーザープロパティの設定)ユーザープロパティの設定 送信メッセージのプロパティを設定する必要がある場合、メッセージ内で ​**\[Properties (プロパティ)\]**​ 項目を設定し、DataWeave を使用してマップのインライン宣言を行います。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`${bridgeDestination}`​ など) に設定します。 3. **\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定します。 4. **\[Body (本文)\]**​ 項目を ​`"bridged_" ++ payload`​ に設定します。 5. **\[Properties (プロパティ)\]**​ 項目を次の DataWeave コードに設定します。 ```DataWeave { AUTH_TYPE: 'jwt', AUTH_TOKEN: attributes.queryParams.token } ``` ![「Publish」 設定画面で、「Body (本文)」 項目と 「Properties (プロパティ)」 項目を設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publish-config-9.png) Figure 8. Publish 操作のプロパティの設定 XML エディターでは、​``​ および ​``​ の設定は次のように記述されます。 ```xml #["bridged_" ++ payload] #[{ AUTH_TYPE: 'jwt', AUTH_TOKEN: attributes.queryParams.token }] ``` ### [](#jmsx-プロパティの設定)JMSX プロパティの設定 JMS 仕様には JMSX プロパティが含まれます。このプロパティは、メッセージに関するメタデータが含まれるよく知られたプロパティセットです。次の例では、メッセージの ​**\[JMSX Properties (JMSX プロパティ)\]**​ 項目でこのプロパティを設定します。 1. Studio フローで、​**\[Publish\]**​ 操作を選択します。 2. **\[Destination (宛先)\]**​ 項目をキュー名 (​`${bridgeDestination}`​ など) に設定します。 3. **\[Destination type (宛先種別)\]**​ 項目を ​**\[TOPIC (トピック)\]**​ に設定します。 4. **\[Body (本文)\]**​ 項目を ​`"bridged_" ++ payload`​ に設定します。 5. **\[JMSX Properties (JMSX プロパティ)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 6. **\[Jmsx group id (Jmsx グループ ID)\]**​ 項目を ​`vars.currentGroup`​ に設定します。 7. **\[Jmsx user id (Jmsx ユーザー ID)\]**​ 項目を ​`${username}`​ に設定します。 ![「Publish」 設定画面で、「JMSX Properties (JMSX プロパティ)」 項目を 「Edit Inline (インライン編集)」 に設定し、「Jmsx group id (JMSX グループ ID)」 項目と 「Jmsx user id (JMSX ユーザー ID)」 項目を設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publish-config-10.png) Figure 9. Publish 操作の JMSX プロパティの設定 XML エディターでは、​``​、​`jmsxGroupID`​、および ​`jmsxUserID`​ の設定は次のように記述されます。 ```xml #["bridged_" ++ payload] ``` ## [](#関連情報)関連情報 [メッセージのパブリッシュと応答のコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-publish-consume) # JMS Connector を使用したメッセージのパブリッシュと応答のコンシューム JMS 用 Anypoint Connector (JMS Connector) の ​**Publish consume**​ 操作では、指定した任意の宛先にメッセージをパブリッシュした後、指定した異なる宛先でメッセージ応答をコンシュームできます。要求と応答はアプリケーション間で非常に一般的なパターンです。 この操作を使用する場合、送信メッセージの ​`JMSReplyTo`​ ヘッダーにはアプリケーションが応答を待機する宛先の ID が含まれます。この宛先には、既知の宛先を使用できます。また、1 つの応答メッセージを受け取ることを目的として作成された一時的な宛先を使用できます。 操作の結果として、​**Consume**​ 操作の呼び出しで使用された構造と同じ構造を持つ応答メッセージが受信されます。 ## [](#一時キューでの応答の受信)一時キューでの応答の受信 一時キューを設定するには、送信するメッセージを設定します。これで操作は応答を自動的に待機します。 次の例では、次の特性を使用して、メッセージをパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを一時的な宛先に設定する - **\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定する これで、この操作では、メッセージがコンシュームされるか、​**\[Maximum wait (最大待機)\]**​ に達するまで (この場合は ​`JMS:TIMEOUT`​ エラーで失敗します)、一時キューから応答のコンシュームを自動的に試みます。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Consume Configuration (コンシューム設定)\]**​ セクションまでスクロールダウンして、​**\[Maximum wait (最大待機)\]**​ 項目を ​`20`​ に設定します。 4. **\[Maximum wait unit (最大待機単位)\]**​ を ​`SECONDS`​ に設定します。 ![「Publish consume」 設定画面で 「Destination (宛先)」 項目を、メッセージの送信先である宛先の名前に設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publishconsume-config-1.png) Figure 1. 一時キューの設定 XML エディターでは、​`destination`​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#既知のキューでの応答の受信)既知のキューでの応答の受信 応答用の既知のキューを設定するには、送信メッセージで ​**\[Reply To (応答先)\]**​ 項目を設定します。 次の例では、次の特性を使用して、メッセージを ​`targetDestination`​ にパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを既知のキューに設定する - **\[Reply To (応答先)\]**​ 項目を ​`replyToDestination`​ に設定する これで、この操作では、メッセージがコンシュームされるか、​**\[Maximum wait (最大待機)\]**​ に達するまで (この場合は ​`JMS:TIMEOUT`​ エラーで失敗します)、既知の ​`replyToDestination`​ キューから応答のコンシュームを自動的に試みます。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Message (メッセージ)\]**​ セクションで ​**\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 4. **\[Destination Name (宛先名)\]**​ 項目を ​`replyToDestination`​ に設定します。 5. **\[Consume Configuration (コンシューム設定)\]**​ セクションまでスクロールダウンして、​**\[Maximum wait (最大待機)\]**​ 項目を ​`20`​ に設定します。 6. **\[Maximum wait unit (最大待機単位)\]**​ を ​`SECONDS`​ に設定します。 ![「Publish consume」 設定画面で、「Reply To (応答先)」 項目をメッセージの応答先である宛先の JMSReplyTo ヘッダー情報に設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publishconsume-config-2.png) Figure 2. 既知のキューの設定 XML エディターでは、​`destination`​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#要求および応答パターンの設定)要求および応答パターンの設定 JMS では、要求メッセージと応答メッセージの相関方法を理解するのに役立つよく知られた 2 つの要求および応答パターンを使用します。操作の ​**\[Request-Reply Pattern (要求-応答パターン)\]**​ 項目で、​**CORRELATION\_ID​ (デフォルト)**​ および ​**MESSAGE\_ID**​ パターンを設定できます。どちらのパターンでも、受信メッセージが送信メッセージへの正しい応答であることが保証されます。 この項目を ​**\[NONE (なし)\]**​ に設定することもできます。この場合、コンシューマーはセレクターを使用してメッセージを相関するのではなく、応答キューからコンシュームを試みます。確実に 1 つのメッセージのみが含まれる一時キューを使用して作業する場合は、このオプションが役立ちます。 ### [](#相関-id-パターンの設定)相関 ID パターンの設定 **CORRELATION\_ID​ (デフォルト)**​ パターンを使用すると、宛先キューにメッセージをパブリッシュした後の操作で、要求メッセージのパブリッシュに使用された相関 ID と同じ相関 ID を持つメッセージを期待するセレクターを使用して、メッセージがコンシュームされます。メッセージの相関関係 ID は、1 つのメッセージを相互にリンクするために使用する値です。 次の例の最初のフローでは、次の特性を使用して、メッセージを ​`targetDestination`​ にパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを既知のキューに設定する - **\[Reply To (応答先)\]**​ 項目を ​`replyToDestination`​ に設定する - **\[Request-Reply Pattern (要求-応答パターン)\]**​ 項目を ​**CORRELATION\_ID​ (デフォルト)**​ に設定する 次に、2 番目のフローの ​**On New Message**​ ソースで、パブリッシュされたメッセージを読み取り、同じ相関 ID パターンを使用して応答します。​**Logger**​ コンポーネントでメッセージ応答を記録します。 最初のフローに戻り、​**Publish consume**​ 操作で受信した応答をコンシュームしたら、別の ​**Logger**​ コンポーネントで最終メッセージを記録します。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**CORRELATION\_ID​ (デフォルト)**​ に設定します。 4. **\[Message (メッセージ)\]**​ セクションで ​**\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 5. **\[Destination Name (宛先名)\]**​ 項目を ​`replyToDestination`​ に設定します。 6. **\[Logger\]**​ コンポーネントを \[Publish consume\] の右にドラッグします。 7. **\[Message (メッセージ)\]**​ 項目を ​`Received message from 'replyToDestination' with Correlation ID: #[attributes.headers.correlationId]`​ に設定します。 8. JMS の ​**\[On New Message\]**​ ソースを最初のフローの下にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 10. **\[Response (応答)\]**​ セクションまでスクロールダウンして、​**\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**CORRELATION\_ID​ (デフォルト)**​ に設定します。 11. 別の ​**\[Logger\]**​ コンポーネントを ​**\[On New Message\]**​ の右にドラッグします。 12. **\[Message (メッセージ)\]**​ 項目を ​`About to reply to 'targetDestination' with Correlation ID: #[attributes.headers.correlationId]`​ に設定します。 ![「Request-Reply Pattern (要求-応答パターン)」 を 「CORRELATION\_ID (Default)」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publishconsume-correlation-example.png) Figure 3. 相関 ID パターンの実装 XML エディターでは、​`requestReplyPattern`​ 設定は次のように記述されます。 ```xml ``` ### [](#メッセージ-id-パターンの設定)メッセージ ID パターンの設定 **MESSAGE\_ID**​ パターンを使用すると、宛先キューにメッセージをパブリッシュした後の操作で、要求メッセージのメッセージ ID と同じ値のメッセージ ID を持つメッセージを期待するセレクターを使用して、メッセージがコンシュームされます。メッセージ ID は、プロバイダーが送信した各メッセージを一意に識別する値です。 次の例の最初のフローでは、次の特性を使用して、メッセージを ​`targetDestination`​ にパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを既知のキューに設定する - **\[Reply To (応答先)\]**​ 項目を ​`replyToDestination`​ に設定する - **\[Request-Reply Pattern (要求-応答パターン)\]**​ 項目を ​**MESSAGE\_ID**​ に設定する 次に、2 番目のフローの ​**On New Message**​ ソースで、パブリッシュされたメッセージを読み取り、同じメッセージ ID パターンを使用して応答します。​**Logger**​ コンポーネントでメッセージ応答を記録します。 最初のフローに戻り、​**Publish consume**​ 操作で受信した応答をコンシュームしたら、別の ​**Logger**​ コンポーネントで最終メッセージを記録します。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**MESSAGE\_ID**​ に設定します。 4. **\[Message (メッセージ)\]**​ セクションで ​**\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 5. **\[Destination Name (宛先名)\]**​ 項目を ​`replyToDestination`​ に設定します。 6. **\[Logger\]**​ コンポーネントを ​**\[Publish consume\]**​ の右にドラッグします。 7. **\[Message (メッセージ)\]**​ 項目を ​`Received message from 'replyToDestination' with Message ID: #[attributes.headers.correlationId]`​ に設定します。 8. JMS の ​**\[On New Message\]**​ ソースを最初のフローの下にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 10. **\[Response (応答)\]**​ セクションまでスクロールダウンして、​**\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**MESSAGE\_ID**​ に設定します。 11. 別の ​**\[Logger\]**​ コンポーネントを ​**\[On New Message\]**​ の右にドラッグします。 12. **\[Message (メッセージ)\]**​ 項目を ​`About to reply to 'targetDestination' with Message ID: #[attributes.headers.messageId]`​ に設定します。 ![「Request-Reply Pattern (要求-応答パターン)」 を 「MESSAGE\_ID」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publishconsume-message-example.png) Figure 4. メッセージ ID パターンの実装 ```xml ``` ## [](#関連情報)関連情報 - [メッセージのパブリッシュ](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-publish) - [JMS Connector の例](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-examples) # JMS Connector を使用したメッセージのパブリッシュと応答のコンシューム JMS 用 Anypoint Connector (JMS Connector) の ​**Publish consume**​ 操作では、指定した任意の宛先にメッセージをパブリッシュした後、指定した異なる宛先でメッセージ応答をコンシュームできます。要求と応答はアプリケーション間で非常に一般的なパターンです。 この操作を使用する場合、送信メッセージの ​`JMSReplyTo`​ ヘッダーにはアプリケーションが応答を待機する宛先の ID が含まれます。この宛先には、既知の宛先を使用できます。また、1 つの応答メッセージを受け取ることを目的として作成された一時的な宛先を使用できます。 操作の結果として、​**Consume**​ 操作の呼び出しで使用された構造と同じ構造を持つ応答メッセージが受信されます。 ## [](#一時キューでの応答の受信)一時キューでの応答の受信 一時キューを設定するには、送信するメッセージを設定します。これで操作は応答を自動的に待機します。 次の例では、次の特性を使用して、メッセージをパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを一時的な宛先に設定する - **\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定する これで、この操作では、メッセージがコンシュームされるか、​**\[Maximum wait (最大待機)\]**​ に達するまで (この場合は ​`JMS:TIMEOUT`​ エラーで失敗します)、一時キューから応答のコンシュームを自動的に試みます。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Consume Configuration (コンシューム設定)\]**​ セクションまでスクロールダウンして、​**\[Maximum wait (最大待機)\]**​ 項目を ​`20`​ に設定します。 4. **\[Maximum wait unit (最大待機単位)\]**​ を ​`SECONDS`​ に設定します。 ![「Publish consume」 設定画面で 「Destination (宛先)」 項目を、メッセージの送信先である宛先の名前に設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publishconsume-config-1.png) Figure 1. 一時キューの設定 XML エディターでは、​`destination`​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#既知のキューでの応答の受信)既知のキューでの応答の受信 応答用の既知のキューを設定するには、送信メッセージで ​**\[Reply To (応答先)\]**​ 項目を設定します。 次の例では、次の特性を使用して、メッセージを ​`targetDestination`​ にパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを既知のキューに設定する - **\[Reply To (応答先)\]**​ 項目を ​`replyToDestination`​ に設定する これで、この操作では、メッセージがコンシュームされるか、​**\[Maximum wait (最大待機)\]**​ に達するまで (この場合は ​`JMS:TIMEOUT`​ エラーで失敗します)、既知の ​`replyToDestination`​ キューから応答のコンシュームを自動的に試みます。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Message (メッセージ)\]**​ セクションで ​**\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 4. **\[Destination Name (宛先名)\]**​ 項目を ​`replyToDestination`​ に設定します。 5. **\[Consume Configuration (コンシューム設定)\]**​ セクションまでスクロールダウンして、​**\[Maximum wait (最大待機)\]**​ 項目を ​`20`​ に設定します。 6. **\[Maximum wait unit (最大待機単位)\]**​ を ​`SECONDS`​ に設定します。 ![「Publish consume」 設定画面で、「Reply To (応答先)」 項目を設定するメッセージの応答先である宛先の JMSReplyTo ヘッダー情報](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publishconsume-config-2.png) Figure 2. 既知のキューの設定 XML エディターでは、​`destination`​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#要求および応答パターンの設定)要求および応答パターンの設定 JMS では、要求メッセージと応答メッセージの相関方法を理解するのに役立つよく知られた 2 つの要求および応答パターンを使用します。操作の ​**\[Request-Reply Pattern (要求-応答パターン)\]**​ 項目で、​**CORRELATION\_ID​ (デフォルト)**​ および ​**MESSAGE\_ID**​ パターンを設定できます。どちらのパターンでも、受信メッセージが送信メッセージへの正しい応答であることが保証されます。 この項目を ​**\[NONE (なし)\]**​ に設定することもできます。この場合、コンシューマーはセレクターを使用してメッセージを相関するのではなく、応答キューからコンシュームを試みます。確実に 1 つのメッセージのみが含まれる一時キューを使用して作業する場合は、このオプションが役立ちます。 ### [](#相関-id-パターンの設定)相関 ID パターンの設定 **CORRELATION\_ID​ (デフォルト)**​ パターンを使用すると、宛先キューにメッセージをパブリッシュした後の操作で、要求メッセージのパブリッシュに使用された相関 ID と同じ相関 ID を持つメッセージを期待するセレクターを使用して、メッセージがコンシュームされます。メッセージの相関関係 ID は、1 つのメッセージを相互にリンクするために使用する値です。 次の例の最初のフローでは、次の特性を使用して、メッセージを ​`targetDestination`​ にパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを既知のキューに設定する - **\[Reply To (応答先)\]**​ 項目を ​`replyToDestination`​ に設定する - **\[Request-Reply Pattern (要求-応答パターン)\]**​ 項目を ​**CORRELATION\_ID​ (デフォルト)**​ に設定する 次に、2 番目のフローの ​**On New Message**​ ソースで、パブリッシュされたメッセージを読み取り、同じ相関 ID パターンを使用して応答します。​**Logger**​ コンポーネントでメッセージ応答を記録します。 最初のフローに戻り、​**Publish consume**​ 操作で受信した応答をコンシュームしたら、別の ​**Logger**​ コンポーネントで最終メッセージを記録します。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**CORRELATION\_ID​ (デフォルト)**​ に設定します。 4. **\[Message (メッセージ)\]**​ セクションで ​**\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 5. **\[Destination Name (宛先名)\]**​ 項目を ​`replyToDestination`​ に設定します。 6. **\[Logger\]**​ コンポーネントを \[Publish consume\] の右にドラッグします。 7. **\[Message (メッセージ)\]**​ 項目を ​`Received message from 'replyToDestination' with Correlation ID: #[attributes.headers.correlationId]`​ に設定します。 8. JMS の ​**\[On New Message\]**​ ソースを最初のフローの下にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 10. **\[Response (応答)\]**​ セクションまでスクロールダウンして、​**\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**CORRELATION\_ID​ (デフォルト)**​ に設定します。 11. 別の ​**\[Logger\]**​ コンポーネントを ​**\[On New Message\]**​ の右にドラッグします。 12. **\[Message (メッセージ)\]**​ 項目を ​`About to reply to 'targetDestination' with Correlation ID: #[attributes.headers.correlationId]`​ に設定します。 ![「Request-Reply Pattern (要求-応答パターン)」 を 「CORRELATION\_ID (Default)」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publishconsume-correlation-example.png) Figure 3. 相関 ID パターンの実装 XML エディターでは、​`requestReplyPattern`​ 設定は次のように記述されます。 ```xml ``` ### [](#メッセージ-id-パターンの設定)メッセージ ID パターンの設定 **MESSAGE\_ID**​ パターンを使用すると、宛先キューにメッセージをパブリッシュした後の操作で、要求メッセージのメッセージ ID と同じ値のメッセージ ID を持つメッセージを期待するセレクターを使用して、メッセージがコンシュームされます。メッセージ ID は、プロバイダーが送信した各メッセージを一意に識別する値です。 次の例の最初のフローでは、次の特性を使用して、メッセージを ​`targetDestination`​ にパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを既知のキューに設定する - **\[Reply To (応答先)\]**​ 項目を ​`replyToDestination`​ に設定する - **\[Request-Reply Pattern (要求-応答パターン)\]**​ 項目を ​**MESSAGE\_ID**​ に設定する 次に、2 番目のフローの ​**On New Message**​ ソースで、パブリッシュされたメッセージを読み取り、同じメッセージ ID パターンを使用して応答します。​**Logger**​ コンポーネントでメッセージ応答を記録します。 最初のフローに戻り、​**Publish consume**​ 操作で受信した応答をコンシュームしたら、別の ​**Logger**​ コンポーネントで最終メッセージを記録します。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**MESSAGE\_ID**​ に設定します。 4. **\[Message (メッセージ)\]**​ セクションで ​**\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 5. **\[Destination Name (宛先名)\]**​ 項目を ​`replyToDestination`​ に設定します。 6. **\[Logger\]**​ コンポーネントを ​**\[Publish consume\]**​ の右にドラッグします。 7. **\[Message (メッセージ)\]**​ 項目を ​`Received message from 'replyToDestination' with Message ID: #[attributes.headers.correlationId]`​ に設定します。 8. JMS の ​**\[On New Message\]**​ ソースを最初のフローの下にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 10. **\[Response (応答)\]**​ セクションまでスクロールダウンして、​**\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**MESSAGE\_ID**​ に設定します。 11. 別の ​**\[Logger\]**​ コンポーネントを ​**\[On New Message\]**​ の右にドラッグします。 12. **\[Message (メッセージ)\]**​ 項目を ​`About to reply to 'targetDestination' with Message ID: #[attributes.headers.messageId]`​ に設定します。 ![「Request-Reply Pattern (要求-応答パターン)」 を 「MESSAGE\_ID」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publishconsume-message-example.png) Figure 4. メッセージ ID パターンの実装 ```xml ``` ## [](#関連情報)関連情報 - [メッセージのパブリッシュ](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-publish) - [JMS Connector の例](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-examples) # JMS Connector を使用したメッセージのパブリッシュと応答のコンシューム JMS 用 Anypoint Connector (JMS Connector) の ​**Publish consume**​ 操作では、指定した任意の宛先にメッセージをパブリッシュした後、指定した異なる宛先でメッセージ応答をコンシュームできます。要求と応答はアプリケーション間で非常に一般的なパターンです。 この操作を使用する場合、送信メッセージの ​`JMSReplyTo`​ ヘッダーにはアプリケーションが応答を待機する宛先の ID が含まれます。この宛先には、既知の宛先を使用できます。また、1 つの応答メッセージを受け取ることを目的として作成された一時的な宛先を使用できます。 操作の結果として、​**Consume**​ 操作の呼び出しで使用された構造と同じ構造を持つ応答メッセージが受信されます。 ## [](#一時キューでの応答の受信)一時キューでの応答の受信 一時キューを設定するには、送信するメッセージを設定します。これで操作は応答を自動的に待機します。 次の例では、次の特性を使用して、メッセージをパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを一時的な宛先に設定する - **\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定する これで、この操作では、メッセージがコンシュームされるか、​**\[Maximum wait (最大待機)\]**​ に達するまで (この場合は ​`JMS:TIMEOUT`​ エラーで失敗します)、一時キューから応答のコンシュームを自動的に試みます。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Consume Configuration (コンシューム設定)\]**​ セクションまでスクロールダウンして、​**\[Maximum wait (最大待機)\]**​ 項目を ​`20`​ に設定します。 4. **\[Maximum wait unit (最大待機単位)\]**​ を ​`SECONDS`​ に設定します。 ![「Publish consume」 設定画面で \[Destination (宛先)\] 項目を、メッセージの送信先である宛先の名前に設定する](_images/jms-publishconsume-config-1.png) Figure 1. 一時キューの設定 XML エディターでは、​`destination`​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#既知のキューでの応答の受信)既知のキューでの応答の受信 応答用の既知のキューを設定するには、送信メッセージで ​**\[Reply To (応答先)\]**​ 項目を設定します。 次の例では、次の特性を使用して、メッセージを ​`targetDestination`​ にパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを既知のキューに設定する - **\[Reply To (応答先)\]**​ 項目を ​`replyToDestination`​ に設定する これで、この操作では、メッセージがコンシュームされるか、​**\[Maximum wait (最大待機)\]**​ に達するまで (この場合は ​`JMS:TIMEOUT`​ エラーで失敗します)、既知の ​`replyToDestination`​ キューから応答のコンシュームを自動的に試みます。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Message (メッセージ)\]**​ セクションで ​**\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 4. **\[Destination Name (宛先名)\]**​ 項目を ​`replyToDestination`​ に設定します。 5. **\[Consume Configuration (コンシューム設定)\]**​ セクションまでスクロールダウンして、​**\[Maximum wait (最大待機)\]**​ 項目を ​`20`​ に設定します。 6. **\[Maximum wait unit (最大待機単位)\]**​ を ​`SECONDS`​ に設定します。 ![「Publish consume」 設定画面で、「Reply To (応答先)」 項目を設定する メッセージの応答先である宛先の JMSReplyTo ヘッダー情報](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publishconsume-config-2.png) Figure 2. 既知のキューの設定 XML エディターでは、​`destination`​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#要求および応答パターンの設定)要求および応答パターンの設定 JMS では、要求メッセージと応答メッセージの相関方法を理解するのに役立つよく知られた 2 つの要求および応答パターンを使用します。操作の ​**\[Request-Reply Pattern (要求-応答パターン)\]**​ 項目で、​**CORRELATION\_ID​ (デフォルト)**​ および ​**MESSAGE\_ID**​ パターンを設定できます。どちらのパターンでも、受信メッセージが送信メッセージへの正しい応答であることが保証されます。 この項目を ​**\[NONE (なし)\]**​ に設定することもできます。この場合、コンシューマーはセレクターを使用してメッセージを相関するのではなく、応答キューからコンシュームを試みます。確実に 1 つのメッセージのみが含まれる一時キューを使用して作業する場合は、このオプションが役立ちます。 ### [](#相関-id-パターンの設定)相関 ID パターンの設定 **CORRELATION\_ID​ (デフォルト)**​ パターンを使用すると、宛先キューにメッセージをパブリッシュした後の操作で、要求メッセージのパブリッシュに使用された相関 ID と同じ相関 ID を持つメッセージを期待するセレクターを使用して、メッセージがコンシュームされます。メッセージの相関関係 ID は、1 つのメッセージを相互にリンクするために使用する値です。 次の例の最初のフローでは、次の特性を使用して、メッセージを ​`targetDestination`​ にパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを既知のキューに設定する - **\[Reply To (応答先)\]**​ 項目を ​`replyToDestination`​ に設定する - **\[Request-Reply Pattern (要求-応答パターン)\]**​ 項目を ​**CORRELATION\_ID​ (デフォルト)**​ に設定する 次に、2 番目のフローの ​**On New Message**​ ソースで、パブリッシュされたメッセージを読み取り、同じ相関 ID パターンを使用して応答します。​**Logger**​ コンポーネントでメッセージ応答を記録します。 最初のフローに戻り、​**Publish consume**​ 操作で受信した応答をコンシュームしたら、別の ​**Logger**​ コンポーネントで最終メッセージを記録します。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**CORRELATION\_ID​ (デフォルト)**​ に設定します。 4. **\[Message (メッセージ)\]**​ セクションで ​**\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 5. **\[Destination Name (宛先名)\]**​ 項目を ​`replyToDestination`​ に設定します。 6. **\[Logger\]**​ コンポーネントを \[Publish consume\] の右にドラッグします。 7. **\[Message (メッセージ)\]**​ 項目を ​`Received message from 'replyToDestination' with Correlation ID: #[attributes.headers.correlationId]`​ に設定します。 8. JMS の ​**\[On New Message\]**​ ソースを最初のフローの下にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 10. **\[Response (応答)\]**​ セクションまでスクロールダウンして、​**\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**CORRELATION\_ID​ (デフォルト)**​ に設定します。 11. 別の ​**\[Logger\]**​ コンポーネントを ​**\[On New Message\]**​ の右にドラッグします。 12. **\[Message (メッセージ)\]**​ 項目を ​`About to reply to 'targetDestination' with Correlation ID: #[attributes.headers.correlationId]`​ に設定します。 ![「Request-Reply Pattern (要求-応答パターン)」 を 「CORRELATION\_ID (Default)」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publishconsume-correlation-example.png) Figure 3. 相関 ID パターンの実装 XML エディターでは、​`requestReplyPattern`​ 設定は次のように記述されます。 ```xml ``` ### [](#メッセージ-id-パターンの設定)メッセージ ID パターンの設定 **MESSAGE\_ID**​ パターンを使用すると、宛先キューにメッセージをパブリッシュした後の操作で、要求メッセージのメッセージ ID と同じ値のメッセージ ID を持つメッセージを期待するセレクターを使用して、メッセージがコンシュームされます。メッセージ ID は、プロバイダーが送信した各メッセージを一意に識別する値です。 次の例の最初のフローでは、次の特性を使用して、メッセージを ​`targetDestination`​ にパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを既知のキューに設定する - **\[Reply To (応答先)\]**​ 項目を ​`replyToDestination`​ に設定する - **\[Request-Reply Pattern (要求-応答パターン)\]**​ 項目を ​**MESSAGE\_ID**​ に設定する 次に、2 番目のフローの ​**On New Message**​ ソースで、パブリッシュされたメッセージを読み取り、同じメッセージ ID パターンを使用して応答します。​**Logger**​ コンポーネントでメッセージ応答を記録します。 最初のフローに戻り、​**Publish consume**​ 操作で受信した応答をコンシュームしたら、別の ​**Logger**​ コンポーネントで最終メッセージを記録します。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**MESSAGE\_ID**​ に設定します。 4. **\[Message (メッセージ)\]**​ セクションで ​**\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 5. **\[Destination Name (宛先名)\]**​ 項目を ​`replyToDestination`​ に設定します。 6. **\[Logger\]**​ コンポーネントを ​**\[Publish consume\]**​ の右にドラッグします。 7. **\[Message (メッセージ)\]**​ 項目を ​`Received message from 'replyToDestination' with Message ID: #[attributes.headers.correlationId]`​ に設定します。 8. JMS の ​**\[On New Message\]**​ ソースを最初のフローの下にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 10. **\[Response (応答)\]**​ セクションまでスクロールダウンして、​**\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**MESSAGE\_ID**​ に設定します。 11. 別の ​**\[Logger\]**​ コンポーネントを ​**\[On New Message\]**​ の右にドラッグします。 12. **\[Message (メッセージ)\]**​ 項目を ​`About to reply to 'targetDestination' with Message ID: #[attributes.headers.messageId]`​ に設定します。 ![「Request-Reply Pattern (要求-応答パターン)」 を 「MESSAGE\_ID」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publishconsume-message-example.png) Figure 4. メッセージ ID パターンの実装 ```xml ``` ## [](#関連情報)関連情報 - [メッセージのパブリッシュ](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-publish) - [JMS Connector の例](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-examples) # JMS Connector を使用したメッセージのパブリッシュと応答のコンシューム JMS 用 Anypoint Connector (JMS Connector) の ​**Publish consume**​ 操作では、指定した任意の宛先にメッセージをパブリッシュした後、指定した異なる宛先でメッセージ応答をコンシュームできます。要求と応答はアプリケーション間で非常に一般的なパターンです。 この操作を使用する場合、送信メッセージの ​`JMSReplyTo`​ ヘッダーにはアプリケーションが応答を待機する宛先の ID が含まれます。この宛先には、既知の宛先を使用できます。また、1 つの応答メッセージを受け取ることを目的として作成された一時的な宛先を使用できます。 操作の結果として、​**Consume**​ 操作の呼び出しで使用された構造と同じ構造を持つ応答メッセージが受信されます。 ## [](#一時キューでの応答の受信)一時キューでの応答の受信 一時キューを設定するには、送信するメッセージを設定します。これで操作は応答を自動的に待機します。 次の例では、次の特性を使用して、メッセージをパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを一時的な宛先に設定する - **\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定する これで、この操作では、メッセージがコンシュームされるか、​**\[Maximum wait (最大待機)\]**​ に達するまで (この場合は ​`JMS:TIMEOUT`​ エラーで失敗します)、一時キューから応答のコンシュームを自動的に試みます。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Consume Configuration (コンシューム設定)\]**​ セクションまでスクロールダウンして、​**\[Maximum wait (最大待機)\]**​ 項目を ​`20`​ に設定します。 4. **\[Maximum wait unit (最大待機単位)\]**​ を ​`SECONDS`​ に設定します。 ![「Publish consume」 設定画面で 「Destination (宛先)」 項目を、メッセージの送信先である宛先の名前に設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publishconsume-config-1.png) Figure 1. 一時キューの設定 XML エディターでは、​`destination`​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#既知のキューでの応答の受信)既知のキューでの応答の受信 応答用の既知のキューを設定するには、送信メッセージで ​**\[Reply To (応答先)\]**​ 項目を設定します。 次の例では、次の特性を使用して、メッセージを ​`targetDestination`​ にパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを既知のキューに設定する - **\[Reply To (応答先)\]**​ 項目を ​`replyToDestination`​ に設定する これで、この操作では、メッセージがコンシュームされるか、​**\[Maximum wait (最大待機)\]**​ に達するまで (この場合は ​`JMS:TIMEOUT`​ エラーで失敗します)、既知の ​`replyToDestination`​ キューから応答のコンシュームを自動的に試みます。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Message (メッセージ)\]**​ セクションで ​**\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 4. **\[Destination Name (宛先名)\]**​ 項目を ​`replyToDestination`​ に設定します。 5. **\[Consume Configuration (コンシューム設定)\]**​ セクションまでスクロールダウンして、​**\[Maximum wait (最大待機)\]**​ 項目を ​`20`​ に設定します。 6. **\[Maximum wait unit (最大待機単位)\]**​ を ​`SECONDS`​ に設定します。 ![「Publish consume」 設定画面で、「Reply To (応答先)」 項目を設定するメッセージの応答先である宛先の JMSReplyTo ヘッダー情報](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publishconsume-config-2.png) Figure 2. 既知のキューの設定 XML エディターでは、​`destination`​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#要求および応答パターンの設定)要求および応答パターンの設定 JMS では、要求メッセージと応答メッセージの相関方法を理解するのに役立つよく知られた 2 つの要求および応答パターンを使用します。操作の ​**\[Request-Reply Pattern (要求-応答パターン)\]**​ 項目で、​**CORRELATION\_ID​ (デフォルト)**​ および ​**MESSAGE\_ID**​ パターンを設定できます。どちらのパターンでも、受信メッセージが送信メッセージへの正しい応答であることが保証されます。 この項目を ​**\[NONE (なし)\]**​ に設定することもできます。この場合、コンシューマーはセレクターを使用してメッセージを相関するのではなく、応答キューからコンシュームを試みます。確実に 1 つのメッセージのみが含まれる一時キューを使用して作業する場合は、このオプションが役立ちます。 ### [](#相関-id-パターンの設定)相関 ID パターンの設定 **CORRELATION\_ID​ (デフォルト)**​ パターンを使用すると、宛先キューにメッセージをパブリッシュした後の操作で、要求メッセージのパブリッシュに使用された相関 ID と同じ相関 ID を持つメッセージを期待するセレクターを使用して、メッセージがコンシュームされます。メッセージの相関関係 ID は、1 つのメッセージを相互にリンクするために使用する値です。 次の例の最初のフローでは、次の特性を使用して、メッセージを ​`targetDestination`​ にパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを既知のキューに設定する - **\[Reply To (応答先)\]**​ 項目を ​`replyToDestination`​ に設定する - **\[Request-Reply Pattern (要求-応答パターン)\]**​ 項目を ​**CORRELATION\_ID​ (デフォルト)**​ に設定する 次に、2 番目のフローの ​**On New Message**​ ソースで、パブリッシュされたメッセージを読み取り、同じ相関 ID パターンを使用して応答します。​**Logger**​ コンポーネントでメッセージ応答を記録します。 最初のフローに戻り、​**Publish consume**​ 操作で受信した応答をコンシュームしたら、別の ​**Logger**​ コンポーネントで最終メッセージを記録します。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**CORRELATION\_ID​ (デフォルト)**​ に設定します。 4. **\[Message (メッセージ)\]**​ セクションで ​**\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 5. **\[Destination Name (宛先名)\]**​ 項目を ​`replyToDestination`​ に設定します。 6. **\[Logger\]**​ コンポーネントを \[Publish consume\] の右にドラッグします。 7. **\[Message (メッセージ)\]**​ 項目を ​`Received message from 'replyToDestination' with Correlation ID: #[attributes.headers.correlationId]`​ に設定します。 8. JMS の ​**\[On New Message\]**​ ソースを最初のフローの下にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 10. **\[Response (応答)\]**​ セクションまでスクロールダウンして、​**\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**CORRELATION\_ID​ (デフォルト)**​ に設定します。 11. 別の ​**\[Logger\]**​ コンポーネントを ​**\[On New Message\]**​ の右にドラッグします。 12. **\[Message (メッセージ)\]**​ 項目を ​`About to reply to 'targetDestination' with Correlation ID: #[attributes.headers.correlationId]`​ に設定します。 ![「Request-Reply Pattern (要求-応答パターン)」 を 「CORRELATION\_ID (Default)」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publishconsume-correlation-example.png) Figure 3. 相関 ID パターンの実装 XML エディターでは、​`requestReplyPattern`​ 設定は次のように記述されます。 ```xml ``` ### [](#メッセージ-id-パターンの設定)メッセージ ID パターンの設定 **MESSAGE\_ID**​ パターンを使用すると、宛先キューにメッセージをパブリッシュした後の操作で、要求メッセージのメッセージ ID と同じ値のメッセージ ID を持つメッセージを期待するセレクターを使用して、メッセージがコンシュームされます。メッセージ ID は、プロバイダーが送信した各メッセージを一意に識別する値です。 次の例の最初のフローでは、次の特性を使用して、メッセージを ​`targetDestination`​ にパブリッシュするように ​**Publish consume**​ 操作を設定します。 - 現在の ​`payload`​ をその本文とする - `JMSReplyTo`​ ヘッダーを既知のキューに設定する - **\[Reply To (応答先)\]**​ 項目を ​`replyToDestination`​ に設定する - **\[Request-Reply Pattern (要求-応答パターン)\]**​ 項目を ​**MESSAGE\_ID**​ に設定する 次に、2 番目のフローの ​**On New Message**​ ソースで、パブリッシュされたメッセージを読み取り、同じメッセージ ID パターンを使用して応答します。​**Logger**​ コンポーネントでメッセージ応答を記録します。 最初のフローに戻り、​**Publish consume**​ 操作で受信した応答をコンシュームしたら、別の ​**Logger**​ コンポーネントで最終メッセージを記録します。 操作を設定する手順は、次のとおりです。 1. Studio フローで、​**\[Publish consume\]**​ 操作を選択します。 2. コネクタの設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 3. **\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**MESSAGE\_ID**​ に設定します。 4. **\[Message (メッセージ)\]**​ セクションで ​**\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 5. **\[Destination Name (宛先名)\]**​ 項目を ​`replyToDestination`​ に設定します。 6. **\[Logger\]**​ コンポーネントを ​**\[Publish consume\]**​ の右にドラッグします。 7. **\[Message (メッセージ)\]**​ 項目を ​`Received message from 'replyToDestination' with Message ID: #[attributes.headers.correlationId]`​ に設定します。 8. JMS の ​**\[On New Message\]**​ ソースを最初のフローの下にドラッグします。 9. **\[Destination (宛先)\]**​ 項目を ​`targetDestination`​ に設定します。 10. **\[Response (応答)\]**​ セクションまでスクロールダウンして、​**\[Request-Reply Pattern (要求-応答パターン)\]**​ を ​**MESSAGE\_ID**​ に設定します。 11. 別の ​**\[Logger\]**​ コンポーネントを ​**\[On New Message\]**​ の右にドラッグします。 12. **\[Message (メッセージ)\]**​ 項目を ​`About to reply to 'targetDestination' with Message ID: #[attributes.headers.messageId]`​ に設定します。 ![「Request-Reply Pattern (要求-応答パターン)」 を 「MESSAGE\_ID」 に設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publishconsume-message-example.png) Figure 4. メッセージ ID パターンの実装 ```xml ``` ## [](#関連情報)関連情報 - [メッセージのパブリッシュ](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-publish) - [JMS Connector の例](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-examples) # JMS Connector を使用したメッセージ肯定応答の設定 JMS 用 Anypoint Connector (JMS Connector) では、​**Ack**​、​**Consume**​、​**On New Message**​、および ​**Recovery session**​ 操作に応じて異なるメッセージ肯定応答モードを設定できます。 - 成功時の自動肯定応答 - 即時肯定応答 - 手動肯定応答 次の例は、各メッセージ肯定応答モードの設定方法を示しています。 ## [](#成功時の自動肯定応答モードの設定)成功時の自動肯定応答モードの設定 成功時の自動肯定応答モードを設定するには、​**On New Message**​ ソースで ​**\[Acknowledge Mode (肯定応答モード)\]**​ 項目を次のいずれかのモードに設定します。 - **AUTO**​ フローの実行が正常に完了した場合のみ、受信したメッセージを自動的に肯定応答 (ACK) します。それ以外の場合、メッセージは肯定応答されず、再配信されます。 - **DUPS\_OK**​ **AUTO**​ モードと同様に、フローの実行が正常に完了した場合のみ、受信したメッセージを自動的に肯定応答 (ACK) しますが、ACK の実行前にメッセージが再配信されると、メッセージの重複が発生します。 次の例では、​**AUTO**​ 肯定応答モードを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 3. **\[Acknowledge Mode (肯定応答モード)\]**​ メニューから、​**\[AUTO\]**​ を選択します。 ![On New Message ソースの画面で \[Acknowledge Mode (肯定応答モード)\] 項目を \[AUTO\] に設定する](_images/jms-ack-auto.png) Figure 1. JMS Connector の自動肯定応答モードの設定 XML エディターでは、​``​ および ​`ackMode`​ の設定は次のように記述されます。 ```xml ``` ## [](#即時肯定応答モードの設定)即時肯定応答モードの設定 即時肯定応答モードを設定するには、​**On New Message**​ ソースで ​**\[Acknowledge Mode (肯定応答モード)\]**​ 項目を使用するか、​**Consume**​ 操作で ​**\[Ack mode (肯定応答モード)\]**​ 項目を使用します。これらの項目を ​**\[IMMEDIATE\]**​ に設定します。このモードでは、メッセージがコンシュームされると、メッセージのアプリケーション処理に進む前にメッセージが自動的に肯定応答 (ACK) されます。 メッセージを自動的に肯定応答すると、メッセージの処理中にエラーが発生してもメッセージが再配信されないため、「デッドレター」キューのようなアプリケーションロジックを使用して、メッセージを失わずにエラーを管理する必要があります。 次の例では、​**Consume**​ 操作の ​**IMMEDIATE**​ 肯定応答モードを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 3. **\[Ack Mode (肯定応答モード)\]**​ メニューから、​**\[IMMEDIATE\]**​ を選択します。 ![Consume 操作の画面で \[Ack Mode (肯定応答モード)\] 項目を \[IMMEDIATE\] に設定する](_images/jms-ack-immediate.png) Figure 2. JMS Connector の即時肯定応答モードの設定 XML エディターでは、​``​ および ​`ackMode`​ の設定は次のように記述されます。 ## [](#手動肯定応答モードの設定)手動肯定応答モードの設定 手動肯定応答モードを設定するには、​**On New Message**​ ソースで ​**\[Acknowledge Mode (肯定応答モード)\]**​ 項目を使用するか、​**Consume**​ 操作で ​**\[Ack mode (肯定応答モード)\]**​ 項目を使用します。これらの項目を ​**\[MANUAL\]**​ に設定します。このモードでは、メッセージ肯定応答 (ACK) を実行する責任をすべてアプリケーションロジックに委任します。 **On New Message**​ または ​**Consume**​ 操作で受信したすべてのメッセージの Mule メッセージ属性に、特定の接続でメッセージを一意に識別する肯定応答 ID が含まれます。 メッセージを識別する肯定応答 ID は、次に ​**Ack**​ 操作の ​**\[Ack id (肯定応答 ID)\]**​ 項目に渡されます。 次の例では、​**Consume**​ 操作の ​**MANUAL**​ 肯定応答モードを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`openTickets`​ など) を指定します。 3. **\[Ack Mode (肯定応答モード)\]**​ メニューから、​**\[MANUAL\]**​ を選択します。 4. **\[Logger\]**​ コンポーネントを ​**\[Consume\]**​ 操作の右にドラッグします。 5. **\[Message (メッセージ)\]**​ 項目を ​`#[payload]`​ に設定します。 6. **\[Ack\]**​ 操作を ​**\[Logger\]**​ コンポーネントの右にドラッグします。 7. **\[Ack id (肯定応答 ID)\]**​ 項目を、回復するメッセージセッションの肯定応答 ID (​`#[attributes.ackId]`​ など) に設定します。 ![Ack 操作の画面で \[Ack id (肯定応答 ID)\] 項目を、回復するメッセージセッションの肯定応答 ID に設定する](_images/jms-ack-operation.png) Figure 3. JMS Connector の Ack 操作の設定 XML エディターでは、​``​、​`ackMode`​、および ​`ackId`​ の設定は次のように記述されます。 ```xml ``` ### [](#手動セッション回復の設定)手動セッション回復の設定 手動肯定応答モードを使用すると、受信済みで肯定応答されていないすべてのメッセージはブローカーによって再配信されません。 メッセージ処理中にエラーが発生した場合、​**Recover session**​ 操作を使用して、セッションで再配信する必要があるすべてのメッセージを手動で回復する必要があります。セッションを回復するために使用する接続は、メッセージを受信するための接続と同じである必要があります。 次の例では、​**MANUAL**​ 肯定応答モードとセッションの回復方法を設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`${destination}`​ など) を指定します。 3. **\[Ack mode (肯定応答モード)\]**​ 項目を ​**\[MANUAL\]**​ に設定します。 4. **\[Logger\]**​ コンポーネントを ​**\[Consume\]**​ 操作の右にドラッグします。 5. **\[Message (メッセージ)\]**​ 項目を ​`#[payload]`​ に設定します。 6. **\[Ack\]**​ 操作を ​**\[Logger\]**​ コンポーネントの右にドラッグします。 7. **\[Ack id (肯定応答 ID)\]**​ 項目を、回復するメッセージセッションの肯定応答 ID (​`#[vars.consumedMessage.attributes.ackId]`​ など) に設定します。 8. フローで小さな矢印をクリックして、​**\[Error handling (エラー処理)\]**​ セクションを展開します。 9. **\[On Error Propagate\]**​ コンポーネントを ​**\[Error handling (エラー処理)\]**​ セクションにドラッグします。 10. **\[Recover session\]**​ 操作を ​**\[On Error Propagate\]**​ コンポーネント内にドラッグします。 11. **\[Ack id (肯定応答 ID)\]**​ 項目を ​`#[vars.consumedMessage.attributes.ackId]`​ に設定します。 ![Recover session 操作の画面で \[Ack id (肯定応答 ID)\] 項目を、回復するメッセージセッションの肯定応答 ID に設定する](_images/jms-ack-recover.png) Figure 4. JMS Connector の Recover session 操作の設定 XML エディターでは、​``​、​`ackMode`​、および ​`ackId`​ の設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-topic-subscription) - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-listener) # JMS Connector を使用したメッセージ肯定応答の設定 JMS 用 Anypoint Connector (JMS Connector) では、​**Ack**​、​**Consume**​、​**On New Message**​、および ​**Recovery session**​ 操作に応じて異なるメッセージ肯定応答モードを設定できます。 - 成功時の自動肯定応答 - 即時肯定応答 - 手動肯定応答 次の例は、各メッセージ肯定応答モードの設定方法を示しています。 ## [](#成功時の自動肯定応答モードの設定)成功時の自動肯定応答モードの設定 成功時の自動肯定応答モードを設定するには、​**On New Message**​ ソースで ​**\[Acknowledge Mode (肯定応答モード)\]**​ 項目を次のいずれかのモードに設定します。 - **AUTO**​ フローの実行が正常に完了した場合のみ、受信したメッセージを自動的に肯定応答 (ACK) します。それ以外の場合、メッセージは肯定応答されず、再配信されます。 - **DUPS\_OK**​ **AUTO**​ モードと同様に、フローの実行が正常に完了した場合のみ、受信したメッセージを自動的に肯定応答 (ACK) しますが、ACK の実行前にメッセージが再配信されると、メッセージの重複が発生します。 次の例では、​**AUTO**​ 肯定応答モードを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 3. **\[Acknowledge Mode (肯定応答モード)\]**​ メニューから、​**\[AUTO\]**​ を選択します。 ![On New Message ソースの画面で \[Acknowledge Mode (肯定応答モード)\] 項目を \[AUTO\] に設定する](_images/jms-ack-auto.png) Figure 1. JMS Connector の自動肯定応答モードの設定 XML エディターでは、​``​ および ​`ackMode`​ の設定は次のように記述されます。 ```xml ``` ## [](#即時肯定応答モードの設定)即時肯定応答モードの設定 即時肯定応答モードを設定するには、​**On New Message**​ ソースで ​**\[Acknowledge Mode (肯定応答モード)\]**​ 項目を使用するか、​**Consume**​ 操作で ​**\[Ack mode (肯定応答モード)\]**​ 項目を使用します。これらの項目を ​**\[IMMEDIATE\]**​ に設定します。このモードでは、メッセージがコンシュームされると、メッセージのアプリケーション処理に進む前にメッセージが自動的に肯定応答 (ACK) されます。 メッセージを自動的に肯定応答すると、メッセージの処理中にエラーが発生してもメッセージが再配信されないため、「デッドレター」キューのようなアプリケーションロジックを使用して、メッセージを失わずにエラーを管理する必要があります。 次の例では、​**Consume**​ 操作の ​**IMMEDIATE**​ 肯定応答モードを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 3. **\[Ack Mode (肯定応答モード)\]**​ メニューから、​**\[IMMEDIATE\]**​ を選択します。 ![Consume 操作の画面で \[Ack Mode (肯定応答モード)\] 項目を \[IMMEDIATE\] に設定する](_images/jms-ack-immediate.png) Figure 2. JMS Connector の即時肯定応答モードの設定 XML エディターでは、​``​ および ​`ackMode`​ の設定は次のように記述されます。 ## [](#手動肯定応答モードの設定)手動肯定応答モードの設定 手動肯定応答モードを設定するには、​**On New Message**​ ソースで ​**\[Acknowledge Mode (肯定応答モード)\]**​ 項目を使用するか、​**Consume**​ 操作で ​**\[Ack mode (肯定応答モード)\]**​ 項目を使用します。これらの項目を ​**\[MANUAL\]**​ に設定します。このモードでは、メッセージ肯定応答 (ACK) を実行する責任をすべてアプリケーションロジックに委任します。 **On New Message**​ または ​**Consume**​ 操作で受信したすべてのメッセージの Mule メッセージ属性に、特定の接続でメッセージを一意に識別する肯定応答 ID が含まれます。 メッセージを識別する肯定応答 ID は、次に ​**Ack**​ 操作の ​**\[Ack id (肯定応答 ID)\]**​ 項目に渡されます。 次の例では、​**Consume**​ 操作の ​**MANUAL**​ 肯定応答モードを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`openTickets`​ など) を指定します。 3. **\[Ack Mode (肯定応答モード)\]**​ メニューから、​**\[MANUAL\]**​ を選択します。 4. **\[Logger\]**​ コンポーネントを ​**\[Consume\]**​ 操作の右にドラッグします。 5. **\[Message (メッセージ)\]**​ 項目を ​`#[payload]`​ に設定します。 6. **\[Ack\]**​ 操作を ​**\[Logger\]**​ コンポーネントの右にドラッグします。 7. **\[Ack id (肯定応答 ID)\]**​ 項目を、回復するメッセージセッションの肯定応答 ID (​`#[attributes.ackId]`​ など) に設定します。 ![Ack 操作の画面で \[Ack id (肯定応答 ID)\] 項目を、回復するメッセージセッションの肯定応答 ID に設定する](_images/jms-ack-operation.png) Figure 3. JMS Connector の Ack 操作の設定 XML エディターでは、​``​、​`ackMode`​、および ​`ackId`​ の設定は次のように記述されます。 ```xml ``` ### [](#手動セッション回復の設定)手動セッション回復の設定 手動肯定応答モードを使用すると、受信済みで肯定応答されていないすべてのメッセージはブローカーによって再配信されません。 メッセージ処理中にエラーが発生した場合、​**Recover session**​ 操作を使用して、セッションで再配信する必要があるすべてのメッセージを手動で回復する必要があります。セッションを回復するために使用する接続は、メッセージを受信するための接続と同じである必要があります。 次の例では、​**MANUAL**​ 肯定応答モードとセッションの回復方法を設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`${destination}`​ など) を指定します。 3. **\[Ack mode (肯定応答モード)\]**​ 項目を ​**\[MANUAL\]**​ に設定します。 4. **\[Logger\]**​ コンポーネントを ​**\[Consume\]**​ 操作の右にドラッグします。 5. **\[Message (メッセージ)\]**​ 項目を ​`#[payload]`​ に設定します。 6. **\[Ack\]**​ 操作を ​**\[Logger\]**​ コンポーネントの右にドラッグします。 7. **\[Ack id (肯定応答 ID)\]**​ 項目を、回復するメッセージセッションの肯定応答 ID (​`#[vars.consumedMessage.attributes.ackId]`​ など) に設定します。 8. フローで小さな矢印をクリックして、​**\[Error handling (エラー処理)\]**​ セクションを展開します。 9. **\[On Error Propagate\]**​ コンポーネントを ​**\[Error handling (エラー処理)\]**​ セクションにドラッグします。 10. **\[Recover session\]**​ 操作を ​**\[On Error Propagate\]**​ コンポーネント内にドラッグします。 11. **\[Ack id (肯定応答 ID)\]**​ 項目を ​`#[vars.consumedMessage.attributes.ackId]`​ に設定します。 ![Recover session 操作の画面で \[Ack id (肯定応答 ID)\] 項目を、回復するメッセージセッションの肯定応答 ID に設定する](_images/jms-ack-recover.png) Figure 4. JMS Connector の Recover session 操作の設定 XML エディターでは、​``​、​`ackMode`​、および ​`ackId`​ の設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-topic-subscription) - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-listener) # JMS Connector を使用したメッセージ肯定応答の設定 JMS 用 Anypoint Connector (JMS Connector) では、​**Ack**​、​**Consume**​、​**On New Message**​、および ​**Recovery session**​ 操作に応じて異なるメッセージ肯定応答モードを設定できます。 - 成功時の自動肯定応答 - 即時肯定応答 - 手動肯定応答 次の例は、各メッセージ肯定応答モードの設定方法を示しています。 ## [](#成功時の自動肯定応答モードの設定)成功時の自動肯定応答モードの設定 成功時の自動肯定応答モードを設定するには、​**On New Message**​ ソースで ​**\[Acknowledge Mode (肯定応答モード)\]**​ 項目を次のいずれかのモードに設定します。 - **AUTO**​ フローの実行が正常に完了した場合のみ、受信したメッセージを自動的に肯定応答 (ACK) します。それ以外の場合、メッセージは肯定応答されず、再配信されます。 - **DUPS\_OK**​ **AUTO**​ モードと同様に、フローの実行が正常に完了した場合のみ、受信したメッセージを自動的に肯定応答 (ACK) しますが、ACK の実行前にメッセージが再配信されると、メッセージの重複が発生します。 次の例では、​**AUTO**​ 肯定応答モードを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 3. **\[Acknowledge Mode (肯定応答モード)\]**​ メニューから、​**\[AUTO\]**​ を選択します。 ![On New Message ソースの画面で \[Acknowledge Mode (肯定応答モード)\] 項目を \[AUTO\] に設定する](_images/jms-ack-auto.png) Figure 1. JMS Connector の自動肯定応答モードの設定 XML エディターでは、​``​ および ​`ackMode`​ の設定は次のように記述されます。 ```xml ``` ## [](#即時肯定応答モードの設定)即時肯定応答モードの設定 即時肯定応答モードを設定するには、​**On New Message**​ ソースで ​**\[Acknowledge Mode (肯定応答モード)\]**​ 項目を使用するか、​**Consume**​ 操作で ​**\[Ack mode (肯定応答モード)\]**​ 項目を使用します。これらの項目を ​**\[IMMEDIATE\]**​ に設定します。このモードでは、メッセージがコンシュームされると、メッセージのアプリケーション処理に進む前にメッセージが自動的に肯定応答 (ACK) されます。 メッセージを自動的に肯定応答すると、メッセージの処理中にエラーが発生してもメッセージが再配信されないため、「デッドレター」キューのようなアプリケーションロジックを使用して、メッセージを失わずにエラーを管理する必要があります。 次の例では、​**Consume**​ 操作の ​**IMMEDIATE**​ 肯定応答モードを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 3. **\[Ack Mode (肯定応答モード)\]**​ メニューから、​**\[IMMEDIATE\]**​ を選択します。 ![Consume 操作の画面で \[Ack Mode (肯定応答モード)\] 項目を \[IMMEDIATE\] に設定する](_images/jms-ack-immediate.png) Figure 2. JMS Connector の即時肯定応答モードの設定 XML エディターでは、​``​ および ​`ackMode`​ の設定は次のように記述されます。 ## [](#手動肯定応答モードの設定)手動肯定応答モードの設定 手動肯定応答モードを設定するには、​**On New Message**​ ソースで ​**\[Acknowledge Mode (肯定応答モード)\]**​ 項目を使用するか、​**Consume**​ 操作で ​**\[Ack mode (肯定応答モード)\]**​ 項目を使用します。これらの項目を ​**\[MANUAL\]**​ に設定します。このモードでは、メッセージ肯定応答 (ACK) を実行する責任をすべてアプリケーションロジックに委任します。 **On New Message**​ または ​**Consume**​ 操作で受信したすべてのメッセージの Mule メッセージ属性に、特定の接続でメッセージを一意に識別する肯定応答 ID が含まれます。 メッセージを識別する肯定応答 ID は、次に ​**Ack**​ 操作の ​**\[Ack id (肯定応答 ID)\]**​ 項目に渡されます。 次の例では、​**Consume**​ 操作の ​**MANUAL**​ 肯定応答モードを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`openTickets`​ など) を指定します。 3. **\[Ack Mode (肯定応答モード)\]**​ メニューから、​**\[MANUAL\]**​ を選択します。 4. **\[Logger\]**​ コンポーネントを ​**\[Consume\]**​ 操作の右にドラッグします。 5. **\[Message (メッセージ)\]**​ 項目を ​`#[payload]`​ に設定します。 6. **\[Ack\]**​ 操作を ​**\[Logger\]**​ コンポーネントの右にドラッグします。 7. **\[Ack id (肯定応答 ID)\]**​ 項目を、回復するメッセージセッションの肯定応答 ID (​`#[attributes.ackId]`​ など) に設定します。 ![Ack 操作の画面で \[Ack id (肯定応答 ID)\] 項目を、回復するメッセージセッションの肯定応答 ID に設定する](_images/jms-ack-operation.png) Figure 3. JMS Connector の Ack 操作の設定 XML エディターでは、​``​、​`ackMode`​、および ​`ackId`​ の設定は次のように記述されます。 ```xml ``` ### [](#手動セッション回復の設定)手動セッション回復の設定 手動肯定応答モードを使用すると、受信済みで肯定応答されていないすべてのメッセージはブローカーによって再配信されません。 メッセージ処理中にエラーが発生した場合、​**Recover session**​ 操作を使用して、セッションで再配信する必要があるすべてのメッセージを手動で回復する必要があります。セッションを回復するために使用する接続は、メッセージを受信するための接続と同じである必要があります。 次の例では、​**MANUAL**​ 肯定応答モードとセッションの回復方法を設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`${destination}`​ など) を指定します。 3. **\[Ack mode (肯定応答モード)\]**​ 項目を ​**\[MANUAL\]**​ に設定します。 4. **\[Logger\]**​ コンポーネントを ​**\[Consume\]**​ 操作の右にドラッグします。 5. **\[Message (メッセージ)\]**​ 項目を ​`#[payload]`​ に設定します。 6. **\[Ack\]**​ 操作を ​**\[Logger\]**​ コンポーネントの右にドラッグします。 7. **\[Ack id (肯定応答 ID)\]**​ 項目を、回復するメッセージセッションの肯定応答 ID (​`#[vars.consumedMessage.attributes.ackId]`​ など) に設定します。 8. フローで小さな矢印をクリックして、​**\[Error handling (エラー処理)\]**​ セクションを展開します。 9. **\[On Error Propagate\]**​ コンポーネントを ​**\[Error handling (エラー処理)\]**​ セクションにドラッグします。 10. **\[Recover session\]**​ 操作を ​**\[On Error Propagate\]**​ コンポーネント内にドラッグします。 11. **\[Ack id (肯定応答 ID)\]**​ 項目を ​`#[vars.consumedMessage.attributes.ackId]`​ に設定します。 ![Recover session 操作の画面で \[Ack id (肯定応答 ID)\] 項目を、回復するメッセージセッションの肯定応答 ID に設定する](_images/jms-ack-recover.png) Figure 4. JMS Connector の Recover session 操作の設定 XML エディターでは、​``​、​`ackMode`​、および ​`ackId`​ の設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-topic-subscription) - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-listener) # JMS Connector を使用したメッセージ肯定応答の設定 JMS 用 Anypoint Connector (JMS Connector) では、​**Ack**​、​**Consume**​、​**On New Message**​、および ​**Recovery session**​ 操作に応じて異なるメッセージ肯定応答モードを設定できます。 - 成功時の自動肯定応答 - 即時肯定応答 - 手動肯定応答 次の例は、各メッセージ肯定応答モードの設定方法を示しています。 ## [](#成功時の自動肯定応答モードの設定)成功時の自動肯定応答モードの設定 成功時の自動肯定応答モードを設定するには、​**On New Message**​ ソースで ​**\[Acknowledge Mode (肯定応答モード)\]**​ 項目を次のいずれかのモードに設定します。 - **AUTO**​ フローの実行が正常に完了した場合のみ、受信したメッセージを自動的に肯定応答 (ACK) します。それ以外の場合、メッセージは肯定応答されず、再配信されます。 - **DUPS\_OK**​ **AUTO**​ モードと同様に、フローの実行が正常に完了した場合のみ、受信したメッセージを自動的に肯定応答 (ACK) しますが、ACK の実行前にメッセージが再配信されると、メッセージの重複が発生します。 次の例では、​**AUTO**​ 肯定応答モードを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 3. **\[Acknowledge Mode (肯定応答モード)\]**​ メニューから、​**\[AUTO\]**​ を選択します。 ![On New Message ソースの画面で \[Acknowledge Mode (肯定応答モード)\] 項目を \[AUTO\] に設定する](_images/jms-ack-auto.png) Figure 1. JMS Connector の自動肯定応答モードの設定 XML エディターでは、​``​ および ​`ackMode`​ の設定は次のように記述されます。 ```xml ``` ## [](#即時肯定応答モードの設定)即時肯定応答モードの設定 即時肯定応答モードを設定するには、​**On New Message**​ ソースで ​**\[Acknowledge Mode (肯定応答モード)\]**​ 項目を使用するか、​**Consume**​ 操作で ​**\[Ack mode (肯定応答モード)\]**​ 項目を使用します。これらの項目を ​**\[IMMEDIATE\]**​ に設定します。このモードでは、メッセージがコンシュームされると、メッセージのアプリケーション処理に進む前にメッセージが自動的に肯定応答 (ACK) されます。 メッセージを自動的に肯定応答すると、メッセージの処理中にエラーが発生してもメッセージが再配信されないため、「デッドレター」キューのようなアプリケーションロジックを使用して、メッセージを失わずにエラーを管理する必要があります。 次の例では、​**Consume**​ 操作の ​**IMMEDIATE**​ 肯定応答モードを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 3. **\[Ack Mode (肯定応答モード)\]**​ メニューから、​**\[IMMEDIATE\]**​ を選択します。 ![Consume 操作の画面で \[Ack Mode (肯定応答モード)\] 項目を \[IMMEDIATE\] に設定する](_images/jms-ack-immediate.png) Figure 2. JMS Connector の即時肯定応答モードの設定 XML エディターでは、​``​ および ​`ackMode`​ の設定は次のように記述されます。 ## [](#手動肯定応答モードの設定)手動肯定応答モードの設定 手動肯定応答モードを設定するには、​**On New Message**​ ソースで ​**\[Acknowledge Mode (肯定応答モード)\]**​ 項目を使用するか、​**Consume**​ 操作で ​**\[Ack mode (肯定応答モード)\]**​ 項目を使用します。これらの項目を ​**\[MANUAL\]**​ に設定します。このモードでは、メッセージ肯定応答 (ACK) を実行する責任をすべてアプリケーションロジックに委任します。 **On New Message**​ または ​**Consume**​ 操作で受信したすべてのメッセージの Mule メッセージ属性に、特定の接続でメッセージを一意に識別する肯定応答 ID が含まれます。 メッセージを識別する肯定応答 ID は、次に ​**Ack**​ 操作の ​**\[Ack id (肯定応答 ID)\]**​ 項目に渡されます。 次の例では、​**Consume**​ 操作の ​**MANUAL**​ 肯定応答モードを設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`openTickets`​ など) を指定します。 3. **\[Ack Mode (肯定応答モード)\]**​ メニューから、​**\[MANUAL\]**​ を選択します。 4. **\[Logger\]**​ コンポーネントを ​**\[Consume\]**​ 操作の右にドラッグします。 5. **\[Message (メッセージ)\]**​ 項目を ​`#[payload]`​ に設定します。 6. **\[Ack\]**​ 操作を ​**\[Logger\]**​ コンポーネントの右にドラッグします。 7. **\[Ack id (肯定応答 ID)\]**​ 項目を、回復するメッセージセッションの肯定応答 ID (​`#[attributes.ackId]`​ など) に設定します。 ![Ack 操作の画面で \[Ack id (肯定応答 ID)\] 項目を、回復するメッセージセッションの肯定応答 ID に設定する](_images/jms-ack-operation.png) Figure 3. JMS Connector の Ack 操作の設定 XML エディターでは、​``​、​`ackMode`​、および ​`ackId`​ の設定は次のように記述されます。 ```xml ``` ### [](#手動セッション回復の設定)手動セッション回復の設定 手動肯定応答モードを使用すると、受信済みで肯定応答されていないすべてのメッセージはブローカーによって再配信されません。 メッセージ処理中にエラーが発生した場合、​**Recover session**​ 操作を使用して、セッションで再配信する必要があるすべてのメッセージを手動で回復する必要があります。セッションを回復するために使用する接続は、メッセージを受信するための接続と同じである必要があります。 次の例では、​**MANUAL**​ 肯定応答モードとセッションの回復方法を設定します。 1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。 2. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`${destination}`​ など) を指定します。 3. **\[Ack mode (肯定応答モード)\]**​ 項目を ​**\[MANUAL\]**​ に設定します。 4. **\[Logger\]**​ コンポーネントを ​**\[Consume\]**​ 操作の右にドラッグします。 5. **\[Message (メッセージ)\]**​ 項目を ​`#[payload]`​ に設定します。 6. **\[Ack\]**​ 操作を ​**\[Logger\]**​ コンポーネントの右にドラッグします。 7. **\[Ack id (肯定応答 ID)\]**​ 項目を、回復するメッセージセッションの肯定応答 ID (​`#[vars.consumedMessage.attributes.ackId]`​ など) に設定します。 8. フローで小さな矢印をクリックして、​**\[Error handling (エラー処理)\]**​ セクションを展開します。 9. **\[On Error Propagate\]**​ コンポーネントを ​**\[Error handling (エラー処理)\]**​ セクションにドラッグします。 10. **\[Recover session\]**​ 操作を ​**\[On Error Propagate\]**​ コンポーネント内にドラッグします。 11. **\[Ack id (肯定応答 ID)\]**​ 項目を ​`#[vars.consumedMessage.attributes.ackId]`​ に設定します。 ![Recover session 操作の画面で \[Ack id (肯定応答 ID)\] 項目を、回復するメッセージセッションの肯定応答 ID に設定する](_images/jms-ack-recover.png) Figure 4. JMS Connector の Recover session 操作の設定 XML エディターでは、​``​、​`ackMode`​、および ​`ackId`​ の設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-topic-subscription) - [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-listener) # JMS Connector を使用した新規メッセージのリスン JMS 用 Anypoint Connector (JMS Connector) の ​**On New Message**​ ソースを使用すると、指定した宛先に到着した新しいメッセージをリスンし、コンシュームできます。 JMS Connector と Oracle JMS を使用する場合、​**On New Message**​ ソースでは、メッセージの頻度に基づいて 1 ~ 10 の遅延で新しいメッセージを受信します。この動作は、​`-Doracle.jms.maxSleepTime=xxxx`​ を使用して制御します。 ## [](#キューからの新規メッセージのリスン)キューからの新規メッセージのリスン 次の例では、​**\[Destination (宛先)\]**​ 項目で指定したキューで新規メッセージをリスンするように ​**On New Message**​ ソースを設定します。この操作では、キューで JMS メッセージが使用可能になるたびに Mule メッセージが返されます。Mule メッセージは次の要素で構成されます。 - ペイロードとしてのメッセージのコンテンツ - メッセージ属性に含まれるメッセージのメタデータ デフォルトでは、コンシュームされたメッセージは、メッセージを受信するフローの実行が正常に完了した場合にのみ肯定応答されます (「ACKed」)。フローの実行中にエラーが発生した場合、セッションは回復され、メッセージは再配信されます。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 ![On New Message ソースの画面で、\[Destination (宛先)\] 項目を、メッセージのコンシューム元である宛先の名前に設定](_images/jms-onnewmessage-queue.png) Figure 1. JMS Connector の On New Message のキューの設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#トピックサブスクリプションからの新規メッセージのリスン)トピックサブスクリプションからの新規メッセージのリスン 次の例では、​**\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定し、トピックサブスクリプションから新規メッセージをリスンするように ​**On New Message**​ ソースを設定します。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ でメッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 5. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 ![On New Message ソースの画面で \[Destination (宛先)\] 項目を設定し、\[Consumer Type (コンシューマー種別)\] 項目を \[Topic consumer (トピックコンシューマー)\] に設定](_images/jms-onnewmessage-topic.png) Figure 2. JMS Connector の On New Message のトピックサブスクリプションの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#受信メッセージの絞り込み)受信メッセージの絞り込み JMS Connector では、​**On New Message**​ ソースの ​**\[Selector (セレクター)\]**​ 項目で指定した標準の JMS セレクター言語に基づいてコンシュームするメッセージを絞り込むことができます。これにより、セレクター言語に一致するメッセージのみが受信され、宛先にある他のメッセージはすべて無視されます。 次の例では、特定のヘッダー優先キューに一致するメッセージを絞り込むように ​**\[Selector (セレクター)\]**​ 項目を設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`openTickets`​ に設定します。 3. **\[Selector (セレクター)\]**​ 項目を ​`JMSPriority=8`​ に設定します。 ![On New Message ソースの画面で、受信メッセージを絞り込むように \[Selector (セレクター)\] 項目を設定](_images/jms-onnewmessage-selector.png) Figure 3. JMS Connector の On New Message のメッセージの絞り込み XML エディターでは、​`selector`​ 設定は次のように記述されます。 ```xml ``` ## [](#受信メッセージへの応答)受信メッセージへの応答 受信した JMS メッセージで ​`ReplyTo`​ ヘッダー宛先が宣言されており、メッセージがエラーなく正常に処理された場合、​**On New Message**​ ソースにより応答が自動的に生成され、コネクタにより応答が、​**\[Destination (宛先)\]**​ 項目で指定された宛先にパブリッシュされます。 次の例では、操作の応答メッセージセクションを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Response (応答)\]**​ セクションで、​**\[Ignore Jms replyTo Header (JMS replyTo ヘッダーを無視)\]**​ を ​**True**​ に設定します。これにより、自動応答が無効になります。 3. **\[Body (本文)\]**​ 項目を ​`'Message received was: ' ++ payload`​ に設定します。 4. **\[User Properties (ユーザープロパティ)\]**​ 項目を ​`{'processedAt': now}`​ に設定します。 5. **\[Persistent delivery (永続的な配信)\]**​ を ​**True**​ に設定します。 6. **\[Priority (優先度)\]**​ 項目を ​`8`​ に設定します。 ![On New Message ソースの画面で応答セクションの項目を設定](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-onnewmessage-response.png) Figure 4. JMS Connector の On New Message の応答の設定 XML エディターでは、​`ignoreReplyTo`​、​`body`​、​`properties`​、​`persistentDelivery`​、および ​`priority`​ の設定は次のように記述されます。 ```xml #['Message received was: ' ++ payload] #[{'processedAt': now}] ``` ## [](#コンシューマー数の設定)コンシューマー数の設定 より多くの処理能力が必要である場合は、​**\[Number of consumers (コンシューマー数)\]**​ 項目を、​**On New Message**​ でメッセージを同時にコンシュームするために使用するコンシューマーの数に設定します。 デフォルトでは、各ソースは ​`4`​ 個のコンシューマーを使用してメッセージを同時に生成します。各コンシューマーはメッセージが処理されるまで待機するため、同時に最大 ​`4`​ 件のメッセージが転送されることになります。 次の例では、ソース内でコンシューマーの数を増やします。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Number of consumers (コンシューマー数)\]**​ 項目を ​`4`​ から、JMS メッセージを受信する同時コンシューマー数 (​`6`​ など) に増やします。 ![On New Message ソースの画面で、\[Number of consumers (コンシューマー数)\] 項目を同時コンシューマー数に設定します。](_images/jms-onnewmessage-consumers.png) Figure 5. JMS Connector の On New Message のコンシューマー数 XML エディターでは、​`numberOfConsumers`​ 設定は次のように記述されます。 ```xml ``` ## [](#mime-タイプとエンコードの設定)MIME タイプとエンコードの設定 JMS Connector では、​`MM_MESSAGE_CONTENT_TYPE`​ プロパティに基づいてメッセージの MIME タイプ (​`contentType`​) を判別します。ただし、メッセージのコンテンツを管理する必要がある場合は、​**\[Inbound Content-Type (インバウンドコンテンツタイプ)\]**​ 項目を、必要な特定のコンテンツタイプ値に設定します。 デフォルトでは、他の情報が提供されていない場合、JMS Connector は Mule Runtime Engine のデフォルトエンコードがメッセージのエンコードと一致するものと想定します。別の種別のエンコードを設定するには、​**\[Inbound Encoding (インバウンドエンコード)\]**​ 項目を使用します。 次の例では、インバウンドコンテンツタイプとエンコードを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Inbound Content-Type (インバウンドコンテンツタイプ)\]**​ 項目を ​`application/JSON`​ に設定します。 3. **\[Inbound Encoding (インバウンドエンコード)\]**​ 項目を ​`UTF-8`​ に設定します。 ![On New Message ソースの画面で、\[Number of consumers (コンシューマー数)\] 項目を同時コンシューマー数に設定します。](_images/jms-onnewmessage-types-encoding.png) Figure 6. JMS Connector の On New Message のコンテンツタイプとエンコード XML エディターでは、​`inboundContentType`​ および ​`inboundEncoding`​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-consume) - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-topic-subscription) - [メッセージ肯定応答の管理](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-ack) # JMS Connector を使用した新規メッセージのリスン JMS 用 Anypoint Connector (JMS Connector) の ​**On New Message**​ ソースを使用すると、指定した宛先に到着した新しいメッセージをリスンし、コンシュームできます。 ## [](#キューからの新規メッセージのリスン)キューからの新規メッセージのリスン 次の例では、​**\[Destination (宛先)\]**​ 項目で指定したキューで新規メッセージをリスンするように ​**On New Message**​ ソースを設定します。この操作では、キューで JMS メッセージが使用可能になるたびに Mule メッセージが返されます。Mule メッセージは次の要素で構成されます。 - ペイロードとしてのメッセージの内容 - メッセージ属性に含まれるメッセージのメタデータ デフォルトでは、コンシュームされたメッセージは、メッセージを受信するフローの実行が正常に完了した場合にのみ肯定応答されます (「ACKed」)。フローの実行中にエラーが発生した場合、セッションは回復され、メッセージは再配信されます。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 ![On New Message ソースの画面で、\[Destination (宛先)\] 項目を、メッセージのコンシューム元である宛先の名前に設定](_images/jms-onnewmessage-queue.png) Figure 1. JMS Connector の On New Message のキューの設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#トピックサブスクリプションからの新規メッセージのリスン)トピックサブスクリプションからの新規メッセージのリスン 次の例では、​**\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定し、トピックサブスクリプションから新規メッセージをリスンするように ​**On New Message**​ ソースを設定します。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ でメッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 5. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 ![On New Message ソースの画面で \[Destination (宛先)\] 項目を設定し、\[Consumer Type (コンシューマー種別)\] 項目を \[Topic consumer (トピックコンシューマー)\] に設定](_images/jms-onnewmessage-topic.png) Figure 2. JMS Connector の On New Message のトピックサブスクリプションの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#受信メッセージの絞り込み)受信メッセージの絞り込み JMS Connector では、​**On New Message**​ ソースの ​**\[Selector (セレクター)\]**​ 項目で指定した標準の JMS セレクター言語に基づいてコンシュームするメッセージを絞り込むことができます。これにより、セレクター言語に一致するメッセージのみが受信され、宛先にある他のメッセージはすべて無視されます。 次の例では、特定のヘッダー優先キューに一致するメッセージを絞り込むように ​**\[Selector (セレクター)\]**​ 項目を設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`openTickets`​ に設定します。 3. **\[Selector (セレクター)\]**​ 項目を ​`JMSPriority=8`​ に設定します。 ![On New Message ソースの画面で、受信メッセージを絞り込むように \[Selector (セレクター)\] 項目を設定](_images/jms-onnewmessage-selector.png) Figure 3. JMS Connector の On New Message のメッセージの絞り込み XML エディターでは、​`selector`​ 設定は次のように記述されます。 ```xml ``` ## [](#受信メッセージへの応答)受信メッセージへの応答 受信した JMS メッセージで ​`ReplyTo`​ ヘッダー宛先が宣言されており、メッセージがエラーなく正常に処理された場合、​**On New Message**​ ソースにより応答が自動的に生成され、コネクタにより応答が、​**\[Destination (宛先)\]**​ 項目で指定された宛先にパブリッシュされます。 次の例では、操作の応答メッセージセクションを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Response (応答)\]**​ セクションで、​**\[Ignore Jms replyTo Header (JMS replyTo ヘッダーを無視)\]**​ を ​**True**​ に設定します。これにより、自動応答が無効になります。 3. **\[Body (本文)\]**​ 項目を ​`'Message received was: ' ++ payload`​ に設定します。 4. **\[User Properties (ユーザープロパティ)\]**​ 項目を ​`{'processedAt': now}`​ に設定します。 5. **\[Persistent delivery (永続的な配信)\]**​ を ​**True**​ に設定します。 6. **\[Priority (優先度)\]**​ 項目を ​`8`​ に設定します。 ![On New Message ソースの画面で応答セクションの項目を設定](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-onnewmessage-response.png) Figure 4. JMS Connector の On New Message の応答の設定 XML エディターでは、​`ignoreReplyTo`​、​`body`​、​`properties`​、​`persistentDelivery`​、および ​`priority`​ の設定は次のように記述されます。 ```xml #['Message received was: ' ++ payload] #[{'processedAt': now}] ``` ## [](#コンシューマー数の設定)コンシューマー数の設定 より多くの処理能力が必要である場合は、​**\[Number of consumers (コンシューマー数)\]**​ 項目を、​**On New Message**​ でメッセージを同時にコンシュームするために使用するコンシューマーの数に設定します。 デフォルトでは、各ソースは ​`4`​ 個のコンシューマーを使用してメッセージを同時に生成します。各コンシューマーはメッセージが処理されるまで待機するため、同時に最大 ​`4`​ 件のメッセージが転送されることになります。 次の例では、ソース内でコンシューマーの数を増やします。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Number of consumers (コンシューマー数)\]**​ 項目を ​`4`​ から、JMS メッセージを受信する同時コンシューマー数 (​`6`​ など) に増やします。 ![On New Message ソースの画面で、\[Number of consumers (コンシューマー数)\] 項目を同時コンシューマー数に設定します。](_images/jms-onnewmessage-consumers.png) Figure 5. JMS Connector の On New Message のコンシューマー数 XML エディターでは、​`numberOfConsumers`​ 設定は次のように記述されます。 ```xml ``` ## [](#mime-タイプとエンコードの設定)MIME タイプとエンコードの設定 JMS Connector では、​`MM_MESSAGE_CONTENT_TYPE`​ プロパティに基づいてメッセージの MIME タイプ (​`contentType`​) を判別します。ただし、メッセージの内容を管理する必要がある場合は、​**\[Inbound Content-Type (インバウンドコンテンツの種類)\]**​ 項目を、必要な特定のコンテンツの種類値に設定します。 デフォルトでは、他の情報が提供されていない場合、JMS Connector は Mule Runtime Engine のデフォルトエンコードがメッセージのエンコードと一致するものと想定します。別の種別のエンコードを設定するには、​**\[Inbound Encoding (インバウンドエンコード)\]**​ 項目を使用します。 次の例では、インバウンドコンテンツの種類とエンコードを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Inbound Content-Type (インバウンドコンテンツの種類)\]**​ 項目を ​`application/JSON`​ に設定します。 3. **\[Inbound Encoding (インバウンドエンコード)\]**​ 項目を ​`UTF-8`​ に設定します。 ![On New Message ソースの画面で、\[Number of consumers (コンシューマー数)\] 項目を同時コンシューマー数に設定します。](_images/jms-onnewmessage-types-encoding.png) Figure 6. JMS Connector の On New Message のコンテンツの種類とエンコード XML エディターでは、​`inboundContentType`​ および ​`inboundEncoding`​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-consume) - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-topic-subscription) - [メッセージ肯定応答の管理](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-ack) # JMS Connector を使用した新規メッセージのリスン JMS 用 Anypoint Connector (JMS Connector) の ​**On New Message**​ ソースを使用すると、指定した宛先に到着した新しいメッセージをリスンし、コンシュームできます。 ## [](#キューからの新規メッセージのリスン)キューからの新規メッセージのリスン 次の例では、​**\[Destination (宛先)\]**​ 項目で指定したキューで新規メッセージをリスンするように ​**On New Message**​ ソースを設定します。この操作では、キューで JMS メッセージが使用可能になるたびに Mule メッセージが返されます。Mule メッセージは次の要素で構成されます。 - ペイロードとしてのメッセージの内容 - メッセージ属性に含まれるメッセージのメタデータ デフォルトでは、コンシュームされたメッセージは、メッセージを受信するフローの実行が正常に完了した場合にのみ肯定応答されます (「ACKed」)。フローの実行中にエラーが発生した場合、セッションは回復され、メッセージは再配信されます。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 ![On New Message ソースの画面で、\[Destination (宛先)\] 項目を、メッセージのコンシューム元である宛先の名前に設定](_images/jms-onnewmessage-queue.png) Figure 1. JMS Connector の On New Message のキューの設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#トピックサブスクリプションからの新規メッセージのリスン)トピックサブスクリプションからの新規メッセージのリスン 次の例では、​**\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定し、トピックサブスクリプションから新規メッセージをリスンするように ​**On New Message**​ ソースを設定します。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ でメッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 5. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 ![On New Message ソースの画面で \[Destination (宛先)\] 項目を設定し、\[Consumer Type (コンシューマー種別)\] 項目を \[Topic consumer (トピックコンシューマー)\] に設定](_images/jms-onnewmessage-topic.png) Figure 2. JMS Connector の On New Message のトピックサブスクリプションの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#受信メッセージの絞り込み)受信メッセージの絞り込み JMS Connector では、​**On New Message**​ ソースの ​**\[Selector (セレクター)\]**​ 項目で指定した標準の JMS セレクター言語に基づいてコンシュームするメッセージを絞り込むことができます。これにより、セレクター言語に一致するメッセージのみが受信され、宛先にある他のメッセージはすべて無視されます。 次の例では、特定のヘッダー優先キューに一致するメッセージを絞り込むように ​**\[Selector (セレクター)\]**​ 項目を設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`openTickets`​ に設定します。 3. **\[Selector (セレクター)\]**​ 項目を ​`JMSPriority=8`​ に設定します。 ![On New Message ソースの画面で、受信メッセージを絞り込むように \[Selector (セレクター)\] 項目を設定](_images/jms-onnewmessage-selector.png) Figure 3. JMS Connector の On New Message のメッセージの絞り込み XML エディターでは、​`selector`​ 設定は次のように記述されます。 ```xml ``` ## [](#受信メッセージへの応答)受信メッセージへの応答 受信した JMS メッセージで ​`ReplyTo`​ ヘッダー宛先が宣言されており、メッセージがエラーなく正常に処理された場合、​**On New Message**​ ソースにより応答が自動的に生成され、コネクタにより応答が、​**\[Destination (宛先)\]**​ 項目で指定された宛先にパブリッシュされます。 次の例では、操作の応答メッセージセクションを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Response (応答)\]**​ セクションで、​**\[Ignore Jms replyTo Header (JMS replyTo ヘッダーを無視)\]**​ を ​**True**​ に設定します。これにより、自動応答が無効になります。 3. **\[Body (本文)\]**​ 項目を ​`'Message received was: ' ++ payload`​ に設定します。 4. **\[User Properties (ユーザープロパティ)\]**​ 項目を ​`{'processedAt': now}`​ に設定します。 5. **\[Persistent delivery (永続的な配信)\]**​ を ​**True**​ に設定します。 6. **\[Priority (優先度)\]**​ 項目を ​`8`​ に設定します。 ![On New Message ソースの画面で応答セクションの項目を設定](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-onnewmessage-response.png) Figure 4. JMS Connector の On New Message の応答の設定 XML エディターでは、​`ignoreReplyTo`​、​`body`​、​`properties`​、​`persistentDelivery`​、および ​`priority`​ の設定は次のように記述されます。 ```xml #['Message received was: ' ++ payload] #[{'processedAt': now}] ``` ## [](#コンシューマー数の設定)コンシューマー数の設定 より多くの処理能力が必要である場合は、​**\[Number of consumers (コンシューマー数)\]**​ 項目を、​**On New Message**​ でメッセージを同時にコンシュームするために使用するコンシューマーの数に設定します。 デフォルトでは、各ソースは ​`4`​ 個のコンシューマーを使用してメッセージを同時に生成します。各コンシューマーはメッセージが処理されるまで待機するため、同時に最大 ​`4`​ 件のメッセージが転送されることになります。 次の例では、ソース内でコンシューマーの数を増やします。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Number of consumers (コンシューマー数)\]**​ 項目を ​`4`​ から、JMS メッセージを受信する同時コンシューマー数 (​`6`​ など) に増やします。 ![On New Message ソースの画面で、\[Number of consumers (コンシューマー数)\] 項目を同時コンシューマー数に設定します。](_images/jms-onnewmessage-consumers.png) Figure 5. JMS Connector の On New Message のコンシューマー数 XML エディターでは、​`numberOfConsumers`​ 設定は次のように記述されます。 ```xml ``` ## [](#mime-タイプとエンコードの設定)MIME タイプとエンコードの設定 JMS Connector では、​`MM_MESSAGE_CONTENT_TYPE`​ プロパティに基づいてメッセージの MIME タイプ (​`contentType`​) を判別します。ただし、メッセージの内容を管理する必要がある場合は、​**\[Inbound Content-Type (インバウンド内容の種類)\]**​ 項目を、必要な特定の内容の種類値に設定します。 デフォルトでは、他の情報が提供されていない場合、JMS Connector は Mule Runtime Engine のデフォルトエンコードがメッセージのエンコードと一致するものと想定します。別の種別のエンコードを設定するには、​**\[Inbound Encoding (インバウンドエンコード)\]**​ 項目を使用します。 次の例では、インバウンド内容の種類とエンコードを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Inbound Content-Type (インバウンド内容の種類)\]**​ 項目を ​`application/JSON`​ に設定します。 3. **\[Inbound Encoding (インバウンドエンコード)\]**​ 項目を ​`UTF-8`​ に設定します。 ![On New Message ソースの画面で、\[Number of consumers (コンシューマー数)\] 項目を同時コンシューマー数に設定します。](_images/jms-onnewmessage-types-encoding.png) Figure 6. JMS Connector の On New Message の内容の種類とエンコード XML エディターでは、​`inboundContentType`​ および ​`inboundEncoding`​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-consume) - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-topic-subscription) - [メッセージ肯定応答の管理](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-ack) # JMS Connector を使用した新規メッセージのリスン JMS 用 Anypoint Connector (JMS Connector) の ​**On New Message**​ ソースを使用すると、指定した宛先に到着した新しいメッセージをリスンし、コンシュームできます。 JMS Connector と Oracle JMS を使用する場合、​**On New Message**​ ソースでは、メッセージの頻度に基づいて 1 ~ 10 の遅延で新しいメッセージを受信します。この動作は、​`-Doracle.jms.maxSleepTime=xxxx`​ を使用して制御します。 ## [](#キューからの新規メッセージのリスン)キューからの新規メッセージのリスン 次の例では、​**\[Destination (宛先)\]**​ 項目で指定したキューで新規メッセージをリスンするように ​**On New Message**​ ソースを設定します。この操作では、キューで JMS メッセージが使用可能になるたびに Mule メッセージが返されます。Mule メッセージは次の要素で構成されます。 - ペイロードとしてのメッセージのコンテンツ - メッセージ属性に含まれるメッセージのメタデータ デフォルトでは、コンシュームされたメッセージは、メッセージを受信するフローの実行が正常に完了した場合にのみ肯定応答されます (「ACKed」)。フローの実行中にエラーが発生した場合、セッションは回復され、メッセージは再配信されます。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 ![On New Message ソースの画面で、\[Destination (宛先)\] 項目を、メッセージのコンシューム元である宛先の名前に設定](_images/jms-onnewmessage-queue.png) Figure 1. JMS Connector の On New Message のキューの設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#トピックサブスクリプションからの新規メッセージのリスン)トピックサブスクリプションからの新規メッセージのリスン 次の例では、​**\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定し、トピックサブスクリプションから新規メッセージをリスンするように ​**On New Message**​ ソースを設定します。 Studio でソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[On New Message\]**​ を選択します。 2. **\[On New Message\]**​ を Studio キャンバスにドラッグします。 3. **\[On New Message\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[On New Message\]**​ 設定画面の ​**\[Destination (宛先)\]**​ でメッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。 5. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。 ![On New Message ソースの画面で \[Destination (宛先)\] 項目を設定し、\[Consumer Type (コンシューマー種別)\] 項目を \[Topic consumer (トピックコンシューマー)\] に設定](_images/jms-onnewmessage-topic.png) Figure 2. JMS Connector の On New Message のトピックサブスクリプションの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#受信メッセージの絞り込み)受信メッセージの絞り込み JMS Connector では、​**On New Message**​ ソースの ​**\[Selector (セレクター)\]**​ 項目で指定した標準の JMS セレクター言語に基づいてコンシュームするメッセージを絞り込むことができます。これにより、セレクター言語に一致するメッセージのみが受信され、宛先にある他のメッセージはすべて無視されます。 次の例では、特定のヘッダー優先キューに一致するメッセージを絞り込むように ​**\[Selector (セレクター)\]**​ 項目を設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Destination (宛先)\]**​ 項目を ​`openTickets`​ に設定します。 3. **\[Selector (セレクター)\]**​ 項目を ​`JMSPriority=8`​ に設定します。 ![On New Message ソースの画面で、受信メッセージを絞り込むように \[Selector (セレクター)\] 項目を設定](_images/jms-onnewmessage-selector.png) Figure 3. JMS Connector の On New Message のメッセージの絞り込み XML エディターでは、​`selector`​ 設定は次のように記述されます。 ```xml ``` ## [](#受信メッセージへの応答)受信メッセージへの応答 受信した JMS メッセージで ​`ReplyTo`​ ヘッダー宛先が宣言されており、メッセージがエラーなく正常に処理された場合、​**On New Message**​ ソースにより応答が自動的に生成され、コネクタにより応答が、​**\[Destination (宛先)\]**​ 項目で指定された宛先にパブリッシュされます。 次の例では、操作の応答メッセージセクションを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Response (応答)\]**​ セクションで、​**\[Ignore Jms replyTo Header (JMS replyTo ヘッダーを無視)\]**​ を ​**True**​ に設定します。これにより、自動応答が無効になります。 3. **\[Body (本文)\]**​ 項目を ​`'Message received was: ' ++ payload`​ に設定します。 4. **\[User Properties (ユーザープロパティ)\]**​ 項目を ​`{'processedAt': now}`​ に設定します。 5. **\[Persistent delivery (永続的な配信)\]**​ を ​**True**​ に設定します。 6. **\[Priority (優先度)\]**​ 項目を ​`8`​ に設定します。 ![On New Message ソースの画面で応答セクションの項目を設定](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-onnewmessage-response.png) Figure 4. JMS Connector の On New Message の応答の設定 XML エディターでは、​`ignoreReplyTo`​、​`body`​、​`properties`​、​`persistentDelivery`​、および ​`priority`​ の設定は次のように記述されます。 ```xml #['Message received was: ' ++ payload] #[{'processedAt': now}] ``` ## [](#コンシューマー数の設定)コンシューマー数の設定 より多くの処理能力が必要である場合は、​**\[Number of consumers (コンシューマー数)\]**​ 項目を、​**On New Message**​ でメッセージを同時にコンシュームするために使用するコンシューマーの数に設定します。 デフォルトでは、各ソースは ​`4`​ 個のコンシューマーを使用してメッセージを同時に生成します。各コンシューマーはメッセージが処理されるまで待機するため、同時に最大 ​`4`​ 件のメッセージが転送されることになります。 次の例では、ソース内でコンシューマーの数を増やします。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Number of consumers (コンシューマー数)\]**​ 項目を ​`4`​ から、JMS メッセージを受信する同時コンシューマー数 (​`6`​ など) に増やします。 ![On New Message ソースの画面で、\[Number of consumers (コンシューマー数)\] 項目を同時コンシューマー数に設定します。](_images/jms-onnewmessage-consumers.png) Figure 5. JMS Connector の On New Message のコンシューマー数 XML エディターでは、​`numberOfConsumers`​ 設定は次のように記述されます。 ```xml ``` ## [](#mime-タイプとエンコードの設定)MIME タイプとエンコードの設定 JMS Connector では、​`MM_MESSAGE_CONTENT_TYPE`​ プロパティに基づいてメッセージの MIME タイプ (​`contentType`​) を判別します。ただし、メッセージのコンテンツを管理する必要がある場合は、​**\[Inbound Content-Type (インバウンドコンテンツタイプ)\]**​ 項目を、必要な特定のコンテンツタイプ値に設定します。 デフォルトでは、他の情報が提供されていない場合、JMS Connector は Mule Runtime Engine のデフォルトエンコードがメッセージのエンコードと一致するものと想定します。別の種別のエンコードを設定するには、​**\[Inbound Encoding (インバウンドエンコード)\]**​ 項目を使用します。 次の例では、インバウンドコンテンツタイプとエンコードを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Inbound Content-Type (インバウンドコンテンツタイプ)\]**​ 項目を ​`application/JSON`​ に設定します。 3. **\[Inbound Encoding (インバウンドエンコード)\]**​ 項目を ​`UTF-8`​ に設定します。 ![On New Message ソースの画面で、\[Number of consumers (コンシューマー数)\] 項目を同時コンシューマー数に設定します。](_images/jms-onnewmessage-types-encoding.png) Figure 6. JMS Connector の On New Message のコンテンツタイプとエンコード XML エディターでは、​`inboundContentType`​ および ​`inboundEncoding`​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-consume) - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-topic-subscription) - [メッセージ肯定応答の管理](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-ack) # JMS Connector 用の ActiveMQ 接続の設定 JMS 用 Anypoint Connector (JMS Connector) には、ActiveMQ 5 のサポートを提供する ActiveMQ 接続設定が含まれています。この接続を使用して、JMS 1.1 (デフォルト)、JMS 1.0.2b、JMS 2.0 仕様を設定できます。また、JMS の全般的なすべての接続パラメーターだけでなく、ActiveMQ でのみ表示されるカスタムパラメーターも設定できます。 ## [](#activemq-接続の設定)ActiveMQ 接続の設定 ActiveMQ 接続を宣言したら、目的の設定に合わせて​**接続ファクトリー**​をカスタマイズします。接続のすべてのパラメーターにはデフォルト値があります。つまり、自分のユースケースに関連するパラメーターのみを設定する必要があります。また、ActiveMQ 接続では ​**\[Initial redelivery delay (初期再配信遅延)\]**​ などの ActiveMQ 実装専用のパラメーターが公開されています。 次の例では、​**ActiveMQ 接続**​を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[Factory configuration (ファクトリー設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します。 7. **\[Broker url (ブローカー URL)\]**​ 項目値を、接続先のブローカーのアドレス (​`tcp://localhost:61616`​ など) に設定します。 8. **\[OK\]**​ をクリックします。 ![「Broker URL (ブローカー URL)」 項目が tcp://localhost:61616 に設定された、Studio の ActiveMQ 接続設定ウィンドウ](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-activemq-configuration.png) XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#activemq-接続-接続テストなしに設定する-非推奨)ActiveMQ 接続 - 接続テストなしに設定する (非推奨) 複数のノードでブローカー接続のログイン情報を同時に使用できない場合があります。その場合、Mule アプリケーションはリスナーの実行が 1 つのノードのみで行われるように、​`true`​ に設定された ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を使用します。ただし、他のノードでログイン情報がすでに使用されている場合、デプロイメント前に実行される接続テストでプライマリノードのデプロイメントエラーが発生することがあります。この特定のケースでは、​**\[ActiveMQ Connection - No Connectivity Test (ActiveMQ 接続 - 接続テストなし)\]**​ を使用します。これは、デプロイメント前の接続テストが実行されないという点を除き、​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ と同じです。 次の例では、​**\[ActiveMQ Connection - No Connectivity Test (ActiveMQ 接続 - 接続テストなし)\]**​ を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection - No Connectivity Test (ActiveMQ 接続 - 接続テストなし)\]**​ を選択します。 6. 省略可能な ​**\[Client id (クライアント ID)\]**​ 項目を設定します。 7. **\[Factory configuration (ファクトリー設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します。 8. **\[Broker url (ブローカー URL)\]**​ 項目値を、接続先のブローカーのアドレス (​`tcp://localhost:61616`​ など) に設定します。 9. **\[OK\]**​ をクリックします。 ![「Broker URL (ブローカー URL)」 項目が tcp://localhost:61616 に設定された、Studio の 「ActiveMQ Connection - No Connectivity Test (ActiveMQ 接続 - 接続テストなし)」 設定ウィンドウ](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-activemq-nct-configuration.png) XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#必須のライブラリの設定)必須のライブラリの設定 JMS Connector はどの特定の実装にもバインドされていないため、何らかの接続種別を設定する場合は、常に JMS クライアント実装を含むライブラリを設定する必要があります。Studio のグローバル要素ビューで ActiveMQ 外部ライブラリを設定するか、​`pom.xml`​ ファイルにライブラリの連動関係を手動で追加します。 - **ActiveMQ KahaDB**​ `activemq-kahadb-store`​ 連動関係は VM トランスポート (​`vm://localhost?broker.persistent=true`​ など) に基づいて永続的なメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter`​ 実装を提供します。この連動関係は、永続的なメッセージ配信を行うためにも必須です。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-kahadb-store 5.14.4 ``` - **ActiveMQ ブローカー**​ `activemq-broker`​ 連動関係は VM トランスポート (デフォルトで設定される) に基づいてメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.broker.Broker`​ 実装を提供します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-broker 5.14.4 ``` - **ActiveMQ クライアント**​ ActiveMQ 接続を使用するには、​`activemq-client`​ 連動関係が常に必須です。有効な ​`org.apache.activemq.ActiveMQConnectionFactory`​ 実装を提供する連動関係を選択します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 + ```xml org.apache.activemq activemq-client 5.14.4 ``` これらのライブラリを \[Global Element (グローバル要素)\] ビューで設定する手順は、次のとおりです。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[ActiveMQ KahaDB\]**​、​**\[ActiveMQ Broker (ActiveMQ ブローカー)\]**​、および ​**\[ActiveMQ Client (ActiveMQ クライアント)\]**​ ライブラリが表示されている ​**\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定…​)\]**​ ボタンをクリックし、連動関係をインストールします。 7. 次のインストールオプションのいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​: 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​: ローカルファイルで必要なエンジンライブラリを探してインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​: 連動関係を探してインストールします。 ![「Configure (設定)」 ボタンをクリックして連動関係をインストールする](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-activemq-libaries.png) Figure 1. JMS Connector のライブラリ設定 ## [](#メモリ内ブローカーの設定)メモリ内ブローカーの設定 デフォルトでは、ActiveMQ 用 Anypoint Connector (ActiveMQ コネクタ) はメモリ内ブローカーを使用します。これにより、外部ブローカーに対して接続を設定することなくアプリケーションの作成を簡単に開始できるようになります。 メモリ内ブローカーは ​**ActiveMQ KahaDB**​ ライブラリと ​**ActiveMQ ブローカー**​ライブラリの両方を設定するために必要です。デフォルト URL は次のとおりです。 `vm://localhost?broker.persistent=false&broker.useJmx=false` Studio でメモリ内ブローカーを設定する手順は、次のとおりです。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection Factory (接続ファクトリー)\]**​ セクションで ​**\[Factory configuration (ファクトリー設定)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Broker url (ブローカー URL)\]**​ 項目を、接続するブローカーのアドレス (​`vm://localhost?broker.persistent=false&broker.useJmx=false`​ など) に設定します。 4. **\[OK\]**​ をクリックします。 ![「Broker url (ブローカー URL)」 項目を、接続するブローカーのアドレスに設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-activemq-broker.png) Figure 2. JMS Connector のメモリ内ブローカーの設定 XML エディターでは、​`brokerUrl`​ 設定は次のように記述されます。 ```xml ``` ## [](#メッセージ再配信の設定)メッセージ再配信の設定 メッセージを正しく処理できない場合、肯定応答されません。その後、メッセージは再配信され、やはり正しく処理されない可能性が高く、このサイクルは永久に実行されます。 メッセージが無限に再配信されないようにするには、​**\[Max redelivery (最大再配信)\]**​ 項目を設定します。 デフォルトでは、JMS Connector では最大再配信の値として ​`0`​ が使用されます。つまり、メッセージが回復されたか、トランザクションからロールバックされたかに関係なく、メッセージは再配信されません。メッセージで永続的な配信が設定されている場合、ActiveMQ はメッセージを ​`DLQ.QUEUE`​ (デッドレターキュー) に送信します。 ActiveMQ により、クライアント側の再配信を設定することもできます。 - **\[Initial redelivery delay (初期再配信遅延)\]**​ 項目を使用すると、最初のメッセージを再配信するまで待機する時間 (ミリ秒) を設定できます。 - **\[Redelivery delay (再配信遅延)\]**​ 項目では、最初の再配信の後、メッセージを次に再配信するまで待機する時間 (ミリ秒) を設定できます。 Studio でこれらの項目を設定する手順は、次のとおりです。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection Factory (接続ファクトリー)\]**​ セクションで ​**\[Factory configuration (ファクトリー設定)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Initial redelivery delay (初期再配信遅延)\]**​ 項目を ​`1000`​ に設定します。 4. **\[Redelivery delay (再配信遅延)\]**​ 項目を ​`100`​ に設定します。 5. **\[Max redelivery (最大再配信)\]**​ 項目を ​`10`​ に設定します。 6. **\[OK\]**​ をクリックします。 ![「Max redelivery (最大再配信)」 項目を 10 に設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-activemq-redelivery.png) Figure 3. JMS Connector の再配信の設定 XML エディターでは、​`maxRedelivery`​、​`redeliveryDelay`​、および ​`initialRedeliveryDelay`​ の設定は次のように記述されます。 ```xml ``` ## [](#信頼されるパッケージの設定)信頼されるパッケージの設定 ActiveMQ バージョン 5.12.2 および 5.13.0 以降では、逐次化および非逐次化できるクラスを制限しており、ホストシステムでの悪意のあるペイロードの実行を防ぐことができます。 ActiveMQ の場合、JMS Connector ではデフォルトで JDK および JRE 提供のクラスしか使用できません。そのため、オブジェクトメッセージを交換する必要がある場合は、​**\[Trusted packages (信頼されるパッケージ)\]**​ 項目をアクティブにして、アプリケーションで使用しているパッケージを追加する必要があります。 **\[Trust All Packages (すべてのパッケージを信頼)\]**​ 項目を有効にし、任意のオブジェクトのシリアル化および非シリアル化を許可してより多くのクラスをシリアル化することもできますが、ほとんどの場合、無効のままにするよりも安全性は低くなります。セキュリティを高めて、悪意のある攻撃を防ぐには、このパラメーターを無効のままにしてください。 次の例では、​`com.mulesoft.someapp`​ および ​`com.mulesoft.someapp.model`​ パッケージに準拠しているユーザーのみが ObjectMessages をコンシュームおよび生成できるように接続を設定します。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection Factory (接続ファクトリー)\]**​ セクションで ​**\[Factory configuration (ファクトリー設定)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Trusted packages (信頼されるパッケージ)\]**​ 項目を選択します。 4. プラス記号をクリックして、新しいパッケージを追加します。 5. **\[Trusted package (信頼されるパッケージ)\]**​ ウィンドウで ​**\[Value (値)\]**​ 項目を ​`com.mulesoft.someapp`​ に設定します。 6. **\[Finish (完了)\]**​ をクリックします。 7. ステップ 4 を繰り返します。 8. **\[Trusted package (信頼されるパッケージ)\]**​ ウィンドウで ​**\[Value (値)\]**​ 項目を ​`com.mulesoft.someapp.model`​ に設定します。 9. **\[Finish (完了)\]**​ をクリックします。 10. **\[Trust all packages (すべてのパッケージを信頼)\]**​ 項目を選択します。 11. **\[OK\]**​ をクリックします。 ![「Trusted packages (信頼されるパッケージ)」 および 「Trust all packages (すべてのパッケージを信頼)」 項目を選択する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-activemq-packages.png) Figure 4. JMS Connector の信頼されるパッケージの設定 XML エディターでは、​``​ および ​`trustAllPackages`​ の設定は次のように記述されます。 ```xml ``` ## [](#ssl-接続の設定)SSL 接続の設定 JMS Connector バージョン 1.3.0 以降では、SSL 設定を使用して ActiveMQ 接続を設定し、ActiveMQ ブローカーに対して安全で暗号化された接続を確立できます。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[TLS/SSL\]**​ タブに移動します。 7. **\[TLS Configuration (TLS 設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します 8. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、次の項目を設定します。 - **Path (パス)**​: `client.ts` - **Password (パスワード)**​: `password` 9. **\[Key Store Configuration (キーストア設定)\]**​ セクションで、次の項目を設定します。 - **Path (パス)**​: `client.ks` - **Alias (別名)**​: `client` - **Key Password (キーパスワード)**​: `password` - **Password (パスワード)**​: `password` 10. **\[OK\]**​ をクリックします。 ![SSL 設定。](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-activemq-ssl.png) Figure 5. JMS Connector の SSK 設定 XML エディターでは、​``​、​``​、および ​``​ の設定は次のように記述されます。 ```xml ``` JMS Connector でグローバル TLS コンテキスト設定を参照し、次の例のように、HTTP 用 Anypoint Connector (HTTP Connector) を使用してコネクタ間で同じ TLS コンテキストを再利用して共有することもできます。 ```xml ``` ## [](#関連情報)関連情報 - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-connector-reference) # JMS Connector 用の ActiveMQ 接続の設定 JMS 用 Anypoint Connector (JMS Connector) には、ActiveMQ 5 のサポートを提供する ActiveMQ 接続設定が含まれています。この接続を使用して、JMS 1.1 (デフォルト)、JMS 1.0.2b、JMS 2.0 仕様を設定できます。また、JMS の全般的なすべての接続パラメーターだけでなく、ActiveMQ でのみ表示されるカスタムパラメーターも設定できます。 ## [](#activemq-接続の設定)ActiveMQ 接続の設定 ActiveMQ 接続を宣言したら、目的の設定に合わせて​**接続ファクトリー**​をカスタマイズします。接続のすべてのパラメーターにはデフォルト値があります。つまり、自分のユースケースに関連するパラメーターのみを設定する必要があります。また、ActiveMQ 接続では ​**\[Initial redelivery delay (初期再配信遅延)\]**​ などの ActiveMQ 実装専用のパラメーターが公開されています。 次の例では、​**ActiveMQ 接続**​を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[Factory configuration (ファクトリー設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します。 7. **\[Broker url (ブローカー URL)\]**​ 項目値を、接続先のブローカーのアドレス (​`tcp://localhost:61616`​ など) に設定します。 8. **\[OK\]**​ をクリックします。 ![ActiveMQ 接続の設定。](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-activemq-configuration.png) Figure 1. JMS Connector の ActiveMQ 設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#必須のライブラリの設定)必須のライブラリの設定 JMS Connector はどの特定の実装にもバインドされていないため、何らかの接続種別を設定する場合は、常に JMS クライアント実装を含むライブラリを設定する必要があります。Studio のグローバル要素ビューで ActiveMQ 外部ライブラリを設定するか、​`pom.xml`​ ファイルにライブラリの連動関係を手動で追加します。 - **ActiveMQ KahaDB**​ `activemq-kahadb-store`​ 連動関係は VM トランスポート (​`vm://localhost?broker.persistent=true`​ など) に基づいて永続的なメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter`​ 実装を提供します。この連動関係は、永続的なメッセージ配信を行うためにも必須です。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-kahadb-store 5.14.4 ``` - **ActiveMQ ブローカー**​ `activemq-broker`​ 連動関係は VM トランスポート (デフォルトで設定される) に基づいてメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.broker.Broker`​ 実装を提供します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-broker 5.14.4 ``` - **ActiveMQ クライアント**​ ActiveMQ 接続を使用するには、​`activemq-client`​ 連動関係が常に必須です。有効な ​`org.apache.activemq.ActiveMQConnectionFactory`​ 実装を提供する連動関係を選択します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 + ```xml org.apache.activemq activemq-client 5.14.4 ``` これらのライブラリを \[Global Element (グローバル要素)\] ビューで設定する手順は、次のとおりです。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[ActiveMQ KahaDB\]**​、​**\[ActiveMQ Broker (ActiveMQ ブローカー)\]**​、および ​**\[ActiveMQ Client (ActiveMQ クライアント)\]**​ ライブラリが表示されている ​**\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定…​)\]**​ ボタンをクリックし、連動関係をインストールします。 7. 次のインストールオプションのいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​: 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​: ローカルファイルで必要なエンジンライブラリを探してインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​: 連動関係を探してインストールします。 ![「Configure (設定)」 ボタンをクリックして連動関係をインストールする](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-activemq-libaries.png) Figure 2. JMS Connector のライブラリ設定 ## [](#メモリ内ブローカーの設定)メモリ内ブローカーの設定 デフォルトでは、ActiveMQ 用 Anypoint Connector (ActiveMQ コネクタ) はメモリ内ブローカーを使用します。これにより、外部ブローカーに対して接続を設定することなくアプリケーションの作成を簡単に開始できるようになります。 メモリ内ブローカーは ​**ActiveMQ KahaDB**​ ライブラリと ​**ActiveMQ ブローカー**​ライブラリの両方を設定するために必要です。デフォルト URL は次のとおりです。 `vm://localhost?broker.persistent=false&broker.useJmx=false` Studio でメモリ内ブローカーを設定する手順は、次のとおりです。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection Factory (接続ファクトリー)\]**​ セクションで ​**\[Factory configuration (ファクトリー設定)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Broker url (ブローカー URL)\]**​ 項目を、接続するブローカーのアドレス (​`vm://localhost?broker.persistent=false&broker.useJmx=false`​ など) に設定します。 4. **\[OK\]**​ をクリックします。 ![「Broker url (ブローカー URL)」 項目を、接続するブローカーのアドレスに設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-activemq-broker.png) Figure 3. JMS Connector のメモリ内ブローカーの設定 XML エディターでは、​`brokerUrl`​ 設定は次のように記述されます。 ```xml ``` ## [](#メッセージ再配信の設定)メッセージ再配信の設定 メッセージを正しく処理できない場合、肯定応答されません。その後、メッセージは再配信され、やはり正しく処理されない可能性が高く、このサイクルは永久に実行されます。 メッセージが無限に再配信されないようにするには、​**\[Max redelivery (最大再配信)\]**​ 項目を設定します。 デフォルトでは、JMS Connector では最大再配信の値として ​`0`​ が使用されます。つまり、メッセージが回復されたか、トランザクションからロールバックされたかに関係なく、メッセージは再配信されません。メッセージで永続的な配信が設定されている場合、ActiveMQ はメッセージを ​`DLQ.QUEUE`​ (デッドレターキュー) に送信します。 ActiveMQ により、クライアント側の再配信を設定することもできます。 - **\[Initial redelivery delay (初期再配信遅延)\]**​ 項目を使用すると、最初のメッセージを再配信するまで待機する時間 (ミリ秒) を設定できます。 - **\[Redelivery delay (再配信遅延)\]**​ 項目では、最初の再配信の後、メッセージを次に再配信するまで待機する時間 (ミリ秒) を設定できます。 Studio でこれらの項目を設定する手順は、次のとおりです。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection Factory (接続ファクトリー)\]**​ セクションで ​**\[Factory configuration (ファクトリー設定)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Initial redelivery delay (初期再配信遅延)\]**​ 項目を ​`1000`​ に設定します。 4. **\[Redelivery delay (再配信遅延)\]**​ 項目を ​`100`​ に設定します。 5. **\[Max redelivery (最大再配信)\]**​ 項目を ​`10`​ に設定します。 6. **\[OK\]**​ をクリックします。 ![「Max redelivery (最大再配信)」 項目を 10 に設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-activemq-redelivery.png) Figure 4. JMS Connector の再配信の設定 XML エディターでは、​`maxRedelivery`​、​`redeliveryDelay`​、および ​`initialRedeliveryDelay`​ の設定は次のように記述されます。 ```xml ``` ## [](#信頼されるパッケージの設定)信頼されるパッケージの設定 ActiveMQ バージョン 5.12.2 および 5.13.0 以降では、逐次化および非逐次化できるクラスを制限しており、ホストシステムでの悪意のあるペイロードの実行を防ぐことができます。 ActiveMQ の場合、JMS Connector ではデフォルトで JDK および JRE 提供のクラスしか使用できません。そのため、オブジェクトメッセージを交換する必要がある場合は、​**\[Trusted packages (信頼されるパッケージ)\]**​ 項目をアクティブにして、アプリケーションで使用しているパッケージを追加する必要があります。 **\[Trust All Packages (すべてのパッケージを信頼)\]**​ 項目を有効にし、任意のオブジェクトのシリアル化および非シリアル化を許可してより多くのクラスをシリアル化することもできますが、ほとんどの場合、無効のままにするよりも安全性は低くなります。セキュリティを高めて、悪意のある攻撃を防ぐには、このパラメーターを無効のままにしてください。 次の例では、​`com.mulesoft.someapp`​ および ​`com.mulesoft.someapp.model`​ パッケージに準拠しているユーザーのみが ObjectMessages をコンシュームおよび生成できるように接続を設定します。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection Factory (接続ファクトリー)\]**​ セクションで ​**\[Factory configuration (ファクトリー設定)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Trusted packages (信頼されるパッケージ)\]**​ 項目を選択します。 4. プラス記号をクリックして、新しいパッケージを追加します。 5. **\[Trusted package (信頼されるパッケージ)\]**​ ウィンドウで ​**\[Value (値)\]**​ 項目を ​`com.mulesoft.someapp`​ に設定します。 6. **\[Finish (完了)\]**​ をクリックします。 7. ステップ 4 を繰り返します。 8. **\[Trusted package (信頼されるパッケージ)\]**​ ウィンドウで ​**\[Value (値)\]**​ 項目を ​`com.mulesoft.someapp.model`​ に設定します。 9. **\[Finish (完了)\]**​ をクリックします。 10. **\[Trust all packages (すべてのパッケージを信頼)\]**​ 項目を選択します。 11. **\[OK\]**​ をクリックします。 ![「Trusted packages (信頼されるパッケージ)」 および 「Trust all packages (すべてのパッケージを信頼)」 項目を選択する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-activemq-packages.png) Figure 5. JMS Connector の信頼されるパッケージの設定 XML エディターでは、​``​ および ​`trustAllPackages`​ の設定は次のように記述されます。 ```xml ``` ## [](#ssl-接続の設定)SSL 接続の設定 JMS Connector バージョン 1.3.0 以降では、SSL 設定を使用して ActiveMQ 接続を設定し、ActiveMQ ブローカーに対して安全で暗号化された接続を確立できます。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[TLS/SSL\]**​ タブに移動します。 7. **\[TLS Configuration (TLS 設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します 8. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、次の項目を設定します。 - **Path (パス)**​: `client.ts` - **Password (パスワード)**​: `password` 9. **\[Key Store Configuration (キーストア設定)\]**​ セクションで、次の項目を設定します。 - **Path (パス)**​: `client.ks` - **Alias (別名)**​: `client` - **Key Password (キーパスワード)**​: `password` - **Password (パスワード)**​: `password` 10. **\[OK\]**​ をクリックします。 ![SSL 設定。](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-activemq-ssl.png) Figure 6. JMS Connector の SSK 設定 XML エディターでは、​``​、​``​、および ​``​ の設定は次のように記述されます。 ```xml ``` JMS Connector でグローバル TLS コンテキスト設定を参照し、次の例のように、HTTP 用 Anypoint Connector (HTTP Connector) を使用してコネクタ間で同じ TLS コンテキストを再利用して共有することもできます。 ```xml ``` ## [](#関連情報)関連情報 - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-connector-reference) # JMS Connector 用の ActiveMQ 接続の設定 JMS 用 Anypoint Connector (JMS Connector) には、ActiveMQ 5 のサポートを提供する ActiveMQ 接続設定が含まれています。この接続を使用して、JMS 1.1 (デフォルト)、JMS 1.0.2b、JMS 2.0 仕様を設定できます。また、JMS の全般的なすべての接続パラメーターだけでなく、ActiveMQ でのみ表示されるカスタムパラメーターも設定できます。 ## [](#activemq-接続の設定)ActiveMQ 接続の設定 ActiveMQ 接続を宣言したら、目的の設定に合わせて​**接続ファクトリー**​をカスタマイズします。接続のすべてのパラメーターにはデフォルト値があります。つまり、自分のユースケースに関連するパラメーターのみを設定する必要があります。また、ActiveMQ 接続では ​**\[Initial redelivery delay (初期再配信遅延)\]**​ などの ActiveMQ 実装専用のパラメーターが公開されています。 次の例では、​**ActiveMQ 接続**​を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[Factory configuration (ファクトリー設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します。 7. **\[Broker url (ブローカー URL)\]**​ 項目値を、接続先のブローカーのアドレス (​`tcp://localhost:61616`​ など) に設定します。 8. **\[OK\]**​ をクリックします。 ![「Broker URL (ブローカー URL)」 項目が tcp://localhost:61616 に設定された、Studio の ActiveMQ 接続設定ウィンドウ](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-activemq-configuration.png) XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#activemq-接続-接続テストなしに設定する-非推奨)ActiveMQ 接続 - 接続テストなしに設定する (非推奨) 複数のノードでブローカー接続のログイン情報を同時に使用できない場合があります。その場合、Mule アプリケーションはリスナーの実行が 1 つのノードのみで行われるように、​`true`​ に設定された ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を使用します。ただし、他のノードでログイン情報がすでに使用されている場合、デプロイメント前に実行される接続テストでプライマリノードのデプロイメントエラーが発生することがあります。この特定のケースでは、​**\[ActiveMQ Connection - No Connectivity Test (ActiveMQ 接続 - 接続テストなし)\]**​ を使用します。これは、デプロイメント前の接続テストが実行されないという点を除き、​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ と同じです。 次の例では、​**\[ActiveMQ Connection - No Connectivity Test (ActiveMQ 接続 - 接続テストなし)\]**​ を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection - No Connectivity Test (ActiveMQ 接続 - 接続テストなし)\]**​ を選択します。 6. 省略可能な ​**\[Client id (クライアント ID)\]**​ 項目を設定します。 7. **\[Factory configuration (ファクトリー設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します。 8. **\[Broker url (ブローカー URL)\]**​ 項目値を、接続先のブローカーのアドレス (​`tcp://localhost:61616`​ など) に設定します。 9. **\[OK\]**​ をクリックします。 ![「Broker URL (ブローカー URL)」 項目が tcp://localhost:61616 に設定された、Studio の 「ActiveMQ Connection - No Connectivity Test (ActiveMQ 接続 - 接続テストなし)」 設定ウィンドウ](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-activemq-nct-configuration.png) XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#必須のライブラリの設定)必須のライブラリの設定 JMS Connector はどの特定の実装にもバインドされていないため、何らかの接続種別を設定する場合は、常に JMS クライアント実装を含むライブラリを設定する必要があります。Studio のグローバル要素ビューで ActiveMQ 外部ライブラリを設定するか、​`pom.xml`​ ファイルにライブラリの連動関係を手動で追加します。 - **ActiveMQ KahaDB**​ `activemq-kahadb-store`​ 連動関係は VM トランスポート (​`vm://localhost?broker.persistent=true`​ など) に基づいて永続的なメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter`​ 実装を提供します。この連動関係は、永続的なメッセージ配信を行うためにも必須です。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-kahadb-store 5.14.4 ``` - **ActiveMQ ブローカー**​ `activemq-broker`​ 連動関係は VM トランスポート (デフォルトで設定される) に基づいてメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.broker.Broker`​ 実装を提供します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-broker 5.14.4 ``` - **ActiveMQ クライアント**​ ActiveMQ 接続を使用するには、​`activemq-client`​ 連動関係が常に必須です。有効な ​`org.apache.activemq.ActiveMQConnectionFactory`​ 実装を提供する連動関係を選択します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 + ```xml org.apache.activemq activemq-client 5.14.4 ``` これらのライブラリを \[Global Element (グローバル要素)\] ビューで設定する手順は、次のとおりです。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[ActiveMQ KahaDB\]**​、​**\[ActiveMQ Broker (ActiveMQ ブローカー)\]**​、および ​**\[ActiveMQ Client (ActiveMQ クライアント)\]**​ ライブラリが表示されている ​**\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定…​)\]**​ ボタンをクリックし、連動関係をインストールします。 7. 次のインストールオプションのいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​: 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​: ローカルファイルで必要なエンジンライブラリを探してインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​: 連動関係を探してインストールします。 ![「Configure (設定)」 ボタンをクリックして連動関係をインストールする](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-activemq-libaries.png) Figure 1. JMS Connector のライブラリ設定 ## [](#メモリ内ブローカーの設定)メモリ内ブローカーの設定 デフォルトでは、ActiveMQ 用 Anypoint Connector (ActiveMQ コネクタ) はメモリ内ブローカーを使用します。これにより、外部ブローカーに対して接続を設定することなくアプリケーションの作成を簡単に開始できるようになります。 メモリ内ブローカーは ​**ActiveMQ KahaDB**​ ライブラリと ​**ActiveMQ ブローカー**​ライブラリの両方を設定するために必要です。デフォルト URL は次のとおりです。 `vm://localhost?broker.persistent=false&broker.useJmx=false` Studio でメモリ内ブローカーを設定する手順は、次のとおりです。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection Factory (接続ファクトリー)\]**​ セクションで ​**\[Factory configuration (ファクトリー設定)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Broker url (ブローカー URL)\]**​ 項目を、接続するブローカーのアドレス (​`vm://localhost?broker.persistent=false&broker.useJmx=false`​ など) に設定します。 4. **\[OK\]**​ をクリックします。 ![「Broker url (ブローカー URL)」 項目を、接続するブローカーのアドレスに設定する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-activemq-broker.png) Figure 2. JMS Connector のメモリ内ブローカーの設定 XML エディターでは、​`brokerUrl`​ 設定は次のように記述されます。 ```xml ``` ## [](#メッセージ再配信の設定)メッセージ再配信の設定 メッセージを正しく処理できない場合、肯定応答されません。その後、メッセージは再配信され、やはり正しく処理されない可能性が高く、このサイクルは永久に実行されます。 メッセージが無限に再配信されないようにするには、​**\[Max redelivery (最大再配信)\]**​ 項目を設定します。 デフォルトでは、JMS Connector では最大再配信の値として ​`0`​ が使用されます。つまり、メッセージが回復されたか、トランザクションからロールバックされたかに関係なく、メッセージは再配信されません。メッセージで永続的な配信が設定されている場合、ActiveMQ はメッセージを ​`DLQ.QUEUE`​ (デッドレターキュー) に送信します。 ActiveMQ により、クライアント側の再配信を設定することもできます。 - **\[Initial redelivery delay (初期再配信遅延)\]**​ 項目を使用すると、最初のメッセージを再配信するまで待機する時間 (ミリ秒) を設定できます。 - **\[Redelivery delay (再配信遅延)\]**​ 項目では、最初の再配信の後、メッセージを次に再配信するまで待機する時間 (ミリ秒) を設定できます。 Studio でこれらの項目を設定する手順は、次のとおりです。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection Factory (接続ファクトリー)\]**​ セクションで ​**\[Factory configuration (ファクトリー設定)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Initial redelivery delay (初期再配信遅延)\]**​ 項目を ​`1000`​ に設定します。 4. **\[Redelivery delay (再配信遅延)\]**​ 項目を ​`100`​ に設定します。 5. **\[Max redelivery (最大再配信)\]**​ 項目を ​`10`​ に設定します。 6. **\[OK\]**​ をクリックします。 ![「Max redelivery (最大再配信)」 項目を 10 に設定する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-activemq-redelivery.png) Figure 3. JMS Connector の再配信の設定 XML エディターでは、​`maxRedelivery`​、​`redeliveryDelay`​、および ​`initialRedeliveryDelay`​ の設定は次のように記述されます。 ```xml ``` ## [](#信頼されるパッケージの設定)信頼されるパッケージの設定 ActiveMQ バージョン 5.12.2 および 5.13.0 以降では、逐次化および非逐次化できるクラスを制限しており、ホストシステムでの悪意のあるペイロードの実行を防ぐことができます。 ActiveMQ の場合、JMS Connector ではデフォルトで JDK および JRE 提供のクラスしか使用できません。そのため、オブジェクトメッセージを交換する必要がある場合は、​**\[Trusted packages (信頼されるパッケージ)\]**​ 項目を有効にして、アプリケーションで使用しているパッケージを追加する必要があります。 **\[Trust All Packages (すべてのパッケージを信頼)\]**​ 項目を有効にし、任意のオブジェクトのシリアル化および非シリアル化を許可してより多くのクラスをシリアル化することもできますが、ほとんどの場合、無効のままにするよりも安全性は低くなります。セキュリティを高めて、悪意のある攻撃を防ぐには、このパラメーターを無効のままにしてください。 次の例では、​`com.mulesoft.someapp`​ および ​`com.mulesoft.someapp.model`​ パッケージに準拠しているユーザーのみが ObjectMessages をコンシュームおよび生成できるように接続を設定します。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection Factory (接続ファクトリー)\]**​ セクションで ​**\[Factory configuration (ファクトリー設定)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Trusted packages (信頼されるパッケージ)\]**​ 項目を選択します。 4. プラス記号をクリックして、新しいパッケージを追加します。 5. **\[Trusted package (信頼されるパッケージ)\]**​ ウィンドウで ​**\[Value (値)\]**​ 項目を ​`com.mulesoft.someapp`​ に設定します。 6. **\[Finish (完了)\]**​ をクリックします。 7. ステップ 4 を繰り返します。 8. **\[Trusted package (信頼されるパッケージ)\]**​ ウィンドウで ​**\[Value (値)\]**​ 項目を ​`com.mulesoft.someapp.model`​ に設定します。 9. **\[Finish (完了)\]**​ をクリックします。 10. **\[Trust all packages (すべてのパッケージを信頼)\]**​ 項目を選択します。 11. **\[OK\]**​ をクリックします。 ![「Trusted packages (信頼されるパッケージ)」 および 「Trust all packages (すべてのパッケージを信頼)」 項目を選択する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-activemq-packages.png) Figure 4. JMS Connector の信頼されるパッケージの設定 XML エディターでは、​``​ および ​`trustAllPackages`​ の設定は次のように記述されます。 ```xml ``` ## [](#ssl-接続の設定)SSL 接続の設定 JMS Connector バージョン 1.3.0 以降では、SSL 設定を使用して ActiveMQ 接続を設定し、ActiveMQ ブローカーに対して安全で暗号化された接続を確立できます。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[TLS/SSL\]**​ タブに移動します。 7. **\[TLS Configuration (TLS 設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します 8. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、次の項目を設定します。 - **Path (パス)**​: `client.ts` - **Password (パスワード)**​: `password` 9. **\[Key Store Configuration (キーストア設定)\]**​ セクションで、次の項目を設定します。 - **Path (パス)**​: `client.ks` - **Alias (別名)**​: `client` - **Key Password (キーパスワード)**​: `password` - **Password (パスワード)**​: `password` 10. **\[OK\]**​ をクリックします。 ![SSL 設定。](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-activemq-ssl.png) Figure 5. JMS Connector の SSK 設定 XML エディターでは、​``​、​``​、および ​``​ の設定は次のように記述されます。 ```xml ``` JMS Connector でグローバル TLS コンテキスト設定を参照し、次の例のように、HTTP 用 Anypoint Connector (HTTP Connector) を使用してコネクタ間で同じ TLS コンテキストを再利用して共有することもできます。 ```xml ``` ## [](#関連情報)関連情報 - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-connector-reference) # JMS Connector 用の ActiveMQ 接続の設定 JMS 用 Anypoint Connector (JMS Connector) には、ActiveMQ 5 のサポートを提供する ActiveMQ 接続設定が含まれています。この接続を使用して、JMS 1.1 (デフォルト)、JMS 1.0.2b、JMS 2.0 仕様を設定できます。また、JMS の全般的なすべての接続パラメーターだけでなく、ActiveMQ でのみ表示されるカスタムパラメーターも設定できます。 ## [](#activemq-接続の設定)ActiveMQ 接続の設定 ActiveMQ 接続を宣言したら、目的の設定に合わせて​**接続ファクトリー**​をカスタマイズします。接続のすべてのパラメーターにはデフォルト値があります。つまり、自分のユースケースに関連するパラメーターのみを設定する必要があります。また、ActiveMQ 接続では ​**\[Initial redelivery delay (初期再配信遅延)\]**​ などの ActiveMQ 実装専用のパラメーターが公開されています。 次の例では、​**ActiveMQ 接続**​を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[Factory configuration (ファクトリー設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します。 7. **\[Broker url (ブローカー URL)\]**​ 項目値を、接続先のブローカーのアドレス (​`tcp://localhost:61616`​ など) に設定します。 8. **\[OK\]**​ をクリックします。 ![「Broker URL (ブローカー URL)」 項目が tcp://localhost:61616 に設定された、Studio の ActiveMQ 接続設定ウィンドウ](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-activemq-configuration.png) XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#activemq-接続-接続テストなしに設定する-非推奨)ActiveMQ 接続 - 接続テストなしに設定する (非推奨) 複数のノードでブローカー接続のログイン情報を同時に使用できない場合があります。その場合、Mule アプリケーションはリスナーの実行が 1 つのノードのみで行われるように、​`true`​ に設定された ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を使用します。ただし、他のノードでログイン情報がすでに使用されている場合、デプロイメント前に実行される接続テストでプライマリノードのデプロイメントエラーが発生することがあります。この特定のケースでは、​**\[ActiveMQ Connection - No Connectivity Test (ActiveMQ 接続 - 接続テストなし)\]**​ を使用します。これは、デプロイメント前の接続テストが実行されないという点を除き、​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ と同じです。 次の例では、​**\[ActiveMQ Connection - No Connectivity Test (ActiveMQ 接続 - 接続テストなし)\]**​ を設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection - No Connectivity Test (ActiveMQ 接続 - 接続テストなし)\]**​ を選択します。 6. 省略可能な ​**\[Client id (クライアント ID)\]**​ 項目を設定します。 7. **\[Factory configuration (ファクトリー設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します。 8. **\[Broker url (ブローカー URL)\]**​ 項目値を、接続先のブローカーのアドレス (​`tcp://localhost:61616`​ など) に設定します。 9. **\[OK\]**​ をクリックします。 ![「Broker URL (ブローカー URL)」 項目が tcp://localhost:61616 に設定された、Studio の 「ActiveMQ Connection - No Connectivity Test (ActiveMQ 接続 - 接続テストなし)」 設定ウィンドウ](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-activemq-nct-configuration.png) XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#必須のライブラリの設定)必須のライブラリの設定 JMS Connector はどの特定の実装にもバインドされていないため、何らかの接続種別を設定する場合は、常に JMS クライアント実装を含むライブラリを設定する必要があります。Studio のグローバル要素ビューで ActiveMQ 外部ライブラリを設定するか、​`pom.xml`​ ファイルにライブラリの連動関係を手動で追加します。 - **ActiveMQ KahaDB**​ `activemq-kahadb-store`​ 連動関係は VM トランスポート (​`vm://localhost?broker.persistent=true`​ など) に基づいて永続的なメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter`​ 実装を提供します。この連動関係は、永続的なメッセージ配信を行うためにも必須です。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-kahadb-store 5.14.4 ``` - **ActiveMQ ブローカー**​ `activemq-broker`​ 連動関係は VM トランスポート (デフォルトで設定される) に基づいてメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な ​`org.apache.activemq.broker.Broker`​ 実装を提供します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 ```xml org.apache.activemq activemq-broker 5.14.4 ``` - **ActiveMQ クライアント**​ ActiveMQ 接続を使用するには、​`activemq-client`​ 連動関係が常に必須です。有効な ​`org.apache.activemq.ActiveMQConnectionFactory`​ 実装を提供する連動関係を選択します。 Studio の ​`pom.xml`​ ファイルでは、連動関係の追加は次のようになります。 + ```xml org.apache.activemq activemq-client 5.14.4 ``` これらのライブラリを \[Global Element (グローバル要素)\] ビューで設定する手順は、次のとおりです。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[ActiveMQ KahaDB\]**​、​**\[ActiveMQ Broker (ActiveMQ ブローカー)\]**​、および ​**\[ActiveMQ Client (ActiveMQ クライアント)\]**​ ライブラリが表示されている ​**\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定…​)\]**​ ボタンをクリックし、連動関係をインストールします。 7. 次のインストールオプションのいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​: 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​: ローカルファイルで必要なエンジンライブラリを探してインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​: 連動関係を探してインストールします。 ![「Configure (設定)」 ボタンをクリックして連動関係をインストールする](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-activemq-libaries.png) Figure 1. JMS Connector のライブラリ設定 ## [](#メモリ内ブローカーの設定)メモリ内ブローカーの設定 デフォルトでは、ActiveMQ 用 Anypoint Connector (ActiveMQ コネクタ) はメモリ内ブローカーを使用します。これにより、外部ブローカーに対して接続を設定することなくアプリケーションの作成を簡単に開始できるようになります。 メモリ内ブローカーは ​**ActiveMQ KahaDB**​ ライブラリと ​**ActiveMQ ブローカー**​ライブラリの両方を設定するために必要です。デフォルト URL は次のとおりです。 `vm://localhost?broker.persistent=false&broker.useJmx=false` Studio でメモリ内ブローカーを設定する手順は、次のとおりです。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection Factory (接続ファクトリー)\]**​ セクションで ​**\[Factory configuration (ファクトリー設定)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Broker url (ブローカー URL)\]**​ 項目を、接続するブローカーのアドレス (​`vm://localhost?broker.persistent=false&broker.useJmx=false`​ など) に設定します。 4. **\[OK\]**​ をクリックします。 ![「Broker url (ブローカー URL)」 項目を、接続するブローカーのアドレスに設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-activemq-broker.png) Figure 2. JMS Connector のメモリ内ブローカーの設定 XML エディターでは、​`brokerUrl`​ 設定は次のように記述されます。 ```xml ``` ## [](#メッセージ再配信の設定)メッセージ再配信の設定 メッセージを正しく処理できない場合、肯定応答されません。その後、メッセージは再配信され、やはり正しく処理されない可能性が高く、このサイクルは永久に実行されます。 メッセージが無限に再配信されないようにするには、​**\[Max redelivery (最大再配信)\]**​ 項目を設定します。 デフォルトでは、JMS Connector では最大再配信の値として ​`0`​ が使用されます。つまり、メッセージが回復されたか、トランザクションからロールバックされたかに関係なく、メッセージは再配信されません。メッセージで永続的な配信が設定されている場合、ActiveMQ はメッセージを ​`DLQ.QUEUE`​ (デッドレターキュー) に送信します。 ActiveMQ により、クライアント側の再配信を設定することもできます。 - **\[Initial redelivery delay (初期再配信遅延)\]**​ 項目を使用すると、最初のメッセージを再配信するまで待機する時間 (ミリ秒) を設定できます。 - **\[Redelivery delay (再配信遅延)\]**​ 項目では、最初の再配信の後、メッセージを次に再配信するまで待機する時間 (ミリ秒) を設定できます。 Studio でこれらの項目を設定する手順は、次のとおりです。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection Factory (接続ファクトリー)\]**​ セクションで ​**\[Factory configuration (ファクトリー設定)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Initial redelivery delay (初期再配信遅延)\]**​ 項目を ​`1000`​ に設定します。 4. **\[Redelivery delay (再配信遅延)\]**​ 項目を ​`100`​ に設定します。 5. **\[Max redelivery (最大再配信)\]**​ 項目を ​`10`​ に設定します。 6. **\[OK\]**​ をクリックします。 ![「Max redelivery (最大再配信)」 項目を 10 に設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-activemq-redelivery.png) Figure 3. JMS Connector の再配信の設定 XML エディターでは、​`maxRedelivery`​、​`redeliveryDelay`​、および ​`initialRedeliveryDelay`​ の設定は次のように記述されます。 ```xml ``` ## [](#信頼されるパッケージの設定)信頼されるパッケージの設定 ActiveMQ バージョン 5.12.2 および 5.13.0 以降では、逐次化および非逐次化できるクラスを制限しており、ホストシステムでの悪意のあるペイロードの実行を防ぐことができます。 ActiveMQ の場合、JMS Connector ではデフォルトで JDK および JRE 提供のクラスしか使用できません。そのため、オブジェクトメッセージを交換する必要がある場合は、​**\[Trusted packages (信頼されるパッケージ)\]**​ 項目をアクティブにして、アプリケーションで使用しているパッケージを追加する必要があります。 **\[Trust All Packages (すべてのパッケージを信頼)\]**​ 項目を有効にし、任意のオブジェクトのシリアル化および非シリアル化を許可してより多くのクラスをシリアル化することもできますが、ほとんどの場合、無効のままにするよりも安全性は低くなります。セキュリティを高めて、悪意のある攻撃を防ぐには、このパラメーターを無効のままにしてください。 次の例では、​`com.mulesoft.someapp`​ および ​`com.mulesoft.someapp.model`​ パッケージに準拠しているユーザーのみが ObjectMessages をコンシュームおよび生成できるように接続を設定します。 1. Studio で ​**\[JMS Config (JMS 設定)\]**​ グローバル要素ウィンドウを開きます。 2. **\[Connection Factory (接続ファクトリー)\]**​ セクションで ​**\[Factory configuration (ファクトリー設定)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Trusted packages (信頼されるパッケージ)\]**​ 項目を選択します。 4. プラス記号をクリックして、新しいパッケージを追加します。 5. **\[Trusted package (信頼されるパッケージ)\]**​ ウィンドウで ​**\[Value (値)\]**​ 項目を ​`com.mulesoft.someapp`​ に設定します。 6. **\[Finish (完了)\]**​ をクリックします。 7. ステップ 4 を繰り返します。 8. **\[Trusted package (信頼されるパッケージ)\]**​ ウィンドウで ​**\[Value (値)\]**​ 項目を ​`com.mulesoft.someapp.model`​ に設定します。 9. **\[Finish (完了)\]**​ をクリックします。 10. **\[Trust all packages (すべてのパッケージを信頼)\]**​ 項目を選択します。 11. **\[OK\]**​ をクリックします。 ![「Trusted packages (信頼されるパッケージ)」 および 「Trust all packages (すべてのパッケージを信頼)」 項目を選択する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-activemq-packages.png) Figure 4. JMS Connector の信頼されるパッケージの設定 XML エディターでは、​``​ および ​`trustAllPackages`​ の設定は次のように記述されます。 ```xml ``` ## [](#ssl-接続の設定)SSL 接続の設定 JMS Connector バージョン 1.3.0 以降では、SSL 設定を使用して ActiveMQ 接続を設定し、ActiveMQ ブローカーに対して安全で暗号化された接続を確立できます。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスに ​`jms`​ と入力し、​**\[JMS Config (JMS 設定)\]**​ を選択します。 4. **\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目で ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ を選択します。 6. **\[TLS/SSL\]**​ タブに移動します。 7. **\[TLS Configuration (TLS 設定)\]**​ 項目で、​**\[Edit Inline (インライン編集)\]**​ を選択します 8. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、次の項目を設定します。 - **Path (パス)**​: `client.ts` - **Password (パスワード)**​: `password` 9. **\[Key Store Configuration (キーストア設定)\]**​ セクションで、次の項目を設定します。 - **Path (パス)**​: `client.ks` - **Alias (別名)**​: `client` - **Key Password (キーパスワード)**​: `password` - **Password (パスワード)**​: `password` 10. **\[OK\]**​ をクリックします。 ![SSL 設定。](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-activemq-ssl.png) Figure 5. JMS Connector の SSK 設定 XML エディターでは、​``​、​``​、および ​``​ の設定は次のように記述されます。 ```xml ``` JMS Connector でグローバル TLS コンテキスト設定を参照し、次の例のように、HTTP 用 Anypoint Connector (HTTP Connector) を使用してコネクタ間で同じ TLS コンテキストを再利用して共有することもできます。 ```xml ``` ## [](#関連情報)関連情報 - [JMS Connector リファレンス](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-connector-reference) # パフォーマンスを向上させるための JMS Connector のチューニング メッセージによりパフォーマンスに悪影響が及ぶことがあります。次の推奨事項は、Mule アプリケーションで JMS 用 Anypoint Connector (JMS Connector) を最大限活用するのに役立つ可能性があります。 ## [](#接続キャッシュの再利用)接続キャッシュの再利用 接続の作成には多くのリソースが使用されるため、接続はできる限り再利用します。デフォルトでは、JMS Connector では、できる限り多くのコンシューマーとプロデューサーを再利用するキャッシュ戦略が使用されます。パフォーマンスの低下を避けるため、接続キャッシュは無効にしないでください。 ## [](#同時メッセージ処理数の増大)同時メッセージ処理数の増大 アプリケーションのパフォーマンスを高めるには、同じ宛先からのメッセージを受信するコンシューマーの数を増やします。JMS Connector では、​**On New Message**​ ソースの ​**\[Number of consumers (コンシューマー数)\]**​ 項目を設定することでコンシューマー数を増やすことができます。デフォルトでは、このソースでは、4 つのコンシューマーが同じ宛先のメッセージを同時に受信できますが、この数をニーズに最も適した数に増やすことができます。 次の例では、メッセージを同時に受信するコンシューマーの数を増やします。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **On New Message**​ ソースの設定画面で、​**\[Number of consumers (コンシューマー数)\]**​ 項目を ​`20`​ に設定します。 ![「On New Message」 設定画面で、「Number of consumers (コンシューマー数)」 項目を 20 に設定する](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-performance-1.png) Figure 1. JMS Connector のコンシューマー数の設定 XML エディターでは、​`numberOfConsumers`​ 設定は次のように記述されます。 ```xml ``` ## [](#クラスター設定の最適化)クラスター設定の最適化 クラスターで動作するアプリケーションの場合は、プライマリノードとコネクタの動作を考慮します。アプリケーションがクラスターで動作する場合、​**On New Message**​ ソースのデフォルトの動作では、どのような種類の宛先をアプリケーションでコンシュームする場合でも、プライマリノードでのみメッセージを受信します。 キューからメッセージをコンシュームする場合、デフォルトのコネクタ動作では、プライマリノードだけではなく、クラスターのすべてのノードでメッセージを受信します。JMS Connector では、​**On New Message**​ ソースの ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を設定できます。コネクタでクラスター内のキューからメッセージをコンシュームする場合、​**\[Primary node only (プライマリノードのみ)\]**​ 項目を選択しないでください。これはデフォルトで ​`false`​ になります。 次の例では、すべてのノードでメッセージを受信するようにコネクタを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Advanced (詳細)\]**​ タブで ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を選択解除したままにします。 ![On New Message ソースの \[Advanced (詳細)\] タブの \[Primary node only (プライマリノードのみ)\] 項目をオフにする](_images/jms-performance-2.png) Figure 2. JMS Connector のプライマリノードのみの設定 XML エディターでは、​`primaryNodeOnly`​ 設定は次のように記述されます。 ```xml ``` トピックからメッセージをコンシュームする場合、デフォルトのコネクタ動作では、プライマリノードでのみメッセージを受信するため、クラスター間で同じメッセージを複数回処理することが回避されます。 クラスター内のトピックからメッセージをコンシュームする場合、​**\[Primary node only (プライマリノードのみ)\]**​ の設定をオフにすると、共有サブスクリプションも設定していない限りクラスターで同じメッセージが複数回処理されます。 JMS 2.0 共有サブスクリプションメカニズムを使用していて、すべてのノードからメッセージをコンシュームするようにクラスター設定を変更する場合、同じように ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を ​`false`​ に設定します。 次の例では、2.0 仕様の共有サブスクリプションメカニズムを使用してコネクタを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **On New Message**​ ソースの設定画面で、​**\[Topic consumer (トピックコンシューマー)\]**​ を選択します。 3. **\[Shared (共有)\]**​ オプションを選択します。 4. **\[Subscription name (サブスクリプション名)\]**​ を ​`clusteredEventListener`​ に設定します。 5. **\[Advanced (詳細)\]**​ タブで ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を選択解除したままにします。 ![On New Message ソースの \[Advanced (詳細)\] タブの \[Primary node only (プライマリノードのみ)\] 項目をオフにする](_images/jms-performance-3.png) Figure 3. JMS Connector のプライマリノードのみの設定 XML エディターでは、​`jms:topic-consumer`​、​`shared`​、および ​`primaryNodeOnly`​ の設定は次のように記述されます。 ```xml ``` ## [](#jms-connector-のプリフェッチの設定)JMS Connector のプリフェッチの設定 JMS Connector では、ActiveMQ クライアントを使用する場合、サーバー接続 URL に対してプリフェッチを設定します。詳細は、 [ActiveMQ のドキュメント](https://activemq.apache.org/components/classic/documentation/what-is-the-prefetch-limit-for#:~:text=Specifying%20the%20PrefetchPolicy)​を参照してください。 たとえば、​`jms.prefetchPolicy.all`​ パラメーターを含む次の接続 URL について考えてみます。 ```xml tcp://localhost:61616?jms.prefetchPolicy.all=50 tcp://localhost:61616?jms.prefetchPolicy.queuePrefetch=1 ``` JMS Connector XML 設定では、接続 ​`brokenUrl`​ の設定は次のようになります。 ```xml ``` 大量のメッセージがあり高パフォーマンスが要求される場合、プリフェッチ値を増加します。ただし、メッセージ量が少なく、各メッセージの処理時間が長い場合は、プリフェッチを ​`1`​ に設定します。これにより、コンシューマーでは一度に 1 つのメッセージのみが処理されます。ただし、ゼロのプリフェッチ制限を指定すると、メッセージがコンシューマーにプッシュされるのではなくコンシューマーでメッセージが 1 つずつポーリングされます。 ## [](#関連情報)関連情報 - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-consume) - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-topic-subscription) # パフォーマンスを向上させるための JMS Connector のチューニング メッセージによりパフォーマンスに悪影響が及ぶことがあります。次の推奨事項は、Mule アプリケーションで JMS 用 Anypoint Connector (JMS Connector) を最大限活用するのに役立つ可能性があります。 ## [](#接続キャッシュの再利用)接続キャッシュの再利用 接続の作成には多くのリソースが使用されるため、接続はできる限り再利用します。デフォルトでは、JMS Connector では、できる限り多くのコンシューマーとプロデューサーを再利用するキャッシュ戦略が使用されます。パフォーマンスの低下を避けるため、接続キャッシュは無効にしないでください。 ## [](#同時メッセージ処理数の増大)同時メッセージ処理数の増大 アプリケーションのパフォーマンスを高めるには、同じ宛先からのメッセージを受信するコンシューマーの数を増やします。JMS Connector では、​**On New Message**​ ソースの ​**\[Number of consumers (コンシューマー数)\]**​ 項目を設定することでコンシューマー数を増やすことができます。デフォルトでは、このソースでは、4 つのコンシューマーが同じ宛先のメッセージを同時に受信できますが、この数をニーズに最も適した数に増やすことができます。 次の例では、メッセージを同時に受信するコンシューマーの数を増やします。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **On New Message**​ ソースの設定画面で、​**\[Number of consumers (コンシューマー数)\]**​ 項目を ​`20`​ に設定します。 ![「On New Message」 設定画面で、「Number of consumers (コンシューマー数)」 項目を 20 に設定する](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-performance-1.png) Figure 1. JMS Connector のコンシューマー数の設定 XML エディターでは、​`numberOfConsumers`​ 設定は次のように記述されます。 ```xml ``` ## [](#クラスター設定の最適化)クラスター設定の最適化 クラスターで動作するアプリケーションの場合は、プライマリノードとコネクタの動作を考慮します。アプリケーションがクラスターで動作する場合、​**On New Message**​ ソースのデフォルトの動作では、どのような種類の宛先をアプリケーションでコンシュームする場合でも、プライマリノードでのみメッセージを受信します。 キューからメッセージをコンシュームする場合、デフォルトのコネクタ動作では、プライマリノードだけではなく、クラスターのすべてのノードでメッセージを受信します。JMS Connector では、​**On New Message**​ ソースの ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を設定できます。コネクタでクラスター内のキューからメッセージをコンシュームする場合、​**\[Primary node only (プライマリノードのみ)\]**​ 項目を選択しないでください。これはデフォルトで ​`false`​ になります。 次の例では、すべてのノードでメッセージを受信するようにコネクタを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Advanced (詳細)\]**​ タブで ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を選択解除したままにします。 ![On New Message ソースの \[Advanced (詳細)\] タブの \[Primary node only (プライマリノードのみ)\] 項目をオフにする](_images/jms-performance-2.png) Figure 2. JMS Connector のプライマリノードのみの設定 XML エディターでは、​`primaryNodeOnly`​ 設定は次のように記述されます。 ```xml ``` トピックからメッセージをコンシュームする場合、デフォルトのコネクタ動作では、プライマリノードでのみメッセージを受信するため、クラスター間で同じメッセージを複数回処理することが回避されます。 クラスター内のトピックからメッセージをコンシュームする場合、​**\[Primary node only (プライマリノードのみ)\]**​ の設定をオフにすると、共有サブスクリプションも設定していない限りクラスターで同じメッセージが複数回処理されます。 JMS 2.0 共有サブスクリプションメカニズムを使用していて、すべてのノードからメッセージをコンシュームするようにクラスター設定を変更する場合、同じように ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を ​`false`​ に設定します。 次の例では、2.0 仕様の共有サブスクリプションメカニズムを使用してコネクタを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **On New Message**​ ソースの設定画面で、​**\[Topic consumer (トピックコンシューマー)\]**​ を選択します。 3. **\[Shared (共有)\]**​ オプションを選択します。 4. **\[Subscription name (サブスクリプション名)\]**​ を ​`clusteredEventListener`​ に設定します。 5. **\[Advanced (詳細)\]**​ タブで ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を選択解除したままにします。 ![On New Message ソースの \[Advanced (詳細)\] タブの \[Primary node only (プライマリノードのみ)\] 項目をオフにする](_images/jms-performance-3.png) Figure 3. JMS Connector のプライマリノードのみの設定 XML エディターでは、​`jms:topic-consumer`​、​`shared`​、および ​`primaryNodeOnly`​ の設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-consume) - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-topic-subscription) # パフォーマンスを向上させるための JMS Connector のチューニング メッセージによりパフォーマンスに悪影響が及ぶことがあります。次の推奨事項は、Mule アプリケーションで JMS 用 Anypoint Connector (JMS Connector) を最大限活用するのに役立つ可能性があります。 ## [](#接続キャッシュの再利用)接続キャッシュの再利用 接続の作成には多くのリソースが使用されるため、接続はできる限り再利用します。デフォルトでは、JMS Connector では、できる限り多くのコンシューマーとプロデューサーを再利用するキャッシュ戦略が使用されます。パフォーマンスの低下を避けるため、接続キャッシュは無効にしないでください。 ## [](#同時メッセージ処理数の増大)同時メッセージ処理数の増大 アプリケーションのパフォーマンスを高めるには、同じ宛先からのメッセージを受信するコンシューマーの数を増やします。JMS Connector では、​**On New Message**​ ソースの ​**\[Number of consumers (コンシューマー数)\]**​ 項目を設定することでコンシューマー数を増やすことができます。デフォルトでは、このソースでは、4 つのコンシューマーが同じ宛先のメッセージを同時に受信できますが、この数をニーズに最も適した数に増やすことができます。 次の例では、メッセージを同時に受信するコンシューマーの数を増やします。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **On New Message**​ ソースの設定画面で、​**\[Number of consumers (コンシューマー数)\]**​ 項目を ​`20`​ に設定します。 ![「On New Message」 設定画面で、「Number of consumers (コンシューマー数)」 項目を 20 に設定する](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-performance-1.png) Figure 1. JMS Connector のコンシューマー数の設定 XML エディターでは、​`numberOfConsumers`​ 設定は次のように記述されます。 ```xml ``` ## [](#クラスター設定の最適化)クラスター設定の最適化 クラスターで動作するアプリケーションの場合は、プライマリノードとコネクタの動作を考慮します。アプリケーションがクラスターで動作する場合、​**On New Message**​ ソースのデフォルトの動作では、どのような種類の宛先をアプリケーションでコンシュームする場合でも、プライマリノードでのみメッセージを受信します。 キューからメッセージをコンシュームする場合、デフォルトのコネクタ動作では、プライマリノードだけではなく、クラスターのすべてのノードでメッセージを受信します。JMS Connector では、​**On New Message**​ ソースの ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を設定できます。コネクタでクラスター内のキューからメッセージをコンシュームする場合、​**\[Primary node only (プライマリノードのみ)\]**​ 項目を選択しないでください。これはデフォルトで ​`false`​ になります。 次の例では、すべてのノードでメッセージを受信するようにコネクタを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Advanced (詳細)\]**​ タブで ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を選択解除したままにします。 ![On New Message ソースの 「Advanced (詳細)」 タブの 「Primary node only (プライマリノードのみ)」 項目をオフにする](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-performance-2.png) Figure 2. JMS Connector のプライマリノードのみの設定 XML エディターでは、​`primaryNodeOnly`​ 設定は次のように記述されます。 ```xml ``` トピックからメッセージをコンシュームする場合、デフォルトのコネクタ動作では、プライマリノードでのみメッセージを受信するため、クラスター間で同じメッセージを複数回処理することが回避されます。 クラスター内のトピックからメッセージをコンシュームする場合、​**\[Primary node only (プライマリノードのみ)\]**​ の設定をオフにすると、共有サブスクリプションも設定していない限りクラスターで同じメッセージが複数回処理されます。 JMS 2.0 共有サブスクリプションメカニズムを使用していて、すべてのノードからメッセージをコンシュームするようにクラスター設定を変更する場合、同じように ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を ​`false`​ に設定します。 次の例では、2.0 仕様の共有サブスクリプションメカニズムを使用してコネクタを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **On New Message**​ ソースの設定画面で、​**\[Topic consumer (トピックコンシューマー)\]**​ を選択します。 3. **\[Shared (共有)\]**​ オプションを選択します。 4. **\[Subscription name (サブスクリプション名)\]**​ を ​`clusteredEventListener`​ に設定します。 5. **\[Advanced (詳細)\]**​ タブで ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を選択解除したままにします。 ![On New Message ソースの 「Advanced (詳細)」 タブの 「Primary node only (プライマリノードのみ)」 項目をオフにする](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-performance-3.png) Figure 3. JMS Connector のプライマリノードのみの設定 XML エディターでは、​`jms:topic-consumer`​、​`shared`​、および ​`primaryNodeOnly`​ の設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-consume) - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-topic-subscription) # パフォーマンスを向上させるための JMS Connector のチューニング メッセージによりパフォーマンスに悪影響が及ぶことがあります。次の推奨事項は、Mule アプリケーションで JMS 用 Anypoint Connector (JMS Connector) を最大限活用するのに役立つ可能性があります。 ## [](#接続キャッシュの再利用)接続キャッシュの再利用 接続の作成には多くのリソースが使用されるため、接続はできる限り再利用します。デフォルトでは、JMS Connector では、できる限り多くのコンシューマーとプロデューサーを再利用するキャッシュ戦略が使用されます。パフォーマンスの低下を避けるため、接続キャッシュは無効にしないでください。 ## [](#同時メッセージ処理数の増大)同時メッセージ処理数の増大 アプリケーションのパフォーマンスを高めるには、同じ宛先からのメッセージを受信するコンシューマーの数を増やします。JMS Connector では、​**On New Message**​ ソースの ​**\[Number of consumers (コンシューマー数)\]**​ 項目を設定することでコンシューマー数を増やすことができます。デフォルトでは、このソースでは、4 つのコンシューマーが同じ宛先のメッセージを同時に受信できますが、この数をニーズに最も適した数に増やすことができます。 次の例では、メッセージを同時に受信するコンシューマーの数を増やします。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **On New Message**​ ソースの設定画面で、​**\[Number of consumers (コンシューマー数)\]**​ 項目を ​`20`​ に設定します。 ![「On New Message」 設定画面で、「Number of consumers (コンシューマー数)」 項目を 20 に設定する](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-performance-1.png) Figure 1. JMS Connector のコンシューマー数の設定 XML エディターでは、​`numberOfConsumers`​ 設定は次のように記述されます。 ```xml ``` ## [](#クラスター設定の最適化)クラスター設定の最適化 クラスターで動作するアプリケーションの場合は、プライマリノードとコネクタの動作を考慮します。アプリケーションがクラスターで動作する場合、​**On New Message**​ ソースのデフォルトの動作では、どのような種類の宛先をアプリケーションでコンシュームする場合でも、プライマリノードでのみメッセージを受信します。 キューからメッセージをコンシュームする場合、デフォルトのコネクタ動作では、プライマリノードだけではなく、クラスターのすべてのノードでメッセージを受信します。JMS Connector では、​**On New Message**​ ソースの ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を設定できます。コネクタでクラスター内のキューからメッセージをコンシュームする場合、​**\[Primary node only (プライマリノードのみ)\]**​ 項目を選択しないでください。これはデフォルトで ​`false`​ になります。 次の例では、すべてのノードでメッセージを受信するようにコネクタを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **\[Advanced (詳細)\]**​ タブで ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を選択解除したままにします。 ![On New Message ソースの \[Advanced (詳細)\] タブの \[Primary node only (プライマリノードのみ)\] 項目をオフにする](_images/jms-performance-2.png) Figure 2. JMS Connector のプライマリノードのみの設定 XML エディターでは、​`primaryNodeOnly`​ 設定は次のように記述されます。 ```xml ``` トピックからメッセージをコンシュームする場合、デフォルトのコネクタ動作では、プライマリノードでのみメッセージを受信するため、クラスター間で同じメッセージを複数回処理することが回避されます。 クラスター内のトピックからメッセージをコンシュームする場合、​**\[Primary node only (プライマリノードのみ)\]**​ の設定をオフにすると、共有サブスクリプションも設定していない限りクラスターで同じメッセージが複数回処理されます。 JMS 2.0 共有サブスクリプションメカニズムを使用していて、すべてのノードからメッセージをコンシュームするようにクラスター設定を変更する場合、同じように ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を ​`false`​ に設定します。 次の例では、2.0 仕様の共有サブスクリプションメカニズムを使用してコネクタを設定します。 1. Studio で、フローから ​**\[On New Message\]**​ ソースを選択します。 2. **On New Message**​ ソースの設定画面で、​**\[Topic consumer (トピックコンシューマー)\]**​ を選択します。 3. **\[Shared (共有)\]**​ オプションを選択します。 4. **\[Subscription name (サブスクリプション名)\]**​ を ​`clusteredEventListener`​ に設定します。 5. **\[Advanced (詳細)\]**​ タブで ​**\[Primary node only (プライマリノードのみ)\]**​ 項目を選択解除したままにします。 ![On New Message ソースの \[Advanced (詳細)\] タブの \[Primary node only (プライマリノードのみ)\] 項目をオフにする](_images/jms-performance-3.png) Figure 3. JMS Connector のプライマリノードのみの設定 XML エディターでは、​`jms:topic-consumer`​、​`shared`​、および ​`primaryNodeOnly`​ の設定は次のように記述されます。 ```xml ``` ## [](#jms-connector-のプリフェッチの設定)JMS Connector のプリフェッチの設定 JMS Connector では、ActiveMQ クライアントを使用する場合、サーバー接続 URL に対してプリフェッチを設定します。詳細は、 [ActiveMQ のドキュメント](https://activemq.apache.org/components/classic/documentation/what-is-the-prefetch-limit-for#:~:text=Specifying%20the%20PrefetchPolicy)​を参照してください。 たとえば、​`jms.prefetchPolicy.all`​ パラメーターを含む次の接続 URL について考えてみます。 ```xml tcp://localhost:61616?jms.prefetchPolicy.all=50 tcp://localhost:61616?jms.prefetchPolicy.queuePrefetch=1 ``` JMS Connector XML 設定では、接続 ​`brokenUrl`​ の設定は次のようになります。 ```xml ``` 大量のメッセージがあり高パフォーマンスが要求される場合、プリフェッチ値を増加します。ただし、メッセージ量が少なく、各メッセージの処理時間が長い場合は、プリフェッチを ​`1`​ に設定します。これにより、コンシューマーでは一度に 1 つのメッセージのみが処理されます。ただし、ゼロのプリフェッチ制限を指定すると、メッセージがコンシューマーにプッシュされるのではなくコンシューマーでメッセージが 1 つずつポーリングされます。 ## [](#関連情報)関連情報 - [メッセージのコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-consume) - [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-topic-subscription) # フロー内のメッセージのパブリッシュおよびコンシュームの例 次の例は、2 つのフロー内でメッセージをパブリッシュおよびコンシュームするように JMS 用 Anypoint Connector (JMS Connector) の ​**Publish consume**​ 操作を設定し、相関 ID を使用して受信メッセージが特定の送信メッセージへの応答であることを確認する方法を示しています。 ![Anypoint Studio のキャンバスビューでの両方の Publish consume フロー](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publishconsume-flow.png) Figure 1. Studio のフロー内での Publish Consume - 最初のフローの ​**HTTP Listener**​ ソースで、HTTP 経由で投稿されるランダムなコンテンツを読み取ってフローを開始します。 - **Publish consume**​ 操作では、HTTP Listener ソースから受信したコンテンツペイロードが含まれるメッセージを宛先キュー (​`Q1`​) にパブリッシュします。 - 2 番目のフローの ​**On New Message**​ ソースで、最初のフローで設定したキュー ​`Q1`​ に送信されたメッセージをリスンします。 - 引き続き 2 番目のフローの ​**Publish**​ 操作で、2 つのフロー内の要求メッセージと応答メッセージを相関する相関 ID 属性を使用して、メッセージを新しい宛先キュー (​`Q2`​) にパブリッシュします。 - 最初のフローに戻り、​**Publish consume**​ 操作で、相関 ID に一致する、​`Q2`​ のキューに送信されたメッセージをコンシュームします。 - 最後に最初のフローの ​**Set Payload**​ コンポーネントで値 ​`It Works!`​ を返します。 この例をテストするには、次が必要です。 1. ActiveMQ ブローカーの Docker インスタンス。 2. ActiveMQ ブローカーを使用して 2 つのキュー (​`Q1`​ と ​`Q2`​) を作成する。 3. 2 つのフローを含む Mule アプリケーションを作成する。 4. `curl`​ コマンドを使用してアプリケーションを実行およびテストする。 ActiveMQ ブローカーの Docker インスタンスをインストールする方法とキューを作成する方法は、各ガイドラインドキュメントを参照してください。 ## [](#最初のフローの作成)最初のフローの作成 メッセージをパブリッシュおよびコンシュームする Mule アプリケーションの作成を開始するには、最初のフローを作成します。 1. Studio の ​**\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. HTTP ​**Listener**​ ソースを Studio キャンバスにドラッグします。 3. **\[HTTP Listener (HTTP リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Path (パス)\]**​ 項目を ​`/test`​ に設定します。 5. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP Listener のすべてのインスタンスで使用できるグローバル要素を設定します。 6. **\[General (一般)\]**​ タブで、次のパラメーターを設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 7. **\[OK\]**​ をクリックします。 8. **\[Publish consume\]**​ 操作を ​**\[HTTP Listener\]**​ の右にドラッグします。 9. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の ​**\[Publish consume\]**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 10. **\[Connection (接続)\]**​ 項目を ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ に設定します。 11. **\[Required Libraries (必須のライブラリ)\]**​ セクションで、​**\[Configure…​ (設定…​)\]**​ をクリックして連動関係をインストールします。 12. **\[Specification (仕様)\]**​ 項目と ​**\[Caching strategy (キャッシュ戦略)\]**​ 項目をデフォルト値に設定します。 13. **\[Username (ユーザー名)\]**​ 項目と ​**\[Password (パスワード)\]**​ 項目の両方を ​`admin`​ に設定します。 14. **\[Factory configuration (ファクトリー設定)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 15. **\[Broker url (ブローカー URL)\]**​ 項目を ​`tcp://localhost:61616`​ に設定します。 16. **\[OK\]**​ をクリックします。 17. **\[Publish consume\] > \[General (一般)\]**​ セクションで、​**\[Destination (宛先)\]**​ 項目を ​`Q1`​ に設定して 2 つのキューのうちの最初のキューを作成します。このキューでは HTTP Listener のペイロードを含むメッセージをパブリッシュします。 18. この例では、​**\[Message (メッセージ)\]**​ セクションで ​**\[Correlation ID (相関 ID)\]**​ を ​`0303456`​ に設定します。 19. **\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 20. **\[Destination Name (宛先名)\]**​ 項目を ​`Q2`​ に設定して 2 番目の宛先キューを作成します。このキューでは 2 番目のフローの ​**Publish**​ 操作で送信されたメッセージをコンシュームします。 21. **\[Consume Configuration (コンシューム設定)\]**​ セクションで ​**\[Ack mode (肯定応答モード)\]**​ 項目を ​**\[IMMEDIATE (即時)\]**​ に設定します。 ![Anypoint Studio での Publish Consume 操作の設定](/mulesoft/current/ja-jp/jms-connector/1.10/_images/jms-publishconsume-operation.png) Figure 2. Publish Consume 操作の設定 1. **\[Set Payload\]**​ コンポーネントを ​**\[Publish consume\]**​ の右にドラッグします。 2. **\[Value (値)\]**​ 項目を ​`It Works!`​ に設定します。 ## [](#2-番目のフローの作成)2 番目のフローの作成 引き続き 2 番目のフローを追加してアプリケーションを作成します。 1. JMS の ​**\[On New Message\]**​ ソースを最初のフローの下にドラッグします。 2. 最初のフローを作成するステップ 9 ~ 16 を繰り返して、ソースのグローバル要素を作成します。 3. **\[On New Message\]**​ 設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`Q1`​ に設定し、最初のフローの ​**Publish consume**​ 操作で設定した宛先をソースでリスンすることを示します。 4. JMS の ​**\[Publish\]**​ 操作をソースの右にドラッグします。 5. **\[Connector configuration (コネクタ設定)\]**​ を ​**On New Message**​ ソースと同じ設定にします。 6. **\[Destination (宛先)\]**​ 項目を ​`Q2`​ に設定し、メッセージを最初のフローの ​**Publish consume**​ 操作の宛先キューにパブリッシュすることを示します。 7. **\[Message (メッセージ)\]**​ セクションで ​**\[Correlation ID (相関 ID)\]**​ 項目を ​`attributes.headers.correlationId`​ に設定し、要求メッセージと応答メッセージを相関します。 ## [](#mule-アプリケーションの実行およびテスト)Mule アプリケーションの実行およびテスト Mule アプリケーションを作成したら、それを実行してテストします。 1. Studio で、Mule アプリケーションを保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 3. ブラウザーを開き、​`http://0.0.0.0:8081/test`​ と入力します。 ## [](#フロー内でのパブリッシュおよびコンシュームの-xml)フロー内でのパブリッシュおよびコンシュームの XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [メッセージのパブリッシュと応答のコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-publish-consume) - [メッセージのパブリッシュ](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-publish) - [JMS Connector の例](https://docs.mulesoft.com/jp/jms-connector/1.10/jms-examples) # フロー内のメッセージのパブリッシュおよびコンシュームの例 次の例は、2 つのフロー内でメッセージをパブリッシュおよびコンシュームするように JMS 用 Anypoint Connector (JMS Connector) の ​**Publish consume**​ 操作を設定し、相関 ID を使用して受信メッセージが特定の送信メッセージへの応答であることを確認する方法を示しています。 ![Anypoint Studio のキャンバスビューでの両方の Publish consume フロー](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publishconsume-flow.png) Figure 1. Studio のフロー内での Publish Consume - 最初のフローの ​**HTTP Listener**​ ソースで、HTTP 経由で投稿されるランダムなコンテンツを読み取ってフローを開始します。 - **Publish consume**​ 操作では、HTTP Listener ソースから受信したコンテンツペイロードが含まれるメッセージを宛先キュー (​`Q1`​) にパブリッシュします。 - 2 番目のフローの ​**On New Message**​ ソースで、最初のフローで設定したキュー ​`Q1`​ に送信されたメッセージをリスンします。 - 引き続き 2 番目のフローの ​**Publish**​ 操作で、2 つのフロー内の要求メッセージと応答メッセージを相関する相関 ID 属性を使用して、メッセージを新しい宛先キュー (​`Q2`​) にパブリッシュします。 - 最初のフローに戻り、​**Publish consume**​ 操作で、相関 ID に一致する、​`Q2`​ のキューに送信されたメッセージをコンシュームします。 - 最後に最初のフローの ​**Set Payload**​ コンポーネントで値 ​`It Works!`​ を返します。 この例をテストするには、次が必要です。 1. ActiveMQ ブローカーの Docker インスタンス。 2. ActiveMQ ブローカーを使用して 2 つのキュー (​`Q1`​ と ​`Q2`​) を作成する。 3. 2 つのフローを含む Mule アプリケーションを作成する。 4. `curl`​ コマンドを使用してアプリケーションを実行およびテストする。 ActiveMQ ブローカーの Docker インスタンスをインストールする方法とキューを作成する方法は、各ガイドラインドキュメントを参照してください。 ## [](#最初のフローの作成)最初のフローの作成 メッセージをパブリッシュおよびコンシュームする Mule アプリケーションの作成を開始するには、最初のフローを作成します。 1. Studio の ​**\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. HTTP ​**Listener**​ ソースを Studio キャンバスにドラッグします。 3. **\[HTTP Listener (HTTP リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Path (パス)\]**​ 項目を ​`/test`​ に設定します。 5. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP Listener のすべてのインスタンスで使用できるグローバル要素を設定します。 6. **\[General (一般)\]**​ タブで、次のパラメーターを設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 7. **\[OK\]**​ をクリックします。 8. **\[Publish consume\]**​ 操作を ​**\[HTTP Listener\]**​ の右にドラッグします。 9. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の ​**\[Publish consume\]**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 10. **\[Connection (接続)\]**​ 項目を ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ に設定します。 11. **\[Required Libraries (必須のライブラリ)\]**​ セクションで、​**\[Configure…​ (設定…​)\]**​ をクリックして連動関係をインストールします。 12. **\[Specification (仕様)\]**​ 項目と ​**\[Caching strategy (キャッシュ戦略)\]**​ 項目をデフォルト値に設定します。 13. **\[Username (ユーザー名)\]**​ 項目と ​**\[Password (パスワード)\]**​ 項目の両方を ​`admin`​ に設定します。 14. **\[Factory configuration (ファクトリー設定)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 15. **\[Broker url (ブローカー URL)\]**​ 項目を ​`tcp://localhost:61616`​ に設定します。 16. **\[OK\]**​ をクリックします。 17. **\[Publish consume\] > \[General (一般)\]**​ セクションで、​**\[Destination (宛先)\]**​ 項目を ​`Q1`​ に設定して 2 つのキューのうちの最初のキューを作成します。このキューでは HTTP リスナーのペイロードを含むメッセージをパブリッシュします。 18. この例では、​**\[Message (メッセージ)\]**​ セクションで ​**\[Correlation ID (相関 ID)\]**​ を ​`0303456`​ に設定します。 19. **\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 20. **\[Destination Name (宛先名)\]**​ 項目を ​`Q2`​ に設定して 2 番目の宛先キューを作成します。このキューでは 2 番目のフローの ​**Publish**​ 操作で送信されたメッセージをコンシュームします。 21. **\[Consume Configuration (コンシューム設定)\]**​ セクションで ​**\[Ack mode (肯定応答モード)\]**​ 項目を ​**\[IMMEDIATE (即時)\]**​ に設定します。 ![Anypoint Studio での Publish Consume 操作の設定](/mulesoft/current/ja-jp/jms-connector/1.7/_images/jms-publishconsume-operation.png) Figure 2. Publish Consume 操作の設定 1. **\[Set Payload\]**​ コンポーネントを ​**\[Publish consume\]**​ の右にドラッグします。 2. **\[Value (値)\]**​ 項目を ​`It Works!`​ に設定します。 ## [](#2-番目のフローの作成)2 番目のフローの作成 引き続き 2 番目のフローを追加してアプリケーションを作成します。 1. JMS の ​**\[On New Message\]**​ ソースを最初のフローの下にドラッグします。 2. 最初のフローを作成するステップ 9 ~ 16 を繰り返して、ソースのグローバル要素を作成します。 3. **\[On New Message\]**​ 設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`Q1`​ に設定し、最初のフローの ​**Publish consume**​ 操作で設定した宛先をソースでリスンすることを示します。 4. JMS の ​**\[Publish\]**​ 操作をソースの右にドラッグします。 5. **\[Connector configuration (コネクタ設定)\]**​ を ​**On New Message**​ ソースと同じ設定にします。 6. **\[Destination (宛先)\]**​ 項目を ​`Q2`​ に設定し、メッセージを最初のフローの ​**Publish consume**​ 操作の宛先キューにパブリッシュすることを示します。 7. **\[Message (メッセージ)\]**​ セクションで ​**\[Correlation ID (相関 ID)\]**​ 項目を ​`attributes.headers.correlationId`​ に設定し、要求メッセージと応答メッセージを相関します。 ## [](#mule-アプリケーションの実行およびテスト)Mule アプリケーションの実行およびテスト Mule アプリケーションを作成したら、それを実行してテストします。 1. Studio で、Mule アプリケーションを保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 3. ブラウザーを開き、​`http://0.0.0.0:8081/test`​ と入力します。 ## [](#フロー内でのパブリッシュおよびコンシュームの-xml)フロー内でのパブリッシュおよびコンシュームの XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [メッセージのパブリッシュと応答のコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-publish-consume) - [メッセージのパブリッシュ](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-publish) - [JMS Connector の例](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-examples) # フロー内のメッセージのパブリッシュおよびコンシュームの例 次の例は、2 つのフロー内でメッセージをパブリッシュおよびコンシュームするように JMS 用 Anypoint Connector (JMS Connector) の ​**Publish consume**​ 操作を設定し、相関 ID を使用して受信メッセージが特定の送信メッセージへの応答であることを確認する方法を示しています。 ![Anypoint Studio のキャンバスビューでの両方の Publish consume フロー](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publishconsume-flow.png) Figure 1. Studio のフロー内での Publish Consume - 最初のフローの ​**HTTP Listener**​ ソースで、HTTP 経由で投稿されるランダムなコンテンツを読み取ってフローを開始します。 - **Publish consume**​ 操作では、HTTP Listener ソースから受信したコンテンツペイロードが含まれるメッセージを宛先キュー (​`Q1`​) にパブリッシュします。 - 2 番目のフローの ​**On New Message**​ ソースで、最初のフローで設定したキュー ​`Q1`​ に送信されたメッセージをリスンします。 - 引き続き 2 番目のフローの ​**Publish**​ 操作で、2 つのフロー内の要求メッセージと応答メッセージを相関する相関 ID 属性を使用して、メッセージを新しい宛先キュー (​`Q2`​) にパブリッシュします。 - 最初のフローに戻り、​**Publish consume**​ 操作で、相関 ID に一致する、​`Q2`​ のキューに送信されたメッセージをコンシュームします。 - 最後に最初のフローの ​**Set Payload**​ コンポーネントで値 ​`It Works!`​ を返します。 この例をテストするには、次が必要です。 1. ActiveMQ ブローカーの Docker インスタンス。 2. ActiveMQ ブローカーを使用して 2 つのキュー (​`Q1`​ と ​`Q2`​) を作成する。 3. 2 つのフローを含む Mule アプリケーションを作成する。 4. `curl`​ コマンドを使用してアプリケーションを実行およびテストする。 ActiveMQ ブローカーの Docker インスタンスをインストールする方法とキューを作成する方法は、各ガイドラインドキュメントを参照してください。 ## [](#最初のフローの作成)最初のフローの作成 メッセージをパブリッシュおよびコンシュームする Mule アプリケーションの作成を開始するには、最初のフローを作成します。 1. Studio の ​**\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. HTTP ​**Listener**​ ソースを Studio キャンバスにドラッグします。 3. **\[HTTP Listener (HTTP リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Path (パス)\]**​ 項目を ​`/test`​ に設定します。 5. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP Listener のすべてのインスタンスで使用できるグローバル要素を設定します。 6. **\[General (一般)\]**​ タブで、次のパラメーターを設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 7. **\[OK\]**​ をクリックします。 8. **\[Publish consume\]**​ 操作を ​**\[HTTP Listener\]**​ の右にドラッグします。 9. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の ​**\[Publish consume\]**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 10. **\[Connection (接続)\]**​ 項目を ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ に設定します。 11. **\[Required Libraries (必須のライブラリ)\]**​ セクションで、​**\[Configure…​ (設定…​)\]**​ をクリックして連動関係をインストールします。 12. **\[Specification (仕様)\]**​ 項目と ​**\[Caching strategy (キャッシュ戦略)\]**​ 項目をデフォルト値に設定します。 13. **\[Username (ユーザー名)\]**​ 項目と ​**\[Password (パスワード)\]**​ 項目の両方を ​`admin`​ に設定します。 14. **\[Factory configuration (ファクトリー設定)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 15. **\[Broker url (ブローカー URL)\]**​ 項目を ​`tcp://localhost:61616`​ に設定します。 16. **\[OK\]**​ をクリックします。 17. **\[Publish consume\] > \[General (一般)\]**​ セクションで、​**\[Destination (宛先)\]**​ 項目を ​`Q1`​ に設定して 2 つのキューのうちの最初のキューを作成します。このキューでは HTTP Listener のペイロードを含むメッセージをパブリッシュします。 18. この例では、​**\[Message (メッセージ)\]**​ セクションで ​**\[Correlation ID (相関 ID)\]**​ を ​`0303456`​ に設定します。 19. **\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 20. **\[Destination Name (宛先名)\]**​ 項目を ​`Q2`​ に設定して 2 番目の宛先キューを作成します。このキューでは 2 番目のフローの ​**Publish**​ 操作で送信されたメッセージをコンシュームします。 21. **\[Consume Configuration (コンシューム設定)\]**​ セクションで ​**\[Ack mode (肯定応答モード)\]**​ 項目を ​**\[IMMEDIATE (即時)\]**​ に設定します。 ![Anypoint Studio での Publish Consume 操作の設定](/mulesoft/current/ja-jp/jms-connector/1.8/_images/jms-publishconsume-operation.png) Figure 2. Publish Consume 操作の設定 1. **\[Set Payload\]**​ コンポーネントを ​**\[Publish consume\]**​ の右にドラッグします。 2. **\[Value (値)\]**​ 項目を ​`It Works!`​ に設定します。 ## [](#2-つ目のフローの作成)2 つ目のフローの作成 引き続き 2 番目のフローを追加してアプリケーションを作成します。 1. JMS の ​**\[On New Message\]**​ ソースを最初のフローの下にドラッグします。 2. 最初のフローを作成するステップ 9 ~ 16 を繰り返して、ソースのグローバル要素を作成します。 3. **\[On New Message\]**​ 設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`Q1`​ に設定し、最初のフローの ​**Publish consume**​ 操作で設定した宛先をソースでリスンすることを示します。 4. JMS の ​**\[Publish\]**​ 操作をソースの右にドラッグします。 5. **\[Connector configuration (コネクタ設定)\]**​ を ​**On New Message**​ ソースと同じ設定にします。 6. **\[Destination (宛先)\]**​ 項目を ​`Q2`​ に設定し、メッセージを最初のフローの ​**Publish consume**​ 操作の宛先キューにパブリッシュすることを示します。 7. **\[Message (メッセージ)\]**​ セクションで ​**\[Correlation ID (相関 ID)\]**​ 項目を ​`attributes.headers.correlationId`​ に設定し、要求メッセージと応答メッセージを相関します。 ## [](#mule-アプリケーションの実行およびテスト)Mule アプリケーションの実行およびテスト Mule アプリケーションを作成したら、それを実行してテストします。 1. Studio で、Mule アプリケーションを保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 3. ブラウザーを開き、​`http://0.0.0.0:8081/test`​ と入力します。 ## [](#フロー内でのパブリッシュおよびコンシュームの-xml)フロー内でのパブリッシュおよびコンシュームの XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [メッセージのパブリッシュと応答のコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-publish-consume) - [メッセージのパブリッシュ](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-publish) - [JMS Connector の例](https://docs.mulesoft.com/jp/jms-connector/1.8/jms-examples) # フロー内のメッセージのパブリッシュおよびコンシュームの例 次の例は、2 つのフロー内でメッセージをパブリッシュおよびコンシュームするように JMS 用 Anypoint Connector (JMS Connector) の ​**Publish consume**​ 操作を設定し、相関 ID を使用して受信メッセージが特定の送信メッセージへの応答であることを確認する方法を示しています。 ![Anypoint Studio のキャンバスビューでの両方の Publish consume フロー](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publishconsume-flow.png) Figure 1. Studio のフロー内での Publish Consume - 最初のフローの ​**HTTP Listener**​ ソースで、HTTP 経由で投稿されるランダムなコンテンツを読み取ってフローを開始します。 - **Publish consume**​ 操作では、HTTP Listener ソースから受信したコンテンツペイロードが含まれるメッセージを宛先キュー (​`Q1`​) にパブリッシュします。 - 2 番目のフローの ​**On New Message**​ ソースで、最初のフローで設定したキュー ​`Q1`​ に送信されたメッセージをリスンします。 - 引き続き 2 番目のフローの ​**Publish**​ 操作で、2 つのフロー内の要求メッセージと応答メッセージを相関する相関 ID 属性を使用して、メッセージを新しい宛先キュー (​`Q2`​) にパブリッシュします。 - 最初のフローに戻り、​**Publish consume**​ 操作で、相関 ID に一致する、​`Q2`​ のキューに送信されたメッセージをコンシュームします。 - 最後に最初のフローの ​**Set Payload**​ コンポーネントで値 ​`It Works!`​ を返します。 この例をテストするには、次が必要です。 1. ActiveMQ ブローカーの Docker インスタンス。 2. ActiveMQ ブローカーを使用して 2 つのキュー (​`Q1`​ と ​`Q2`​) を作成する。 3. 2 つのフローを含む Mule アプリケーションを作成する。 4. `curl`​ コマンドを使用してアプリケーションを実行およびテストする。 ActiveMQ ブローカーの Docker インスタンスをインストールする方法とキューを作成する方法は、各ガイドラインドキュメントを参照してください。 ## [](#最初のフローの作成)最初のフローの作成 メッセージをパブリッシュおよびコンシュームする Mule アプリケーションの作成を開始するには、最初のフローを作成します。 1. Studio の ​**\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. HTTP ​**Listener**​ ソースを Studio キャンバスにドラッグします。 3. **\[HTTP Listener (HTTP リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Path (パス)\]**​ 項目を ​`/test`​ に設定します。 5. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP Listener のすべてのインスタンスで使用できるグローバル要素を設定します。 6. **\[General (一般)\]**​ タブで、次のパラメーターを設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 7. **\[OK\]**​ をクリックします。 8. **\[Publish consume\]**​ 操作を ​**\[HTTP Listener\]**​ の右にドラッグします。 9. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の ​**\[Publish consume\]**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 10. **\[Connection (接続)\]**​ 項目を ​**\[ActiveMQ Connection (ActiveMQ 接続)\]**​ に設定します。 11. **\[Required Libraries (必須のライブラリ)\]**​ セクションで、​**\[Configure…​ (設定…​)\]**​ をクリックして連動関係をインストールします。 12. **\[Specification (仕様)\]**​ 項目と ​**\[Caching strategy (キャッシュ戦略)\]**​ 項目をデフォルト値に設定します。 13. **\[Username (ユーザー名)\]**​ 項目と ​**\[Password (パスワード)\]**​ 項目の両方を ​`admin`​ に設定します。 14. **\[Factory configuration (ファクトリー設定)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 15. **\[Broker url (ブローカー URL)\]**​ 項目を ​`tcp://localhost:61616`​ に設定します。 16. **\[OK\]**​ をクリックします。 17. **\[Publish consume\] > \[General (一般)\]**​ セクションで、​**\[Destination (宛先)\]**​ 項目を ​`Q1`​ に設定して 2 つのキューのうちの最初のキューを作成します。このキューでは HTTP リスナーのペイロードを含むメッセージをパブリッシュします。 18. この例では、​**\[Message (メッセージ)\]**​ セクションで ​**\[Correlation ID (相関 ID)\]**​ を ​`0303456`​ に設定します。 19. **\[Reply To (応答先)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 20. **\[Destination Name (宛先名)\]**​ 項目を ​`Q2`​ に設定して 2 番目の宛先キューを作成します。このキューでは 2 番目のフローの ​**Publish**​ 操作で送信されたメッセージをコンシュームします。 21. **\[Consume Configuration (コンシューム設定)\]**​ セクションで ​**\[Ack mode (肯定応答モード)\]**​ 項目を ​**\[IMMEDIATE (即時)\]**​ に設定します。 ![Anypoint Studio での Publish Consume 操作の設定](/mulesoft/current/ja-jp/jms-connector/1.9/_images/jms-publishconsume-operation.png) Figure 2. Publish Consume 操作の設定 1. **\[Set Payload\]**​ コンポーネントを ​**\[Publish consume\]**​ の右にドラッグします。 2. **\[Value (値)\]**​ 項目を ​`It Works!`​ に設定します。 ## [](#2-番目のフローの作成)2 番目のフローの作成 引き続き 2 番目のフローを追加してアプリケーションを作成します。 1. JMS の ​**\[On New Message\]**​ ソースを最初のフローの下にドラッグします。 2. 最初のフローを作成するステップ 9 ~ 16 を繰り返して、ソースのグローバル要素を作成します。 3. **\[On New Message\]**​ 設定画面で、​**\[Destination (宛先)\]**​ 項目を ​`Q1`​ に設定し、最初のフローの ​**Publish consume**​ 操作で設定した宛先をソースでリスンすることを示します。 4. JMS の ​**\[Publish\]**​ 操作をソースの右にドラッグします。 5. **\[Connector configuration (コネクタ設定)\]**​ を ​**On New Message**​ ソースと同じ設定にします。 6. **\[Destination (宛先)\]**​ 項目を ​`Q2`​ に設定し、メッセージを最初のフローの ​**Publish consume**​ 操作の宛先キューにパブリッシュすることを示します。 7. **\[Message (メッセージ)\]**​ セクションで ​**\[Correlation ID (相関 ID)\]**​ 項目を ​`attributes.headers.correlationId`​ に設定し、要求メッセージと応答メッセージを相関します。 ## [](#mule-アプリケーションの実行およびテスト)Mule アプリケーションの実行およびテスト Mule アプリケーションを作成したら、それを実行してテストします。 1. Studio で、Mule アプリケーションを保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 3. ブラウザーを開き、​`http://0.0.0.0:8081/test`​ と入力します。 ## [](#フロー内でのパブリッシュおよびコンシュームの-xml)フロー内でのパブリッシュおよびコンシュームの XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [メッセージのパブリッシュと応答のコンシューム](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-publish-consume) - [メッセージのパブリッシュ](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-publish) - [JMS Connector の例](https://docs.mulesoft.com/jp/jms-connector/1.9/jms-examples)