Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerAnypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。
Studio でコネクタを追加および設定する手順は、次のとおりです。
「アプリケーションログの表示」で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。
Studio で初めてコネクタを設定する場合は、「Anypoint Studio を使用したコネクタの設定」を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、「JMS Connector リファレンス」を参照してください。
Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。
Studio で、[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)] を選択します。
Mule プロジェクトの名前を入力して、[Finish (完了)] をクリックします。
JMS 用 Anypoint Connector (JMS Connector) を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの pom.xml
ファイルに必須の連動関係を追加します。
[Mule Palette (Mule パレット)] ビューで、[(X) Search in Exchange ((X) Exchange 内を検索)] をクリックします。
[Add Dependencies to Project (連動関係をプロジェクトに追加)] ウィンドウで、検索項目に「jms
」と入力します。
[Available modules (使用可能なモジュール)] で [JMS Connector] をクリックします。
[Add (追加)] をクリックします。
[Finish (完了)] をクリックします。
Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。
ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを設定して、JMS Connector で使用できます。
[JMS] > [On New Message]
受信メッセージをリスンすることでフローを開始する
[HTTP] > [Listener]
設定されたホストとポートで要求を受信するたびにフローを開始する
Scheduler
時間ベースの条件が満たされたときにフローを開始する
たとえば、On New Message ソースを設定する手順は、次のとおりです。
[Mule Palette (Mule パレット)] ビューで、[JMS] > [On New Message] を選択します。
[On New Message] を Studio キャンバスにドラッグします。
[On New Message] 設定画面で、必要に応じて [Display Name (表示名)] 項目の値を変更します。
[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号 (+) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。
[JMS Config (JMS 設定)] ウィンドウの [Connection (接続)] で、この設定に指定する接続種別のいずれかを選択します。
Active MQ Connection (Active MQ 接続)
Active MQ Connection -No Connectivity Test - (Active MQ 接続 - 接続テストなし -) (非推奨)
Generic Connection (汎用接続)
[General (一般)] タブで、コネクタの接続情報 (ブローカーで必要なライブラリ、JMS 仕様、キャッシュ戦略、認証、接続ファクトリーなど) を指定します。
[TLS/SSL] タブで、必要に応じて TLS 設定を指定します。
[Advanced (詳細)] タブで、必要に応じて再接続戦略と XA 接続プールを指定します。
[OK] をクリックして、ウィンドウを閉じます。
[On New Message] 設定画面の [Destination (宛先)] でメッセージのコンシューム元である宛先の名前を指定します。
[On New Message] 設定画面で他の省略可能な項目を設定します。
フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。
JMS Connector の操作を追加するには、次の手順に従います。
[Mule Palette (Mule パレット)] ビューで、[JMS Connector (VM Connector)] を選択し、目的の操作を選択します。
その操作を Studio キャンバスの入力元の右にドラッグします。
次のスクリーンショットは、Anypoint Studio の [Mule Palette (Mule パレット)] ビューの JMS Connector の操作を示しています。
接続の問題を回避するには、パブリッシュとコンシュームの両方に共有 JMS 設定を作成する代わりに、パブリッシュとコンシュームに個別の JMS 設定を作成します。JMS Connector にはメッセージのパブリッシュとコンシュームを目的として微調整された一連のデフォルト値が用意されています。設定する必要があるのは、使用する接続のみです。設定に関連するすべての操作のグローバルのデフォルト動作を定義し、カスタム動作が必要な操作でのみ各パラメーターを上書きすることができます。
JMS Connector のグローバル要素を設定する手順は、次のとおりです。
Studio キャンバスで操作を選択します。
操作の設定画面で、[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号 (+) をクリックし、グローバル要素設定項目にアクセスします。
[JMS Config (JMS 設定)] ウィンドウの [Connection (接続)] で、この設定に指定する接続種別のいずれかを選択します。
Active MQ Connection (Active MQ 接続)
Active MQ Connection -No Connectivity Test - (Active MQ 接続 - 接続テストなし -) (非推奨)
Generic Connection (汎用接続)
[General (一般)] タブで、コネクタの接続情報 (ブローカーで必要なライブラリ、JMS 仕様、キャッシュ戦略、認証、接続ファクトリーなど) を指定します。
[TLS/SSL] タブで、必要に応じて TLS 設定を指定します。
[Advanced (詳細)] タブで、必要に応じて再接続戦略と XA 接続プールを指定します。
[Consumer (コンシューマー)] タブで、必要に応じて、フロー内にあるすべての Consume および On New Message 操作のグローバルのデフォルト動作の設定を定義します。
[Producer (プロデューサー)] タブで、必要に応じて、フロー内にあるすべての Publish および Publish consume 操作のグローバルのデフォルト動作の設定を定義します。
[OK] をクリックして、ウィンドウを閉じます。
次のスクリーンショットは、Anypoint Studio の JMS Connector の [Global Element Configuration (グローバル要素設定)] ウィンドウを示しています。
XML エディターでは、<jms:config>
設定は次のように記述されます。
<jms:config name="JMS_Config">
<jms:active-mq-connection clientId="${env.clientId}"/>
</jms:config>
xml
次の例では、この設定に関連付けられた Consume または On New Message 操作のいずれかでメッセージをコンシュームするときのデフォルトのセレクター動作を定義します。また、各 Publish または Publish consume 操作で存続期間 (TTL) が 60 秒の送信メッセージを生成します。
Studio で、[Global Elements (グローバル要素)] タブに移動します。
[Create (作成)] をクリックします。
検索条件ボックスに jms
と入力し、[JMS Config (JMS 設定)] を選択します。
[OK] をクリックします。
[JMS Config (JMS 設定)] ウィンドウの [Connection (接続)] で [Active MQ Connection (Active MQ 接続)] を選択します。
[Consumer (コンシューマー)] タブで [Selector (セレクター)] 項目を JMSType
= [INVOICE (請求書)]` に設定し、受信メッセージを請求書で絞り込みます。
[Producer (プロデューサー)] タブで [Time to live (存続期間)] 項目を 60000
に設定し、メッセージが期限切れになって破棄されるまでブローカーに残るデフォルトの時間を定義します。
XML エディターでは、<jms:config>
、selector
、および timeToLive
の設定は次のように記述されます。
<jms:config name="JMS_Config">
<jms:active-mq-connection/>
<jms:consumer-config selector="JMSType = `INVOICE`"/>
<jms:producer-config timeToLive="60000"/>
</jms:config>
xml
これらプロパティは必要に応じて操作レベルで上書きできます。次の例では、より短い TTL でメッセージをパブリッシュします。グローバル要素で設定された [Time to live (存続期間)] 項目の値を上書きする手順は、次のとおりです。
Studio で、フローから [Publish] 操作を選択します。
[Publish] 設定画面で [Publish Configuration (パブリッシュ設定)] セクションまでスクロールダウンします。
[Time to live (存続期間)] 項目を 10000
に設定し、以前に設定したデフォルトのグローバル設定を上書きします。
XML エディターでは、<jms:publish>
および timeToLive
の設定は次のように記述されます。
<jms:publish config-ref="JMS_Config" timeToLive="10000"/>
xml
グローバル要素で接続を設定するには、[ActiveMQ Connection (ActiveMQ 接続)] または [Generic Connection (汎用接続)] のいずれかを選択して接続を定義し、接続ライブラリと JMS 仕様を設定します。
JMS Connector では、認証済み接続が必要な場合にログイン情報を指定することもできます。また、接続キャッシュを設定してアプリケーションのパフォーマンスを高めることもできます。
JMS Connector では、[ActiveMQ Connection (ActiveMQ 接続)] 設定を使用することで ActiveMQ 5 がサポートされます。この接続では、JMS_1_1 (Default)
または JMS_1_0_2b
仕様を使用できます。また、JMS の全般的なすべての接続パラメーターや、ActiveMQ でのみ表示されるカスタムパラメーターを設定することもできます。
ActiveMQ 接続を宣言したら、目的の設定に合わせて接続ファクトリーをカスタマイズします。接続のすべてのパラメーターにはデフォルト値があります。つまり、自分のユースケースに関連するパラメーターのみを設定する必要があります。また、ActiveMQ 接続では [Initial redelivery delay (初期再配信遅延)] などの ActiveMQ 実装専用のパラメーターが公開されています。
次の例では、ActiveMQ 接続を設定します。
Studio で、[Global Elements (グローバル要素)] タブに移動します。
[Create (作成)] をクリックします。
検索条件ボックスに jms
と入力し、[JMS Config (JMS 設定)] を選択します。
[OK] をクリックします。
[Connection (接続)] 項目で [ActiveMQ Connection (ActiveMQ 接続)] を選択します。
[Factory configuration (ファクトリー設定)] 項目で、[Edit Inline (インライン編集)] を選択します。
[Broker url (ブローカー URL)] 項目値を、接続先のブローカーのアドレス (tcp://localhost:61616
など) に設定します。
[OK] をクリックします。
XML エディターでは、<jms:active-mq-connection>
および <jms:factory-configuration>
設定は次のように記述されます。
<jms:config name="JMS_Config">
<jms:active-mq-connection >
<jms:factory-configuration brokerUrl="tcp://localhost:61616" />
</jms:active-mq-connection>
</jms:config>
xml
[Generic Connection (汎用接続)] を使用して、任意のブローカー実装への接続を設定します。JMS Connector には JNDI (Java Naming and Directory Interface) ベースの接続ファクトリービルダーが用意されており、これによってアプリケーションのコンテキストで JNDI を使用して接続を設定できます。
次の例では、JNDI を使用して、JMS_2_0
仕様を使用するように Artemis への [Generic Connection (汎用接続)] を設定します。
Studio で、[Global Elements (グローバル要素)] タブに移動します。
[Create (作成)] をクリックします。
検索条件ボックスに jms
と入力し、[JMS Config (JMS 設定)] を選択します。
[OK] をクリックします。
[Connection (接続)] 項目で [Generic Connection (汎用接続)] を選択します。
[Specification (仕様)] 項目で JMS_2_0 を選択します。
[Connection factory (接続ファクトリー)] 項目で、[Edit inline (インライン編集)] を選択します。
[Connection factory jndi name (接続ファクトリーの JNDI 名)] 項目を ConnectionFactory
に設定します。
[Lookup destination (ルックアップ宛先)] 項目で、次のいずれかのオプションを選択します。
NEVER
ルックアップは実行されず、宛先は既存の JMS セッションを使用して作成されます。
TRY_ALWAYS
JNDI を使用して宛先を探そうと試みて、存在しない場合は、現在の JMS セッションを使用して宛先を作成します。
ALWAYS
JNDI 経由でキューまたはトピックが見つからない場合、ルックアップは失敗して JMS:DESTINATION_NOT_FOUND
エラーが発生します。
[Name resolver builder (名前解決機能ビルダー)] 項目を選択します。
[Jndi initial context factory (JNDI 初期コンテキストファクトリー)] 項目を org.apache.activemq.artemis.ActiveMQInitialContextFactory
に設定します。
[Jndi provider url (JDNI プロバイダー URL)] 項目を tcp://localhost:61616?broker.persistent=false&broker.useJmx=false
に設定します。
[Provider properties (プロバイダープロパティ)] を [Edit inline (インライン編集)] に設定します。
プラス記号 (+) をクリックして、新しいプロバイダープロパティを追加します。
[Provider property (プロバイダープロパティ)] ウィンドウで、[Key (キー)] 項目を queue.jndi-queue-in
に設定し、[Value (値)] 項目を in.queue
に設定します。
[Finish (完了)] をクリックします。
ステップ 14 を繰り返します。
[Key (キー)] 項目を topic.jndi-topic-in
に設定し、[Value (値)] 項目を in.topic
に設定します。
[OK] をクリックします。
XML エディターでは、<jms:generic-connection>
および <jms:jndi-connection-factory>
設定は次のように記述されます。
<jms:config name="JMS_Config">
<jms:generic-connection specification="JMS_2_0">
<jms:connection-factory>
<jms:jndi-connection-factory connectionFactoryJndiName="ConnectionFactory" lookupDestination="ALWAYS">
<jms:name-resolver-builder
jndiInitialContextFactory="org.apache.activemq.artemis.ActiveMQInitialContextFactory"
jndiProviderUrl="tcp://localhost:61616?broker.persistent=false&broker.useJmx=false">
<jms:provider-properties>
<jms:provider-property key="queue.jndi-queue-in" value="in.queue"/>
<jms:provider-property key="topic.jndi-topic-in" value="in.topic"/>
</jms:provider-properties>
</jms:name-resolver-builder>
</jms:jndi-connection-factory>
</jms:connection-factory>
</jms:generic-connection>
</jms:config>
xml
JMS Connector はどの特定の実装にもバインドされていないため、何らかの接続種別を設定する場合は、常に JMS クライアント実装を含むライブラリを設定する必要があります。Studio のグローバル要素ビューに表示されている ActiveMQ 外部ライブラリと汎用外部ライブラリを設定できます。また、pom.xml
ファイルにライブラリの連動関係を手動で追加できます。
[ActiveMQ Connection (ActiveMQ 接続)] では、3 つのライブラリを設定できます。
ActiveMQ KahaDB
activemq-kahadb-store
連動関係は VM トランスポート (vm://localhost?broker.persistent=true
など) に基づいて永続的なメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter
実装を提供します。
Studio の pom.xml
ファイルでは、連動関係の追加は次のようになります。
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-kahadb-store</artifactId>
<version>5.14.4</version>
</dependency>
xml
ActiveMQ ブローカー
activemq-broker
連動関係は VM トランスポート (デフォルトで設定される) に基づいてメモリ内ブローカーを使用する場合のみ必須です。この連動関係は、有効な org.apache.activemq.broker.Broker
実装を提供します。
Studio の pom.xml
ファイルでは、連動関係の追加は次のようになります。
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-broker</artifactId>
<version>5.14.4</version>
</dependency>
xml
ActiveMQ クライアント
activemq-client
連動関係は常に必須です。有効な org.apache.activemq.ActiveMQConnectionFactory
実装を提供する連動関係を選択します。
Studio の pom.xml
ファイルでは、連動関係の追加は次のようになります。
+
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
<version>5.14.4</version>
</dependency>
xml
これらのライブラリを [Global Element (グローバル要素)] ビューで設定する手順は、次のとおりです。
Studio で、[Global Elements (グローバル要素)] タブに移動します。
[Create (作成)] をクリックします。
検索条件ボックスに jms
と入力し、[JMS Config (JMS 設定)] を選択します。
[OK] をクリックします。
[Connection (接続)] 項目で [ActiveMQ Connection (ActiveMQ 接続)] を選択します。
[ActiveMQ KahaDB]、[ActiveMQ Broker (ActiveMQ ブローカー)]、および [ActiveMQ Client (ActiveMQ クライアント)] ライブラリが表示されている [Required Libraries (必須のライブラリ)] セクションで [Configure… (設定…)] ボタンをクリックし、連動関係をインストールします。
次のインストールオプションのいずれかを選択します。
Add recommended library (推奨されるライブラリを追加): 推奨されるライブラリをインストールします。
Use local file (ローカルファイルを使用): ローカルファイルで必要なエンジンライブラリを探してインストールします。
Add Maven dependency (Maven 連動関係を追加): 連動関係を探してインストールします。
[Generic Connection (汎用接続)] では、実装の接続ファクトリーで必要なすべてのライブラリを指定します。必ずアプリケーションへのすべての必須の連動関係を指定してください。
次の例では、Apache Artemis などの異なるクライアントライブラリとの汎用接続が必要な JMS 2.0 仕様を使用する接続用の汎用ライブラリを設定します。
Studio の pom.xml
ファイルでは、連動関係の追加は次のようになります。
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>artemis-jms-client-all</artifactId>
<version>2.17.0</version>
</dependency>
xml
これらのライブラリを [Global Element (グローバル要素)] ビューで設定する手順は、次のとおりです。
Studio で、[Global Elements (グローバル要素)] タブに移動します。
[Create (作成)] をクリックします。
検索条件ボックスに jms
と入力し、[JMS Config (JMS 設定)] を選択します。
[OK] をクリックします。
[Connection (接続)] 項目で [Generic Connection (汎用接続)] を選択します。
[JMS Client (JMS クライアント)] が表示されている [Required Libraries (必須のライブラリ)] セクションで [Configure… (設定)] ボタンをクリックし、連動関係をインストールします。
次のインストールオプションのいずれかを選択します。
Add recommended library (推奨されるライブラリを追加): 推奨されるライブラリをインストールします。
Use local file (ローカルファイルを使用): ローカルファイルで必要なエンジンライブラリを探してインストールします。
Add Maven dependency (Maven 連動関係を追加): 連動関係を探してインストールします。
設定する JMS 仕様は、接続に関連付けられるブローカー実装でサポートされる必要があります。サポートされない場合、接続は失敗します。
JMS_2_0
でのみ使用可能な機能は、他の仕様では動作しません。
Studio で JMS 仕様を設定する手順は、次のとおりです。
Studio で [JMS Config (JMS 設定)] グローバル要素ウィンドウを開きます。
[Specification (仕様)] 項目で、次のサポートされる仕様のいずれかを選択します。
JMS_1_1 (デフォルト)
JMS_1_0_2b
JMS_2_0
[OK] をクリックします。
XML エディターでは、specification
設定は次のように記述されます。
<jms:config name="JMS_Config" >
<jms:active-mq-connection specification="JMS_1_0_2b" />
</jms:config>
xml
ブローカーに接続して必要な操作を実行するため、JMS Connector ではコンシューマーおよびプロデューサーの複数のセッションが作成されます。これらをキャッシュして再利用することで、アプリケーションのパフォーマンスを高めることができます。JMS Connector では、新規接続を作成するときに使用する [Caching strategy (キャッシュ戦略)] 項目を設定できます。デフォルトでは、コンシューマーとプロデューサーの両方がキャッシュされ、多くの同時インスタンスがメモリにキャッシュされます。
[No caching (キャッシュしない)] 設定を使用してセッションキャッシュを無効にしないでください。この設定は、すでに独自のキャッシュを管理しているカスタム接続ファクトリーでのみ使用します。
次の例では、キャッシュ戦略を設定します。
Studio で [JMS Config (JMS 設定)] グローバル要素ウィンドウを開きます。
[Caching strategy (キャッシュ戦略)] 項目で、[Default caching (Default) (デフォルトキャッシュ (デフォルト))] を選択します。
[Session cache size (セッションキャッシュサイズ)] 項目を 100
に設定します。
[Cache producers (キャッシュプロデューサー)] を選択します。
[OK] をクリックします。
XML エディターでは、<jms:caching-strategy>
および <default-caching>
設定は次のように記述されます。
<jms:config name="JMS_Config">
<jms:active-mq-connection>
<jms:caching-strategy>
<jms:default-caching sessionCacheSize="100" consumersCache="false" producersCache="true"/>
</jms:caching-strategy>
</jms:active-mq-connection>
</jms:config>
xml
次の XML 例では、<jms:no-caching/>
設定は次のように記述されます。
<jms:config name="JMS_Config">
<jms:generic-connection connectionFactory="customConnectionFactory">
<jms:caching-strategy>
<jms:no-caching/>
</jms:caching-strategy>
</jms:generic-connection>
</jms:config>
xml
クライアント識別子は、接続およびそのオブジェクトを、クライアントの代わりにプロバイダーによって保持される状態と関連付けるものです。これは、共有されていない永続的なサブスクリプションを識別するために必要です。[Client id (クライアント ID)] で識別されるクライアント状態は、同時に 1 つの接続によってのみ使用できます。
次の例では、認証済み接続とクライアント識別子を設定します。
Studio で [JMS Config (JMS 設定)] グローバル要素ウィンドウを開きます。
[Connection (接続)] セクションで、[Username (ユーザー名)] 項目を ${env.user}
に設定し、[Password (パスワード)] 項目を ${env.pass}
に設定します。
[Client id (クライアント ID)] 項目を ${env.clientId}
に設定します。
[OK] をクリックします。
XML エディターでは、username
、password
、および clientId
の設定は次のように記述されます。
<jms:config name="JMS_Config">
<jms:active-mq-connection username="${env.user}" password="${env.pass}" clientId="${env.clientId}"/>
</jms:config>
xml
問題を確認するため、アプリケーションログを次の方法で表示できます。
アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。
コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。
アプリケーションのログファイル (log4j2.xml
) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 MULE_HOME/logs/<app-name>.log
でアプリケーションログを表示することもできます。