# mulesoft Mq - Full Documentation # Anypoint MQ Connector MQ 用 Anypoint Connector (Anypoint MQ Connector) は Mule 4 および Mule 3 で使用できます。 - Mule 4: - [「Anypoint MQ Connector 4.x」](#four-for-mule-4)​を参照してください。 - [「Anypoint MQ Connector 3.x」](#three-for-mule-4)​を参照してください。 - [「Anypoint MQ Connector 2.x」](#two-for-mule-4)​を参照してください。 - Mule 3: - [Anypoint MQ Connector](#three-for-mule-3)​ (Mule 3.9) ## [](#four-for-mule-4)Anypoint MQ Connector 4.x - Mule 4 - [Mule 4 用 Anypoint MQ Connector 4.x](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/) - [Anypoint MQ Connector のアップグレードおよび移行](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/anypoint-mq-connector-upgrade-migrate) - [ACK および NACK 操作](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/anypoint-mq-ack) - [Subscribe 操作](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/anypoint-mq-listener) - [Consume 操作](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/anypoint-mq-consume) - [Publish 操作](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/anypoint-mq-publish) - [Anypoint MQ Connector 4.x リファレンス](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/anypoint-mq-connector-reference) - [Anypoint MQ Connector リリースノート - Mule 4](https://docs.mulesoft.com/jp/release-notes/connector/anypoint-mq-connector-release-notes-mule-4) - [Anypoint Exchange の Anypoint MQ Connector 4.x - Mule 4](https://www.mulesoft.com/exchange/com.mulesoft.connectors/anypoint-mq-connector/) ## [](#three-for-mule-4)Anypoint MQ Connector 3.x - Mule 4 - [Mule 4 用 Anypoint MQ Connector 3.x](https://docs.mulesoft.com/jp/anypoint-mq-connector/3.x/) - [ACK および NACK 操作](https://docs.mulesoft.com/jp/anypoint-mq-connector/3.x/anypoint-mq-ack) - [Subscribe 操作](https://docs.mulesoft.com/jp/anypoint-mq-connector/3.x/anypoint-mq-listener) - [Consume 操作](https://docs.mulesoft.com/jp/anypoint-mq-connector/3.x/anypoint-mq-consume) - [Publish 操作](https://docs.mulesoft.com/jp/anypoint-mq-connector/3.x/anypoint-mq-publish) - [Anypoint MQ Connector 3.x リファレンス](https://docs.mulesoft.com/jp/anypoint-mq-connector/3.x/anypoint-mq-connector-reference) - [Anypoint MQ Connector リリースノート - Mule 4](https://docs.mulesoft.com/jp/release-notes/connector/anypoint-mq-connector-release-notes-mule-4) - [Anypoint Exchange の Anypoint MQ Connector 3.x - Mule 4](https://www.mulesoft.com/exchange/com.mulesoft.connectors/anypoint-mq-connector/) ## [](#two-for-mule-4)Anypoint MQ Connector 2.x - Mule 4 - [Mule 4 用 Anypoint MQ Connector 2.x](https://docs.mulesoft.com/anypoint-mq-connector/2.x/) - [ACK および NACK 操作](https://docs.mulesoft.com/anypoint-mq-connector/2.x/anypoint-mq-ack) - [Subscribe 操作](https://docs.mulesoft.com/anypoint-mq-connector/2.x/anypoint-mq-listener) - [Consume 操作](https://docs.mulesoft.com/anypoint-mq-connector/2.x/anypoint-mq-consume) - [Publish 操作](https://docs.mulesoft.com/anypoint-mq-connector/2.x/anypoint-mq-publish) - [Anypoint MQ Connector 2.x リファレンス](https://docs.mulesoft.com/anypoint-mq-connector/2.x/anypoint-mq-connector-reference) - [Anypoint MQ Connector リリースノート - Mule 4](https://docs.mulesoft.com/jp/release-notes/connector/anypoint-mq-connector-release-notes-mule-4) - [Anypoint Exchange の Anypoint MQ Connector - Mule 4](https://www.mulesoft.com/exchange/com.mulesoft.connectors/anypoint-mq-connector/) ## [](#three-for-mule-3)Anypoint MQ Connector - Mule 3 - [Mule 3 用 Anypoint MQ Connector](#3.9@mule-runtime::anypoint-mq-connector.adoc) - [Anypoint MQ Connector リファレンス - Mule 3](#3.9@mule-runtime::anypoint-mq-connector-reference.adoc) - [Anypoint MQ Connector リリースノート - Mule 3](#release-notes::connector/mq-connector-release-notes.adoc) - [Anypoint Exchange の Anypoint MQ Connector - Mule 3](https://www.mulesoft.com/exchange/org.mule.tooling.messaging/mule-module-anypoint-mq-ee-studio/) ## [](#anypoint-mq-の-api)Anypoint MQ の API - [Anypoint MQ Admin API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-admin/) - [Anypoint MQ Broker API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-broker/) - [Anypoint MQ Stats API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-stats/) ## [](#関連情報)関連情報 - [Anypoint MQ FAQ](https://docs.mulesoft.com/jp/mq/mq-faq) # Anypoint MQ Release Notes The following release notes are provided for Anypoint MQ: - [Anypoint MQ Release Notes](https://docs.mulesoft.com/jp/release-notes/mq/mq-release-notes) - [Anypoint MQ Connector Release Notes for Mule 4](https://docs.mulesoft.com/jp/release-notes/connector/anypoint-mq-connector-release-notes-mule-4) - [Known Issues](https://help.salesforce.com/s/issues) # Anypoint MQ の REST API Anypoint MQ API では、REST を使用してメッセージを送受信したり、キューやメッセージエクスチェンジを管理したり、結果を分析したりできます。 Anypoint MQ には次の API が用意されています。 - [Anypoint MQ Admin API](#mqadminapi) - [Anypoint MQ Broker API](#mqbrokerapi) - [Anypoint MQ Stats API](#mqstatapi) Anypoint MQ のポータルは [開発者ポータル](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/)​内にあります。 ## [](#api-のワークフロー)API のワークフロー Broker API での次の例は、API にアクセスするワークフローを示しています。 ![mq api workflow](/mulesoft/current/ja-jp/mq/_images/mq-api-workflow.png) 手順: 1. アプリケーションが Anypoint MQ に要求を送信し、メッセージのロックを保持する期間を設定します。 2. Anypoint MQ がメッセージとロック ID を送信します。 3. アプリケーションがメッセージに肯定応答して Anypoint MQ にメッセージの削除を要求するか、アプリケーションがメッセージに否定応答して Anypoint MQ にそのメッセージを他のアプリケーションで使用可能にするように要求します。アプリケーションがメッセージ ID とロック ID を Anypoint MQ に送信します。 詳細は、​[「ACK および NACK 操作」](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/anypoint-mq-ack)​を参照してください。 4. 何のアクションも実行されずにロックの存続期間が切れると、メッセージは否定応答され、他のアプリケーションで使用できるようにキューに戻されます。 ## [](#authorize-api)API アクセスの認証 API にアクセスするには、アクセストークンを取得する必要があります。 - [Anypoint MQ Admin API](#mqadminapi) Anypoint Platform ユーザーのアクセストークンを取得します。 - [Anypoint MQ Broker API](#mqbrokerapi) MQ アプリケーションのクライアント ID とクライアントシークレットを指定して、Anypoint MQ からトークンを取得します。 - [Anypoint MQ Stats API](#mqstatapi) Anypoint Platform ユーザーのアクセストークンを取得します。 Anypoint MQ REST API で接続アプリケーションを使用するには、​[接続アプリケーションの API アクセスの認証](#authorize-api-connected-apps)​ を参照してください。 それぞれの ​`curl`​ コマンドについては API セクションで説明します。 ### [](#authorize-api-connected-apps)接続アプリケーションの API アクセスの認証 Anypoint MQ REST API で接続アプリケーションを使用するには、次を参照してください。 - [接続アプリケーションの設定](https://docs.mulesoft.com/jp/mq/mq-connected-apps)。接続アプリケーションを作成します。 - [OIDC エンドポイントとトークン](https://docs.mulesoft.com/jp/access-management/connected-apps-developers#oidc-endpoints-and-tokens)​。アクセストークンを取得します。
Anypoint MQ Admin API および Anypoint MQ Broker API の ​/authorize​ エンドポイントでは、接続アプリケーションはサポートされません。 これらのエンドポイントから取得したトークンを使用して接続アプリケーションにアクセスすることはできません。
## [](#mqadminapi)Anypoint MQ Admin API Anypoint MQ Admin API は、Anypoint MQ 管理機能へのアクセス権を提供します。 [Admin API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-admin/)​ を使用して、キュー、メッセージエクスチェンジ、クライアントアプリケーションを作成および管理できます。 1 分以内に個別の環境に対して Anypoint MQ Admin API をコールすると、API によって要求が 1 分あたり 50 トランザクション (TPM) に調整されます。 次の例では、Anypoint MQ Admin API を使用し、​`curl`​ を使用してコマンドラインからキューとメッセージルーティングルールを作成します。 - [アクセストークンの取得](#get-access-token) - [FIFO キューの作成](#fifo-queue-api) - [メッセージルーティングルールの作成または変更](#routing-rules-api) ### [](#get-access-token)アクセストークンの取得 Anypoint MQ Admin API にアクセスするには、最初に [アクセス管理 API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/access-management-api/)​ を使用して認証する必要があります。 Admin API を使用するには、Anypoint Platform ユーザーからアクセストークンを取得できます。 アクセストークンは「ベアラー」とも呼ばれます。 アクセストークンのデフォルトの存続期間 (TTL) は 60 分です。 組織 ID と環境 ID は、Anypoint Platform が MQ 内で監査可能なアクションに対して作成する ​`payload.txt`​ ファイルで取得できます。 [「MQ 監査ログ」](https://docs.mulesoft.com/jp/access-management/audit-logging#to-query-audit-logging-for-anypoint-mq)​を参照してください。 アクセストークンを取得するには、次のような ​`curl`​ コマンドを使用します。 ```bash curl -X POST "https://anypoint.mulesoft.com/accounts/login" \ -H "Content-Type: application/json" \ -d '{"username":"USERNAME", "password":"PASSWORD"}' ``` このコマンドでは、次のような出力が返されます。 ```json { "access_token": "42424242-4242-4242-4242-424242424242", "token_type": "bearer", "redirectUrl": "/home/" } ``` ### [](#fifo-queue-api)FIFO キューの作成 `"fifo": true`​ 項目を含めることで、Anypoint MQ Admin API を使用して FIFO キューを作成できます。
管理ポータルを使用する組織には、Anypoint MQ FIFO エンタイトルメントが必要です。 Anypoint MQ が使用できるリージョンについては、​「Anypoint MQ FAQ」​を参照してください。
FIFO キューを作成するには、次のような ​`curl`​ コマンドを使用します。 ```bash curl -X PUT "https://anypoint.mulesoft.com/mq/admin/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID/regions/REGION_ID/destinations/queues/QUEUE_ID" \ --header 'Content-Type: application/json' \ --header 'Authorization: bearer BEARER_TOKEN' \ --data-raw '{ "defaultTtl" : 120000, "defaultLockTtl" : 10000, "encrypted" : false, "fifo" : true }' ``` ### [](#routing-rules-api)メッセージルーティングルールの作成または変更 エクスチェンジにパブリッシュされたメッセージのサブセットを特定のキューにルーティングするには、Admin API を使用して、エクスチェンジとキュー間のバインドでメッセージルーティングルールを作成します。
新しいメッセージルーティングルールが有効になるまで最大 15 分かかります。
メッセージルーティングルールが設定されていないバインドでは、引き続きエクスチェンジからすべてのメッセージが受信されます。 メッセージルーティングルールを作成するには、次のような ​`curl`​ コマンドを使用します。 ```bash curl -X PUT "https://anypoint.mulesoft.com/mq/admin/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID/regions/REGION_ID/bindings/exchanges/purchases/queues/premiumPurchases/rules/routing" \ --header 'Authorization: bearer BEARER_TOKEN' \ --header 'Content-Type: application/json' \ --data-raw '{ "routingRules" : [{ "propertyName" : "itemCategory", "propertyType" : "STRING", "matcherType" : "EQ", "value" : "premium" }] }' ``` このメッセージルーティングルールでは、​`purchases`​ エクスチェンジにパブリッシュされたメッセージのうち、名前が ​`itemCategory`​ で値が ​`premium`​ のプロパティまたはヘッダーが含まれるすべてのメッセージを ​`premiumPurchases`​ キューにルーティングします。 既存のルーティングルールを変更するには、新しいメッセージルーティングルール設定を使用して別の ​`PUT`​ 要求を送信します。 `PUT`​ 要求でバインドの既存のメッセージルーティングルールを新しいルールに置き換えます。 メッセージルーティングルールへの変更または追加が有効になるまで最大 15 分かかります。 参考情報: - `/rules/routing`​ でサポートされるペイロードは、 [Anypoint MQ Admin API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-admin/minor/1.0/console/method/%23741/)​ でこのエンドポイントを参照してください。 - ルーティングプロパティを使用したメッセージのパブリッシュについては、​[ルーティングプロパティを使用したメッセージの送信](#send-message-routing)​ を参照してください。 - メッセージルーティングルールの要件は、​[「要件と制限事項」](https://docs.mulesoft.com/jp/mq/mq-routing-rules#intelligent-routing-restrictions)​を参照してください。 ## [](#mqbrokerapi)Anypoint MQ Broker API [Anypoint MQ Broker API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-broker/)​ では、クライアントがキューとメッセージエクスチェンジからメッセージをパブリッシュ、コンシューム、ルーティング、肯定応答できます。 組織 ID と環境 ID は、Anypoint Platform が MQ 内で監査可能なアクションに対して作成する ​`payload.txt`​ ファイルで取得できます。​[「MQ 監査ログ」](https://docs.mulesoft.com/jp/access-management/audit-logging#to-query-audit-logging-for-anypoint-mq)​を参照してください。 次の例では、Anypoint MQ Broker API を使用してメッセージをパブリッシュおよびコンシュームし、​`curl`​ を使用してコマンドラインから Anypoint MQ をテストします。 - [Broker API アクセストークンの取得](#get-broker-access-token) - [メッセージの送信](#send-messages-api) - [ルーティングプロパティを使用したメッセージの送信](#send-message-routing) - [メッセージの取得](#retrieve-message-api) プレースホルダー文字列 ​`ORGANIZATION_ID`​ を認証およびトークン文字列の適切な値に置き換える必要があります。これらの例では、Postman を使用してキューにアクセスします。 Anypoint MQ および FIFO が使用できるリージョンについては、​[「Anypoint MQ FAQ」](https://docs.mulesoft.com/jp/mq/mq-faq#regions)​を参照してください。 ### [](#get-broker-access-token)Broker API アクセストークンの取得 アクセス (ベアラー) トークンを取得するには、curl などのコマンドか Postman などのアプリケーションを使用する必要があります。次の例では curl を使用しています。 Windows ユーザーの場合、この情報にアクセスする前に [curl コマンドをダウンロード](https://curl.haxx.se/download.html)​する必要があります。 このセクションのアクセストークンは、Broker API でのみ使用できます。Stats API や Admin API では、 このアクセストークンを使用しないでください。 特定の ​`CLIENT_ID`​ のトークンを取得するためのコールは、すべて同じトークンを返します。 同じ ​`CLIENT_ID`​ を使用する複数のアプリケーションは、同じトークンを使用します。 トークンは最長 60 分有効です。 失効する前にトークンにアクセスすると、有効期間が 60 分間延長されます。 Broker API アクセストークンを取得する手順は、次のとおりです。 1. Anypoint Platform にログインします。 2. **\[MQ\]**​ > ​**\[Client Apps (クライアントアプリケーション)\]**​ をクリックし、​**\[Add (追加)\]**​ アイコン (​!["\[Client Apps (クライアントアプリケーション)](/mulesoft/current/ja-jp/mq/_images/icon-blue-plus.png) の \[Add (追加)\] アイコン",3%,3%\]​) をクリックしてアプリケーションを作成します。 3. クライアント ID とクライアントシークレットを取得し、次の curl コマンドでこれらの値を使用して ​`CLIENT_ID`​ と ​`CLIENT_SECRET`​ を置き換えます。 ```bash curl -X POST "https://anypoint.mulesoft.com/accounts/oauth2/token" \ -H "Content-Type: application/json" \ -d '{ "client_id": "", "client_secret": "", "grant_type": "client_credentials" }' ``` 4. `curl`​ コマンドを送信します。 このコマンドは、次のような出力を返します。 ```json {"access_token":"","simple_client":{"envId":"ENVIRONMENT_ID","orgId":"ORGANIZATION_ID"},"token_type":"bearer"} ``` ### [](#send-messages-api)メッセージの送信 次の ​`curl`​ コマンドではメッセージをパブリッシュします。 ```bash curl -X PUT "https://mq-us-east-1.anypoint.mulesoft.com/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID/destinations/postmanExchange/messages/552" \ -H "Content-Type: application/json" \ -H "Authorization: bearer BEARER_TOKEN" \ -H "Cache-Control: no-cache" \ -d '{ "properties": { "userDefinedHeader": "User defined stuff", "anotherUserDefinedHeader": "Random stuff" }, "body": "This is a message payload" }' ``` ### [](#send-message-routing)ルーティングプロパティを使用したメッセージの送信 Anypoint MQ では、設定されたメッセージルーティングルールは、パブリッシュされたメッセージのすべての ​`headers`​ および ​`properties`​ 属性に対して評価されます。 次の ​`curl`​ コマンドでは、​`itemCategory`​ プロパティの値が ​`premium`​ であるメッセージをパブリッシュします。 `purchases`​ エクスチェンジバインド (​[メッセージルーティングルールの作成または変更](#routing-rules-api)​ でセットアップ) のメッセージルーティングルールでは、メッセージを ​`premiumPurchases`​ キューにルーティングします。 ```bash curl -X PUT "https://mq-us-east-1.anypoint.mulesoft.com/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID/destinations/postmanExchange/messages/552" \ -H "Content-Type: application/json" \ -H "Authorization: bearer BEARER_TOKEN" \ -H "Cache-Control: no-cache" \ -d '{ \ "properties": { "itemCategory": "premium", }, "headers": { "itemSize": "large" }, "body": "This is a message payload" }' ``` メッセージルーティングルールの要件についての詳細は、​[「要件と制限事項」](https://docs.mulesoft.com/jp/mq/mq-routing-rules#intelligent-routing-restrictions)​を参照してください。 ### [](#retrieve-message-api)メッセージの取得 次の ​`curl`​ コマンドではメッセージを取得します。 ```bash curl -X GET "https://mq-us-east-1.anypoint.mulesoft.com/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID/destinations/postmanQueue/messages?pollingTime=10000&batchSize=1&lockTtl=10000" \ -H "Authorization: bearer BEARER_TOKEN" \ -H "Cache-Control: no-cache" ``` `payloadVisibility`​ クエリパラメーターをして、応答にメッセージペイロードを表示するかどうかを制御できます。 このパラメーターは、大きなペイロードを取得する場合に役立ちます。 `payloadVisibility`​ パラメーターでは次のオプションを使用します。 - `full`​: 応答にメッセージペイロードを表示します。 このオプションはデフォルトです。 - `none`​: 応答でメッセージペイロードを非表示にします。 - `conditional`​: ペイロードサイズが 1 MB を超えている場合にメッセージペイロードを非表示にします。 `payloadVisibility`​ が ​`none`​ または ​`conditional`​ に設定されているためにペイロードが非表示になっている場合、応答のメッセージヘッダーに ​`payloadHidden=true`​ が含まれます。 次の ​`curl`​ コマンドではメッセージとペイロードを取得し、ペイロードサイズが 1 MB 未満の場合にのみペイロードを表示します。 ```bash curl -X GET "https://mq-us-east-1.anypoint.mulesoft.com/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID/destinations/postmanQueue/messages?pollingTime=10000&batchSize=1&lockTtl=10000&payloadVisibility=conditional" \ -H "Authorization: bearer BEARER_TOKEN" \ -H "Cache-Control: no-cache" ``` ## [](#mqstatapi)Anypoint MQ Stats API Anypoint MQ Stats API では、キューおよびメッセージエクスチェンジの統計とメトリクスを取得できます。 [Anypoint MQ Stats API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-stats/)​ を使用して、キューのパフォーマンスの統計分析を実行できます。 Stats API を使用して、以下を取得します。 - Anypoint MQ メトリクス: - キューのほぼリアルタイムの統計 - キューの履歴統計 - メッセージエクスチェンジの履歴統計 - 使用状況メトリクス 請求目的で組織全体の Anypoint MQ の使用量を表示する。 - 環境ごとの使用量 - 組織ごとの使用量 - キューとメッセージエクスチェンジの統計 - 現在キューで待機しているメッセージ数

Anypoint MQ Stats API では、 /organizations/{ORGANIZATION_ID}​​ および /organizations/{ORGANIZATION_ID}/environments/{ENVIRONMENT_ID}​​ エンドポイントの統計情報の取得が 10 トランザクション/分 (TPM) に制限されます。

要求がこの制限を超えた場合、Anypoint MQ Stats API では HTTP 429 状況コードが返されます。

他のすべての Anypoint MQ Stats API​ エンドポイントの場合、制限は 200 トランザクション/分になります。

詳細は、MuleSoft 開発者ポータルの [「Anypoint MQ Stats API」](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-stats/)​を参照してください。 ### [](#get-stats-access-token)Stats API アクセストークンの取得
Anypoint MQ Stats API にアクセスするには、最初に アクセス管理 API​ を使用して認証する必要があります。
Stats API を使用するために、Anypoint Platform ユーザーからアクセストークンを取得できます。 アクセストークンは「ベアラー」とも呼ばれます。 アクセストークンのデフォルトの存続期間 (TTL) は 60 分です。 組織 ID と環境 ID は、Anypoint Platform が MQ 内で監査可能なアクションに対して作成する ​`payload.txt`​ ファイルで取得できます。​[「Anypoint MQ 監査ログ」](https://docs.mulesoft.com/jp/access-management/audit-logging#to-query-audit-logging-for-anypoint-mq)​を参照してください。 アクセストークンを取得するには、次の ​`curl`​ コマンドを使用します。 ```bash curl -X POST "https://anypoint.mulesoft.com/accounts/login" \ -H "Content-Type: application/json" \ -H "Cache-Control: no-cache" \ -d '{"username":"USERNAME", "password":"PASSWORD"}' ``` このコマンドでは、次のような出力が返されます。 ```json { "access_token": "42424242-4242-4242-4242-424242424242", "token_type": "bearer", "redirectUrl": "/home/" } ``` ### [](#キューの現在の統計の取得)キューの現在の統計の取得 キュー内のメッセージの数とインフライトメッセージの数のスナップショットを取得できます。 インフライトメッセージの定義については、[Anypoint MQ の用語集](https://docs.mulesoft.com/jp/mq/mq-glossary)を参照してください。 データはほぼリアルタイムで更新されます。 Stats API の応答とメッセージ状況の変更には、内部の後処理アクティビティによる最大 60 秒の不整合が含まれます。 メッセージ状況の変更には、キュー待機中からインフライト、インフライトからキュー待機中、およびインフライトから削除への変更があります。 このため、処理アクション (キューが空かどうかの確認など) の同期に Stats API は使用しないでください。 Stats API は複数のキューの統計をフェッチでき、カンマ区切りリストを返します。 `/queues?destinationIds={queue1},{queue2}` **要求と応答のサンプル:** キューの現在の統計を取得するには、次の ​`curl`​ コマンドを使用します。 \[source,bash\] curl -X GET "https://anypoint.mulesoft.com/mq/stats/api/v1/organizations/ORGANIZATION\_ID/environments/ENVIRONMENT\_ID/regions/REGION\_URL/queues?destinationIds=DESTINATION\_ID" \\ -H "Authorization: bearer BEARER\_TOKEN" \\ -H "Cache-Control: no-cache" このコマンドでは、次のような出力が返されます。 \[source,json,linenums\] { "destination": "95bgpyxYsVyFE", "messages": 0, "inflightMessages": 0 } ### [](#historical-stats-queue)キューの履歴統計の取得 この API を使用してキューの履歴統計をフェッチできますが、履歴統計はリアルタイムでは更新されず、データがパブリッシュされるまでに約 5 ~ 10 分のレイテンシーがあります。履歴データの保持期間は 15 か月間です。また、データ量を抑えるために、履歴データは粒度を下げて保存されます。期間が 60 秒未満のデータポイントの保持期間は 3 時間、1 分のデータポイントは 15 日間、5 分のデータポイントは 63 日間、1 時間のデータポイントは 15 か月間です。 `/queues/{queueId}?startDate=…​&endDate=…​&period=…​` **要求と応答のサンプル:** キューの履歴統計を取得するには、次の ​`curl`​ コマンドを使用します。 ```bash curl -X GET "https://anypoint.mulesoft.com/mq/stats/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID/regions/REGION_URL/queues/95bgpyxYsVyFE?startDate=Thursday, 8 Nov 2018 04:49:37 GMT&endDate=Sun, 11 Nov 2018 04:60:44 GMT&period=600" \ -H "Authorization: bearer BEARER_TOKEN" \ -H "Cache-Control: no-cache" ``` このコマンドでは、次のような出力が返されます。 ```json { "destination": "95bgpyxYsVyFE", "messages": [ { "date": "2018-11-08T04:59:37.000+0000", "value": 0 }, { "date": "2018-11-08T05:09:37.000+0000", "value": 0 } ] } ``` 期間は整数であり、秒単位のデータポイントの粒度です。 ### [](#historical-stats-exchange)エクスチェンジの履歴統計の取得 保持ポリシーは前の ​[キューの履歴統計の取得](#historical-stats-queue)​ セクションと同じです。 `/exchanges/{exchangeId}?startDate=…​&endDate=…​&period=…​` **要求と応答のサンプル:** エクスチェンジの履歴統計を取得するには、次の ​`curl`​ コマンドを使用します。 ```bash curl -X GET "https://anypoint.mulesoft.com/mq/stats/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID/regions/REGION_URL/exchanges/exchange-test?startDate=Wed%2C%2014%20Nov%202018%2021%3A53%3A08%20GMT&endDate=Wed%2C%2014%20Nov%202018%2022%3A53%3A08%20GMT&period=360" \ -H "Authorization: bearer BEARER_TOKEN" \ -H "Cache-Control: no-cache" ``` このコマンドでは、次のような出力が返されます。 ```json { "destination": "exchange-test", "messagesPublished": [ { "date": "2018-11-14T21:59:08.000+0000", "value": 0 } ] } ``` 期間は整数であり、秒単位のデータポイントの粒度です。 ### [](#usage-by-env)環境別の使用状況メトリクスの取得 Stats API を使用して、特定の組織の Anypoint MQ 使用量情報を環境別に取得できます。 `/environments/ENVIRONMENT_ID?startDate=…​&endDate=…​&period=…​` この情報はリアルタイムではないため、レイテンシーがあります。

Anypoint MQ Stats API では、 /organizations/{ORGANIZATION_ID}​​ および /organizations/{ORGANIZATION_ID}/environments/{ENVIRONMENT_ID}​​ エンドポイントの統計情報の取得が 10 トランザクション/分 (TPM) に制限されます。

要求がこの制限を超えた場合、Anypoint MQ Stats API では HTTP 429 状況コードが返されます。

他のすべての Anypoint MQ Stats API​ エンドポイントの場合、制限は 200 トランザクション/分になります。

**要求と応答のサンプル:** 環境別の使用状況メトリクスを取得するには、次の ​`curl`​ コマンドを使用します。 ```bash curl -X GET "https://anypoint.mulesoft.com/mq/stats/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID?startDate=Thursday, 8 Nov 2021 04:49:37 GMT&endDate=Sun, 11 Nov 2021 04:60:44 GMT&period=1day" \ -H "Authorization: bearer BEARER_TOKEN" \ -H "Cache-Control: no-cache" ``` このコマンドでは、次のような出力が返されます。 ```json { "timestamp": "2021-11-08T00:00Z", "apiRequestCount": 127, "messageReceiptCount": 11, "billableUnitCount": 11, "messageByteCount": 6148 } ``` `apiRequestCount`​ では、指定した期間の Anypoint MQ サービスへの API 要求数が返されます。 Broker API へのすべての要求が月次クォータに含まれます。 要求には、メッセージの送信、受信、および肯定応答のほか、キューおよび交換に対するすべての操作が含まれます。 Anypoint MQ 請求についての詳細は、[使用量グラフの表示](https://docs.mulesoft.com/jp/mq/mq-usage)を参照してください。
Anypoint MQ では請求で ​messageReceiptCount​ と ​billableUnitCount​ は使用されないため、これらを安全に無視できます。 Anypoint MQ では ​messageReceiptCount​ を使用して、​[MQ Usage (MQ 使用量)]​ ページに表示するメッセージ単位が決定されます。​billableUnitCount​ は、​messageReceiptCount​ と同じ値に設定された、内部で使用する値です。
### [](#usage-by-org)組織別の使用状況メトリクスの取得 Stats API を使用して、ルートビジネス組織における Anypoint MQ の使用量を取得できます。 `/organizations/ORGANIZATION_ID?startDate=…​&endDate=…​&period=…​`

Anypoint MQ Stats API では、 /organizations/{ORGANIZATION_ID}​​ および /organizations/{ORGANIZATION_ID}/environments/{ENVIRONMENT_ID}​​ エンドポイントの統計情報の取得が 10 トランザクション/分 (TPM) に制限されます。

要求がこの制限を超えた場合、Anypoint MQ Stats API では HTTP 429 状況コードが返されます。

他のすべての Anypoint MQ Stats API​ エンドポイントの場合、制限は 200 トランザクション/分になります。

**要求と応答のサンプル:** 1 か月間の組織別の 1 日の使用状況メトリクスを取得するには、次の ​`curl`​ コマンドを使用します。 ```bash curl -X GET "https://anypoint.mulesoft.com/mq/stats/api/v1/organizations/ORGANIZATION_ID?startDate=Sun, 1 Oct 2023 04:49:37 GMT&endDate=Tue, 31 Oct 2023 04:50:44 GMT&period=1day" \ -H "Authorization: bearer BEARER_TOKEN" \ -H "Cache-Control: no-cache" ``` このコマンドでは、次のような出力が返されます。 ```json { "timestamp": "2023-10-31T00:00Z", "apiRequestCount": 1066, "messageReceiptCount": 194, "billableUnitCount": 194, "messageByteCount": 107048 } ``` `apiRequestCount`​ では、指定した期間の Anypoint MQ サービスへの API 要求数が返されます。 Broker API へのすべての要求が月次クォータに含まれます。 要求には、メッセージの送信、受信、および肯定応答のほか、キューおよび交換に対するすべての操作が含まれます。 Anypoint MQ 請求についての詳細は、[使用量グラフの表示](https://docs.mulesoft.com/jp/mq/mq-usage)を参照してください。
Anypoint MQ では請求で ​messageReceiptCount​ と ​billableUnitCount​ は使用されないため、これらを安全に無視できます。 Anypoint MQ では ​messageReceiptCount​ を使用して、​[MQ Usage (MQ 使用量)]​ ページに表示するメッセージ単位が決定されます。​billableUnitCount​ は、​messageReceiptCount​ と同じ値に設定された、内部で使用する値です。
### [](#exstatapi)例: Anypoint MQ Stats API
Anypoint MQ Stats API にアクセスするには、最初に アクセス管理 API​ を使用して認証する必要があります。
次の統計が提供されます。 - `messagesVisible` キューから取得できるメッセージ数。 - `messagesSent` キューに追加されたメッセージ数。 - `messagesReceived` キューで受信したメッセージ数。 - `messagesAcked` 肯定応答されたメッセージの数。​**\[Anypoint Platform\]**​ > ​**\[MQ\]**​ ユーザーインターフェースを使用して削除されたメッセージも含まれます。 2022 年 7 月 26 日から 7 月 28 日までの統計をリストする要求の例: ```bash curl -X GET "https://anypoint.mulesoft.com/mq/stats/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID/regions/REGION_URL/queues/randomQueue/?startDate=Thu%2C%2026%20Jul%202022%2000%3A00%3A00%20GMT&endDate=Sat%2C%2028%20Jul%202022%2020%3A00%3A00%20GMT&period=600" \ -H "authorization: Bearer BEARER_TOKEN" \ -H "cache-control: no-cache" ``` このコマンドでは、次のような出力が返されます。 ```json { "destination": "myDestination", "messages": [ { "date": "2018-07-26T00:00:00.000+0000", "value": 2126 }, { "date": "2018-07-27T00:00:00.000+0000", "value": 2126 }, { "date": "2018-07-28T00:00:00.000+0000", "value": 587 } ], "inflightMessages": [ { "date": "2018-07-26T00:00:00.000+0000", "value": 0 }, { "date": "2018-07-27T00:00:00.000+0000", "value": 0 }, { "date": "2018-07-28T00:00:00.000+0000", "value": 0 } ], "messagesVisible": [ { "date": "2018-07-26T00:00:00.000+0000", "value": 2126 }, { "date": "2018-07-27T00:00:00.000+0000", "value": 2126 }, { "date": "2018-07-28T00:00:00.000+0000", "value": 587 } ], "messagesSent": [ { "date": "2018-07-26T00:00:00.000+0000", "value": 0 }, { "date": "2018-07-27T00:00:00.000+0000", "value": 0 }, { "date": "2018-07-28T00:00:00.000+0000", "value": 0 } ], "messagesReceived": [ { "date": "2018-07-26T00:00:00.000+0000", "value": 0 }, { "date": "2018-07-27T00:00:00.000+0000", "value": 0 }, { "date": "2018-07-28T00:00:00.000+0000", "value": 0 } ], "messagesAcked": [ { "date": "2018-07-26T00:00:00.000+0000", "value": 0 }, { "date": "2018-07-27T00:00:00.000+0000", "value": 0 }, { "date": "2018-07-28T00:00:00.000+0000", "value": 0 } ] } ``` ## [](#groovy-を使用したキューおよびエクスチェンジの作成)Groovy を使用したキューおよびエクスチェンジの作成 プログラムでキューとエクスチェンジを作成する場合、Groovy などの言語を使用できます。 次の例は、作成するキューとエクスチェンジをリストする ​`cloudhub.properties`​ ファイル、およびプロパティファイルを参照するスクリプトファイルで構成されます。 ### [](#date-format-日付形式)Date Format (日付形式) Anypoint MQ では、Stats API の開始日と終了日を標準 ISO 8601 形式で指定できます。 例: `2018-10-23T13:00:00Z` ### [](#コマンドの起動)コマンドの起動 Anypoint Platform アカウントにアクセスするプロパティファイルを変更したら、このコマンドを使用してスクリプトファイルを起動します。 `groovy .groovy` ### [](#プロパティファイルの設定)プロパティファイルの設定 次のプロパティファイルの例は、アクセスログイン情報、 組織 ID、環境 ID、領域 ID、 および作成するキューとエクスチェンジの名前を定義します。 ```text username="" password="" organizationID="ORGANIZATION_ID" environmentID { development="DEVELOPMENT_ENVIRONMENT_ID" qa="QA_ENVIRONMENT_ID" staging="STAGING_ENVIRONMENT_ID" production="PRODUCTION_ENVIRONMENT_ID" } regionID="REGION_URL" queues=[ "Queue1", "Queue2", "QueueN", ] exchanges=[ "Exchange1", "Exchange2", "ExchangeN" ] ``` Anypoint MQ および FIFO キューが使用できるリージョンについては、​[「Anypoint MQ FAQ」](https://docs.mulesoft.com/jp/mq/mq-faq#regions)​を参照してください。 ### [](#スクリプトファイルの作成)スクリプトファイルの作成 次のスクリプトの例は、プロパティファイルにリストされるキューとエクスチェンジを作成します。 ```groovy package guru.oso.mule @Grab(group = 'org.apache.httpcomponents', module = 'httpclient', version = '4.5.3') import groovy.json.JsonBuilder import groovy.json.JsonSlurper import org.apache.http.client.methods.HttpGet import org.apache.http.client.methods.HttpPost import org.apache.http.client.methods.HttpPut import org.apache.http.entity.StringEntity import org.apache.http.impl.client.HttpClientBuilder class AnypointMQAdminClient { static String HOST = "https://anypoint.mulesoft.com" static void main(String[] args) { def props if (args) { props = new ConfigSlurper().parse(new File(args[0]).toURI().toURL()) } else { props = new ConfigSlurper().parse(new File("cloudhub.properties").toURI().toURL()) } def ENVIRONMENT_ID = props.environmentID.production def token = authenticate(props.username, props.password) retrieveDestinations(props, token, ENVIRONMENT_ID) } static authenticate(String username, String password) { // build JSON def map = [:] map["username"] = username map["password"] = password def jsonBody = new JsonBuilder(map).toString() // build HTTP POST def url = HOST + '/accounts/login' def post = new HttpPost(url) post.addHeader("Content-Type", "application/json") post.setEntity(new StringEntity(jsonBody)) // execute def client = HttpClientBuilder.create().build() def response = client.execute(post) // read and print response def bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent())) def jsonResponse = bufferedReader.getText() println "Response: \n" + jsonResponse // parse and return token def slurper = new JsonSlurper() def resultMap = slurper.parseText(jsonResponse) return resultMap["access_token"] } static retrieveDestinations(ConfigObject props, String token, String ENVIRONMENT_ID) { def ORGANIZATION_ID = props.organizationID def REGION_URL = props.regionID // build HTTP GET def getDestinationsURL = HOST + '/mq/admin/api/v1/organizations/' + ORGANIZATION_ID + '/environments/' + ENVIRONMENT_ID + '/regions/' + REGION_URL + '/destinations' def getDestinations = new HttpGet(getDestinationsURL) // set token getDestinations.setHeader("Authorization", "Bearer " + token) // execute def client = HttpClientBuilder.create().build() def response = client.execute(getDestinations) // parse and print results def bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent())) def jsonResponse = bufferedReader.getText() println "Response: \n" + jsonResponse } static retrieveQueue(ConfigObject props, String token, String ENVIRONMENT_ID, String QUEUE_ID) { def ORGANIZATION_ID = props.organizationID def REGION_URL = props.regionID // build HTTP GET def getQueueURL = HOST + '/mq/admin/api/v1/organizations/' + ORGANIZATION_ID + '/environments/' + ENVIRONMENT_ID + '/regions/' + REGION_URL + '/destinations/queues/' + QUEUE_ID def getQueue = new HttpGet(getQueueURL) // set token getQueue.addHeader("Authorization", "Bearer " + token) // execute def client = HttpClientBuilder.create().build() def response = client.execute(getQueue) // parse and print results def bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent())) def jsonResponse = bufferedReader.getText() println "Response: \n" + jsonResponse } static createQueues(ConfigObject props, String token, String ENVIRONMENT_ID) { def ORGANIZATION_ID = props.organizationID def REGION_URL = props.regionID def queues = props.queues queues.each { QUEUE_ID -> def putQueueURL = HOST + '/mq/admin/api/v1/organizations/' + ORGANIZATION_ID + '/environments/' + ENVIRONMENT_ID + '/regions/' + REGION_URL + '/destinations/queues/' + QUEUE_ID def putQueue = new HttpPut(putQueueURL) putQueue.addHeader("Content-Type", "application/json") putQueue.addHeader("Authorization", "Bearer " + token) def queueMap = [:] queueMap["defaultTtl"] = 604800000 queueMap["defaultLockTtl"] = 120000 queueMap["encrypted"] = false queueMap["fifo"] = false def putQueueJSONBody = new JsonBuilder(queueMap).toString() putQueue.setEntity(new StringEntity(putQueueJSONBody)) def client = HttpClientBuilder.create().build() def response = client.execute(putQueue) def bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent())) def jsonResponse = bufferedReader.getText() println "Response: \n" + jsonResponse } } static createExchanges(ConfigObject props, String token, String ENVIRONMENT_ID) { def ORGANIZATION_ID = props.organizationID def REGION_URL = props.regionID def exchanges = props.exchanges exchanges.each { exchangeID -> def putExchangeURL = HOST + '/mq/admin/api/v1/organizations/' + ORGANIZATION_ID + '/environments/' + ENVIRONMENT_ID + '/regions/' + REGION_URL + '/destinations/exchanges/' + EXCHANGE_ID def putExchange = new HttpPut(putExchangeURL) putExchange.addHeader("Content-Type", "application/json") putExchange.addHeader("Authorization", "Bearer " + token) def exchangeMap = [:] exchangeMap["encrypted"] = false def putExchangeJSONBody = new JsonBuilder(exchangeMap).toString() putExchange.setEntity(new StringEntity(putExchangeJSONBody)) def client = HttpClientBuilder.create().build() def response = client.execute(putExchange) def bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent())) def jsonResponse = bufferedReader.getText() println "Response: \n" + jsonResponse } } } ``` ## [](#expostbro)Postman、Studio、ブラウザーからの Anypoint MQ のテスト この例では、Postman、Anypoint Studio、ブラウザーから Anypoint MQ をテストできます。 - [Postman](#postsetup) - [Anypoint Studio](#studiosetup) - [ブラウザー](#browsersetup) ### [](#postsetup)Postman のセットアップ [Postman](https://www.getpostman.com/)​ アプリケーションは、Anypoint MQ API にアクセスするプラットフォームを提供します。 Postman をダウンロードしてインストールしたら、次の情報を指定して環境を作成します。 - ORGANIZATION\_ID - ENVIRONMENT\_ID - ベアラー (認証) トークン - ホスト ID (Anypoint Platform/Anypoint MQ から) - クライアント ID (Anypoint Platform/Anypoint MQ から) - クライアントシークレット (Anypoint Platform/Anypoint MQ から) - キュー名 (Postman でこのキュー名を設定可能) Anypoint MQ API へのアクセスを許可したら、メッセージをパブリッシュしたり、メッセージをコンシュームしたり、返された body の情報からロック ID を取得したりします。 たとえば、次の情報がコンシューム (GET) コマンドから返されます。 ```json { "properties": { "anotherUserDefinedHeader": "Random stuff", "userDefinedHeader": "User defined stuff" }, "headers": { "messageId": "514", "lockId": "", "created": "Tue, 23 Oct 2018 21:17:57 GMT", "deliveryCount": "2" }, ... ``` ロック ID を取得したら、それを Postman 環境に追加してその後の要求を容易にできます。 ### [](#studiosetup)API アクセス用の Studio のセットアップ Anypoint Studio では、Anypoint MQ Connector を使用する Mule アプリケーションを作成できます。 このセクションでは手順が要約されています。 次の要素で Studio プロジェクトをセットアップできます。 - HTTP Connector: - ホスト: `0.0.0.0` - ポート: `8081` - パス: プロパティメニューで ​`/mq/{messageId}`​ に設定。 - Anypoint MQ Connector: **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ からクライアント ID とクライアントシークレットを取得し、​**\[宛先\]**​ を Postman で作成されたキューに設定。 - ロガー: **\[Message (メッセージ)\]**​ を値 ​`\#[payload]`​ に設定。 1. **Package Explorer**​ ウィンドウでプロジェクト名を右クリックし、​**\[Run As (別のユーザーとして実行)\] > \[Mule Application (Mule アプリケーション)\]**​ をクリックします。 コンソールメッセージが値 ​`DEPLOYED`​ で終わっていることを確認します。 2. Postman で、新しいメッセージをパブリッシュします。 #### [](#browsersetup)ブラウザーを使用したアクセス Studio で \[HTTP Listener (HTTP リスナー)\] をセットアップしたら、アドレス ​`0.0.0.0:8081`​ をブラウズします。ブラウザーに、Postman によって送信されたメッセージが表示されます。このメッセージは Anypoint MQ Connector が受信し、HTTP Connector がブラウザーに送信したメッセージです。 ## [](#exchange-からの-anypoint-mq-api-のダウンロード)Exchange からの Anypoint MQ API のダウンロード Exchange から Anypoint MQ API をダウンロードするには、​**\[Download (ダウンロード)\]**​ をクリックして RAML、OAS、または Mule 3 または Mule 4 のコネクタファイルの中からダウンロードする形式を選択します。 ![Exchange での Anypoint MQ API のダウンロード](/mulesoft/current/ja-jp/mq/_images/mq-exchange-download.png) ## [](#関連情報)関連情報 - [Anypoint MQ FAQ](https://docs.mulesoft.com/jp/mq/mq-faq) - [Anypoint Exchange の Anypoint MQ Admin API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-admin/) - [Anypoint Exchange の Anypoint MQ Broker API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-broker/) - [Anypoint Exchange の Anypoint MQ Stats API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-stats/) - [メッセージエクスチェンジに対するルールを設定することによるメッセージの転送](https://docs.mulesoft.com/jp/mq/mq-routing-rules) # Anypoint MQ の使用開始 Anypoint MQ を設定して使用するには、以下の概要手順に従ってください。 1. アカウントチームに連絡して Enterprise サブスクリプションを取得し、Anypoint MQ を有効化します。 2. [環境とアクセス権限を設定します](https://docs.mulesoft.com/jp/mq/mq-access-management)​。 3. MQ 用 Anypoint Connector (​[Anypoint MQ Connector](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/)​) を設定するための ID とシークレットを取得するように​[接続アプリケーションを設定](https://docs.mulesoft.com/jp/mq/mq-connected-apps)​します。 4. [キュー](https://docs.mulesoft.com/jp/mq/mq-queues)​、​[メッセージエクスチェンジ](https://docs.mulesoft.com/jp/mq/mq-exchanges)​、または ​[FIFO キュー](https://docs.mulesoft.com/jp/mq/mq-queues#fifoqueues)​を設定します。 5. キューまたはメッセージエクスチェンジに​[メッセージを送信](https://docs.mulesoft.com/jp/mq/mq-queues#send-message-to-queue)​します。 6. キューから​[メッセージを取得](https://docs.mulesoft.com/jp/mq/mq-queues#get-a-message-from-a-queue)​します。 7. Anypoint Studio で Mule アプリケーションの Anypoint MQ Connector を設定します。 1. Anypoint Exchange を使用して Anypoint MQ Connector をインストールします。 2. HTTP 用 Anypoint Connector (HTTP Connector)、Anypoint MQ Connector、Set Payload、Logger など、必要なビルディングブロックを使用して新しい Mule プロジェクトを作成します。 3. Anypoint MQ Connector を設定して、接続アプリケーションの ID とシークレットを指定します。 4. Anypoint MQ Connector の操作を設定して、メッセージのパブリッシュまたはコンシューム、メッセージの受け入れ (ACK)、メッセージの拒否 (NACK) を行います。 5. Mule アプリケーションをデプロイします。 8. キューをテストします。 1. `Curl`​ や Postman などの REST クライアントを使用して、メッセージを送受信します。 Anypoint MQ では、指定されたキューまたはメッセージエクスチェンジに文字列をメッセージとして送信します。 2. メッセージをブラウザーまたは Studio コンソールで表示します。 ## [](#関連情報)関連情報 - [Anypoint MQ チュートリアル](https://docs.mulesoft.com/jp/mq/mq-tutorial) - [Anypoint MQ Connector](https://docs.mulesoft.com/jp/mq/mq-connectors) - [Anypoint MQ FAQ](https://docs.mulesoft.com/jp/mq/mq-faq) - [Anypoint MQ リリースノート](https://docs.mulesoft.com/jp/mq/mq-release-notes) - [Anypoint MQ 監査ログ](https://docs.mulesoft.com/jp/access-management/audit-logging#to-query-audit-logging-for-anypoint-mq) # Anypoint MQ の概要 Anypoint MQ は、アプリケーション間でデータを非同期に交換するためのマルチテナントのクラウドベースメッセージキューサービスです。 Anypoint MQ メッセージングブローカーを使用して、Mule メッセージをキューにパブリッシュすると、他のアプリケーションがそのメッセージをコンシュームできるため、アプリケーション間の通信が可能になります。 Anypoint MQ は、Anypoint Platform と完全に統合されており、アクセス制御、クライアント管理、およびコネクタを提供します。 アクセス管理と統合されていることで、ロールベースのアクセス制御や接続アプリケーションのサポート用の環境やビジネスグループを指定できます。 Anypoint MQ では、ハイブリッドのユースケース、さまざまなデバイスからデータを収集する IoT (モノのインターネット) がサポートされており、デバイスアプリケーションで使用する REST API が提供されます。 また、node.js などの他のアプリケーションフレームワークと共に Anypoint MQ を使用してキューと通信することもできます。 次のスポットライト動画では、Anypoint MQ の概要について説明します。 ![](https://play.vidyard.com/9vARbkYLk5ZqYsrs6fgmvg.jpg) Anypoint MQ: - クラウドで完全にホストおよび管理される​[キュー](https://docs.mulesoft.com/jp/mq/mq-queues)​や​[メッセージエクスチェンジ](https://docs.mulesoft.com/jp/mq/mq-exchanges)​を提供します。 - 大容量のペイロード、暗号化、キューイング、パブリッシュ/サブスクライブパラダイムをサポートします。 - REST API を使用することで、Mule 以外のアプリケーションと簡単に接続できます。 - Anypoint Studio へのアクセスを提供します。これにより、ドラッグアンドドロップして設定するシンプルな方法でキューおよびメッセージエクスチェンジを活用できます。 ## [](#anypoint-mq-の使用を始める前に)Anypoint MQ の使用を始める前に - アカウントチームに連絡して Enterprise サブスクリプションを取得し、Anypoint MQ を有効化します。 Enterprise サブスクリプションを追加したら、Anypoint MQ が使用可能になるまで 1 時間待ってください。 - 環境と権限を設定します。 詳細は、[環境およびアクセス権限の設定](https://docs.mulesoft.com/jp/mq/mq-access-management)を参照してください。 - Anypoint MQ については、この概要を確認してください。 ## [](#anypoint-mq-の機能)Anypoint MQ の機能 Anypoint MQ には、次の機能があります。 キューおよびメッセージエクスチェンジ キューにメッセージを送信し、キューからメッセージを取得します。 メッセージエクスチェンジを使用して、メッセージを複数の標準キューに同時に送信したり、インテリジェントなメッセージルーティングルールを使用してメッセージを特定のキューに転送したりします。 詳細は、以下を参照してください。 - [キューおよびメッセージエクスチェンジ](#queues-and-exchanges) - [キューの設定と使用](https://docs.mulesoft.com/jp/mq/mq-queues) - [メッセージエクスチェンジを使用した複数のキューへのメッセージの送信](https://docs.mulesoft.com/jp/mq/mq-exchanges) - [メッセージエクスチェンジに対するルールを設定することによるメッセージの転送](https://docs.mulesoft.com/jp/mq/mq-routing-rules) 管理コンソール 管理コンソールを使用して、キュー統計を監視したり、キューをパージしたり、インフライトメッセージ数を確認したりします。 Anypoint MQ Connector CloudHub にデプロイされているか、ハイブリッドシナリオで使用されてオンプレミスにデプロイされているかに関係なく、任意の Mule アプリケーションからメッセージを送受信します。 詳細は、[Anypoint MQ Connector](https://docs.mulesoft.com/jp/mq/mq-connectors)を参照してください。 使用量情報 今月と先月の使用量 (メッセージおよび API 要求の合計数など) を確認できます。 組織のシステム管理者やオーナーは、​**\[Access Management (アクセス管理)\]**​ ページからこの情報にアクセスします。 詳細は、[使用量グラフの表示](https://docs.mulesoft.com/jp/mq/mq-usage)を参照してください。 REST API REST API を使用して、Mule 以外のアプリケーションと簡単に通信できます。 詳細は、[Anypoint MQ の REST API](https://docs.mulesoft.com/jp/mq/mq-apis)を参照してください。 環境およびロールベースのアクセス制御 Anypoint Platform のアクセス管理を使用して、キューのさまざまな環境、各環境にアクセスできるユーザー、各環境内で実行できる内容を指定します。 詳細は、[環境およびアクセス権限の設定](https://docs.mulesoft.com/jp/mq/mq-access-management)を参照してください。 クライアント管理 接続アプリケーションを使用して、API を使用しての Anypoint Platform への認証を行います。 名前、ID、およびシークレットを使用して各コンシューマーを接続アプリケーションとして登録します。 接続アプリケーションは、ID とシークレットを使用して認証を行い、1 つの環境内でキューとメッセージエクスチェンジにアクセスできます。 接続アプリケーションを複数の環境またはビジネスグループにまたがって使用することはできません。 詳細は、「[接続アプリケーションの設定](https://docs.mulesoft.com/jp/mq/mq-connected-apps)」を参照してください。 大容量のペイロード 最大 10 MB の大容量のペイロードを送信します。 ペイロードにテキスト以外の形式 (CSV、HTML、JSON、XML など) が含まれる場合、Anypoint MQ では送信前にその形式が文字列に変換されるため、ペイロードサイズが増加します。 この変換により、ペイロードが最大ペイロードサイズの 10 MB を超えて、​`Payload too large`​ エラーが発生する場合があります。 障害回復 サービスが一時的にダウンしてもメッセージが確実に配信されるようにします。 各リージョン内で、Anypoint MQ サービスは複数の可用性ゾーン (AZ) にデプロイして、高可用性 (HA) を提供します。1 つの可用性ゾーンのサービスがダウンしても、Anypoint MQ サービスはその領域で正常の動作します。リージョンのすべての可用性ゾーンがダウンすると、少なくとも 1 つの可用性ゾーンが復帰するまで Anypoint MQ サービスはそのリージョンで使用できなくなります。 サービスが中断される前にすでに Anypoint MQ システムにあったメッセージは保持されます。 使用量統計 使用量統計のチャートを表示して、ピーク使用量やサブスクリプションのパラメーターを管理できるようにします。 チャートでは、現在および過去の使用量 (コンシュームされたデータ、API 要求、受信メッセージの合計数を含む) が表示されます。 詳細は、[使用量グラフの表示](https://docs.mulesoft.com/jp/mq/mq-usage)を参照してください。 Anypoint MQ Stats API を使用して、キューのパフォーマンスの統計分析を実行することもできます。 詳細は、​[「Anypoint MQ Stats API」](https://docs.mulesoft.com/jp/mq/mq-apis#mqstatapi)​を参照してください。
Anypoint MQ は CloudHub Insight または Anypoint Monitoring と併用できません。
## [](#queues-and-exchanges)キューおよびメッセージエクスチェンジ _メッセージキュー_​は、拡張性と信頼性の高い方法でアプリケーションが通信できる一時的なストレージを提供します。 パブリッシャーはメッセージをキューにパブリッシュし、サブスクライバーはキューからメッセージを受信できます。 ![Anypoint MQ パブリッシャー、キュー、サブスクライバー](/mulesoft/current/ja-jp/mq/_images/mq-pub-q-sub.png) メッセージを複数のキューおよびコンシューマーに配信するには、複数のキューを​_メッセージエクスチェンジ_​にバインドします。 エクスチェンジに送信されたメッセージはそのバインドされたすべてのキューに同時に表示されます。 ![メッセージを複数のコンシューマーに配信するメッセージエクスチェンジ](/mulesoft/current/ja-jp/mq/_images/mq-pub-ex-sub.png) たとえば、パブリッシャーが天気の変化をパブリッシュするとします。そのデータを複数のアプリケーションが受信する必要がある場合、メッセージエクスチェンジを使用して、1 つのメッセージをアプリケーションごとに複数のキューにパブリッシュします。 _バインド_​は、メッセージエクスチェンジにメッセージの送信先を通知する、キューとメッセージエクスチェンジのリレーションです。 _インテリジェントなメッセージルーティングルール_​を設定することで、メッセージをメッセージエクスチェンジにバインドされた特定のキューに転送できます。 - キューは複数のメッセージエクスチェンジにバインドできます。 - メッセージエクスチェンジには、最大 450 件のキューをバインドできます。 - メッセージルーティングルールが定義されたエクスチェンジには、最大 10 件のキューをバインドできます。 エクスチェンジに 10 件を超えるキューのバインドがある場合、インテリジェントなメッセージルーティングは使用できません。 この例では、Salesforce のカスタマーリレーションシップマネージャー (CRM) を実行しているアプリケーションが、Anypoint MQ を使用して異なるデータベースを処理する 2 つのアプリケーションと通信します。 ![アプリケーションが受信するメッセージを CRM から Anypoint MQ に送信](/mulesoft/current/ja-jp/mq/_images/mq-crm-to-dbs.png) Salesforce アプリケーションはパブリッシュ/サブスクライブメッセージを Anypoint MQ メッセージエクスチェンジ (​`customer-updates`​) に送信します。 2 つのアプリケーション (​`customer-consumer-1`​ と ​`customer-consumer-2`​) がメッセージエクスチェンジからのメッセージを受信し、それぞれのデータベースに送信します。 ### [](#queue-benefits)キューの利点 キューには、以下の利点があります。 - 水平拡張性 メッセージをキューに配置することで、そのメッセージを処理する作業を複数のサブスクライバーに分散できます。 - 信頼性 キューでは、失敗した場合でも必ずメッセージが処理されます。 Anypoint MQ では、ロックと応答メカニズムを使用することで、キューにより信頼性が提供されます。 この機能により、失敗した場合でも必ずメッセージが処理されます。 - 分離 キューは、異なるアプリケーションおよびデバイス間の通信メカニズムとして使用できます。これにより、他のアプリケーションに影響を与えることなく、異なる開発ライフサイクルやメンテナンス期間を設定できます。 - 集約 複数のメッセージプロデューサーがメッセージを 1 つのキューにパブリッシュできるため、コンシューマーはメッセージを簡単にコンシュームできます。 メッセージコンシュームプロセスは次のようになります。 1. コンシューマーがキューからメッセージを取得します。これにより、メッセージはロックされ、他のすべてのコンシューマーに表示されなくなります。 2. コンシューマーは、取得時にロックタイムアウトを指定します。指定された期間内にメッセージが処理されないと、Anypoint MQ によってメッセージが他のコンシューマーに表示されます。 コンシューマーノードのクラッシュなどのエラーが発生した場合、別のノードがメッセージを処理できます。 メッセージをロックしても、他のメッセージの読み取りはブロックされません。 - コンシューマーがメッセージを正常に処理すると、クライアントはメッセージの肯定応答を行い、Anypoint MQ はそのメッセージをキューから削除します。 - コンシューマーがメッセージを処理できない場合、メッセージは否定応答で続行されて、キューに再度表示されます。 詳細は、​[「ACK および NACK 操作」](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/anypoint-mq-ack)​を参照してください。 - キュー内の無制限のメッセージ数 Anypoint MQ では、キュー内のメッセージ数は制限されません。 キュー内の各メッセージのサイズは 10 MB に制限されます。 - ロングポーリング メッセージは、ロングポーリングを使用して読み取られます。サーバーは新しいデータが使用可能になるまで要求を開いたままにします。その後、Anypoint MQ は、1 回の読み取りでメッセージを一括して配信します。 - 請求および課金 請求は、作成されたキューやメッセージエクスチェンジの数ではなく、キューからサブスクライバーに配信されたメッセージの数に基づきます。 ## [](#mq-in-govcloud)MuleSoft Government Cloud の Anypoint MQ Anypoint MQ のすべての機能は MuleSoft Government Cloud でサポートされますが、次の例外があります。 - 暗号化されないキューはサポートされません。 すべてのキューが暗号化されます。 [キューを作成](https://docs.mulesoft.com/jp/mq/mq-queues#create-a-queue)​するときに、​**\[Encryption (暗号化)\]**​ オプションは無効になっており、デフォルトで選択済みになっています。 - [クライアントアプリケーション](https://docs.mulesoft.com/jp/mq/mq-client-apps)​はサポートされません。 代わりに​[接続アプリケーション](https://docs.mulesoft.com/jp/mq/mq-connected-apps)​を使用してください。 - 4.x より前のバージョンの Anypoint MQ 用 Anypoint Connector はサポートされません。 Anypoint MQ で接続アプリケーションを使用するには、​[Mule 4 用 Anypoint MQ Connector 4.x](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/)​ を使用する必要があります。 - Anypoint MQ Stats API の次の REST API はサポートされません。 - [Get usage metrics for an org](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-stats/minor/1.0/console/method/%23322/)​. - [Get usage metrics for an environment within an org](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-stats/minor/1.0/console/method/%23383/)​. Anypoint MQ Stats API を使用して、キューおよびエクスチェンジのメトリクスを取得できます。 詳細は、​[「Anypoint MQ Stats API」](https://docs.mulesoft.com/jp/mq/mq-apis#mqstatapi)​を参照してください。 ## [](#関連情報)関連情報 - [Anypoint MQ の用語集](https://docs.mulesoft.com/jp/mq/mq-glossary) - [Anypoint MQ Connector](https://docs.mulesoft.com/jp/mq/mq-connectors) - [FAQ: Anypoint MQ](https://docs.mulesoft.com/jp/mq/mq-faq) - [Anypoint MQ Release Notes](https://docs.mulesoft.com/jp/mq/mq-release-notes) - [Anypoint MQ 監査ログ](https://docs.mulesoft.com/jp/access-management/audit-logging#to-query-audit-logging-for-anypoint-mq) # Anypoint MQ の用語集 ACK/NACK 以下を指定する操作: - ACK 操作 - アプリケーションはメッセージを受信し、Anypoint MQ はメッセージを削除します。 - NACK 操作 - アプリケーションはメッセージを受信せず、Anypoint MQ はメッセージを削除しません。 詳細は、​[「ACK および NACK 操作」](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/anypoint-mq-ack)​を参照してください。 バインド メッセージエクスチェンジを構成する標準キューのセットを指定する方法。これにより、アプリケーションはメッセージを複数のキューに送信できます。 メッセージエクスチェンジにバインドするメッセージキューを指定すると、Anypoint MQ によってバインドが作成および管理されます。 詳細は、[メッセージエクスチェンジを使用した複数のキューへのメッセージの送信](https://docs.mulesoft.com/jp/mq/mq-exchanges)を参照してください。 デッドレターキュー (DLQ) 他のキューからの配信不能メッセージを保存するキュー。 詳細は、​[「デッドレターキュー」](https://docs.mulesoft.com/jp/mq/mq-queues#dead-letter-queues)​を参照してください。 デフォルトの肯定応答タイムアウト 肯定応答されない状態でメッセージを維持できる期間。この期間を過ぎると、メッセージはキューに戻されます。たとえば、サーバーで障害が発生した場合や、フローの処理に時間がかかりすぎてタイムアウトした場合があります。 遅延キュー 指定した期間、新しいメッセージの配信を遅らせるキュー。 コンシューマーは、遅延中、遅延キューに送信されたメッセージを表示できません。 キューの最小遅延は 0 秒です。最大は 15 分です。 キューの遅延を変更した場合、次のようになります。 - 標準キューでは、設定の変更はキュー内のメッセージに影響しません。 - FIFO キューでは、設定の変更はキュー内のすべてのメッセージに遡って適用されます。 標準キュー内の特定のメッセージに対してのみ、キューのデフォルトの遅延を上書きできます。 メッセージ配信の遅延 特定のメッセージの標準キューへの配信を遅らせる期間を指定する設定。 コンシューマーは、遅延中、配信の遅延で送信されるメッセージを表示できません。 メッセージの最小配信遅延は 0 秒です。 最大は 15 分です。 FIFO キューでは、個々のメッセージの遅延配信はサポートされません。 宛先 メッセージエクスチェンジまたはキュー。 アプリケーションは宛先を登録して、その宛先にメッセージをパブリッシュします。アプリケーションは宛先をサブスクライブして、メッセージを受信します。Anypoint MQ では、キューやメッセージエクスチェンジを作成または管理して宛先を設定できます。 宛先は Anypoint MQ Connector を使用して Anypoint Studio で設定します。 永続的なメッセージ 対象のクライアントが受信するまで保持されるメッセージ。 Duration (所要時間) Anypoint MQ で削除されてから、メッセージがインフライトで保持される期間 (最大 2 週間)。 暗号化されたキュー 暗号化されているキュー。これにより、会社は保管時のデータのポリシーに準拠できます。 保管時の暗号化用に Anypoint MQ キューを設定する場合、ペイロードはサーバー側で AES-256 GCM アルゴリズムを使用して暗号化されます。 Anypoint MQ では、メッセージ本文のみが暗号化されます。 Anypoint MQ では、エクスチェンジとキューに送信されたメッセージの ​`headers`​ や ​`properties`​ は暗号化されません。 FIFO キュー 先入れ先出し (FIFO) でメッセージを処理するキュー。これにより、メッセージの順序を厳密に保持および適用する必要があるアプリケーションでメッセージの順序付けができます。 詳細は、​[「FIFO キュー」](https://docs.mulesoft.com/jp/mq/mq-queues#fifo-queues)​を参照してください。 インフライト 次のいずれかの状態にあるメッセージ: - キューにより受信されたが、削除されていない - 肯定応答 (ACK) または否定応答 (NACK) を待機している - **デフォルトの肯定応答タイムアウト**​ (存続期間) 設定の期限が切れたためにキューに戻されていない インフライトメッセージは、他のコンシューマーには表示されません。 標準 (FIFO 以外の) キューの場合、Anypoint MQ では、キューごとに最大 120,000 個のインフライトメッセージがサポートされています。 FIFO キューの場合、各メッセージグループに最大 10 個のインフライトメッセージを含めることができます。 キュー待機中 送信されたメッセージ。 Anypoint MQ では、標準キューと FIFO キューの両方で、キュー内の無制限のメッセージがサポートされます。 ロック ID 1 つのアプリケーションのみにキューの読み取りを許可する識別子。 アプリケーションがキューのメッセージの肯定応答を行うと、Anypoint MQ によってロックが提供されます。 メッセージ アプリケーションが相互に通信できるようにシリアル化された、アプリケーションが送受信する ​[Mule メッセージ](https://docs.mulesoft.com/mule-runtime/latest/about-mule-message)​コンテンツ。 メッセージエクスチェンジ 複数の出力を備えるパブリッシュ/サブスクライブメッセージ送信元。アプリケーションは、メッセージエクスチェンジでパブリッシュされるメッセージのサブスクライブを登録します。 詳細は、[メッセージエクスチェンジを使用した複数のキューへのメッセージの送信](https://docs.mulesoft.com/jp/mq/mq-exchanges)を参照してください。 メッセージグループ 特定のメッセージのグループへの割り当て。これにより、複数のコンシューマーが 1 つの FIFO キューからメッセージを処理できます。 詳細は、​[「FIFO キューとメッセージグループ」](https://docs.mulesoft.com/jp/mq/mq-queues#fifo-queues-msg-groups)​を参照してください。 メッセージルーティングルール エクスチェンジにパブリッシュされたメッセージのサブセットを特定のキューに転送するために、メッセージエクスチェンジのバインドに対して設定するルール。 オンプレミス 組織のコンピューターで実行される Mule Runtime。 ペイロード メッセージのコンテンツ。テキスト、JSON、または CSV (カンマ区切り値) を使用できます。 ポイントツーポイント 1 つのアプリケーションのみが受信できるメッセージをアプリケーションから送信できるようにするパターン。 パブリッシュ/サブスクライブ メッセージを複数のコンシューマーに配信するパターン。 パブリッシャー メッセージを Anypoint MQ に送信するアプリケーション。 キュー クライアントが受信するメッセージを保持するポイントツーポイントメッセージストレージ領域。 詳細は、[キューの設定と使用](https://docs.mulesoft.com/jp/mq/mq-queues)を参照してください。 サブスクライバー メッセージを Anypoint MQ から受信するアプリケーション。 TTL (存続期間) Anypoint MQ によってメッセージが失効され、キューから削除される前に、メッセージがキュー内で存続する期間。 各キューには、メッセージ存続期間 (TTL) があります。 キューのメッセージ TTL を変更すると、新しい TTL 値がキュー内のすべてのメッセージとキューに追加されるすべての新しいメッセージに適用されます。 ## [](#関連情報)関連情報 - [Anypoint MQ の概要](https://docs.mulesoft.com/jp/mq/) - [FAQ: Anypoint MQ](https://docs.mulesoft.com/jp/mq/mq-faq) # Anypoint MQ の監視 Anypoint MQ の監視機能を使用して、使用状況を表示してロギングデータを監査します。 - [使用量グラフの表示](https://docs.mulesoft.com/jp/mq/mq-usage) コンシュームされたデータ量と API 要求数、および受信したメッセージ単位数を示すチャートを表示できます。 - [Anypoint MQ 監査ログ](https://docs.mulesoft.com/jp/mq/mq-audit-logs) Anypoint Platform の監査ログサービスでは、キュー、エクスチェンジ、およびクライアントアプリケーションに対する Anypoint MQ アクションを記録します。 # Anypoint MQ の設定 メッセージを送受信できるように Anypoint MQ キュー、エクスチェンジ、接続アプリケーションを設定します。 - [環境およびアクセス権限の設定](https://docs.mulesoft.com/jp/mq/mq-access-management) アクセス管理を使用して環境を作成し、組織の Anypoint Platform で Anypoint MQ 機能を管理するユーザーのロールを管理できます。 - [キューの設定と使用](https://docs.mulesoft.com/jp/mq/mq-queues) Anypoint Platform で、キュー、FIFO キュー、デッドレターキューを作成します。 キューからのメッセージの送信、受信、パージを行います。 - [メッセージエクスチェンジを使用した複数のキューへのメッセージの送信](https://docs.mulesoft.com/jp/mq/mq-exchanges) メッセージを複数の標準​[キュー](https://docs.mulesoft.com/jp/mq/mq-queues)​に同時に送信するには、これらのキューをメッセージエクスチェンジにバインドします。 バインドに対する​_インテリジェントなメッセージルーティングルール_​を作成して、メッセージエクスチェンジにバインドされた特定のキューにメッセージを転送します。 - [接続アプリケーションの設定](https://docs.mulesoft.com/jp/mq/mq-connected-apps) 接続アプリケーションを使用してユーザーログイン情報を共有することなく外部アプリケーションにアクセスできるようにすることで、これらのアプリケーションを Anypoint Platform と統合します。 - [クライアントアプリケーションの設定](https://docs.mulesoft.com/jp/mq/mq-client-apps) MQ 用 Anypoint Connector (Anypoint MQ Connector) バージョン 3.x 以前を使用する場合、キューからのパブリッシュおよびコンシュームに使用するログイン情報を生成します。 MuleSoft では、クライアントアプリケーションではなく接続アプリケーションを使用してログイン情報を生成することをお勧めします。 詳細は、「[接続アプリケーションの設定](https://docs.mulesoft.com/jp/mq/mq-connected-apps)」を参照してください。 # Anypoint MQ 監査ログ Anypoint Platform の監査ログサービスでは、キュー、エクスチェンジ、およびクライアントアプリケーションに対する Anypoint MQ アクションを記録します。 **組織のシステム管理者**​ロールまたは​**監査ログ閲覧者**​ロールがあると、\[Access Management (アクセス管理)\] の ​**\[Audit Log (監査ログ)\]**​ ページから、または監査ログ REST API を使用して、自分のビジネスグループに関連する監査ログにアクセスできます。 たとえば、監査ログを使用して次の情報を確認できます。 - ユーザーのすべての Anypoint MQ アクション - オブジェクト (キューやエクスチェンジなど) に対するすべての Anypoint MQ アクション

監査ログサービスでは、次のアクションは監査可能なアクションとして記録されません。

  • メッセージの送信、受信、参照

  • 失敗した Anypoint MQ 操作

## [](#anypoint-mq-監査ログへのアクセス)Anypoint MQ 監査ログへのアクセス Anypoint MQ 監査ログにアクセスする手順は、次のとおりです。 1. Anypoint Platform にログインします。 2. ナビゲーションバーまたは Anypoint Platform のメイン画面で ​**\[Access Management (アクセス管理)\]**​ をクリックします。 3. **\[Access Management (アクセス管理)\]**​ ナビゲーションメニューから、​**\[Audit Logs (監査ログ)\]**​ を選択します。 4. 検索条件を選択し、​**\[Apply filters (検索条件を適用)\]**​ をクリックします。 製品 **Anypoint MQ** 型 **Binding**​、​**Client**​、​**Exchange**​、​**Queue** アクション - バインド: **\[Create binding (バインドを作成)\]**​、​**\[Delete binding (バインドを削除)\]** - クライアント: **\[Create client (クライアントを作成)\]**​、​**\[Delete client (クライアントを削除)\]**​、​**\[Regenerate client (クライアントを再生成)\]** - エクスチェンジ: **\[Create exchange (エクスチェンジを作成)\]**​、​**\[Delete exchange (エクスチェンジを削除)\]**​、​**\[Modify exchange (エクスチェンジを変更)\]** - キュー: **\[Create queue (キューを作成)\]**​、​**\[Delete queue (キューを削除)\]**​、​**\[Modify queue (キューを変更)\]**​、​**\[Purge queue (キューをパージ)\]** 環境、オブジェクト名、またはユーザーで検索することもできます。 **\[Audit logs (監査ログ)\]**​ ページにログが表示されます: ![「Audit logs (監査ログ)」 ページの検索条件、「Apply filters (検索条件を適用)」 ボタン、現在適用されている検索条件、「Download payload (ペイロードをダウンロード)」 アイコン](/mulesoft/current/ja-jp/mq/_images/mq-access-mgmt-audit-logs.png) ### [](#ペイロード)ペイロード _ペイロード_​とは、アクションが実行されたときに適用される Anypoint MQ 設定をリストした JSON 形式のテキストファイルです。 **\[Audit Log (監査ログ)\]**​ ページでアクションごとに ​**\[Download payload (ペイロードをダウンロード)\]**​ アイコン (​![「Download payload (ペイロードをダウンロード)」 アイコン](/mulesoft/current/ja-jp/mq/_images/icon-download-payload.png)​) をクリックして、ペイロードファイル (​`payload.txt`​) をダウンロードします。 次の例は、キューを作成した後の ​`payload.txt`​ のコンテンツの形式設定済みバージョンを示しています。 ```json { "organizationId":"", "environmentId":" 項目 説明

organizationId

現在の Anypoint Platform アカウントの組織 ID

組織 ID を使用して Anypoint MQ REST API にアクセスできます。

environmentId

現在の Anypoint Platform アカウントの環境 ID

環境 ID を使用して Anypoint MQ REST API にアクセスできます。

objectName

キュー、エクスチェンジ、またはクライアントアプリケーションの名前

userName

Anypoint Platform アカウントのユーザー名

objectId

キュー、エクスチェンジ、またはクライアントアプリケーションの名前

objectID​ は ​objectName​ と同じ値です。

regionId

Anypoint MQ 接続を処理するリージョンの場所

defaultTtlMillis

デフォルトの存続期間 (ミリ秒)

この値では、削除するまで未処理のメッセージを保持する期間を指定します。

defaultLockTtlMillis

作成したキューまたはエクスチェンジのデフォルトのロック存続期間 (ミリ秒)

この値では、メッセージがキューに戻されるまで他のアプリケーションで使用できなくなる期間 (ミリ秒) を指定します。

encrypted

キューまたはメッセージエクスチェンジが暗号化されているかどうか

保管時の暗号化用に Anypoint MQ キューを設定する場合、ペイロードはサーバー側で AES-256 GCM アルゴリズムを使用して暗号化されます。

Anypoint MQ では、メッセージ本文のみが暗号化されます。 Anypoint MQ では、エクスチェンジとキューに送信されたメッセージの ​headers​ や ​properties​ は暗号化されません。

deadLetterQueueId

現在のオブジェクトが関連付けられているデッドレターキューの名前

maxDeliveries

メッセージをデッドレターキューに再転送するまで Anypoint MQ でキュー内のメッセージの配信を試行する回数

fifo

キューが FIFO キューか (​true​)、否か (​false​)

この項目は、FIFO キューを作成した時点で ​true​ に設定されます。 それ以降、FIFO キューに対して変更を加えると、​fifo​ 項目が ​null​ に設定されます。
## [](#関連情報)関連情報 - [監査ログ](https://docs.mulesoft.com/jp/access-management/audit-logging) - [FIFO キュー](https://docs.mulesoft.com/jp/mq/mq-queues#fifoqueues) - [Anypoint MQ の REST API](https://docs.mulesoft.com/jp/mq/mq-apis) - [監査ログクエリ API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/audit-log-query-api/) # FAQ: Anypoint MQ このドキュメントでは、Anypoint MQ に関するよくある質問をまとめました。 **関連情報:**​ ​[Anypoint MQ Connector](https://docs.mulesoft.com/jp/mq/mq-connectors)​、​[REST API](https://docs.mulesoft.com/jp/mq/mq-apis)​、​[リリースノート](https://docs.mulesoft.com/jp/release-notes/mq/mq-release-notes)​。 ## [](#ent-subscription)Anypoint MQ が Anypoint Platform に表示されない理由は? Anypoint MQ を使用するには個別の Enterprise サブスクリプションが必要です。Anypoint MQ は Anypoint Platform トライアルバージョンに含まれません。詳細は、アカウントチームにお問い合わせください。Enterprise サブスクリプションがない場合は、Apache Active MQ または Rabbit MQ を使用できます。 Enterprise サブスクリプションを追加したら、Anypoint MQ が使用可能になるまで 1 時間待ってください。 ## [](#regions)Anypoint MQ を使用できるリージョンは? Anypoint MQ の標準キューと FIFO キューは次のリージョンで使用できます。
場所 Region Name (リージョン名) リージョン

US コントロールプレーン

北米

米国東部 (北バージニア)

us-east-1

米国東部 (オハイオ)

us-east-2

米国西部 (オレゴン)

us-west-2

カナダ (中央部)

ca-central-1​

ヨーロッパ

欧州 (アイルランド)

eu-west-1

欧州 (ロンドン)

eu-west-2​

APAC

アジア太平洋 (シンガポール)

ap-southeast-1

アジア太平洋 (シドニー)

ap-southeast-2

アジア太平洋 (東京)

ap-northeast-1​

EU コントロールプレーン

ヨーロッパ

欧州 (フランクフルト)

eu-central-1

欧州 (アイルランド)

eu-west-1​

MuleSoft Government Cloud

GovCloud (米国西部)

us-gov-west-1

## [](#メッセージを作成して-mule-runtime-から-anypoint-mq-に送信する方法は)メッセージを作成して Mule Runtime から Anypoint MQ に送信する方法は? Enterprise サブスクリプションを取得し、アカウントチームに連絡して Anypoint MQ をアクティブ化したら、Anypoint Platform を使用してキューまたはメッセージエクスチェンジを作成し、それらにメッセージを送信できます。詳細は、​[「キューの設定」](https://docs.mulesoft.com/jp/mq/mq-queues)​および​[「メッセージエクスチェンジの設定」](https://docs.mulesoft.com/jp/mq/mq-exchanges)​を参照してください。 ## [](#anypoint-mq-でメッセージを暗号化する方法は)Anypoint MQ でメッセージを暗号化する方法は? Anypoint MQ は、Transport Layer Security (TLS) 1.2 プロトコルでインフライト HTTPS 暗号化を使用してメッセージを転送し、非推奨の TLS バージョン 1.0 および 1.1 をサポートしません。 保管時の暗号化用に Anypoint MQ キューを設定する場合、ペイロードはサーバー側で AES-256 GCM アルゴリズムを使用して暗号化されます。
Anypoint MQ では、メッセージ本文のみが暗号化されます。 Anypoint MQ では、エクスチェンジとキューに送信されたメッセージの ​headers​ や ​properties​ は暗号化されません。
アプリケーションの暗号化セキュリティの層を強化する必要がある場合、メッセージを Anypoint MQ にパブリッシュする前にペイロードをユーザー自身で暗号化できます。メッセージのパブリッシャーとコンシューマーの両方に対して暗号化鍵を管理する必要があります。 ## [](#暗号化されたキューの-ui-に復号化されたメッセージが表示される理由は)暗号化されたキューの UI に、復号化されたメッセージが表示される理由は? キューを暗号化した場合、メッセージは暗号化されて保存されますが、メッセージは読み取り時に復号化されます。暗号化と復号化は自動的に、エンドユーザーには透過的に処理されます。この自動復号化を無効にするオプションはありません。ペイロードの暗号化を維持するようにメッセージを暗号化する必要がある場合は、コンテンツを手動で暗号化します。 ## [](#java-オブジェクトをメッセージとして送信する方法は)Java オブジェクトをメッセージとして送信する方法は? Anypoint MQ メッセージの本文は JSON メッセージの一部として String (文字列) として送信されるため、パブリッシュする必要があるコンテンツは String (文字列) 形式でシリアル化する必要があり、後から非シリアル化できます。これを実行する方法の 1 つは、DataWeave を使用して Java オブジェクトをその JSON 表現にシリアル化する方法です。後で String (文字列) からシリアル化および非シリアル化できます。適切な String (文字列) のシリアル化がない Java オブジェクトを送信すると、メッセージが受信側で読み取り不可になります。 ## [](#メッセージやキューをリージョン間で共有できますか)メッセージやキューをリージョン間で共有できますか? いいえ、キューとメッセージエクスチェンジは、それらが作成されたリージョンに一意のものであり、メッセージやキューをリージョン間で共有することはできません。開発者はリージョン間で負荷を分散するカスタムプログラムを手動で作成できますが、Anypoint MQ 自体はマルチリージョンサポートを提供しません。 各リージョンのキューは、他のリージョンのキューとは切り離されています。各リージョンのキューを同じ名前にできますが、キューはリージョン間でメッセージを共有できません。 ## [](#anypoint-mq-ではパブリッシャーとサブスクライバー間で相関-id-はどのように渡されますか)Anypoint MQ ではパブリッシャーとサブスクライバー間で相関 ID はどのように渡されますか? Anypoint MQ では、API を使用してレイヤー間で ID を伝播する方法と同じ方法でパブリッシャーからサブスクライバーに ​`correlationId`​ を伝播することはできません。 パブリッシャーとサブスクライバー間で ID を渡すには、メッセージと共に送信するユーザープロパティを追加します。 詳細は、​[「キューへのメッセージの送信」](https://docs.mulesoft.com/jp/mq/mq-queues#send-a-message-to-a-queue)​を参照してください。 相関 ID についての詳細は、 [「Total traceability with correlation IDs (相関 ID による完全なトレーサビリティ)」](https://blogs.mulesoft.com/dev-guides/how-to-tutorials/total-traceability/)​を参照してください。 ## [](#anypoint-mq-ユーザーインターフェースを使用してフェッチできるメッセージの数は)Anypoint MQ ユーザーインターフェースを使用してフェッチできるメッセージの数は? **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ > ​**\[Message Browser (メッセージブラウザー)\]**​ で、標準 (FIFO 以外の) キューからメッセージを最大 50 個フェッチできます。 FIFO キューでは、取得できるメッセージ数がメッセージブラウザー UI によって 10 件に制限されます。 この FIFO 制限が存在する理由は、FIFO キューのメッセージグループあたりのインフライトメッセージが 10 個に制限されているためです。インフライトメッセージについての詳細は、「​[キューごとに持つことができるインフライトメッセージの数は?](#inflights)​」を参照してください。 ## [](#batchsize)Anypoint MQ REST API を使用してメッセージを取得する場合、受信するメッセージの数がバッチサイズよりも少ない理由は? Anypoint MQ は高度に分散されたメッセージングシステムのため、メッセージを受信するための API コールの結果が、キューのすべてのコンテンツを完全に表しているとは限りません。Anypoint MQ はベストエフォートケースで動作します。たとえば、キュー内に 5 個のメッセージがある場合、システムは 1 回の API コールで 0 ~ 5 個のメッセージを任意の場所に戻します。この数は、この要求がどの分散サブシステムにアクセスするかによって異なります。後続の API コールでさらにメッセージが取得されます。メッセージを受信する API 要求を継続して実行した場合、すべてのメッセージが取得されます。通常、高スループットのケースでは、反復 API コールは極めて高速に実行されます。たとえば、Anypoint MQ Connector は Anypoint MQ バックエンドを連続的にポーリングして新規メッセージを確認しています。大量の API コールを使用していたとしても、ユーザーの視点ではメッセージはほぼ瞬時に処理されます。 ## [](#標準-fifo-以外の-キューでのメッセージの順序は)標準 (FIFO 以外の) キューでのメッセージの順序は? 標準キューは、メッセージの順序を保持しようとしますが、厳密な順序が保証されるわけではありません。 標準キューは拡張性と分散性を考慮して設計されているため、メッセージを送信された順序で受信できる保証はありません。 メッセージの順序が重要である場合、​[FIFO キュー](https://docs.mulesoft.com/jp/mq/mq-queues#fifoqueues)​を使用するか、Anypoint MQ Connector を ​[Consume 操作](#process-one-by-one)​に設定します。 ## [](#メッセージを-10-mb-よりも大きくすることはできますか)メッセージを 10 MB よりも大きくすることはできますか? Anypoint MQ では、最大 10 MB のペイロードがサポートされています。 ペイロードにテキスト以外の形式 (CSV、HTML、JSON、XML など) が含まれる場合、Anypoint MQ では送信前にその形式が文字列に変換されるため、ペイロードサイズが増加します。 この変換により、ペイロードが最大ペイロードサイズの 10 MB を超えて、​`Payload too large`​ エラーが発生する場合があります。 これより大きなサイズが必要な場合は、ペイロードを複数のメッセージに分割するか、一時預かりのようなサービスを実装し、このサービスでペイロードをファイルシステムまたは blob ストレージに保存した後、ペイロードへのポインターをメッセージ内に配置することで、後でペイロードをダウンロードできます。ただし、送信者と受信者の両方に対して blob ストレージへのアクセス制御を管理する必要があります。また、FIFO キューを使用しない限り、メッセージが順不同で受信される可能性があることを考慮する必要があります。 **\[Message Browser (メッセージブラウザー)\]**​ ページには、ペイロードサイズが 1 MB 未満の場合にのみペイロードが表示されます。 ペイロードサイズが 1 MB 以上の場合、​**\[Message Browser (メッセージブラウザー)\]**​ ページにはエラーが表示されます。 この場合は、Anypoint MQ Broker API を使用してメッセージペイロードを表示できます。 [「メッセージの取得」](https://docs.mulesoft.com/jp/mq/mq-apis#retrieve-message-api)​を参照してください。 ## [](#メッセージエクスチェンジとキューは一意でありその作成元の環境でのみそれらにアクセスできますか)メッセージエクスチェンジとキューは一意であり、その作成元の環境でのみそれらにアクセスできますか? つまり、1 つの環境で作成されたメッセージエクスチェンジまたはキューと、異なる環境で作成されたメッセージエクスチェンジまたはキューの名前が同じ場合に、混乱のないようにまたはそれらが接続されないようにする方法がありますか? 異なる環境でキューとエクスチェンジに同じオブジェクト名を付けることはできますが、クライアントアプリケーション ID やクライアントシークレットの値は一意にする必要があります。各キューとエクスチェンジに、対応するクライアントアプリケーション ID がない場合、開発環境から本番キューにアクセスできません。 ## [](#キューまたはメッセージエクスチェンジへのアクセスを制限する方法は)キューまたはメッセージエクスチェンジへのアクセスを制限する方法は? **\[Anypoint Platform\]**​ > ​**\[Access Management (アクセス管理)\]**​ > ​**\[Business Groups or Environments (ビジネスグループまたは環境)\]**​ を使用できます。ビジネスグループまたは環境で作成されたキューおよびメッセージエクスチェンジは、そのビジネスグループまたは環境へのアクセス権を持つユーザーにのみ表示されます。 ## [](#anypoint-mq-をオンプレミスで使用できますか)Anypoint MQ をオンプレミスで使用できますか? オンプレミスシステムから Anypoint MQ にメッセージをパブリッシュし、別のオンプレミスサブスクライバーが Anypoint MQ からメッセージを取得できるようにすることができます。現在、Anypoint MQ はオンプレミスにデプロイできません。 オンプレミスのメッセージ送信元が必要な場合は、代わりに Apache Active MQ を使用できます。 ## [](#anypoint-mq-でディザスターリカバリーと高可用性フェールオーバーを処理する方法は)Anypoint MQ でディザスターリカバリーと高可用性フェールオーバーを処理する方法は? 各リージョン内で、Anypoint MQ サービスは複数の可用性ゾーン (AZ) にデプロイして、高可用性 (HA) を提供します。1 つの可用性ゾーンのサービスがダウンしても、Anypoint MQ サービスはその領域で正常の動作します。リージョンのすべての可用性ゾーンがダウンすると、少なくとも 1 つの可用性ゾーンが復帰するまで Anypoint MQ サービスはそのリージョンで使用できなくなります。Anypoint MQ のストレージソリューションは永続的であるため、サービスが中断される前にすでに Anypoint MQ システムにあったメッセージは保持されます。 Anypoint MQ には、リージョン間でメッセージやキューを複製するための組み込みサポートはありません。 ## [](#anypoint-mq-connector-で再試行戦略を使用できますか)Anypoint MQ Connector で再試行戦略を使用できますか? Anypoint MQ Connector では、接続ベースのプロトコルは使用されていないため、再接続戦略は使用できません。代わりに、バックグラウンドで REST が使用されます。 インバウンド側では、最大再試行回数に設定した最大再配信属性と、制限に達したときにデッドレターキュー (DLQ) に移動する例外戦略を使用して、再試行戦略を容易に模倣できます。 アウトバウンド側では、同じトリガーメカニズムを使用する必要があります。 それ以外の場合は、このコネクタで ​`until-successful`​ 要素を使用できます。 また、​**\[Global Element Properties (グローバル要素のプロパティ)\]**​ > ​**\[Set Max Redelivery (最大再配信を設定)\]**​ を ​`-1`​ の値に設定するように HTTP Connector を設定する必要があります。 ## [](#dlq-からのメッセージを再生再処理する方法は)DLQ からのメッセージを再生/再処理する方法は? DLQ からメッセージを再生するための組み込み機能はありません。このメッセージをコンシュームし、元のキューに転送して再処理するための特別なフローまたはアプリケーションを実装する必要があります。 ## [](#フェールオーバーを回復し処理する方法は)フェールオーバーを回復し、処理する方法は? Anypoint MQ が動作しているネットワークは、複数のデータセンターにまたがる高可用性レプリケーションを提供します。 ## [](#フェールオーバーが実行されたときにメッセージが一意に処理されるようにする方法は)フェールオーバーが実行されたときにメッセージが一意に処理されるようにする方法は? サーバーに障害が発生してフェールオーバーが実行された場合、メッセージは、Anypoint MQ が動作しているネットワーク内の他のサーバーで引き続き処理されます。標準 Anypoint MQ キューでは 1 回のみのメッセージ配信は保証されません。1 回のみのメッセージ配信がサポートされているのは、FIFO キューのみです。高可用性ネットワークでは、FIFO キューのメッセージは自動的に重複排除されます。 ## [](#anypoint-mq-ではメッセージ配信が保証されますか)Anypoint MQ ではメッセージ配信が保証されますか? はい、Anypoint MQ では、宛先への「少なくとも 1 回 (at least once)」のメッセージ配信が保証されます。 ## [](#api-要求の計算方法は)API 要求の計算方法は? Anypoint MQ への各 API コールが 1 つの API 要求とみなされます。各コールを要求とみなすことには、メッセージの送信、受信、および肯定応答のほか、キューおよびエクスチェンジに対するすべての操作が含まれます。 1 回の API コールから最大 10 個のメッセージを取得できますが、この 1 回の API コールのみが 1 つの要求として請求されます。キューが空の場合など、メッセージを取得する要求でメッセージが返されない場合でも、1 つの API 要求として請求されます。 ## [](#anypoint-mq-の最大-tps-は)Anypoint MQ の最大 TPS は? 最大トランザクション/秒 (TPS) - 標準キューおよびエクスチェンジ: 最大 TPS なし - FIFO キュー: 最大で 300 TPS API を使用して読み書き操作ごとに 10 個のメッセージ (最大) をバッチ処理した場合、FIFO キューは最大 3,000 TPS をサポートできます。 バッチ操作についての詳細は、​[「バッチで Anypoint MQ メッセージをアップロードおよび取得できますか?」](#batch-upload-retrieve)​を参照してください。
失敗した要求は TPS に含まれます。
## [](#anypoint-mq-のキューとエクスチェンジの最大数は)Anypoint MQ のキューとエクスチェンジの最大数は? キューまたはエクスチェンジの最大数はありません。 ## [](#inflights)キューごとに含めることができるインフライトメッセージの数は? Anypoint MQ では、標準 (FIFO 以外の) キューごとに最大 120,000 個のインフライトメッセージがサポートされます。 FIFO キューでは特別な処理が必要なため、メッセージグループごとに許可されるインフライトメッセージの数は最大 10 個です。 Anypoint MQ では、FIFO キュー内のメッセージグループ数は制限されません。 1 つのキューには、無制限のメッセージ数を含めることができます。転送中かどうかにかかわらず、メッセージの最大存続期間は 2 週間です。この後、Anypoint MQ はメッセージを削除します。 ## [](#anypoint-mq-connector-はメッセージを保存して送信を再試行しますか)Anypoint MQ Connector はメッセージを保存して送信を再試行しますか? このコネクタは再送信の目的でメッセージを保存しません。コネクタにより 5 回再試行された後、メッセージは破棄されるため、メッセージをどのように処理するかをアプリケーションで決定する必要があります。 ## [](#再試行は-mule-フローに対して同期的に実行されますか非同期で実行されますか)再試行は Mule フローに対して同期的に実行されますか、非同期で実行されますか? Anypoint MQ ブローカーへのメッセージ送信の再試行は常に同期的に実行されます。対照的に、クライアントモードではバックエンドへの接続を確立する方法が特定され、メッセージ送信の再試行は管理されません。 ## [](#再試行は-maxredelivery-設定で管理されますか)再試行は maxRedelivery 設定で管理されますか? 再試行は任意です。​`maxRedelivery`​ パラメーターは、メッセージが配信されたが処理されなかった (NACK または TimeOut の) 回数を示します。 ## [](#batch-upload-retrieve)バッチで Anypoint MQ メッセージをアップロードおよび取得できますか? Anypoint MQ Broker API を使用すると、標準または FIFO キューからメッセージをバッチでアップロードまたは取得できます。 詳細は、 [「Anypoint MQ Broker API」](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-broker/minor/1.0/console/summary/)​を参照してください。 1 回のコールで最大 10 個のメッセージ (デフォルト) をアップロードまたは取得できます。 バッチ取得操作の場合、​`batchSize`​ クエリパラメーターを使用して、取得するメッセージ数を指定します。 Anypoint MQ Broker API では、1 回のコールで取得されるメッセージ数が保証されません。 [「Anypoint MQ REST API を使用してメッセージを取得する場合、受信するメッセージの数がバッチサイズよりも少ない理由は?」](#batchsize)​を参照してください。 ## [](#mule-以外のアプリケーションは-anypoint-mq-と連携できますか)Mule 以外のアプリケーションは Anypoint MQ と連携できますか? Mule 以外のアプリケーションがある場合、​[Anypoint MQ REST API](https://docs.mulesoft.com/jp/mq/mq-apis)​ を使用してメッセージの送受信ができます。 ## [](#anypoint-mq-のスループット容量は)Anypoint MQ のスループット容量は? Anypoint MQ は水平方向に拡張可能で、必要に応じてより高いスループットをサポートします。 ## [](#メッセージがキューに到着したときに通知を受け取ることはできますか)メッセージがキューに到着したときに通知を受け取ることはできますか? Anypoint MQ はロングポーリングを提供します。十分なメッセージがない場合、REST 要求を実行し、TCP ソケットを最大 20 秒間開いたままにして要求を満たすようにサーバーに指示できます。 ## [](#process-one-by-one)メッセージを一度に 1 つずつ処理する方法は? [FIFO キュー](https://docs.mulesoft.com/jp/mq/mq-queues#fifoqueues)​を使用して、メッセージを順番に処理できます。 FIFO キューを使用しない場合、Anypoint MQ Connector を ​`consume`​ 操作に設定して、メッセージを一度に 1 つずつ処理できます。 この操作では、キューからメッセージを取得するか、使用可能なメッセージがない場合は null を受信します。 その後の操作は、Mule バージョンに応じて異なります。 **Mule 4** `maxConcurrency="1"`​ 属性を ​`flow`​ 要素に追加します。 コンポーネントが任意の時点で受信できる同時呼び出し数を 1 に設定するようにこの属性を指定します。 Mule 4 の例: ```xml ``` **Mule 3** 1. フローで ​`processingStrategy="synchronous"`​ を設定します。 メッセージを最初に受信した同じスレッドでメッセージを処理するようにこの属性を指定します。 2. プロセスを指定の間隔で起動するようにポーリングスコープを設定します。 Mule 3 の例: ```xml ``` `anypoint-mq:consume`​ と ​`anypoint-mq:ack`​ 間の処理時間がキューの ​**\[Default Acknowledgement Timeout (デフォルトの肯定応答タイムアウト)\]**​ 設定の値より高い場合、複数のインフライトメッセージが発生する可能性があります。 ## [](#メッセージの参照オプションで-anypoint-mq-ヘッダーを参照できますか)メッセージの参照オプションで Anypoint MQ ヘッダーを参照できますか? Anypoint MQ では、メッセージ ID とペイロードへの直接アクセスが提供されます。Chrome ブラウザーとそのネットワークインスペクター機能を使用してメッセージヘッダーを参照できます。 ## [](#anypoint-mq-connector-は共有リソースをサポートしますか)Anypoint MQ Connector は共有リソースをサポートしますか? 共有リソースを公式にサポートしているコネクタとトランスポートは HTTP/HTTPS、VM、JMS、JMS キャッシング接続ファクトリー、データベース、WMQ、JBoss トランザクションマネージャー、Bitronix トランザクションマネージャーのみです。 ## [](#多数のキューとメッセージエクスチェンジを作成する方法は)多数のキューとメッセージエクスチェンジを作成する方法は? `for`​ ループ内で ​`curl`​ コマンドを ​[Anypoint MQ Admin API](https://docs.mulesoft.com/jp/mq/mq-apis#mqadminapi)​ と共に使用して、必要な数のキューとメッセージエクスチェンジを作成できます。「[Anypoint MQ の REST API](https://docs.mulesoft.com/jp/mq/mq-apis)」を参照してください。 ## [](#api-要求月の使用料金はすべての環境に関係しますか)API 要求/月の使用料金はすべての環境に関係しますか? はい、使用料金はすべての環境に適用されます。 ## [](#使用量がライセンスの上限を超えるとどうなりますか)使用量がライセンスの上限を超えるとどうなりますか? 使用量がライセンスの上限に達しても、Anypoint MQ は動作を続行します。 MuleSoft は、アカウント管理者とチームに請求関連の情報を通知します。 ## [](#プリフェッチを使用してメッセージを取得した場合に-400-エラー-不正な要求-が表示されない理由は)プリフェッチを使用してメッセージを取得した場合に 400 エラー (不正な要求) が表示されない理由は? プリフェッチで Anypoint MQ をメッセージプロセッサーとして使用する場合、グローバルプリフェッチ設定のみを使用してください。 たとえば、次のローカルプリフェッチは機能しません。 ```xml ``` 代わりに次のグローバルプリフェッチを使用します。 ```xml ``` ## [](#キューを削除する方法は)キューを削除する方法は? キューを削除するには、​[「キューを削除する」](https://docs.mulesoft.com/jp/mq/mq-queues#delete-a-queue)​を参照してください。 ## [](#メッセージエクスチェンジを削除する方法は)メッセージエクスチェンジを削除する方法は? メッセージエクスチェンジを削除するには、​[「メッセージエクスチェンジを削除する」](https://docs.mulesoft.com/jp/mq/mq-exchanges#delete-a-message-exchange)​を参照してください。 ## [](#関連情報)関連情報 - [ナレッジベース記事](https://help.mulesoft.com/s/knowledge) - [Apache Active MQ](https://activemq.apache.org/) - [Rabbit MQ](https://www.rabbitmq.com/) # キューの設定と使用 _キュー_​はメッセージの一時ストレージ領域です。Anypoint Platform では、キュー、FIFO キュー、デッドレターキューを作成できます。Anypoint Studio でキューとの間でメッセージを送受信することもできます。 Anypoint MQ を使用して、2 種類のキューを作成できます。 - 標準キュー これらのキューでは特定のメッセージ順序は保証されません。メッセージをすばやく配信する必要があるアプリケーションでは、標準キューが最適です。 Anypoint MQ では、標準キューごとに最大 120,000 個のインフライトメッセージがサポートされます。 標準キューでは、「少なくとも 1 回 (at least once)」のメッセージ配信の信頼性があります。 高度に分散されたアーキテクチャにより、Anypoint MQ はメッセージを複数回配信することがあります。 - FIFO (先入れ先出し) キュー これらのキューではメッセージが順番に到着します。メッセージの厳密な順序と、正確に 1 回 (exactly once) の配信を必要とし、メッセージの配信速度があまり重要でないアプリケーションでは FIFO キューが最適です。「​[FIFO キュー](#fifoqueues)​」を参照してください。 Anypoint MQ では、FIFO キューのメッセージグループごとに最大 10 個のインフライトメッセージがサポートされます。 Anypoint MQ では、FIFO キュー内のメッセージグループ数は制限されません。 FIFO キューでは、「正確に 1 回 (exactly once)」のメッセージ配信の信頼性があります。 Anypoint MQ は、各メッセージを 1 つのコンシューマーにのみ配信します。 標準キューまたは FIFO キュー種別をデッドレターキュー (DLQ) として割り当てることができます。「​[デッドレターキュー](#デッドレターキュー)​」を参照してください。 標準キューは、​[_メッセージエクスチェンジ_](https://docs.mulesoft.com/jp/mq/mq-exchanges)​にバインドできます。これにより、メッセージを複数のキューに送信できます。 **\[Destinations (宛先)\]**​ ページでは、キューを種別で絞り込むことができます。 ![\[Destinations (宛先)\] ページでの絞り込み](_images/mq-filters.png) ## [](#始める前に)始める前に Anypoint MQ を使用する前に、環境を作成してユーザーに Anypoint MQ アクセス権限を付与する必要があります。 [環境およびアクセス権限の設定](https://docs.mulesoft.com/jp/mq/mq-access-management)を参照してください。 ## [](#キューの作成)キューの作成 標準キューまたは FIFO キューを作成する手順は、次のとおりです。 1. Anypoint Platform にログインし、ナビゲーションメニューで ​**\[MQ\]**​ をクリックします。 2. **\[Destinations (宛先)\]**​ をクリックします。 3. **\[Add (追加)\]**​ アイコンをクリックして、メニューを表示します。 ![\[追加\] アイコン](_images/mq-blue-create.png) 4. **\[Queue (キュー)\]**​ または ​**\[FIFO Queue (FIFO キュー)\]**​ を選択します。 **\[Exchange (エクスチェンジ)\]**​ については、​[「メッセージエクスチェンジの設定」](https://docs.mulesoft.com/jp/mq/mq-exchanges)​を参照してください。 5. **\[Create Queue (キューを作成)\]**​ または ​**\[Create FIFO Queue (FIFO キューを作成)\]**​ の項目を入力します。 ![\[Create Queue (キューを作成)\] ポップアップダイアログボックス](_images/mq-create-queues.png) - **ID**​: キュー名を指定します。 キュー名には最大 127 文字の英数字 (a-z, A-Z、0-9) と句読点 (. -) 文字を含めることができます。スペースやその他の文字を含めることはできません。 - **Message TTL (メッセージ TTL)**​ (存続期間): 未処理のメッセージが削除される前に保持される時間を指定します。 メッセージの最大 TTL は 2 週間です。 キューのメッセージ TTL を変更すると、新しい TTL 値がキュー内のすべてのメッセージとキューに追加されるすべての新しいメッセージに適用されます。 - **Default Acknowledgment Timeout (デフォルトの肯定応答タイムアウト)**​: サーバー障害が発生してメッセージが肯定応答されない場合にメッセージをキューに戻すまでの待機期間を指定します。 メッセージをロックすると、ロックされている間、他のアプリケーションはメッセージを使用できなくなりますが、他のメッセージの読み取りがブロックされることはありません。 最大肯定応答タイムアウトは 12 時間です。 - **Assign Default Delivery Delay (デフォルトの配信遅延を割り当て)**​: キューに送信されるメッセージの配信遅延期間を指定します。 メッセージの最小配信遅延は 0 秒です。最大は 15 分です。メッセージの送信時にデフォルトの配信遅延を上書きできます。​[「遅延キュー」](https://docs.mulesoft.com/jp/mq/#delay_queues)​を参照してください。 - **Encryption (暗号化)**​: キュー内のすべてのメッセージを暗号化します。 [「暗号化されたキュー」](https://docs.mulesoft.com/jp/mq/#encrypt_queue)​を参照してください。 - **Assign a Dead Letter Queue (デッドレターキューの割り当て)**​:DLQ を割り当てます。 DLQ は、配信不能メッセージの送信先としてすでに作成されているキューです。「​[デッドレターキュー](#デッドレターキュー)​」を参照してください。 6. **\[Create Queue (キューを作成)\]**​ をクリックします。 Anypoint MQ では、​**\[Destinations (宛先)\]**​ ページにキューが作成されます。 ![新しいキューの種別、ID、詳細の表示ラベルが表示されている \[Destinations (宛先)\] ページ](_images/mq-queue-details.png)
1キュー種別では、キューの詳細ペインを表示します。
2キュー ID では、​[Queue Settings (キュー設定)]​ ページを表示します。
3キューの詳細の表示ラベルでは、​[Queue Settings (キュー設定)]​ ページを表示します。
## [](#send-message-to-queue)キューへのメッセージの送信 メッセージのコンテンツには、テキスト、CSV (カンマ区切り値)、または JSON を使用できます。 メッセージの最大サイズは 10 MB です。 ペイロードにテキスト以外の形式 (CSV、HTML、JSON、XML など) が含まれる場合、Anypoint MQ では送信前にその形式が文字列に変換されるため、ペイロードサイズが増加します。 この変換により、ペイロードが最大ペイロードサイズの 10 MB を超えて、​`Payload too large`​ エラーが発生する場合があります。 キューにテキストメッセージを送信する手順は、次のとおりです。 1. **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ > ​**\[Destinations (宛先)\]**​ を選択します。 2. キュー ID をクリックします。 3. **\[Message Sender (メッセージ送信者)\]**​ ナビゲーションメニューをクリックします。 ![\[Message Sender (メッセージ送信者)\] ナビゲーションメニュー](_images/mq-message-sender-page.png) - **Type (型)**​: **\[Text (テキスト)\]**​、​**\[CSV\]**​、​**\[JSON\]**​。 [「CSV メッセージをキューに送信する」](#send-a-csv-message-to-a-queue)​および​[「JSON メッセージをキューに送信する」](#send-a-json-message-to-a-queue)​も参照してください。 - **Payload (ペイロード)**​: `Hello Mules!`​ などのメッセージペイロードテキストが含まれます。 - **Delivery Delay (配信遅延)**​ (標準キューのみ): メッセージ配信の遅延時間を示します (省略可能)。 標準キューで ​**\[Assign Default Delivery Delay (デフォルトの配信遅延を割り当て)\]**​ を指定している場合、デフォルトの配信遅延が表示されます。このメッセージのその値を上書きしたり、配信遅延のないキューのメッセージの配信遅延を設定したりできます。 FIFO キューの個々のメッセージでは、遅延配信はサポートされません。 [「メッセージの遅延配信」](https://docs.mulesoft.com/jp/mq/#delay_messages)​を参照してください。 - **Message Group ID (メッセージグループ ID)**​ (FIFO キューのみ): メッセージが属するグループを指定します。 アプリケーションのメッセージ順序を保持するには、メッセージを送信する各アプリケーションのメッセージグループを作成できます。 ![\[Message Sender (メッセージ送信者)\] ページの FIFO キューの \[Message Group ID (メッセージグループ ID)\] 項目](_images/mq-fifo-msg-groups.png) メッセージグループ ID には最大 128 文字の英数字 (a-z、A-Z、0-9) および句読点 (! " # $ % & ' ( ) \* + , - . / : ; < = > ? @ \[ \] \\ ^ \_ \` { } \\| ~) を含めることができます。 「​[FIFO キューとメッセージグループ](#fifo-queues-msg-groups)​」を参照してください。 - **Add User Properties (ユーザープロパティを追加)**​: メッセージと共に送信するユーザープロパティを設定します。 **\[Add User Properties (ユーザープロパティを追加)\]**​ を切り替えて、送信するプロパティの名前と値のペアを指定し、​**\[Add Property (プロパティを追加)\]**​ をクリックします。 ![\[Message Sender (メッセージ送信者)\] ページの \[Add User Properties (ユーザープロパティを追加)\] 切り替え](_images/mq-tutorial-message-sender-user-props.png) **\[Message Sender (メッセージ送信者)\]**​ ページには、追加された文字列プロパティが青で表示され、数値プロパティがグレーで表示されます。 4. **\[Send (送信)\]**​ をクリックします。 ## [](#キュー内のメッセージ数を表示する)キュー内のメッセージ数を表示する メッセージがキューに到着したことを確認するには、\[Destinations (宛先)\] ページからキュー内のメッセージ数を確認します。 キュー内のメッセージ数を確認する手順は、次のとおりです。 1. **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ > ​**\[Destinations (宛先)\]**​ を選択します。 2. キュー種別をクリックすると、キュー内のメッセージ数を含めその詳細が表示されます。 ![詳細ペインのキュー内のメッセージ数](/mulesoft/current/ja-jp/mq/_images/mq-msgs-in-queue.png) ## [](#キューからのメッセージの取得)キューからのメッセージの取得 到着したメッセージを確認するには、キューからメッセージを取得します。 キューからメッセージを取得する手順は、次のとおりです。 1. **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ > ​**\[Destinations (宛先)\]**​ を選択します。 2. キュー ID をクリックします。 3. **\[Message Browser (メッセージブラウザー)\]**​ ナビゲーションメニューをクリックします。 ![\[Message Browser (メッセージブラウザー)\] ナビゲーションメニュー](_images/mq-tutorial-get-messages.png) 4. 取得するメッセージの数 (1 ~ 500) とポーリングする時間 (1 ~ 3600 秒) を指定します。 指定された数値は、取得するメッセージの最小数になります。 FIFO キューでは、取得できるメッセージ数がメッセージブラウザー UI によって 10 件に制限されます。 5. FIFO キューからメッセージを取得する場合、注意事項を確認するチェックボックスをオンにします。注意事項には、ブラウザーでメッセージを表示すると、キューの他のコンシューマーがキュー内のメッセージにアクセスできなくなる可能性があることが示されています。 ![FIFO キューからメッセージを取得する場合の同意チェックボックス](/mulesoft/current/ja-jp/mq/_images/mq-fifo-msg-browser.png) 6. **\[Get Messages (メッセージを取得)\]**​ をクリックします。 7. メッセージ行をクリックして、メッセージペイロードを詳細ペインに表示します。 ![選択されたメッセージ行、詳細ペインのペイロード、\[Return Messages (メッセージを返す)\] アイコン、\[Delete (削除)\] アイコン、\[Full Screen (全画面)\] アイコン、詳細ペインを閉じるアイコン](_images/mq-msg-browser-payload-details.png)
1 メッセージを選択します。
2 詳細ペインのメッセージペイロード。
3 [Return Messages (メッセージを戻す)]​ アイコンでは、すべてのメッセージをキューに戻します (たとえば、他のアプリケーションでこのメッセージを読み取ることができます)。

メッセージをキューに戻すことは、否定応答操作 (NACK) です。メッセージは変更されません。ただし、キューの作成時に設定した TTL の値によって、Anypoint MQ でメッセージが削除されるまでメッセージを使用できる期間が決まります。

[Message Browser (メッセージブラウザー)]​ ページを離れると、メッセージはキューに自動的に戻ります。

4 [Delete (削除)]​ アイコン。

メッセージを削除することは、肯定応答操作 (ACK) です。ACK メッセージが Anypoint MQ でどのように処理されるのかについては、​「ACK 操作と NACK 操作」​を参照してください。

5 [Full Screen (全画面)]​ アイコンでは、個別のウィンドウにメッセージペイロードを表示します。
6 [Close (閉じる)]​ アイコンでは、詳細ペインを閉じます。

メッセージを削除したときに [Message Browser (メッセージブラウザー)] に ​Message cannot be deleted​ が表示される場合は、メッセージ存続期間 (TTL) の期限が切れています。

1 MB を超えるペイロードは [Message Browser (メッセージブラウザー)] には表示されません。 このペイロードは Anypoint Broker API で取得できます。 「メッセージの取得」​を参照してください。

[Message Sender (メッセージ送信者)]​ で、または Anypoint MQ Connector の Publish 操作の一部として設定されたユーザープロパティは、メッセージの詳細ペインに表示されます。

[Message Browser (メッセージブラウザー)] 詳細ペインの [User Properties (ユーザープロパティ)]
## [](#csv-メッセージをキューに送信する)CSV メッセージをキューに送信する キューに CSV メッセージを送信する手順は、次のとおりです。 1. **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ > ​**\[Destinations (宛先)\]**​ を選択します。 2. キュー ID をクリックします。 3. **\[Message Sender (メッセージ送信者)\]**​ ナビゲーションメニューをクリックします。 ![\[Message Sender (メッセージ送信者)\] ページ](_images/mq-message-sender-csv.png) 4. **\[Type (種別)\]**​ を ​**\[CSV\]**​ に設定します。 5. **\[Payload (ペイロード)\]**​ 項目に次のテキストを入力します。 "dog", "fish", "parrot" **\[Delivery Delay (配信遅延)\]**​ (標準キューのみ) や ​**\[Message Group ID (メッセージグループ ID)\]**​ (FIFO キューのみ) については、​[\[キューへのメッセージの送信\]](#キューへのメッセージの送信)​を参照してください。 6. **\[Send (送信)\]**​ をクリックします。 7. **\[Message Browser (メッセージブラウザー)\]**​、​**\[Get Messages (メッセージを取得)\]**​ の順にクリックします。 8. メッセージ行をクリックして、メッセージペイロードを詳細ペインに表示します。 ![CSV ペイロード、\[Full Screen (全画面)\] アイコン、詳細ペインを閉じるアイコン](_images/mq-msg-browser-payload-details-csv.png)
1 [Full Screen (全画面)]​ アイコンでは、個別のウィンドウにメッセージペイロードを表示します。
2 [Close (閉じる)]​ アイコンでは、詳細ペインを閉じます。
1 MB を超えるペイロードは [Message Browser (メッセージブラウザー)] には表示されません。 このペイロードは Anypoint Broker API で取得できます。 「メッセージの取得」​を参照してください。
## [](#json-メッセージをキューに送信する)JSON メッセージをキューに送信する キューに JSON メッセージを送信する手順は、次のとおりです。 1. **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ > ​**\[Destinations (宛先)\]**​ を選択します。 2. キュー ID をクリックします。 3. **\[Message Sender (メッセージ送信者)\]**​ ナビゲーションメニューをクリックします。 ![\[Message Sender (メッセージ送信者)\] ページ](_images/mq-message-sender-json.png) 4. **\[Type (種別)\]**​ を ​**\[JSON\]**​ に設定します。 5. **\[Payload (ペイロード)\]**​ 項目に次のテキストを入力します。 ```json { "animal that walks": "dog", "animal that swims": "fish", "animal that flies": "parrot" } ``` **\[Delivery Delay (配信遅延)\]**​ (標準キューのみ) や ​**\[Message Group ID (メッセージグループ ID)\]**​ (FIFO キューのみ) については、​[\[キューへのメッセージの送信\]](#キューへのメッセージの送信)​を参照してください。 6. **\[Send (送信)\]**​ をクリックします。 7. **\[Message Browser (メッセージブラウザー)\]**​、​**\[Get Messages (メッセージを取得)\]**​ の順にクリックします。 8. メッセージ行をクリックして、メッセージペイロードを詳細ペインに表示します。 ![JSON ペイロード、\[Full Screen (全画面)\] アイコン、詳細ペインを閉じるアイコン](_images/mq-msg-browser-payload-details-json.png)
1 [Full Screen (全画面)]​ アイコンでは、個別のウィンドウにメッセージペイロードを表示します。
2 [Close (閉じる)]​ アイコンでは、詳細ペインを閉じます。
1 MB を超えるペイロードは [Message Browser (メッセージブラウザー)] には表示されません。 このペイロードは Anypoint Broker API で取得できます。 「メッセージの取得」​を参照してください。
## [](#キューからのメッセージのパージ)キューからのメッセージのパージ キュー内のすべてのメッセージをパージする手順は、次のとおりです。 1. **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ > ​**\[Destinations (宛先)\]**​ を選択します。 2. キュー種別をクリックしてその詳細を表示します。 3. 詳細ペインで ​**\[Purge Messages (メッセージをパージ)\]**​ アイコンをクリックします。 ![\[Purge Messages (メッセージをパージ)\] アイコン](_images/mq-purge-msgs-icon.png) 4. **\[Purge Messages (メッセージをパージ)\]**​ 確認ボックスで、チェックボックスをオンにして ​**\[Delete Messages (メッセージを削除)\]**​ をクリックし、キュー内のすべてのメッセージをパージすることを確認します。 ![キューからメッセージをパージする場合の同意チェックボックス](/mulesoft/current/ja-jp/mq/_images/mq-purge-msgs-confirm.png) ## [](#キューの設定を変更する)キューの設定を変更する 既存のキューの設定を変更すると、新しいメッセージにのみ影響します。 新しい値は、すでにキューにあるメッセージには適用されません。 1. **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ > ​**\[Destinations (宛先)\]**​ を選択します。 2. キュー ID をクリックして、​**\[Queue Settings (キュー設定)\]**​ ページを表示します。 ![\[Queue Settings (キュー設定)\] ページ](_images/mq-queue-settings.png) 3. キュー設定を変更し、​**\[Save Changes (変更を保存)\]**​ をクリックします。 ## [](#キューを削除する)キューを削除する 必要なくなったキューは削除できます。削除されたキューのインフライトメッセージは失われます。削除されたキューは復元できません。 キューを削除する手順は、次のとおりです。 1. **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ > ​**\[Destinations (宛先)\]**​ を選択します。 2. キュー種別をクリックしてその詳細を表示します。 3. 詳細ペインで ​**\[Delete (削除)\]**​ アイコンをクリックします。 ![\[削除\] アイコン](_images/mq-delete-queue-icon.png) 4. **\[Delete Queue (キューを削除)\]**​ 確認ボックスで、チェックボックスをオンにして ​**\[Delete Queue (キューを削除)\]**​ をクリックし、キューを削除することを確認します。 ![キューを削除する場合の同意チェックボックス](/mulesoft/current/ja-jp/mq/_images/mq-delete-queue-confirm.png) キューの削除またはパージにかかる時間は約 1 分です。この間、影響を受けるキューの状況は更新できません。 ## [](#fifoqueues)FIFO キュー メッセージの順序を厳密に保持および適用する必要があるアプリケーションの場合、Anypoint MQ は先入れ先出し (FIFO) 処理を提供し、メッセージの順序付けができるようにします。FIFO キューを使用した場合、Anypoint MQ は、キューに入れられたメッセージの順序と同じ順序でメッセージを取得します。 利点 FIFO キュー: - FIFO キュー内のすべてのメッセージの配信遅延がサポートされます。 FIFO キューの配信遅延設定を変更すると、Anypoint MQ により変更がキュー内のすべてのメッセージに遡って適用されます。 Anypoint MQ では、FIFO キュー内の個々のメッセージの遅延配信はサポートされません。 - 複数の ​[メッセージグループ](#fifo-queues-msg-groups)​がサポートされます。 - 暗号化が提供されます。 FIFO キューを暗号化しても、コンシュームされるメッセージの順序やコンテンツには影響しません。 - デッドレターキュー (DLQ) を割り当てることができます。 ただし、この場合、Anypoint MQ ではメッセージの厳密な順序を保証できません。 FIFO キューでの DLQ の使用についての詳細は、​[デッドレターキューおよび FIFO キュー](#fifo-and-dlq)​ を参照してください。 制限事項 - FIFO キューは 300 TPS (トランザクション/秒) に制限されます。 ただし、API を使用して読み書き操作ごとに 10 個のメッセージ (最大) を一括処理した場合、FIFO キューは最大 3,000 TPS をサポートできます。 失敗した要求は TPS に含まれます。 - FIFO キューをメッセージエクスチェンジにバインドすることはできません。 - 一部の設定では、Subscriber 操作で IMMEDIATE 肯定応答モードを使用していると、FIFO キューでメッセージが順序どおりに処理されません。 - FIFO キューで ​`prefetch`​ モードを使用する前に、​[「FIFO Queues and Prefetch Mode (FIFO キューと Prefetch モード)」](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/anypoint-mq-listener#fifo-and-prefetch)​を参照してください。 FIFO キューを作成するには、​[キューの作成](#キューの作成)​を参照してください。キューが FIFO なのか、標準 (FIFO 以外) なのかを判断するには、その詳細を確認します。 Anypoint MQ および FIFO キューが使用できるリージョンについては、​[「Anypoint MQ FAQ」](https://docs.mulesoft.com/jp/mq/mq-faq#regions)​を参照してください。 Admin API を使用した FIFO キューの作成については、​[「Create a FIFO Queue Using the Admin API (Admin API を使用した FIFO キューの作成)」](https://docs.mulesoft.com/jp/mq/mq-apis#fifo-queue-api)​を参照してください。 ### [](#fifo-queues-msg-groups)FIFO キューとメッセージグループ メッセージグループを使用すると、複数のコンシューマーが FIFO キュー内のメッセージにアクセスできます。 一度に 1 つのコンシューマーのみがメッセージグループのメッセージにアクセスできます。 コンシューマーがメッセージグループにアクセスしている場合、他のコンシューマーは FIFO キュー内の他のメッセージグループを使用できるため、FIFO キューがブロックされる可能性が低くなります。 Anypoint MQ では、FIFO キュー内のメッセージグループ数は制限されません。 FIFO キューは、メッセージグループのメッセージを追加された順序で 1 つずつ処理します。 キューに複数のメッセージグループ ID がある場合は、同じメッセージグループ ID を持つメッセージをできる限り多く返します。
FIFO キューでは、メッセージグループ ID でメッセージを取得することはできません。
メッセージグループ ID に関連付けられていないメッセージは、デフォルトのメッセージグループに割り当てられます。順序付けられたメッセージの 1 つのグループが必要な場合、FIFO キューに送信されるメッセージに同じメッセージグループ ID を指定します。 メッセージグループ内ではメッセージの順序が維持されますが、異なるメッセージグループ間では維持されません。 複数のアプリケーションが同じメッセージグループ ID に関連付けられているメッセージを FIFO キューに送信すると、メッセージは到着した順序で保存されます。 アプリケーションのメッセージ順序を保持するには、各アプリケーションが特定のメッセージグループ ID を使用してメッセージを送信するようにします。 #### [](#メッセージグループ内のメッセージを順番に処理)メッセージグループ内のメッセージを順番に処理 メッセージグループ内のメッセージが肯定応答されない場合、そのメッセージはキューに戻され、Anypoint MQ はグループ内の次のメッセージの処理を続行します。 グループ内のメッセージが前のメッセージに依存している場合、この動作は望ましくない可能性があります。 FIFO キューがメッセージを順番に処理するようにする手順は、次のとおりです。 1. フローの ​`maxConcurrency`​ の値を ​`1`​ に設定します。これにより、フローは要求を個別に処理します。 2. `subscriber-type`​ を ​`polling`​ に設定します。これにより、メッセージのコンシュームが制御されます。 3. `fetchSize`​ の値を ​`1`​ に設定します。これにより、1 つのメッセージのみがバッファされるようになります。 ```xml ... ... ``` #### [](#メッセージグループを使用してメッセージを並行処理)メッセージグループを使用してメッセージを並行処理 Anypoint MQ では、メッセージグループ内のメッセージの相対的な順序を維持しながら、さまざまなメッセージグループのメッセージが自動的に並行処理されます。 メッセージグループ内のメッセージを並行処理し、グループ内のメッセージの順序を維持するには、アプリケーション内で複数の Subscriber フローを設定し、各フローの ​`maxConcurrency`​ の値を ​`1`​ に設定します。 #### [](#メッセージグループ-id-をメッセージに割り当てる)メッセージグループ ID をメッセージに割り当てる メッセージグループ ID をメッセージに割り当てる手順は、次のとおりです。 1. [メッセージをキューに送信します](#キューへのメッセージの送信)​。 2. **\[Message Sender (メッセージ送信者)\]**​ ページで、メッセージが属するメッセージグループを指定します。 ![\[Message Sender (メッセージ送信者)\] ページの FIFO キューの \[Message Group ID (メッセージグループ ID)\] 項目](_images/mq-fifo-msg-groups.png) #### [](#メッセージが属するメッセージグループを特定する)メッセージが属するメッセージグループを特定する メッセージが属するメッセージグループを確認する手順は、次のとおりです。 1. [キューからメッセージを取得します](#キューからのメッセージの取得)​。 2. **\[Message Browser (メッセージブラウザー)\]**​ ページで、メッセージの詳細ペインを確認します。 ![メッセージの詳細ペインの \[Message Group ID (メッセージグループ ID)\] の値](_images/mq-fifo-msg-group-id.png) ### [](#fifo-の正確に-1-回の配信)FIFO の正確に 1 回の配信 メッセージを正確に 1 回処理する必要があるアプリケーションの場合 (トランザクション型のユースケースで使用するアプリケーションなど)、FIFO キューを使用すると、メッセージを正確に 1 回だけ配信できます。 FIFO キューでは、メッセージの重複を排除できます。同じメッセージ ID が含まれる FIFO キューに複数のメッセージを送信した場合、最初に到着したメッセージが有効なメッセージとして保持されます。以降のメッセージが 5 分の重複排除間隔内に到着した場合は重複とみなされ、破棄されます。たとえば、キューに ID が ​`12345`​ のメッセージが到着したら、それから 5 分間、FIFO キューは ID が ​`12345`​ のメッセージをすべて破棄します。 正確に 1 回だけ配信する必要があるアプリケーションを Anypoint Studio で構築する場合、次のいずれかの操作を実行できます。 - Anypoint MQ Connector のパブリッシャー設定でメッセージ ID を設定する。 - Anypoint MQ でキューに送信されるメッセージごとに一意のメッセージ ID を自動生成できるようにする (デフォルト)。 ## [](#デッドレターキュー)デッドレターキュー Anypoint MQ では、配信されないメッセージがデッドレターキュー (DLQ) と呼ばれるキューに送信されます。その後、DLQ に送信されたメッセージを分析し、そのメッセージが配信されなかった理由を特定できます。 DLQ は、未配信のメッセージのみを受信するという点を除き、基本的に他のキューと同じです。キューの作成時に存続期間 (TTL) の値、暗号化、配信遅延を指定できます。 少なくとも 2 つのキューを設定する必要があり、そのいずれかを DLQ として割り当てる必要があります。両方のキューで次の要件を満たしている必要があります。 - 同じ種別 (標準または FIFO) である - 同じ地理的​[リージョン](https://docs.mulesoft.com/jp/mq/mq-faq#regions)​に存在する - 同じ環境に存在し、同じ Anypoint Platform アカウントによって所有されている。 ### [](#fifo-and-dlq)デッドレターキューおよび FIFO キュー DLQ も FIFO キューであれば、DLQ を FIFO キューに割り当てることができます。 ただし、FIFO キューで DLQ を使用する場合、Anypoint MQ では、メッセージグループ内のメッセージが順序どおりに処理されることを保証できません。 メッセージが DLQ に送信されると、メッセージは FIFO キューに存在しなくなります。 Anypoint MQ では後続のメッセージが処理され、メッセージの順序は保持されません。 このため、アプリケーションでメッセージの順序を厳密に保持および適用する必要がある場合、DLQ を FIFO キューに割り当てないでください。 ### [](#encryption-暗号化)Encryption (暗号化) DLQ に送信される配信不能メッセージは、DLQ の暗号化設定に関係なく、ソースキューに設定された暗号化を使用します。クライアントによって DLQ に直接送信されるメッセージは、DLQ の暗号化設定を使用します。組織のポリシーとしてすべてのメッセージを暗号化する場合、すべてのキューの暗号化を設定する必要があります。 ### [](#請求と最大配信数)請求と最大配信数 DLQ に送信されたメッセージが、別のキューからの配信不能なメッセージの場合、そのメッセージは、請求可能な API 要求に課金されません。 ただし、クライアントが DLQ にメッセージを直接送信した場合、そのメッセージは課金されます。 キューにデッドレターキューが割り当てられている場合、次のようになります。 - Anypoint MQ ​**メッセージブラウザー**​を使用してソースキューのメッセージを表示することは、最大配信数に含まれます。 - メッセージを表示してキューに戻すことは NACK 操作として認識され、失敗した配信の試みとみなされます。 - **メッセージブラウザー**​でメッセージを削除すると、そのメッセージは最大配信数に含まれませんが、メッセージは失われます。 ### [](#dlq-へのメッセージの送信方法)DLQ へのメッセージの送信方法 次のフローチャートは、メッセージが DLQ にどのように送信されるかを示しています。 ![フローチャート](/mulesoft/current/ja-jp/mq/_images/mq-dlq-flowchart.png) ### [](#キューへの-dlq-の割り当て)キューへの DLQ の割り当て 種別、リージョン、環境が同じであれば、任意のキューを別のキューの DLQ として割り当てることができます。 - FIFO DLQ へのメッセージは FIFO キューから送信される必要があります。 - 標準 DLQ へのメッセージは標準キューから送信される必要があります。 「​[FIFO キュー](#fifoqueues)​」を参照してください。 DLQ をキューに割り当てる手順は、次のとおりです。 1. [キューを作成します](#キューの作成)​。 2. **\[Assign a Dead Letter Queue (デッドレターキューの割り当て)\]**​ を ​**\[On (オン)\]**​ に切り替えます。 次の追加項目が表示されます。 ![\[Create Queue (キューを作成)\] ページの DLQ 項目](_images/mq-create-q-dlq.png) - **Dead Letter Queue Name (デッドレターキュー名)**​ 以前に作成したキューの名前をドロップダウンリストから選択します。 - **\[Delivery attempts before reroute (再転送前の配信の試行回数)\]**​ メッセージを設定済みの DLQ に再転送するまで Anypoint MQ でキュー内のメッセージの配信を何回試行するかを必要に応じて指定します。 指定しない場合、デフォルト値の 10 回になります。 この範囲は 1 ~ 1000 です。

このプロパティは、Anypoint MQ Connector の ​[Redelivery (再配信)]​ タブの ​[Max Redelivery Count (最大差異配信数)]​ には関連しません。 maxRedeliveryCount​ は、メッセージがフローに配信できなかった場合に、​MULE:REDELIVERY_EXHAUSTED​ 例外を生成してフローが受信データを処理しないようにするまでの再配信の最大試行回数を指定します。 メッセージを DLQ に移動することによってアプリケーションが例外を処理するように設定できます。

maxRedeliveryCount​ の詳細は、Configure a Redelivery Policyを参照してください。

### [](#dlq-からのメッセージの回復)DLQ からのメッセージの回復 REST API を使用してキューからメッセージを取得し、そのメッセージを新しいキューに書き込んで、DLQ からメッセージを回復できます。​[「Anypoint MQ Admin API」](https://docs.mulesoft.com/jp/mq/mq-apis#mqadminapi)​を参照してください。 ### [](#キューが-dlq-かどうかの判断)キューが DLQ かどうかの判断 キューが DLQ かどうかを判断するには、その詳細を確認します。 ![詳細ペインの DLQ の状況](/mulesoft/current/ja-jp/mq/_images/mq-queue-view-dlq.png) 各キューの詳細は、Get Queue REST エンドポイントを使用して REST 管理 API により参照することもできます。 ```json { "encrypted": false, "type": "queue", "queueId": "my-dlq-1", "deadLetterSources": [ "my-queue-4", "my-dls-1" ], "defaultTtl": 2000000, "defaultLockTtl": 2000000 } ``` DLQ が設定されている場合、返されるエンティティに ​`deadLetterSources`​ 項目が含まれます。 詳細は、​[「Anypoint MQ Admin API」](https://docs.mulesoft.com/jp/mq/mq-apis#mqadminapi)​を参照してください。 ## [](#関連情報)関連情報 - [Anypoint MQ FAQ](https://docs.mulesoft.com/jp/mq/mq-faq) - [メッセージエクスチェンジの設定](https://docs.mulesoft.com/jp/mq/mq-exchanges) - [Anypoint MQ Connector](https://docs.mulesoft.com/jp/mq/mq-connectors) # クライアントアプリケーションの設定 MQ 用 Anypoint Connector (Anypoint MQ Connector) バージョン 3.x 以前を使用する場合、キューへのパブリッシュおよびキューからのコンシュームで使用するログイン情報を生成するクライアントアプリケーションを作成します。 MuleSoft では、クライアントアプリケーションではなく接続アプリケーションを使用してログイン情報を生成することをお勧めします。 詳細は、「[接続アプリケーションの設定](https://docs.mulesoft.com/jp/mq/mq-connected-apps)」を参照してください。 クライアントアプリケーションを作成すると、Anypoint MQ にアプリケーションのクライアント ID とクライアントシークレットが表示されます。 クライアント ID とクライアントシークレットの値は、Anypoint Studio で Mule アプリケーションの Anypoint MQ Connector を設定するときに使用します。 ID とシークレットのペアを複数のアプリケーションで共有しないでください。 アプリケーションを Anypoint MQ Connector に登録するのにアプリケーションが存在する必要はありません。 ## [](#クライアントアプリケーションの作成)クライアントアプリケーションの作成 クライアントアプリケーションを作成する手順は、次のとおりです。 1. Anypoint Platform にログインし、ナビゲーションメニューで ​**\[MQ\]**​ をクリックします。 2. ナビゲーションペインで ​**\[Client Apps (クライアントアプリケーション)\]**​ をクリックします。 ![「Client Apps (クライアントアプリケーション)」 オプションと 「Add (追加)」 アイコン](/mulesoft/current/ja-jp/mq/_images/mq-tutorial-create-client-apps.png)
1[Client Apps (クライアントアプリケーション)]​ では、クライアントアプリケーションの表示と作成を行います。
2[Add (追加)]​ アイコンでは、クライアントアプリケーションを追加します。
3. **\[Add (追加)\]**​ アイコン (​![「Client Apps (クライアントアプリケーション)」 の 「Add (追加)」 アイコン](/mulesoft/current/ja-jp/mq/_images/icon-blue-plus.png)​) をクリックします。 4. **\[Create Client App (クライアントアプリケーションを作成)\]**​ ウィンドウでクライアントアプリケーションの名前 (​`DemoClientApp`​ など) を入力し、​**\[Save Changes (変更を保存)\]**​ をクリックします。 5. クライアントアプリケーション名をクリックし、クライアントアプリケーション ID とクライアントシークレットの値を詳細ペインに表示します。 ![クライアントアプリケーション名、「Copy (コピー)」 ボタン、「Show (表示)」 ボタン](/mulesoft/current/ja-jp/mq/_images/mq-tutorial-client-apps-detail.png)
1クライアントアプリケーション名では、クライアントアプリケーションの詳細を表示します。
2[Copy (コピー)]​ ボタンでは、クライアントアプリケーション ID またはクライアントシークレットの値をコピーします。
3[Show (表示)]​ では、クライアントシークレットの値を表示します。この値はデフォルトでは難読化されています。
6. **\[Copy (コピー)\]**​ クリックし、クライアントアプリケーション ID またはクライアントシークレットの値をクリップボードにコピーします。 7. Mule アプリケーションの Anypoint MQ Connector を設定するときに、クライアントアプリケーション ID とクライアントシークレットの値を Studio の ​**\[Anypoint MQ Config (Anypoint MQ 設定)\]**​ ウィンドウに貼り付けます。 ![「Anypoint MQ Config (Anypoint MQ 設定)」 ウィンドウの 「URL」 項目、「Client App ID (クライアントアプリケーション ID)」 項目、\[Client Secret (クライアントシークレット)\] 項目](_images/mq-tutorial-studio7-mq-config.png) 詳細は、「[チュートリアル: キューの作成とキューへのメッセージの送信](https://docs.mulesoft.com/jp/mq/mq-tutorial)」を参照してください。 ## [](#クライアントシークレットの再生成)クライアントシークレットの再生成 クライアントシークレットをスケジュールに基づいて変更することが組織のセキュリティポリシーで規定されている場合、クライアントアプリケーション ID のクライアントシークレットの再生成が必要になることがあります。 また、特定のコンシューマーまたはパブリッシャーがクライアント ID へのアクセス権を失効した場合も、クライアントシークレットの再生成が必要になることがあります。 この場合、Anypoint MQ でクライアントシークレットを再生成し、アクセスを許可するアプリケーションでのみシークレットを再設定することができます。 クライアントシークレットを再生成する手順は、次のとおりです。 1. Anypoint Platform にログインし、ナビゲーションメニューで ​**\[MQ\]**​ をクリックします。 2. ナビゲーションペインで ​**\[Client Apps (クライアントアプリケーション)\]**​ をクリックします。 3. クライアントアプリケーション名をクリックして詳細ペインを表示します。 4. **\[Regenerate Secret (シークレットを再生成)\]**​ をクリックします。 ![詳細ペインの 「Regenerate Secret (シークレットを再生成)」 アイコン](/mulesoft/current/ja-jp/mq/_images/mq-client-apps-regenerate.png) ## [](#クライアントアプリケーションの削除)クライアントアプリケーションの削除 クライアントアプリケーションを削除する手順は、次のとおりです。 1. Anypoint Platform にログインし、ナビゲーションメニューで ​**\[MQ\]**​ をクリックします。 2. ナビゲーションペインで ​**\[Client Apps (クライアントアプリケーション)\]**​ をクリックします。 3. クライアントアプリケーション名をクリックして詳細ペインを表示します。 4. **\[Delete (削除)\]**​ をクリックします。 ![詳細ペインの 「Delete (削除)」 アイコン](/mulesoft/current/ja-jp/mq/_images/mq-client-apps-delete.png) ## [](#関連情報)関連情報 - [Anypoint MQ Connector リファレンス](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/anypoint-mq-connector-reference) - [Anypoint MQ FAQ](https://docs.mulesoft.com/jp/mq/mq-faq) - [接続アプリケーションの設定](https://docs.mulesoft.com/jp/mq/mq-connected-apps) # チュートリアル: キューの作成とキューへのメッセージの送信 このチュートリアルを使用し、Anypoint MQ を使用して、メッセージの一時的なストレージ領域である​_キュー_​へのメッセージの送信および取得を開始します。 このチュートリアルでは、以下を行います。 1. Anypoint MQ にキューを作成します。 2. キューにメッセージを送信し、メッセージが到着したことを確認し、メッセージペイロードを表示します。 3. 接続アプリケーションを設定し、ID とシークレットを使用して、MQ 用 Anypoint Connector (Anypoint MQ Connector) バージョン 4.x を設定します。 Anypoint MQ で接続アプリケーションを使用するには、Mule 4 用 Anypoint MQ Connector 4.x を使用する必要があります。 Anypoint MQ Connector バージョン 3.x 以前を使用している場合は、代わりにクライアントアプリケーションを設定します。 詳細は、「[クライアントアプリケーションの設定](https://docs.mulesoft.com/jp/mq/mq-client-apps)」を参照してください。 4. Design Center でアプリケーションを作成し、Anypoint MQ Connector を設定し、設定をテストします。 5. Anypoint Studio 7.x で Mule 4.x アプリケーションを作成し、Anypoint MQ Connector を設定し、接続をテストします。 6. 必要に応じて、Anypoint Studio 6 で Mule 3.9 アプリケーションを作成し、Mule 3 用 Anypoint MQ Connector を設定し、接続をテストします。
Mule 3.9 と Studio 6.x は拡張サポートに含まれるため、Mule と Studio の最新バージョンを使用することをお勧めします。
## [](#始める前に)始める前に - [Anypoint MQ の用語集](https://docs.mulesoft.com/jp/mq/mq-glossary)についての理解 - [Anypoint Platform アカウント](https://anypoint.mulesoft.com) - Enterprise ライセンス 無料トライアルを入手するには、MuleSoft 営業チームにお問い合わせください。 - Anypoint Studio がシステムにインストールされていること - テスト用の [`curl`​ コマンドラインツール](https://curl.haxx.se)​ このチュートリアルでは、HTTP リスナートリガーを使用して Anypoint MQ Connector のアクセスを開始し、​`curl`​ コマンドを使用して REST API コマンドを Anypoint MQ Broker API に送信します。 ## [](#ステップ-1-キューの作成)ステップ 1.キューの作成 まずキューを作成し、キューにメッセージを送信し、メッセージが到着したことを確認し、メッセージペイロードを表示します。 キューを作成する手順は、次のとおりです。 1. Anypoint Platform にログインし、ナビゲーションメニューで ​**\[MQ\]**​ をクリックします。 2. Anypoint Studio 7 でキューをテストする場合、Design (デザイン) 以外の任意の環境に切り替えます。 たとえば、環境ボタンをクリックして ​**\[Production (本番)\]**​ を選択します。 ![環境ボタン](/mulesoft/current/ja-jp/mq/_images/mq-tutorial-switch-env.png) 3. **\[Destinations (宛先)\]**​ をクリックします。 ![\[Destinations (宛先)\] オプションと \[Add (追加)\] アイコン](_images/mq-tutorial-destinations-option.png)
1[Destinations (宛先)]​ ナビゲーションメニューでは、使用可能なキューが表示されます。
2[Add (追加)]​ アイコンでは、新しいキューまたはエクスチェンジを作成します。
4. **\[Add (追加)\]**​ アイコン (​!["\[Destinations (宛先)](/mulesoft/current/ja-jp/mq/_images/icon-blue-plus.png) の \[Add (追加)\] アイコン",2.5%,2.5%\]​) をクリックして、メニューを表示します。 ![\[Add (追加)\] アイコンのメニューオプション](_images/mq-tutorial-create-choices.png) 5. **\[Queue (キュー)\]**​ を選択します。 6. ​**\[Create Queue (キューを作成)\]**​ ウィンドウで ​**\[ID\]**​ 項目に ​`myDemoQueue`​ と入力します。 ![\[Create Queue (キューを作成)\] ウィンドウ](_images/mq-create-queues.png) キュー名には最大 127 文字の英数字 (a-z, A-Z、0-9) と句読点 (. -) 文字を含めることができます。スペースやその他の文字を含めることはできません。 7. 必要に応じて、他のキュー設定を指定します。 詳細は、​[「キューを作成する」](https://docs.mulesoft.com/jp/mq/mq-queues#create-a-queue)​を参照してください。 8. **\[Create Queue (キューを作成)\]**​ をクリックします。 Anypoint MQ では、​**\[Destinations (宛先)\]**​ ページにキューが作成されます。 ![新しいキューが含まれる \[Destinations (宛先)\] ページ](_images/mq-tutorial-queue-details.png) キューが正常に作成されました。次に、キューにメッセージを送信し、メッセージが到着したことを確認し、メッセージペイロードを表示します。 ## [](#ステップ-2-キューへのメッセージの送信およびメッセージの到着の確認)ステップ 2.キューへのメッセージの送信およびメッセージの到着の確認 キューを作成したら、キューにメッセージを送信し、メッセージがキューに到着したことを確認し、キューからメッセージを取得することで、キューをテストします。 キューとの間でメッセージを送受信する手順は、次のとおりです。 1. **\[Destinations (宛先)\]**​ ページで ​`myDemoQueue`​ をクリックします。 2. ナビゲーションメニューで ​**\[Message Sender (メッセージ送信者)\]**​ をクリックします。 ![\[Message Sender (メッセージ送信者)\] ナビゲーションメニュー](_images/mq-tutorial-message-sender-page.png) 3. **\[Type (種別)\]**​ 項目を ​**\[Text (テキスト)\]**​ に設定したまま、​`Hello Mules!`​ を ​**\[Payload (ペイロード)\]**​ 項目に入力します。 4. 必要に応じて、​**\[Add User Properties (ユーザープロパティを追加)\]**​ を切り替えて、送信するプロパティの名前と値のペアを指定し、​**\[Add Property (プロパティを追加)\]**​ をクリックします。 ![\[Message Sender (メッセージ送信者)\] ページの \[Add User Properties (ユーザープロパティを追加)\] 切り替え](_images/mq-tutorial-message-sender-user-props.png) **\[Message Sender (メッセージ送信者)\]**​ ページには、追加された文字列プロパティが青で表示され、数値プロパティがグレーで表示されます。 5. **\[Send (送信)\]**​ をクリックします。 6. **\[Type (種別)\]**​ を ​**\[CSV\]**​ に設定し、次を ​**\[Payload (ペイロード)\]**​ 項目に入力して、​**\[Send (送信)\]**​ をクリックします。 ```csv "dog", "fish", "parrot" ``` 7. **\[Type (種別)\]**​ を ​**\[JSON\]**​ に設定し、次を ​**\[Payload (ペイロード)\]**​ 項目に入力して、​**\[Send (送信)\]**​ をクリックします。 ```json { "animal that walks":"dog", "animal that swims":"fish", "animal that flies":"parrot" } ``` 次に、メッセージがキューに到着したことを確認します。 8. **\[Destinations (宛先)\]**​ をクリックします。 9. `myDemoQueue`​ のキュー種別をクリックして、その詳細を表示します。 詳細ペインに、キュー内のメッセージ数が表示されます。 ![詳細ペインの myDemoQueue キュー内の 3 つのメッセージ](/mulesoft/current/ja-jp/mq/_images/mq-tutorial-msgs-in-queue.png) 10. 詳細ペインで、キューの詳細の表示ラベル ​`myDemoQueue`​ をクリックします。 11. ナビゲーションメニューで ​**\[Message Browser (メッセージブラウザー)\]**​ をクリックします。 ![ナビゲーションメニューの \[Message Browser (メッセージブラウザー)\]](_images/mq-tutorial-get-messages.png) 12. 取得するメッセージ数に ​`5`​ と入力し、ポーリングする秒数に ​`10`​ と入力します。 取得できるメッセージ数は 1 ~ 500 件、ポーリングできる間隔は 1 ~ 3600 秒です。 13. **\[Get Messages (メッセージを取得)\]**​ をクリックします。 Anypoint MQ はキューからメッセージを取得して \[Message Browser (メッセージブラウザー)\] に表示します。 14. メッセージ行をクリックして、メッセージペイロードを詳細ペインに表示します。 ![選択されたメッセージ行と、詳細ペインのペイロード](/mulesoft/current/ja-jp/mq/_images/mq-tutorial-msg-browser-payload-details.png)
1メッセージを選択します。
2詳細ペインのメッセージペイロード。
Anypoint MQ でのキューの作成、キューへのメッセージの送信、メッセージの到着確認、メッセージペイロードの表示が正常に終了しました。次に、Mule アプリケーションを Anypoint MQ に接続するための接続アプリケーションを作成します。 ## [](#configure-connected-app)ステップ 3.接続アプリケーションの設定 キューをテストしたら、Anypoint MQ Connector の設定で使用する ID とシークレットを生成する接続アプリケーションを設定します。
Anypoint MQ で接続アプリケーションを使用するには、Mule 4 用 Anypoint MQ Connector 4.x を使用する必要があります。 Anypoint MQ Connector バージョン 3.x 以前を使用している場合は、代わりにクライアントアプリケーションを設定します。 詳細は、「クライアントアプリケーションの設定」を参照してください。
Anypoint MQ スコープを使用して接続アプリケーションを作成する手順は、次のとおりです。 1. Anypoint Platform にログインし、ナビゲーションメニューで ​**\[Access Management (アクセス管理)\]**​ をクリックします。 2. ナビゲーションペインで ​**\[Connected Apps (接続アプリケーション)\]**​ をクリックします。 3. **\[Create app (アプリケーションを作成)\]**​ をクリックします。 ![「Connected Apps (接続アプリケーション)」 オプションと 「Create app (アプリケーションを作成)」 ボタン](/mulesoft/current/ja-jp/mq/_images/mq-tutorial-create-connected-apps.png)
1[Connected Apps (接続アプリケーション)]​ では、接続アプリケーションの表示と作成を行います。
2[Create app (アプリケーションを作成)]​ ボタンでは、接続アプリケーションを作成します。
4. アプリケーションの名前 (​`DemoApp1`​ など) を指定します。 5. **\[App acts on its own behalf (client credentials) (アプリケーションが自身のために行動する (クライアントログイン情報))\]**​ を選択します。 6. **\[Add Scopes (スコープを追加)\]**​ をクリックします。 スコープは、関連付けられた権限を持つロールです。この権限により、組織および環境内でアプリケーションが実行できるアクションが決まります。 [「Anypoint MQ スコープ」](https://docs.mulesoft.com/jp/mq/mq-connected-apps#mq-scopes)​を参照してください。 ![Anypoint MQ 接続アプリケーションのスコープ](/mulesoft/current/ja-jp/mq/_images/mq-conn-apps-scopes.png) 7. **\[Add Scopes (スコープを追加)\]**​ ウィンドウで次の操作を行います。 1. **検索条件スコープ**​項目に「MQ」と入力します。 2. **\[Select all (すべて選択)\]**​ をクリックしてすべてのスコープを選択し、​**\[Next (次へ)\]**​ をクリックします。 3. スコープを適用するビジネスグループを選択して、​**\[Next (次へ)\]**​ をクリックします。 4. **\[Production (本番)\]**​ 環境を選択して、​**\[Next (次へ)\]**​ をクリックします。 5. **\[Add Scopes (スコープを追加)\]**​ をクリックします。 8. **\[Save (保存)\]**​ をクリックします。 後の手順でコネクタを設定するときに、​**\[Copy Id (ID をコピー)\]**​ と ​**\[Copy Secret (シークレットをコピー)\]**​ をクリックして、​`DemoApp1`​ の ID とシークレットをコピーします。 ![「Connected Apps (接続アプリケーション)」 ウィンドウ](/mulesoft/current/ja-jp/mq/_images/mq-conn-apps-window.png) 接続アプリケーションが正常に設定されました。次に、Design Center で Mule アプリケーションを作成して Anypoint MQ に接続します。 ## [](#configure-design-center)ステップ 4.Design Center での Mule アプリケーションの作成および Anypoint MQ への Mule アプリケーションの接続 接続アプリケーションを設定したら、Design Center を使用して、Anypoint MQ に接続するアプリケーションを設定し、REST API コマンドを Anypoint MQ Broker API に送信し、Anypoint MQ を使用して結果を表示します。 ### [](#始める前に-2)始める前に - Design Center を使用する前に、ブラウザーで LastPass や Okta などのパスワードプログラムを無効にします。 有効になっている場合、パスワードプログラムが Design Center の項目にパスワードを挿入するため、アプリケーションが失敗する可能性があります。 - \[Anypoint Platform\] ウィンドウを開いたままにします。これで、接続アプリケーションの宛先 URL と ID およびシークレットの値にアクセスできます。 ### [](#design-center-での-anypoint-mq-を使用したアプリケーションの設定)Design Center での Anypoint MQ を使用したアプリケーションの設定 Design Center でアプリケーションを設定する手順は、次のとおりです。 1. **\[Anypoint Platform\]**​ のナビゲーションメニューで ​**\[Design Center\]**​ をクリックします。 2. **\[Create new (新規作成)\]**​ > ​**\[New Mule App (新規 Mule アプリケーション)\]**​ をクリックして、新しいインテグレーションフローを作成します。 3. **\[New Mule Application (新規 Mule アプリケーション)\]**​ ウィンドウで、プロジェクト名に ​`mqdemo`​ と入力し、​**\[Create App (アプリケーションを作成)\]**​ をクリックします。 4. ヘルプウィザードで、​**\[Go straight to canvas (キャンバスに直接移動)\]**​ をクリックします。 ![\[Go straight to canvas (キャンバスに直接移動)\] リンク](_images/mq-tutorial-dc-goto-canvas.png) 5. **\[Trigger (トリガー)\]**​ ボックスをクリックし、​`H`​ と入力して \[HTTP Listener (HTTP リスナー)\] を検索します。 ![\[HTTP Listener (HTTP リスナー)\] の検索](_images/mq-tutorial-dc-http-search.png) 6. **\[HTTP Listener (HTTP リスナー)\]**​ を開きます。 7. **\[HTTP Listener (HTTP リスナー)\]**​ ウィンドウで、​**\[Path (パス)\]**​ の値を ​`/mq/{messageId}`​ に設定し、​**\[Close (閉じる)\]**​ アイコン (​!["\[Close (閉じる)](/mulesoft/current/ja-jp/mq/_images/icon-ds-close.png) アイコン",2.5%,2.5%\]​) をクリックします。 ![\[Path (パス)\] の値と \[Close (閉じる)\] ボタン](_images/mq-tutorial-dc-http-path.png)
1[Path (パス)]​ 項目では、メッセージ ID へのパスを指定します。
2[Close (閉じる)]​ アイコンでは、​[HTTP Listener (HTTP リスナー)]​ ウィンドウを閉じます。
8. \[HTTP Listener (HTTP リスナー)\] トリガーの ​**\[Add (追加)\]**​ アイコン (​!["\[Add (追加)](/mulesoft/current/ja-jp/mq/_images/icon-ds-plus.png) アイコン",2.5%,2.5%\]​) をクリックします。 ![\[追加\] アイコン](_images/mq-tutorial-dc-plus-icon.png) 9. **\[Select a component (コンポーネントを選択)\]**​ ウィンドウで、​`anypoint mq`​ と入力し、\[Anypoint MQ Connector\] を検索します。 ![\[Anypoint MQ Connector\] の検索](_images/mq-tutorial-dc-mq-search.png) 10. コネクタ名をクリックし、​**Publish**​ 操作をクリックします。 ![Publish 操作](/mulesoft/current/ja-jp/mq/_images/mq-tutorial-dc-publish-select.png) その他の操作については、次のとおりです。 - キューから送信されたメッセージを受信する Mule アプリケーションを作成するには、​**Consume**​ 操作を使用します。 - アプリケーションにメッセージの処理が成功したかどうかを判断するためのテストがある場合は ​**Ack**​ 操作を使用して、メッセージが受信されて削除できることを肯定応答します。 - メッセージの処理が失敗した場合、​**Nack**​ 操作を使用してメッセージへの否定応答を行って、メッセージをキューに戻し、メッセージに再度アクセスできるようにします。 11. **\[Configuration (設定)\]**​ ページで、​**\[Add Connection (接続を追加)\]**​ をクリックします。 12. **\[Configure Connection (接続を設定)\]**​ ページの ​**\[Connection Name (接続名)\]**​ 項目で ​`myDemoQueue`​ を指定し、接続種別として ​**\[Connection (接続)\]**​ を選択します。 13. **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ ブラウザーウィンドウに戻り、URL、アプリケーション ID、およびシークレットの値をコピーします。 1. ナビゲーションメニューで ​**\[Destinations (宛先)\]**​ をクリックします。 2. ​**\[Copy (コピー)\]**​ をクリックし、メニューから ​**\[Connector version 4.x and later (Connector バージョン 4.x 以降)\]**​ を選択して、URL をコピーします。 ![\[Destinations (宛先)\] ページの \[Copy (コピー)\] ボタン](_images/mq-tutorial-url.png) Anypoint MQ Connector バージョン 3.x 以前を使用している場合は、代わりにクライアントアプリケーションを設定します。 詳細は、「[クライアントアプリケーションの設定](https://docs.mulesoft.com/jp/mq/mq-client-apps)」を参照してください。 3. Design Center で、​**\[Configure Connection (接続を設定)\]**​ ページの ​**\[URL\]**​ 項目に、コピーした URL を貼り付けます。 4. [\[Connected Apps (接続アプリケーション)\]](#connected-apps-window)​ ウィンドウに戻り、接続アプリケーションの ID とシークレットをコピーします。 5. ID とシークレットの値を Design Center の ​**\[Configure Connection (接続を設定)\]**​ ページに貼り付けます。 ![\[Configure Connection (接続を設定)\] ページの \[Client App ID (クライアントアプリケーション ID)\] 項目と \[Client Secret (クライアントシークレット)\] 項目](_images/mq-tutorial-dc-client-id-secret.png) 14. **\[Test (テスト)\]**​ をクリックして、アプリケーションにアクセスできることを確認します。 ![\[Success (成功)\] ボックス](_images/mq-tutorial-dc-test-connection.png) - 成功した場合、緑色の ​**\[Success (成功)\]**​ ボックスが表示されます。 - 失敗した場合、URL、ID、シークレットの値が正しいことを確認します。 URL が ​**\[Anypoint Platform\]**​ > ​**\[MQ\]**​ の URL と一致していない場合、Anypoint MQ から \[Design Center\] ウィンドウに ​[URL](#copy-url)​ をコピーし、もう一度 ​**\[Test (テスト)\]**​ をクリックしてください。 15. **\[Save (保存)\]**​ を 2 回クリックします。 16. **\[Publish Configuration (設定をパブリッシュ)\]**​ ページで ​`myDemoQueue`​ と入力します。 この名前は、このチュートリアルで以前作成した​[キュー名](#create-demo-queue)​です。 17. **\[Close (閉じる)\]**​ アイコン (​!["\[Close (閉じる)](/mulesoft/current/ja-jp/mq/_images/icon-ds-close.png) アイコン",2.5%,2.5%\]​) をクリックして、​**\[Publish Configuration (設定をパブリッシュ)\]**​ ページを閉じます。 ![\[Close (閉じる)\] アイコン](_images/mq-tutorial-dc-mq-close.png) 18. !["\[V](/mulesoft/current/ja-jp/mq/_images/icon-ds-v.png) アイコン",2.5%,2.5%\]​ メニューから ​**\[Deploy Application (アプリケーションをデプロイ)\]**​ を選択します。 ![Design Center の \[Deploy Application (アプリケーションをデプロイ)\] メニューオプション](_images/mq-tutorial-dc-deploy-option.png) 19. **\[Deploy Mule application (Mule アプリケーションをデプロイ)\]**​ ウィンドウで、対象環境とアプリケーション名を選択し、​**\[Deploy (デプロイ)\]**​ をクリックします。 アプリケーションが正常にデプロイされたら、​**\[Deployment success (デプロイメントに成功しました)\]**​ ポップアップをクリックして、Runtime Manager にアプリケーションを表示できます。 Design Center を使用して、Anypoint MQ に接続するアプリケーションを正常に設定しました。次に、REST API コマンドを Anypoint MQ Broker API に送信し、Anypoint MQ を使用して結果を表示することで、接続をテストします。 ### [](#design-center-アプリケーションのテスト)Design Center アプリケーションのテスト Design Center でアプリケーションを作成したら、​`curl`​ コマンドを使用して REST API コマンドを Anypoint MQ Broker API に送信し、Anypoint MQ を使用して結果を表示することで、アプリケーションをテストします。 アプリケーションをテストする手順は、次のとおりです。 1. Design Center で、アプリケーションのプロジェクトタイプをクリックし、詳細ペインを表示します。 ![詳細ペインのデプロイメント URL](/mulesoft/current/ja-jp/mq/_images/mq-tutorial-dc-deploy-url.png) 2. **\[Deployment url (デプロイメント URL)\]**​ の値をコピーします。 3. コマンドプロンプトから次の ​`curl`​ コマンドを実行して、Anypoint MQ メッセージとして ​`body`​ の値を送信します。 _DEPLOYMENT-URL_​ を Design Center からのデプロイメント URL に置き換えます。 ```json curl -X POST \ http://DEPLOYMENT-URL/mq/100 \ -H 'content-type: application/json' \ -d '[ { "body": "Welcome to MuleSoft!" } ]' ``` URL の ​`100`​ の値は、HTTP リスナーの ​`/mq/{messageId}`​ の値で指定されたメッセージ ID 値 (メッセージの識別子) です。 次に、メッセージがキューに到着したことを確認します。 4. **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ > ​**\[Destinations (宛先)\]**​ を選択します。 5. 以前作成し、Design Center のアプリケーションの ​**\[Destination (宛先)\]**​ 設定で指定した ​[`myDemoQueue`](#create-demo-queue)​ キューの名前をクリックします。 6. ナビゲーションメニューで ​**\[Message Browser (メッセージブラウザー)\]**​ をクリックします。 ![ナビゲーションメニューの \[Message Browser (メッセージブラウザー)\]](_images/mq-tutorial-get-messages.png) 7. 取得するメッセージ数に ​`5`​ と入力し、ポーリングする秒数に ​`10`​ と入力します。 8. **\[Get Messages (メッセージを取得)\]**​ をクリックします。 Anypoint MQ はキューからメッセージを取得して \[Message Browser (メッセージブラウザー)\] に表示します。 9. メッセージ行をクリックして、メッセージペイロードを詳細ペインに表示します。 ![選択されたメッセージ行と、詳細ペインのペイロード](/mulesoft/current/ja-jp/mq/_images/mq-tutorial-msg-browser-payload-details.png)
1メッセージを選択します。
2詳細ペインのメッセージペイロード。
10. `curl`​ コマンドの本文テキストを変更し、ステップを繰り返してメッセージを表示します。 `curl`​ コマンドを使用して REST API コマンドを Anypoint MQ Broker API に送信し、Anypoint MQ を使用して結果を表示することで、アプリケーションを正常にテストしました。次に、Anypoint Studio 7 で Mule アプリケーションを作成して Anypoint MQ に接続します。 ## [](#configure-mule-4-studio)ステップ 5.Anypoint Studio 7 での Mule 4 アプリケーションの作成および Anypoint MQ への Mule 4 アプリケーションの接続 Anypoint Studio 7 を使用して、Design Center で作成したアプリケーションと同様の Mule 4 アプリケーションを作成できるようになりました。Studio 7 でアプリケーションを CloudHub にデプロイし、​`curl`​ コマンドを送信して接続をテストできます。 ### [](#始める前に-3)始める前に - Studio 7 をインストールします。 [「Anypoint Studio のダウンロードおよびインストール」](https://docs.mulesoft.com/studio/to-download-and-install-studio)​を参照してください。 - Anypoint Platform で、Design (デザイン) 以外の任意の環境に変更します。 **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ で作成したキューがこの環境にもあることを確認します。 ### [](#anypoint-studio-7-での-anypoint-mq-を使用したアプリケーションの設定)Anypoint Studio 7 での Anypoint MQ を使用したアプリケーションの設定 まず、Studio 7 を使用して、Anypoint MQ に接続するアプリケーションを設定します。 1. Studio を起動し、​**\[File (ファイル)\]**​ > ​**\[New (新規)\]**​ > ​**\[Mule Project (Mule プロジェクト)\]**​ をクリックし、プロジェクトに ​`mq-demo`​ という名前を付けます。 2. ツールバーの ​**\[Exchange (エクスチェンジ)\]**​ アイコンをクリックします。 ![Studio 7 ツールバーの \[Exchange (エクスチェンジ)\] アイコン](_images/mq-tutorial-studio7-exchange.png) 3. Anypoint Platform のユーザー名とパスワードを入力します。 4. Exchange で、​**\[Provided by MuleSoft (MuleSoft による提供)\]**​ ナビゲーションメニューをクリックし、ドロップダウンメニューから ​**\[Connectors (コネクタ)\]**​ を選択して、\[Anypoint MQ Connector\] を検索します。 ![Exchange の \[Provided by MuleSoft (MuleSoft による提供)\] メニュー、\[Connectors (コネクタ)\] ドロップダウンメニュー、検索項目](_images/mq-tutorial-exchange.png) 5. **\[Anypoint MQ Connector - Mule 4\]**​ を選択します。 Studio 7 では Mule 4 がサポートされます。 6. **\[Add to project (プロジェクトに追加)\]**​ をクリックします。 ![Exchange の \[Add to project (プロジェクトに追加)\] アイコン](_images/mq-tutorial-exchange-add-to-project.png) 7. 確認プロンプトで ​**\[Proceed (続行)\]**​ をクリックし、Studio で ​**\[OK\]**​ をクリックします。 8. **\[Mule Palette (Mule パレット)\]**​ ビューで ​**\[HTTP\]**​ をクリックし、​**\[Listener\]**​ を Studio キャンバスにドラッグします。 ![\[Mule Palette (Mule パレット)\] の HTTP Connector と Listener 操作](_images/mq-tutorial-studio7-palette.png)
1HTTP Connector では Listener 操作が表示されます。
2Listener 操作では、[Mule Palette (Mule パレット)] にドラッグする操作を特定します。
9. **\[Anypoint MQ\]**​ をクリックして ​**\[Publish\]**​ をキャンバスの \[Listener\] の ​**\[Process (プロセス)\]**​ 領域にドラッグします。 ![Studio 7 キャンバスの \[Publish\] 操作](_images/mq-tutorial-studio7-flow.png) 10. キャンバスで ​**\[Listener\]**​ をクリックします。 11. \[Listener\] プロパティウィンドウで、​**\[General (一般)\]**​ > ​**\[Path (パス)\]**​ を ​`/mq/{messageId}`​ に設定します。 ![\[Listener\] プロパティウィンドウ](_images/mq-tutorial-studio7-listener-props.png) 12. **\[Connector configuration (コネクタ設定)\]**​ 項目の ​**\[Add (追加)\]**​ アイコン (​!["Studio の \[Add (追加)](/mulesoft/current/ja-jp/mq/_images/icon-green-plus.png) アイコン",2.5%,2.5%\]​) をクリックします。 13. HTTP リスナーの ​**\[Global Element Properties (グローバル要素のプロパティ)\]**​ ウィンドウで、​**\[Host (ホスト)\]**​ が ​`All Interfaces [0.0.0.0]`​ に設定され、​**\[Port (ポート)\]**​ が ​`8081`​ に設定されていることを確認し、​**\[OK\]**​ をクリックします。 ![リスナーの \[Global Element Properties (グローバル要素のプロパティ)\] の \[Host (ホスト)\] と \[Port (ポート)\] の設定](_images/mq-tutorial-studio7-listener-config.png) これで、\[Listener\] プロパティウィンドウは、エラーがないことを示します。 14. キャンバスで ​**Publish**​ 操作をクリックします。 15. \[Publish\] プロパティウィンドウで、​**\[Destination (宛先)\]**​ を、​**\[Anypoint Platform\]**​ > ​**\[MQ\]**​ で以前作成した ​[`myDemoQueue`](#create-demo-queue)​ キューに設定します。 ![Publish 操作の \[Destination (宛先)\] プロパティと \[Add (追加)\] アイコン](_images/mq-tutorial-studio7-mq-props.png) キューは Design (デザイン) 以外の環境に配置されている必要があります。 16. **\[Connector configuration (コネクタ設定)\]**​ 項目の ​**\[Add (追加)\]**​ アイコン (​!["Studio の \[Add (追加)](/mulesoft/current/ja-jp/mq/_images/icon-green-plus.png) アイコン",2.5%,2.5%\]​) をクリックし、​**\[Global Element Properties (グローバル要素のプロパティ)\]**​ ウィンドウを表示します。 17. **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ ブラウザーウィンドウに戻り、URL、ID、およびシークレットの値をコピーします。 1. **\[Destinations (宛先)\]**​ をクリックします。 2. ​**\[Copy (コピー)\]**​ をクリックし、メニューから ​**\[Connector version 4.x and later (Connector バージョン 4.x 以降)\]**​ を選択して、URL をコピーします。 ![\[Destinations (宛先)\] ページの \[Copy (コピー)\] ボタン](_images/mq-tutorial-url.png) Anypoint MQ Connector バージョン 3.x 以前を使用している場合は、代わりにクライアントアプリケーションを設定します。 詳細は、「[クライアントアプリケーションの設定](https://docs.mulesoft.com/jp/mq/mq-client-apps)」を参照してください。 3. Studio の ​**\[Anypoint MQ Config (Anypoint MQ 設定)\]**​ ウィンドウの ​**\[URL\]**​ 項目に URL を貼り付けます。 4. [\[Connected Apps (接続アプリケーション)\]](#connected-apps-window)​ ウィンドウに戻り、アプリケーションの ID とシークレットをコピーします。 5. ID とシークレットの値を Studio の ​**\[Anypoint MQ Config (Anypoint MQ 設定)\]**​ ウィンドウに貼り付けます。 ![\[Anypoint MQ Config (Anypoint MQ 設定)\] ウィンドウの \[URL\] 項目、\[Client App ID (クライアントアプリケーション ID)\] 項目、\[Client Secret (クライアントシークレット)\] 項目](_images/mq-tutorial-studio7-mq-config.png) 18. **\[Test Connection (接続をテスト)\]**​ をクリックし、値が正しいことを確認して、​**\[OK\]**​ を 2 回クリックします。 19. プロジェクトを保存します。 20. Studio の ​**Package Explorer**​ で、​`mq-demo`​ を右クリックし、​**\[Anypoint Platform\]**​ > ​**\[Deploy to CloudHub (CloudHub にデプロイ)\]**​ を選択します。 21. 確認ダイアログで、アプリケーションのデプロイ先の環境を選択します。 22. Anypoint Platform の ​**\[Deploying Application (アプリケーションのデプロイ)\]**​ ウィンドウで ​**\[Deploy Application (アプリケーションをデプロイ)\]**​ をクリックします。 ![\[Deploying Applications (アプリケーションのデプロイ)\] ページの \[Deploy Application (アプリケーションをデプロイ)\] ボタン](_images/mq-tutorial-deploy-app.png) Studio 7 を使用して、Anypoint MQ に接続するアプリケーションを正常に設定しました。次に、REST API コマンドを Anypoint MQ Broker API に送信し、Anypoint MQ を使用して結果を表示することで、接続をテストします。 ### [](#アプリケーションのテスト)アプリケーションのテスト Studio 7 でアプリケーションを作成したら、​`curl`​ コマンドを使用して REST API コマンドを Anypoint MQ Broker API に送信し、Anypoint MQ を使用して結果を表示することで、アプリケーションをテストします。 アプリケーションをテストする手順は、次のとおりです。 1. Anypoint Platform で ​**\[Runtime Manager\]**​ > ​**\[Applications (アプリケーション)\]**​ を選択し、​`mq-demo`​ アプリケーションが実行されていることを確認します。 2. `mq-demo`​ アプリケーションの状況をクリックし、詳細ペインを表示します。 3. **\[App url (アプリケーション URL)\]**​ の値をコピーします。 ![Runtime Manager の \[App url (アプリケーション URL)\] の値](_images/mq-tutorial-rtm-deploy-url.png) 4. コマンドプロンプトから次の ​`curl`​ コマンドを実行して、Anypoint MQ メッセージとして ​`body`​ の値を送信します。 _\[APP-URL\]_​ を、Runtime Manager からコピーした ​**\[App url (アプリケーション URL)\]**​ の値に置き換えます。 ```json curl -X POST \ http://APP-URL/mq/100 \ -H 'content-type: application/json' \ -d '[ { "body": "Welcome to MuleSoft!" } ]' ``` URL の ​`100`​ の値は、HTTP リスナーの ​`/mq/{messageId}`​ の値で指定されたメッセージ ID 値 (メッセージの識別子) です。 `destination not found`​ を示す 404 メッセージが表示された場合、Studio 7 の ​**\[MQ Publish (MQ パブリッシュ)\]**​ > ​**\[Destination (宛先)\]**​ 項目のキュー名が ​**\[Anypoint Platform\]**​ > ​**\[MQ\]**​ のキュー名と一致していることを確認します。 変更を加えたら、Studio 7 のプロジェクトを右クリックし、​**\[Anypoint Platform\]**​ > ​**\[Deploy to CloudHub (CloudHub にデプロイ)\]**​ を選択して、Mule アプリケーションを CloudHub に再デプロイします。 5. **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ > ​**\[Destinations (宛先)\]**​ で、以前作成し、Studio 7 のアプリケーションの ​**\[Destination (宛先)\]**​ 設定で指定した ​[`myDemoQueue`](#create-demo-queue)​ キューの名前をクリックします。 6. ナビゲーションメニューで ​**\[Message Browser (メッセージブラウザー)\]**​ をクリックします。 ![ナビゲーションメニューの \[Message Browser (メッセージブラウザー)\]](_images/mq-tutorial-get-messages.png) 7. 取得するメッセージ数に ​`5`​ と入力し、ポーリングする秒数に ​`10`​ と入力します。 8. **\[Get Messages (メッセージを取得)\]**​ をクリックします。 Anypoint MQ はキューからメッセージを取得して \[Message Browser (メッセージブラウザー)\] に表示します。 9. メッセージ行をクリックして、メッセージペイロードを詳細ペインに表示します。 ![選択されたメッセージ行と、詳細ペインのペイロード](/mulesoft/current/ja-jp/mq/_images/mq-tutorial-msg-browser-payload-details.png)
1メッセージを選択します。
2詳細ペインのメッセージペイロード。
10. `curl`​ コマンドの本文テキストを変更し、ステップを繰り返してメッセージを表示します。 これで、Studio 7 で Anypoint MQ を設定し、REST API コマンドを Anypoint MQ Broker API に送信し、Anypoint MQ を使用して結果を表示できるようになりました。 ### [](#studio-7-xml)Studio 7 XML Studio 7 で次の XML を使用して ​`mq-demo`​ アプリケーションを作成できます。 Studio の ​**\[Configuration XML (設定 XML)\]**​ タブをクリックし、各自の XML と次の XML を比較します。必要に応じて修正します。 ```xml ``` ## [](#configure-mule-3-studio)ステップ 6.Anypoint Studio 6 での Mule 3.9 アプリケーションの作成および Anypoint MQ への Mule 4 アプリケーションの接続 Mule 3.9 を使用する場合、Anypoint Studio 6 を使用して、Design Center で作成したアプリケーションと同様の Mule 3.9 アプリケーションを作成できます。 Studio 6 でアプリケーションを CloudHub にデプロイし、​`curl`​ コマンドを送信して接続をテストできます。 このセクションは、Anypoint Studio 6 および Mule 3.9 にのみ適用されます。Studio 7 の場合は、​[「Anypoint Studio 7 での Mule 4 アプリケーションの作成および Anypoint MQ への Mule 4 アプリケーションの接続」](#configure-mule-4-studio)​を参照してください。
Mule 3.9 と Studio 6.x は拡張サポートに含まれるため、Mule と Studio の最新バージョンを使用することをお勧めします。
### [](#始める前に-4)始める前に - Studio 6 をインストールします。 [「Anypoint Studio のダウンロードおよびインストール」](#6.5@studio::to-download-and-install-studio.adoc)​を参照してください。 - Anypoint Platform で、Design (デザイン) 以外の任意の環境に変更します。 **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ で作成したキューがこの環境にもあることを確認します。 - Anypoint Platform で認証用のクライアントアプリケーションを作成します。 Mule 3 用 Anypoint MQ Connector では接続アプリケーションがサポートされないため、認証用のクライアントアプリケーションを作成する必要があります。 「[クライアントアプリケーションの設定](https://docs.mulesoft.com/jp/mq/mq-client-apps)」を参照してください。 後の手順でクライアントアプリケーション ID とクライアントシークレットをコピーできるように、​**\[Client Apps (クライアントアプリケーション)\]**​ ウィンドウを開いたままにします。 ### [](#anypoint-studio-6-での-anypoint-mq-を使用した-mule-3-9-アプリケーションの設定)Anypoint Studio 6 での Anypoint MQ を使用した Mule 3.9 アプリケーションの設定 Studio 6 で Mule 3.9 アプリケーションを設定する手順は、次のとおりです。 1. Studio を開始し、​**\[File (ファイル)\]**​ > ​**\[New (新規)\]**​ > ​**\[Mule Project (Mule プロジェクト)\]**​ をクリックし、プロジェクトに ​`mq-demo-studio-6`​ という名前を付けて、​**\[Finish (完了)\]**​ をクリックします。 2. Anypoint MQ Connector をインストールします。 1. ツールバーの ​**\[Exchange (エクスチェンジ)\]**​ アイコンをクリックします。 ![Studio 6 ツールバーの \[Exchange (エクスチェンジ)\] アイコン](_images/mq-tutorial-studio6-exchange.png) 2. Anypoint Platform のユーザー名とパスワードを入力します。 3. Exchange で、​**\[Provided by MuleSoft (MuleSoft による提供)\]**​ ナビゲーションメニューをクリックし、ドロップダウンメニューから ​**\[Connectors (コネクタ)\]**​ を選択して、\[Anypoint MQ Connector\] を検索します。 ![Exchange の \[Provided by MuleSoft (MuleSoft による提供)\] メニュー、\[Connectors (コネクタ)\] ドロップダウンメニュー、検索項目](_images/mq-tutorial-exchange.png) 1. **\[Anypoint MQ Connector - Mule 3\]**​ を選択します。 Studio 6 では Mule 3.9 がサポートされます。 2. **\[Install (インストール)\]**​ をクリックします。 ![Exchange ページの \[Install (インストール)\] アイコン](_images/mq-tutorial-exchange-install.png) 3. 確認ダイアログで、インストールするアイテムを確認し、​**\[Next (次へ)\]**​ を 2 回クリックします。 4. ライセンス契約に同意して ​**\[Finish (完了)\]**​ をクリックします。 5. 確認ダイアログで、​**\[Restart Now (今すぐ再起動)\]**​ をクリックし、コネクタのインストールを終了します。 4. **\[Mule Palette (Mule パレット)\]**​ で ​**\[HTTP\]**​ を Studio キャンバスにドラッグします。 ![\[Mule Palette (Mule パレット)\] の HTTP Connector](_images/mq-tutorial-studio6-palette.png) 5. **\[Mule Palette (Mule パレット)\]**​ で次の操作を行います。 1. `set`​ を検索し、​**\[Set Payload\]**​ をキャンバスの \[HTTP\] の ​**\[Process (プロセス)\]**​ 領域にドラッグします。 2. `mq`​ を検索し、​**\[Anypoint MQ\]**​ をキャンバスの ​**\[Set Payload\]**​ にドラッグします。 3. `logger`​ を検索し、​**\[Logger\]**​ をキャンバスの ​**\[Anypoint MQ\]**​ にドラッグします。 ![Studio 6 キャンバス内のフロー](/mulesoft/current/ja-jp/mq/_images/mq-tutorial-studio6-flow-complete.png) 6. キャンバスで ​**\[HTTP\]**​ をクリックします。 7. \[HTTP\] プロパティウィンドウで、​**\[General (一般)\]**​ > ​**\[Path (パス)\]**​ を ​`/mq/{messageId}`​ に設定します。 ![\[HTTP\] プロパティウィンドウ](_images/mq-tutorial-studio6-http-props.png) 8. HTTP Connector をクリックし、​**\[Connector Configuration (コネクタ設定)\]**​ の ​**\[Add (追加)\]**​ アイコン (​!["Studio の \[Add (追加)](/mulesoft/current/ja-jp/mq/_images/icon-green-plus.png) アイコン",2.5%,2.5%\]​) をクリックします。 9. HTTP Connector の ​**\[Global Element Properties (グローバル要素のプロパティ)\]**​ ウィンドウで、​**\[Host (ホスト)\]**​ が ​`0.0.0.0`​ に設定され、​**\[Port (ポート)\]**​ が ​`8081`​ に設定されていることを確認し、​**\[OK\]**​ をクリックします。 これで、\[HTTP\] プロパティウィンドウは、エラーがないことを示します。 10. キャンバスで ​**\[Set Payload\]**​ をクリックします。 11. \[Set Payload\] プロパティウィンドウで、​**\[General (一般)\]**​ > ​**\[Value (値)\]**​ を次のように設定します。 #\[message.inboundProperties.'http.uri.params'.messageId\] ![\[Value (値)\] 項目のペイロード](_images/mq-tutorial-studio6-set-payload-props.png) 12. キャンバスで ​**\[Anypoint MQ\]**​ をクリックします。 13. \[Anypoint MQ\] プロパティウィンドウで、​**\[Connector Configuration (コネクタ設定)\]**​ の ​**\[Add (追加)\]**​ アイコン (​!["Studio の \[Add (追加)](/mulesoft/current/ja-jp/mq/_images/icon-green-plus.png) アイコン",2.5%,2.5%\]​) をクリックします。 14. **\[Anypoint Platform\]**​ > ​**\[MQ\]**​ に戻り、URL、クライアントアプリケーション ID、およびクライアントシークレットの値を Studio にコピーします。 1. **\[Destinations (宛先)\]**​ をクリックします。 2. **\[Copy (コピー)\]**​ をクリックして、メニューから ​**\[Connector version 3.x and earlier (コネクタバージョン 3.x 以前)\]**​ を選択します。 ![\[Destinations (宛先)\] ページの \[Copy (コピー)\] ボタン](_images/mq-tutorial-url.png) Anypoint MQ Connector バージョン 3.x は Mule 3.9 および Mule 6 で使用します。 3. Studio の ​**\[Anypoint MQ Configuration (Anypoint MQ 設定)\]**​ ウィンドウで、​**\[URL\]**​ 項目に URL を貼り付けます。 4. **\[Anypoint Platform\] > \[MQ\]**​ で ​**\[Client Apps (クライアントアプリケーション)\]**​ をクリックし、アプリケーションのクライアントアプリケーション ID とクライアントシークレットをコピーします。 5. Studio で、クライアントアプリケーション ID とクライアントシークレットの値を ​**\[Anypoint MQ Configuration (Anypoint MQ 設定)\]**​ ウィンドウに貼り付けます。 ![\[Anypoint MQ Config (Anypoint MQ 設定)\] ウィンドウの \[URL\] 項目、\[Client App ID (クライアントアプリケーション ID)\] 項目、\[Client Secret (クライアントシークレット)\] 項目](_images/mq-tutorial-studio6-mq-config.png) 15. **\[OK\]**​ をクリックします。 16. \[Anypoint MQ\] プロパティウィンドウで ​**\[Operation (操作)\]**​ 項目をクリックし、メニューから ​**\[publish (パブリッシュ)\]**​ を選択します。 ![\[Anypoint MQ\] プロパティウィンドウの \[Operation (操作)\] 項目と \[Destination (宛先)\] 項目](_images/mq-tutorial-studio6-mq-props.png) 17. **\[Destination (宛先)\]**​ を、​**\[Anypoint Platform\]**​ > ​**\[MQ\]**​ で以前作成した ​[`myDemoQueue`](#create-demo-queue)​ キューに設定します。 キューは Design (デザイン) 以外の環境に存在する必要があります。 18. キャンバスで ​**\[Logger\]**​ をクリックします。 19. \[Logger\] プロパティウィンドウで、​**\[General (一般)\]**​ > ​**\[Message (メッセージ)\]**​ を ​`MQ Message: #[payload]`​ に設定します。 ![\[Logger\] プロパティの \[Message (メッセージ)\] ペイロード](_images/mq-tutorial-studio6-logger-props.png) 20. プロジェクトを保存します。 21. Studio の ​**Package Explorer**​ で、​`mq-demo-studio-6`​ を右クリックし、​**\[Anypoint Platform\]**​ > ​**\[Deploy to Cloud (クラウドにデプロイ)\]**​ を選択します。 22. 確認ダイアログで、アプリケーションのデプロイ先の環境を選択します。 23. Anypoint Platform の ​**\[Deploying Application (アプリケーションのデプロイ)\]**​ ウィンドウで ​**\[Deploy Application (アプリケーションをデプロイ)\]**​ をクリックします。 ![\[Deploying Applications (アプリケーションのデプロイ)\] ページの \[Deploy Application (アプリケーションをデプロイ)\] ボタン](_images/mq-tutorial-deploy-app.png) Studio 6 を使用して、Anypoint MQ に接続する Mule 3.9 アプリケーションを正常に設定しました。次に、REST API コマンドを Anypoint MQ Broker API に送信し、Anypoint MQ を使用して結果を表示することで、接続をテストします。 ### [](#studio-6-での-mule-3-9-アプリケーションのテスト)Studio 6 での Mule 3.9 アプリケーションのテスト Mule 3.9 アプリケーションをテストするには、​[アプリケーションのテスト](#アプリケーションのテスト)​の手順に従って、​`curl`​ コマンドを使用して REST API コマンドを Anypoint MQ Broker API に送信し、Anypoint MQ を使用して結果を表示します。 ### [](#studio-6-xml)Studio 6 XML Anypoint MQ Connector を使用してアプリケーションを設定したら、次の XML と比較して設定を確認できます。 Studio の ​**\[Configuration XML (設定 XML)\]**​ をクリックし、各自の XML と次の XML を比較します。必要に応じて、修正を行うことができます。 ```xml ``` ## [](#関連情報)関連情報 - [キューの作成](https://docs.mulesoft.com/jp/mq/mq-queues#create-a-queue) - [キューを削除する](https://docs.mulesoft.com/jp/mq/mq-queues#delete-a-queue) - [Anypoint MQ FAQ](https://docs.mulesoft.com/jp/mq/mq-faq) - [Anypoint MQ Connector](https://docs.mulesoft.com/jp/mq/mq-connectors) - [Anypoint Exchange の Anypoint MQ Broker API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-mq-broker/) # メッセージエクスチェンジに対するルールを設定することによるメッセージの転送 Anypoint MQ には、​_インテリジェントなメッセージルーティングルール_​を作成してエクスチェンジにパブリッシュされたメッセージのサブセットを特定のキューに転送する機能が含まれています。 メッセージルーティングルールはエクスチェンジに対するバインドで設定します。 メッセージをエクスチェンジにパブリッシュすると、ルールに一致するプロパティまたはヘッダーがメッセージに含まれている場合のみ、メッセージルーティングルールによってメッセージがキューに転送されます。
メッセージルーティングルールが設定されていないバインドでは、引き続きエクスチェンジからすべてのメッセージが受信されます。
![エクスチェンジのバインドに対するルーティングルール](/mulesoft/current/ja-jp/mq/_images/mq-route-message.png) たとえば、中サイズの品目のすべての注文を処理するキューとプレミアム品目用の別のキューを指定する必要がある場合もあります。 エクスチェンジにパブリッシュされたメッセージを特定のキューに転送する手順は、次のとおりです。 1. エクスチェンジとキュー間のバインドに対するメッセージルーティングルールを定義します。 エクスチェンジに対するバインドごとに 1 つのメッセージルーティングルールを設定します。 Anypoint MQ では、設定されたメッセージルーティングルールは、パブリッシュされたメッセージのすべての ​`headers`​ および ​`properties`​ 属性に対して評価されます。 2. メッセージで ​`properties`​ と ​`headers`​ を定義して絞り込み条件を指定します。 次のメッセージを ​`purchases`​ エクスチェンジにパブリッシュすると、エクスチェンジはルーティングルール設定に基づいて ​`premiumPurchases`​ キューのみに転送し、​`sizeMedium`​ キューには転送しません。 ```json { "headers" : { "itemSize" : "large" }, "body" : "User added an item to the cart" } ``` ## [](#メッセージルーティングルールを作成する)メッセージルーティングルールを作成する メッセージルーティングルールを作成する手順は、次のとおりです。 1. Anypoint Platform にログインします。 2. ナビゲーション領域または Anypoint Platform のメイン画面で ​**\[MQ\]**​ をクリックします。 3. **\[Destinations (宛先)\]**​ をクリックし、ルールを設定するエクスチェンジの名前をクリックします。 4. **\[Exchange Settings (エクスチェンジ設定)\]**​ ページで、​**\[Add Rule (ルールを追加)\]**​ をクリックしてバインドされたキューにルールを追加します。 ![\[Exchange Settings (エクスチェンジ設定)\] ページの \[Add Rule (ルールを追加)\] ボタン](_images/mq-exchange-add-rule-bound-queues.png) 5. **\[Create Routing Rule (ルーティングルールを作成)\]**​ ページの項目に入力します。 ![\[Create Routing Rule (ルーティングルールを作成)\] ページ](_images/mq-exchange-create-routing-rule.png) - プロパティ名と照合する値を指定します。 - プロパティ種別ごとに、​[マッチャー種別](#matcher-type)​を指定します。 6. **\[Add Rule (ルールを追加)\]**​ をクリックします。 ## [](#メッセージルーティングルールを変更する)メッセージルーティングルールを変更する メッセージルーティングルールを変更する手順は、次のとおりです。 1. Anypoint Platform にログインします。 2. ナビゲーション領域または Anypoint Platform のメイン画面で ​**\[MQ\]**​ をクリックします。 3. **\[Destinations (宛先)\]**​ をクリックし、ルールを設定するエクスチェンジの名前をクリックします。 4. **\[Exchange Settings (エクスチェンジ設定)\]**​ ページで、​**\[Edit Rule (ルールを編集)\]**​ をクリックしてバインドされたキューでルールを変更します。 ![\[Exchange Settings (エクスチェンジ設定)\] ページの \[Edit Rule (ルールを編集)\] ボタン](_images/mq-exchange-edit-rule-bound-queues.png) 5. **\[Edit Routing Rule (ルーティングルールを編集)\]**​ ページで、ルール設定を変更します。 プロパティ種別とマッチャー種別についての詳細は、「​[マッチャー種別](#matcher-type)​」を参照してください。 6. **\[Save Rule (ルールを保存)\]**​ をクリックします。 ## [](#メッセージルーティングルールを削除する)メッセージルーティングルールを削除する メッセージルーティングルールを削除する手順は、次のとおりです。 1. Anypoint Platform にログインします。 2. ナビゲーション領域または Anypoint Platform のメイン画面で ​**\[MQ\]**​ をクリックします。 3. **\[Destinations (宛先)\]**​ をクリックし、ルールを設定するエクスチェンジの名前をクリックします。 4. **\[Exchange Settings (エクスチェンジ設定)\]**​ ページで ​**\[Delete Rule (ルールを削除)\]**​ をクリックします。 ![\[Exchange Settings (エクスチェンジ設定)\] ページの \[Delete Rule (ルールを削除)\] ボタン](_images/mq-exchange-delete-rule-bound-queues.png) 5. **\[Delete Routing Rule (ルーティングルールを削除)\]**​ 確認ボックスで、チェックボックスをオンにして ​**\[Delete Routing Rule (ルーティングルールを削除)\]**​ をクリックし、ルールを削除することを確認します。 ## [](#anypoint-admin-api-を使用したメッセージルーティングルールの作成または変更)Anypoint Admin API を使用したメッセージルーティングルールの作成または変更 Anypoint MQ Admin API を使用したメッセージルーティングルールの管理についての詳細は、​[「Create or Change Message Routing Rules (メッセージルーティングルールの作成または変更)」](https://docs.mulesoft.com/jp/mq/mq-apis#routing-rules-api)​を参照してください。 ### [](#matcher-type)マッチャー種別
プロパティ種別 マッチャー種別 説明

String (文字列)

Equals (等しい)

メッセージプロパティ値がこのルールの値の完全一致である。

Prefix (プレフィックス)

メッセージプロパティ値の先頭がこのルールの値である。

Any of (次のいずれかである)

メッセージプロパティ値がこのルールの値のいずれかと一致する。

None of (次のいずれでもない)

メッセージプロパティ値がこのルールの値のいずれにも一致しない。

Exists

このルールに含まれるプロパティ名に一致する名前のプロパティがメッセージに含まれる。

Number (数値)

Equals (等しい)

メッセージプロパティ値がこのルールの値に等しい。

Less than (より小さい)

メッセージプロパティ値がこのルールの値より小さい。

Less than or equal (以下)

メッセージプロパティ値がこのルールの値以下である。

Greater than (より大きい)

メッセージプロパティ値がこのルールの値より大きい。

Greater than or equal (以上)

メッセージプロパティ値がこのルールの値以上である。

Range (範囲)

メッセージプロパティ値がこのルールで指定された値の両端を含む範囲内にある。

None of (次のいずれでもない)

メッセージプロパティ値がこのルールの値のいずれにも一致しない。

Exists

このルールに含まれるプロパティ名に一致する名前のプロパティがメッセージに含まれる。

プロパティ値では、数値ピリオド値の小数点表記としてピリオド (.) 文字 (カンマ (,) 文字ではない) がサポートされます。

数値プロパティ値に基づくルーティングルールを作成し、Anypoint MQ Connector を使用してメッセージをパブリッシュする場合、Anypoint MQ Connector バージョン 3.2.0 以降にアップグレードする必要があります。 これより前のバージョンのコネクタでは、すべてのプロパティ値が文字列として送信されるため、メッセージは数値プロパティに基づくルーティングルールに一致しません。

## [](#send-message-with-routing-props)ルーティングプロパティを使用したメッセージの送信 メッセージをエクスチェンジに送信して特定のキューに転送するには、次のいずれかを使用します。 - Anypoint MQ の ​**\[Message Sender (メッセージ送信者)\]**​ ページ: メッセージの送信時には、次の操作を実行します。 1. **\[Add User Properties (ユーザープロパティを追加)\]**​ を切り替えます。 2. 送信するプロパティ名と値のペアとして検索条件を指定します。 詳細は、​[「メッセージエクスチェンジへのメッセージの送信」](https://docs.mulesoft.com/jp/mq/mq-exchanges#send-a-message-to-a-message-exchange)​を参照してください。 - Anypoint MQ Broker API: 詳細は、​[「Send a Message with Routing Properties (ルーティングプロパティを使用したメッセージの送信)」](https://docs.mulesoft.com/jp/mq/mq-apis#send-message-routing)​を参照してください。 パブリッシュされたメッセージでルーティングプロパティを表示する手順は、次のとおりです。 1. エクスチェンジの ​**\[Message Sender (メッセージ送信者)\]**​ ページで、エクスチェンジにバインドされているキューの ​**\[View Messages (メッセージを表示)\]**​ をクリックします。 Anypoint MQ に選択したキューの ​**\[Message Browser (メッセージブラウザー)\]**​ ページが表示されます。 2. **\[Get Messages (メッセージを取得)\]**​ をクリックします。 3. メッセージ行をクリックして、ユーザープロパティを含むメッセージペイロードを詳細ペインに表示します。 ![\[Message Browser (メッセージブラウザー)\] ページでのユーザープロパティの表示](_images/mq-exchange-user-props.png) [「キューからのメッセージの取得」](https://docs.mulesoft.com/jp/mq/mq-queues#get-a-message-from-a-queue)​を参照してください。 ## [](#intelligent-routing-restrictions)要件と制限事項
数値プロパティ値に基づくルーティングルールを作成し、Anypoint MQ Connector を使用してメッセージをパブリッシュする場合、Anypoint MQ Connector バージョン 3.2.0 以降にアップグレードする必要があります。 これより前のバージョンのコネクタでは、すべてのプロパティ値が文字列として送信されるため、メッセージは数値プロパティに基づくルーティングルールに一致しません。
Anypoint MQ ではメッセージルーティングルールをサポートしていますが、次の制限事項があります。 - エクスチェンジのキューのバインドは 10 個以下である必要があります。 メッセージルーティングルールが定義されたエクスチェンジには、最大 10 件のキューをバインドできます。 エクスチェンジに 10 件を超えるキューのバインドがある場合、インテリジェントなメッセージルーティングは使用できません。 - メッセージルーティングルールは 1 つのプロパティに対してのみ設定でき、次の制限事項があります。 - プロパティ名の最大サイズは 180 バイトです。 - プロパティ値の最大サイズは 45 KB です。 - ルーティングルールのプロパティ値には空白、英数字 (a-z、A-Z、0-9)、句読点 (@ ! & | # $ % - \_ : ; , . ') 文字を含めることができます。 Anypoint MQ では、次の条件を満たす場合のみルーティングルールに対してメッセージを評価します。 - ヘッダーとプロパティの合計数が 500 個未満である。 この合計には、Anypoint MQ が作成する ​`messageId`​ や ​`createdTimestamp`​ などの操作ヘッダーが含まれます。 - ヘッダーとプロパティの最大合計サイズが 215 KB である。 メッセージがこれらの条件を満たさない場合、Anypoint MQ ではメッセージルーティングルールに対してメッセージを評価するときにヘッダーとプロパティを無視します。 Anypoint MQ ではペイロードでヘッダーとプロパティが保持され、メッセージをエクスチェンジにパブリッシュするときに、ヘッダーとプロパティを比較に使用できます。 ## [](#関連情報)関連情報 - [メッセージルーティングルールの作成](https://docs.mulesoft.com/jp/mq/mq-apis#routing-rules-api) - [ルーティングプロパティを使用したメッセージの送信](https://docs.mulesoft.com/jp/mq/mq-apis#send-message-routing) # メッセージエクスチェンジを使用した複数のキューへのメッセージの送信 複数の標準​[キュー](https://docs.mulesoft.com/jp/mq/mq-queues)​を​_メッセージエクスチェンジ_​にバインドすることで、メッセージをこれらのキューに同時に送信できます。 バインドに対する​_インテリジェントなメッセージルーティングルール_​を作成して、メッセージエクスチェンジにバインドされた特定のキューにメッセージを転送することもできます。 詳細は、[メッセージエクスチェンジに対するルールを設定することによるメッセージの転送](https://docs.mulesoft.com/jp/mq/mq-routing-rules)を参照してください。 メッセージエクスチェンジに送信するメッセージの最大サイズは 10 MB です。 メッセージエクスチェンジには、最大 450 件のキューをバインドできます。 メッセージルーティングルールが定義されたエクスチェンジには、最大 10 件のキューをバインドできます。 エクスチェンジに 10 件を超えるキューのバインドがある場合、インテリジェントなメッセージルーティングは使用できません。 メッセージエクスチェンジを作成する前に 1 つ以上のキューを作成します。 詳細は、​[「キューを作成する」](https://docs.mulesoft.com/jp/mq/mq-queues#create-a-queue)​を参照してください。 ## [](#メッセージエクスチェンジを作成する)メッセージエクスチェンジを作成する メッセージエクスチェンジを作成する手順は、次のとおりです。 1. Anypoint Platform にログインします。 2. ナビゲーションメニューまたは Anypoint Platform のメイン画面から ​**\[MQ\]**​ をクリックします。 3. **\[Destinations (宛先)\]**​ をクリックします。 4. **\[Add (追加)\]**​ アイコンをクリックして、メニューを表示します。 ![\[追加\] アイコン](_images/mq-blue-create.png) 5. **\[Exchange (エクスチェンジ)\]**​ を選択します。 **\[Queue (キュー)\]**​ または ​**\[FIFO Queue (FIFO キュー)\]**​ については、「[キューの設定と使用](https://docs.mulesoft.com/jp/mq/mq-queues)」を参照してください。 6. **\[Create Exchange (エクスチェンジの作成)\]**​ ページで、メッセージエクスチェンジに名前を付けます。 メッセージエクスチェンジ名には最大 127 文字の英数字 (a-z, A-Z、0-9) と句読点 (. -) 文字を含めることができます。 スペースやその他の文字を含めることはできません。 7. チェックボックスをオンにして、キューをこのメッセージエクスチェンジにバインドします。 ![キューをエクスチェンジにバインドするためのチェックボックス](/mulesoft/current/ja-jp/mq/_images/mq-exchange-bind-queues.png) 8. **\[Save Changes (変更を保存)\]**​ をクリックします。 9. **\[Destinations (宛先)\]**​ ページで、新しいエクスチェンジのメッセージエクスチェンジ種別をクリックして、詳細ペインにバインドされたキューを表示します。 ![エクスチェンジ種別 (1) をクリックして、詳細ペインにバインドされたキュー (2) を表示します。](/mulesoft/current/ja-jp/mq/_images/mq-exchange-details-pane.png) ## [](#メッセージエクスチェンジへのキューのバインド)メッセージエクスチェンジへのキューのバインド
メッセージエクスチェンジには、最大 450 件のキューをバインドできます。 メッセージルーティングルールが定義されたエクスチェンジには、最大 10 件のキューをバインドできます。 エクスチェンジに 10 件を超えるキューのバインドがある場合、インテリジェントなメッセージルーティングは使用できません。
メッセージエクスチェンジにキューをバインドする手順は、次のとおりです。 1. **\[Anypoint Platform\] > \[MQ\]**​ のナビゲーションメニューで ​**\[Destinations (宛先)\]**​ をクリックします。 2. メッセージエクスチェンジ ID をクリックして、​**\[Exchange Settings (エクスチェンジ設定)\]**​ ページを表示します。 ![(1) 複数選択のためのチェックボックスと、(2) \[Unbind (バインド解除)\] および (3) \[Bind (バインド)\] ボタン](_images/mq-bind-queue-to-exchange2.png) 3. 設定ページで、メッセージエクスチェンジにバインドするまたはメッセージエクスチェンジからバインド解除する単一キューごとに ​**\[Bind (バインド)\]**​ または ​**\[Unbind (バインド解除)\]**​ をクリックします。 エクスチェンジにバインドするキューを複数選択するには、チェックボックスをオンにして、表示される ​**\[Bind Selected Queues (選択したキューをバインド)\]**​ ボタンをクリックします。 ![\[Bind Selected Queues (選択したキューをバインド)\] ボタン](_images/mq-exchange-bind-selected-queues.png) ## [](#メッセージエクスチェンジへのメッセージの送信)メッセージエクスチェンジへのメッセージの送信 メッセージエクスチェンジへのメッセージの送信は、キューへのメッセージの送信と似ています。唯一の違いは、メッセージエクスチェンジにバインドされた任意のキューからメッセージを取得できることです。メッセージエクスチェンジに送信するメッセージの最大サイズは 10 MB です。 ペイロードにテキスト以外の形式 (CSV、HTML、JSON、XML など) が含まれる場合、Anypoint MQ では送信前にその形式が文字列に変換されるため、ペイロードサイズが増加します。 この変換により、ペイロードが最大ペイロードサイズの 10 MB を超えて、​`Payload too large`​ エラーが発生する場合があります。 メッセージエクスチェンジにメッセージを送信する手順は、次のとおりです。 1. **\[Anypoint Platform\] > \[MQ\]**​ のナビゲーションメニューで ​**\[Destinations (宛先)\]**​ をクリックします。 2. メッセージエクスチェンジ ID をクリックして、​**\[Exchange Settings (エクスチェンジ設定)\]**​ ページを表示します。 3. 設定ページのナビゲーションメニューで、​**\[Message Sender (メッセージ送信者)\]**​ をクリックします。 ![エクスチェンジの \[Message Sender (メッセージ送信者)\] オプション](_images/mq-exchange-payload.png) 4. **\[Type (種別)\]**​ 項目の設定は ​**\[Text (テキスト)\]**​ のままにします。 5. **\[Payload (ペイロード)\]**​ 項目に「​`Hello Queues from myMessageExchange`​」などのテキストを入力します。 6. 必要に応じて、​**\[Add User Properties (ユーザープロパティを追加)\]**​ を切り替えて、送信するプロパティの名前と値のペアを指定し、​**\[Add Property (プロパティを追加)\]**​ をクリックします。 ![\[Message Sender (メッセージ送信者)\] ページの \[Add User Properties (ユーザープロパティを追加)\] 切り替え](_images/mq-tutorial-message-sender-user-props.png) 7. **\[Send (送信)\]**​ をクリックします。 8. エクスチェンジにバインドされているキューの ​**\[View Messages (メッセージを表示)\]**​ をクリックし、メッセージブラウザーでキューを表示します。 [「キューからのメッセージの取得」](https://docs.mulesoft.com/jp/mq/mq-queues#get-a-message-from-a-queue)​を参照してください。 メッセージの ​**\[Type (種別)\]**​ の値を変更することで、ペイロードの JSON コンテンツまたはカンマ区切り値 (CSV) を送信することもできます。​[「JSON メッセージをキューに送信する」](https://docs.mulesoft.com/jp/mq/mq-queues#send-a-json-message-to-a-queue)​および​[「CSV メッセージをキューに送信する」](https://docs.mulesoft.com/jp/mq/mq-queues#send-a-csv-message-to-a-queue)​を参照してください。 ## [](#メッセージエクスチェンジを削除する)メッセージエクスチェンジを削除する 必要なくなったメッセージエクスチェンジは削除できます。削除されたエクスチェンジのキューのバインドはすべて失われます。クライアントは、エクスチェンジにパブリッシュまたはサブスクライブできなくなります。 メッセージエクスチェンジを削除する手順は、次のとおりです。 1. **\[Anypoint Platform\] > \[MQ\]**​ のナビゲーションメニューで ​**\[Destinations (宛先)\]**​ をクリックします。 2. **\[Destinations (宛先)\]**​ ページで、エクスチェンジのメッセージエクスチェンジ種別をクリックして、詳細ペインを表示します。 3. **\[Delete (削除)\]**​ アイコンをクリックします。 ![エクスチェンジを削除するための詳細ペインの \[Delete (削除)\] アイコン](_images/mq-exchange-delete.png) 4. **\[Delete Exchange (エクスチェンジを削除)\]**​ ウィンドウで、チェックボックスをオンにして確定し、​**\[Delete Exchange (エクスチェンジを削除)\]**​ をクリックします。 ## [](#関連情報)関連情報 - [キューの設定と使用](https://docs.mulesoft.com/jp/mq/mq-queues) - [Anypoint MQ の概要](https://docs.mulesoft.com/jp/mq/) - [FAQ: Anypoint MQ](https://docs.mulesoft.com/jp/mq/mq-faq) # メッセージの肯定応答 - Mule 3
このガイドは Mule 3 および Studio 6 にのみ適用されます。Mule 4 の肯定応答情報については、​「ACK 操作と NACK 操作」​を参照してください。
Anypoint MQ では、Anypoint MQ Connector を使用して Anypoint Studio でメッセージを処理する方法を決定できます。 次の 2 つの応答が発生する可能性があります。 - 肯定応答 (ACK) は、アプリケーションがメッセージを受信したことを示します。 - 否定応答 (NACK) は、アプリケーションが現在のメッセージを拒否することを示します。Anypoint MQ は、別のアプリケーションがメッセージを受信できるように、キューにメッセージを返します。 Anypoint MQ Connector には、Studio アプリケーションでこれらの状態をグローバルまたはローカルに設定するためのツールが用意されています。
  • Anypoint MQ Connector - Mule 4 では、ACK および NACK コンポーネントを使用するときに、​AnypointMQMessageContext​ オブジェクトを渡す必要があります。このオブジェクトは、サブスクライバーまたはコンシューマーコンポーネントに対する Anypoint MQ Connector 属性内にあります。サブスクライバーまたはコンシューマーに続く ACK または NACK コンポーネントに ​#[attributes]​ を挿入すると、Anypoint MQ Connector は自動的に AnypointMQMessageContext オブジェクトを渡します。

  • 他の操作によって ​#[attributes]​ が新しい値で上書きされる可能性があるため、サブスクライバーまたはコンシューマーと ACK/NACK 間のフローにそのような演算子が存在する場合は、サブスクライバーまたはコンシューマーの属性を変数に保存して属性が失われないようにします。

フローの例: ```xml ``` ## [](#グローバルおよびローカル状態)グローバルおよびローカル状態 Anypoint MQ Connector は、Studio アプリケーションがキューからメッセージを受信する方法を指定するためのグローバルおよびローカル状態を提供します。 ### [](#グローバル状態)グローバル状態 Studio の ​**\[Global Element Properties (グローバル要素のプロパティ)\]**​ メニューを使用して、フロー内のすべてのメッセージを処理する戦略を指定できます。グローバル状態には次の選択肢があります。 - **AUTO** Anypoint MQ Connector は、例外のキャッチ戦略 (ACK) と例外のロールバック戦略 (NACK) のどちらを検出したかに応じて、フローの最後に Ack または Nack を自動的に送信します。​[「Anypoint Studio での自動肯定応答フローの作成」](#autoflow)​の例を参照してください。\[AUTO (自動)\] は Mule 4 Connector のデフォルトです。 考えられる結果は 2 つあります。 - ACK フローが成功するか、例外のキャッチ戦略が発生します。次のコードは、例外のキャッチ戦略を示しています。 ```xml ``` - NACK 例外のロールバック戦略が発生します。 ```xml ``` - **MANUAL** アプリケーションは Anypoint MQ Connector のローカル状態を使用して独自の ACK または NACK を送信することを示します。Anypoint MQ Connector はアクションを自動的に提供しません。​[「Anypoint Studio での手動肯定応答フローの作成」](#manualflow)​の例を参照してください。 - **NONE** アプリケーションがメッセージを受信し、Anypoint MQ Connector はそのメッセージをすぐに肯定応答して削除します。この状態は、メッセージが適切にコンシュームされない場合はメッセージが失われるリスクがありますが、通常は、後続の各メッセージがその前のメッセージに関する詳細を提供するニュースフィードなど、メッセージを常に更新するフローがある場合に使用されます。この状態はリスクがありますが、コーディングが簡単です。​[「\[NONE (なし)\] 肯定応答モードの設定」](#noneflow)​の例を参照してください。
Anypoint MQ Mule Connector - Mule 4 では、[NONE (なし)] は [IMMEDIATE (即時)] と呼ばれますが、機能は同じです。
グローバル状態は ​**\[Acknowledgment Mode (肯定応答モード)\]**​ 項目で設定できます。 ![mq global mode set](/mulesoft/current/ja-jp/mq/_images/mq-global-mode-set.png) ### [](#ローカル状態)ローカル状態 アプリケーションがメッセージを受信するか拒否するかに応じて ​**\[Operation (操作)\]**​ 項目が ​**\[ack\]**​ または ​**\[nack\]**​ に設定された Anypoint MQ Connector インスタンスを手動でフローに追加できます。 Anypoint MQ Connector の ​**\[Operation (操作)\]**​ 項目を使用して、ローカル状態を設定できます。 ![mq connector ops](/mulesoft/current/ja-jp/mq/_images/mq-connector-ops.png) ## [](#autoflow)Anypoint Studio での \[AUTO (自動)\] 肯定応答フローの作成 **\[AUTO (自動)\]**​ 状態を使用している場合、​`choice-exception-strategy`​ を設定すると、選択した例外に応じて Anypoint MQ Connector が ack または nack を送信します。次のコードで ​**\[AUTO (自動)\]**​ 状態の使用方法を示します。 次のコードは Studio のフローを示しています。 ![MQ 肯定応答モードのフロー](/mulesoft/current/ja-jp/mq/_images/mq-ack-flow.png) この例では、次の 2 つのフローがあります。 - **autoHttp** `0.0.0.0:8081`​ でリスンする HTTP Connector をセットアップし、メッセージをパブリッシュするように Anypoint MQ Connector を設定し、肯定応答モードを ​**\[AUTO (自動)\]**​ に設定します。 - **autoMq** メッセージをコンシュームするように Anypoint MQ Connector を設定し、Java クラス ​[RandomError](#randomerror)​ を使用して、選択に応じて自動機能が肯定応答または否定応答を送信するための考えられる例外を作成します。ロガーは、コンソールに ACK または NACK の選択を表示します。 フローの \[Error handling (エラー処理)\] セクションには、Anypoint MQ Connector が ACK を送信する \[Catch Exception Strategy (例外のキャッチ戦略)\]、および Anypoint MQ Connector が NACK を送信する \[Rollback Exception Strategy (例外のロールバック戦略)\] が含まれます。 ### [](#auto-自動-の-xml-コード)\[AUTO (自動)\] の XML コード \[AUTO (自動)\] 肯定応答モードの XML コードは次のとおりです。 ```xml ```

プロパティファイルでクライアント ID (​mq.clientId​) とクライアントシークレット (​mq.clientSecret​) の値を設定していることを確認します。この場合、それらの値は ​/ackmodes/classes/ackmodes.properties​ ファイルで設定され、次の内容が含まれています。

# Contents of this file are not meant to be shared with the wide public

mq.clientId=<Client_ID>
mq.clientSecret=<Client_Secret>
このステートメントでコールされる Java テストプログラムを使用して例外を発生させる方法についての説明は、​[「ランダムエラージェネレーター」](#randomerror)​を参照してください。 ```xml ``` ## [](#manualflow)Anypoint Studio での \[MANUAL (手動)\] 肯定応答フローの作成 Studio の \[MANUAL (手動)\] 肯定応答モードは、Anypoint MQ Connector の \[Global Element Properties (グローバル要素のプロパティ)\] から設定できます。 ![mq global mode set](/mulesoft/current/ja-jp/mq/_images/mq-global-mode-set.png) \[MANUAL (手動)\] フローでも、​`choice-exception-strategy`​ がフローで同様に設定されます。この場合、アプリケーションは​[「ランダムエラー Java クラス」](#randomerror)​で送信する例外に応じて、操作が ACK または NACK に設定された個々の Anypoint MQ Connector インスタンスを使用します。 ![mq manual flow](/mulesoft/current/ja-jp/mq/_images/mq-manual-flow.png) ### [](#auto-自動-の-xml-コード-2)\[AUTO (自動)\] の XML コード \[AUTO (自動)\] 肯定応答モードの XML コードは次のとおりです。 ```xml ``` このステートメントでコールされる Java テストプログラムを使用して例外を発生させる方法についての説明は、​[「ランダムエラージェネレーター」](#randomerror)​を参照してください。 ```xml ``` ## [](#noneflow)\[NONE (なし)\] 肯定応答モードの設定 Anypoint MQ Connector の Studio の ​**\[Global Element Properties (グローバル要素のプロパティ)\]**​ メニューで ​**\[Acknowledgment Mode (肯定応答モード)\]**​ を ​**\[NONE (なし)\]**​ に設定できます。 ![mq global mode set](/mulesoft/current/ja-jp/mq/_images/mq-global-mode-set.png) **\[NONE (なし)\]**​ フローでは、何が発生した場合でも、Anypoint MQ Connector が常に ACK を送信します。
[NONE (なし)]​ は Anypoint MQ Connector - Mule 4 では ​[IMMEDIATE (即時)]​ と呼ばれますが、機能は同じです。
次の例は、Java クラス ​[RandomError](#randomerror)​ を使用して考えられる例外を作成することでこのリスクを強調しますが、それらの例外は無視して ACK を送信します。 ```xml ``` ![mq none flow](/mulesoft/current/ja-jp/mq/_images/mq-none-flow.png) このモードを使用するとアプリケーションはシンプルになりますが、リスクが高まります。このモードは、ニュースの詳細が明らかになっていくニュースフィードのように、メッセージが常に相互に更新される場合に最適です。例外が発生した場合、次のメッセージが適切なコンテンツを取得する機会があります。 ### [](#none-なし-の-xml-コード)\[NONE (なし)\] の XML コード **\[NONE (なし)\]**​ 肯定応答モードの XML コードは次のとおりです。 ```xml ``` ## [](#randomerror)ランダムエラージェネレーター 次の Java テストプログラムは、アプリケーションのテストに使用できるランダムエラーを生成します。このプログラムは 0 から 100 の間のランダムな整数を取得し、その値に応じてこれらの選択を行います。
値 エラー状態 Studio フローの動作

0 ~ 32

エラーなし。渡されたイベントコンテキストを返します。

通過してアプリケーションは ACK を送信します。

33 ~ 65

エラー。無効な状態の例外を返します。

アプリケーションは NACK を送信します。

66 ~ 100

エラー。サポートされていない操作の例外を返します。

アプリケーションは ACK を送信します。

```java package ackmodes; import java.util.Random; import org.mule.api.MuleEventContext; import org.mule.api.lifecycle.Callable; public class RandomError implements Callable { @Override public Object onCall(MuleEventContext eventContext) throws Exception { int randomInt = new Random().nextInt(100); if (randomInt > 66) { throw new IllegalStateException("This should be retried"); } else if (randomInt > 33) { throw new UnsupportedOperationException("This should not be retried"); } else { return eventContext; } } } ``` ## [](#関連情報)関連情報 - [Anypoint MQ FAQ](https://docs.mulesoft.com/jp/mq/mq-faq) # 使用量グラフの表示 コンシュームされたデータ量と API 要求数、および受信したメッセージ単位数を示すチャートを表示できます。 API 要求 API 要求を使用して、請求の月次クォータを計算します。 - (コネクタまたは API を介した) Anypoint MQ への各 API コールが 1 つの API 要求とみなされます。 Broker API へのすべての要求が月次クォータに含まれます。 要求には、メッセージの送信、受信、および肯定応答のほか、キューおよび交換に対するすべての操作が含まれます。 - 1 回の API コールから最大 10 個のメッセージを取得できますが、この 1 回の API コールのみが 1 つの要求として請求されます。 メッセージを取得する要求でメッセージが返されない場合でも (キューが空の場合など)、1 つの API 要求として請求されます。 - メッセージがキューから DLQ に送信された場合、そのメッセージは、請求可能な API 要求に課金されません。 ただし、クライアントが DLQ にメッセージを直接送信した場合、その要求は課金されます。 メッセージ単位 メッセージ単位は請求では使用されません。 メッセージ単位は、応答内のメッセージデータのサイズを決定するために Anypoint MQ により使用されます。 - 各メッセージ単位には、100 KB のデータが含まれます。 - メッセージ単位は、エンコードされたメッセージ文字数で数えられます。 月次請求使用量情報は 24 時間遅延します。 使用量がライセンスの上限に達しても、Anypoint MQ は動作を続行します。 MuleSoft は、アカウント管理者とチームに請求関連の情報を通知します。 ## [](#anypoint-mq-使用量へのアクセス)Anypoint MQ 使用量へのアクセス Anypoint MQ 使用量を表示する手順は、次のとおりです。 1. Anypoint Platform にログインします。 2. ナビゲーションバーまたは Anypoint Platform のメインページで ​**\[Access Management (アクセス管理)\]**​ をクリックします。 3. **\[SUBSCRIPTION (サブスクリプション)\]**​ セクションで、​**\[MQ\]**​ をクリックします。 ![\[Access Management (アクセス管理)\] ページの \[MQ\] オプション](_images/mq-access-mgmt-subscription.png) 4. チャート期間値として、​**\[6m\]**​ (6 か月、デフォルト)、​**\[1y\]**​ (1 年)、または ​**\[2y\]**​ (2 年) をクリックします。 ![メッセージ単位数と API 要求数を含む \[MQ Usage (MQ 使用量)\] ページ](_images/mq-usage-chart.png) - (​**1**​) 期間値 - (​**2**​) 月ごとのメッセージ単位および API 要求の数
API 要求またはメッセージ単位の使用量が 0 の場合、チャートには ​<1%​ と表示されます。
- (​**3**​) 使用したライセンスの割合と量 使用量がライセンス制限に近づくと、円グラフは赤色になります。 ![ライセンス制限を示す円グラフ](/mulesoft/current/ja-jp/mq/_images/mq-msg-unit-color.png) 場合によっては、バックエンドプロセスでレコードが更新されたときに今月の統計が読み込まれないこともあります。 この場合は、Anypoint MQ Stats API の​[組織別の使用状況メトリクス](https://docs.mulesoft.com/jp/mq/mq-apis#usage-by-org)​を使用して今月の 1 日あたりの使用量を照会し、1 日あたりの使用量を合計してください。 ## [](#retrieve-metrics-api)Anypoint MQ Stats API を使用した使用状況メトリクスの取得 Anypoint MQ Stats API を使用して使用状況メトリクスを取得するには、以下を参照してください。 - [環境別の使用状況メトリクスの取得](https://docs.mulesoft.com/jp/mq/mq-apis#usage-by-env) - [組織別の使用状況メトリクスの取得](https://docs.mulesoft.com/jp/mq/mq-apis#usage-by-org) ## [](#関連情報)関連情報 - [Anypoint MQ FAQ](https://docs.mulesoft.com/jp/mq/mq-faq) - [Anypoint MQ Stats API](https://docs.mulesoft.com/jp/mq/mq-apis#mqstatapi) # 接続アプリケーションの設定 接続アプリケーション機能により、ユーザーログイン情報を共有することなく外部アプリケーションにアクセスできるようにすることで、これらのアプリケーションを Anypoint Platform と統合できます。 接続アプリケーションを作成すると、\[Access Management (アクセス管理)\] にアプリケーションの ID とシークレットが表示されます。 ID とシークレットの値は、Anypoint Studio で Mule アプリケーションの MQ 用 Anypoint Connector (Anypoint MQ Connector) を設定するときに使用します。 Anypoint MQ で接続アプリケーションを使用するには、Mule 4 用 Anypoint MQ Connector 4.x を使用する必要があります。 アップグレードについての詳細は、「[Anypoint MQ Connector のアップグレードおよび移行](https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/anypoint-mq-connector-upgrade-migrate)」を参照してください。 Anypoint MQ Connector バージョン 3.x 以前を使用している場合は、代わりにクライアントアプリケーションを設定します。 詳細は、「[クライアントアプリケーションの設定](https://docs.mulesoft.com/jp/mq/mq-client-apps)」を参照してください。 接続アプリケーションについての詳細は、​[接続アプリケーション](https://docs.mulesoft.com/jp/access-management/connected-apps-overview) and [開発者向けの接続アプリケーション](https://docs.mulesoft.com/jp/access-management/connected-apps-developers)​ を参照してください。 ## [](#configure-mq-conn-app)\[Access Management (アクセス管理)\] で接続アプリケーションを設定する Anypoint MQ スコープを使用して接続アプリケーションを作成する手順は、次のとおりです。 1. Anypoint Platform にログインし、ナビゲーションメニューで ​**\[Access Management (アクセス管理)\]**​ をクリックします。 2. ナビゲーションペインで ​**\[Connected Apps (接続アプリケーション)\]**​ をクリックします。 3. **\[Create app (アプリケーションを作成)\]**​ をクリックします。 ![「Connected Apps (接続アプリケーション)」 オプションと 「Create app (アプリケーションを作成)」 ボタン](/mulesoft/current/ja-jp/mq/_images/mq-tutorial-create-connected-apps.png)
1[Connected Apps (接続アプリケーション)]​ では、接続アプリケーションの表示と作成を行います。
2[Create app (アプリケーションを作成)]​ ボタンでは、接続アプリケーションを作成します。
4. アプリケーションの名前 (​`DemoApp1`​ など) を指定します。 5. **\[App acts on its own behalf (client credentials) (アプリケーションが自身のために行動する (クライアントログイン情報))\]**​ を選択します。 6. **\[Add Scopes (スコープを追加)\]**​ をクリックします。 スコープは、関連付けられた権限を持つロールです。この権限により、組織および環境内でアプリケーションが実行できるアクションが決まります。 [「Anypoint MQ スコープ」](#mq-scopes)​を参照してください。 ![Anypoint MQ 接続アプリケーションのスコープ](/mulesoft/current/ja-jp/mq/_images/mq-conn-apps-scopes.png) 7. **\[Add Scopes (スコープを追加)\]**​ ウィンドウで次の操作を行います。 1. **検索条件スコープ**​項目に「MQ」と入力します。 2. 適用する Anypoint MQ スコープを選択して、​**\[Next (次へ)\]**​ をクリックします。 3. スコープを適用するビジネスグループを選択して、​**\[Next (次へ)\]**​ をクリックします。 4. スコープを適用する環境を選択して、​**\[Next (次へ)\]**​ をクリックします。 5. **\[Add Scopes (スコープを追加)\]**​ をクリックするか、変更内容をキャンセルするには ​**\[Cancel (キャンセル)\]**​ をクリックします。 8. **\[Save (保存)\]**​ をクリックするか、変更内容をキャンセルするには ​**\[Cancel (キャンセル)\]**​ をクリックします。 9. コネクタを設定するときに、​**\[Copy Id (ID をコピー)\]**​ と ​**\[Copy Secret (シークレットをコピー)\]**​ をクリックして、作成したアプリケーションの ID とシークレットをコピーします。 ![「Connected Apps (接続アプリケーション)」 ウィンドウ](/mulesoft/current/ja-jp/mq/_images/mq-conn-apps-window.png) この ID とシークレットを使用して、Anypoint MQ API を使用した認証に必要なアクセストークンを取得します。 10. Mule アプリケーションの Anypoint MQ Connector を設定するときに、ID とシークレットの値を Studio の ​**\[Anypoint MQ Config (Anypoint MQ 設定)\]**​ ウィンドウに貼り付けます。 ![「Anypoint MQ Config (Anypoint MQ 設定)」 ウィンドウの 「URL」 項目、「Client App ID (クライアントアプリケーション ID)」 項目、\[Client Secret (クライアントシークレット)\] 項目](_images/mq-tutorial-studio7-mq-config.png) ID とシークレットのペアを複数のアプリケーションで共有しないでください。 詳細は、Anypoint MQ チュートリアルの​[「Anypoint Studio 7 での Mule 4 アプリケーションの作成および Anypoint MQ への Mule 4 アプリケーションの接続」](https://docs.mulesoft.com/jp/mq/mq-tutorial#configure-mule-4-studio)​を参照してください。 接続アプリケーションのアクセストークンの取得についての詳細は、​[「OIDC エンドポイントとトークン」](https://docs.mulesoft.com/jp/access-management/connected-apps-developers#oidc-endpoints-and-tokens)​を参照してください。 Anypoint MQ Admin API および Anypoint MQ Broker API の ​`/authorize`​ エンドポイントでは、接続アプリケーションはサポートされません。 これらのエンドポイントから取得したトークンを使用して接続アプリケーションにアクセスすることはできません。 ## [](#configure-mq-conn-app-api)API を使用した接続アプリケーションの設定 API を使用した接続アプリケーションの設定についての詳細は、 [「How to create connected apps using the API (API を使用した接続アプリケーションの作成方法)」](https://help.mulesoft.com/s/article/How-to-create-connected-apps-creation-using-API)​を参照してください。 ## [](#mq-scopes)Anypoint MQ スコープ Anypoint MQ スコープは、指定した組織および環境のすべての宛先に適用されます。 Anypoint MQ スコープには次のようなものがあります。
UI のスコープ API のスコープ 説明

Administer destinations (宛先の管理)

administer:destinations

[View destinations (宛先の参照)]​ および ​[Clear destinations (宛先のクリア)]​ と同じ権限に加えて、次の権限。

  • 新しいキュー、メッセージエクスチェンジ、バインドを作成する。

  • 既存のキュー、メッセージエクスチェンジ、バインドを編集する。

  • キューからメッセージをパージする。

Clear destinations (宛先のクリア)

clear:destinations

[View destinations (宛先の参照)]​ と同じ権限。

Destination subscriber for given environment (特定の環境の宛先のサブスクライバー)

subscribe:destinations

  • 宛先からメッセージをコンシュームします。

  • 宛先からメッセージを削除します。

Destination publisher for given environment (特定の環境の宛先のパブリッシャー)

publish:destinations

  • 宛先にメッセージを送信します。

  • 宛先でメッセージ TTL を更新します。

Manage clients (クライアントの管理)

manage:clients

[View clients (クライアントの参照)]​ と同じ権限に加えて、クライアントアプリケーションの作成権限。

Read MQ stats (MQ 統計情報の参照)

read:stats

組織と環境の統計情報を参照します。

View clients (クライアントの参照)

view:clients

各クライアントアプリケーションのクライアントアプリケーション ID とクライアントシークレットを含めすべてのクライアントアプリケーションを参照します。

View destinations (宛先の参照)

view:destinations

  • すべての宛先とその設定 (​[ID]​、​[Type (種別)]​、​[Message TTL (メッセージ TTL)]​、​[Message Lock Default TTL (メッセージロックのデフォルト TTL)]​)。

  • キュー待機中​メッセージを参照します。

  • インフライト​メッセージの統計情報を参照します。

# 環境およびアクセス権限の設定 アクセス管理を使用して環境を作成し、組織の Anypoint Platform で Anypoint MQ 機能を管理するユーザーのロールを管理できます。 ## [](#環境の作成)環境の作成 自分に Anypoint MQ アクセス権を付与する前に、権限を関連付ける環境を作成します。 1. Anypoint Platform から ​**\[Access Management (アクセス管理)\]**​ を選択します。 2. [「新しい環境の作成方法」](https://docs.mulesoft.com/jp/access-management/environments#to-create-a-new-environment)​の手順を実行します。 ## [](#ユーザーへの-anypoint-mq-アクセス権の付与)ユーザーへの Anypoint MQ アクセス権の付与 最初に自分に Anypoint MQ アクセス権を付与してから、組織内の他のユーザーにアクセス権を付与します。 Anypoint MQ で使用するユーザー権限を自分に割り当てます。 これらの権限により、キューとエクスチェンジを作成してクライアントアプリケーションと宛先を作成できます。 同じ情報を使用して、組織内の他のユーザーにユーザー権限を割り当てることができます。 ユーザー権限を割り当てる手順は、次のとおりです。 1. Anypoint Platform から、​**\[Access Management (アクセス管理)\]**​ をクリックします。 2. [「ユーザーへの権限の付与」](https://docs.mulesoft.com/jp/access-management/users#grant-user-permissions)​の手順を実行します。 ## [](#チームを使用した権限の割り当て)チームを使用した権限の割り当て チーム機能を使用して、ユーザーのグループを作成し、そのグループのメンバーに特定の権限を割り当てます。 たとえば、管理権限を持つ管理者チームや、参照権限のみを持つユーザーチームを作成できます。 ロールを作成すると、管理者、開発者、または情報の参照のみ必要で変更は行わないユーザーなど、組織内のユーザーにアクセス権を割り当てることができます。 1. Anypoint Platform から、​**\[Access Management (アクセス管理)\]**​ をクリックします。 2. 「[チームを使用したユーザーアクセスの管理](https://docs.mulesoft.com/jp/access-management/teams)」の手順を実行します。 ## [](#anypoint-mq-権限)Anypoint MQ 権限 Anypoint MQ 権限は次のとおりです。
権限 説明

View clients (クライアントの参照)

各クライアントアプリケーションのクライアントアプリケーション ID とクライアントシークレットを含めすべてのクライアントアプリケーションを参照します。

View destinations (宛先の参照)

  • すべての宛先とその設定 (​[ID]​、​[Type (種別)]​、​[Message TTL (メッセージ TTL)]​、​[Message Lock Default TTL (メッセージロックのデフォルト TTL)]​)。

  • キュー待機中​メッセージを参照します。

  • インフライト​メッセージの統計情報を参照します。

Clear destinations (宛先のクリア)

[View destinations (宛先の参照)]​ と同じ権限。

Manage clients (クライアントの管理)

[View clients (クライアントの参照)]​ と同じ権限に加えて、クライアントアプリケーションの作成権限。

Administer destinations (宛先の管理)

[View destinations (宛先の参照)]​ および ​[Clear destinations (宛先のクリア)]​ と同じ権限に加えて、次の権限。

  • 新しいキュー、メッセージエクスチェンジ、バインドを作成する。

  • 既存のキュー、メッセージエクスチェンジ、バインドを編集する。

  • キューからメッセージをパージする。

Manage destinationss (宛先の管理) (非推奨)

[View destinations (宛先の参照)]​ および ​[Clear destinations (宛先のクリア)]​ と同じ権限に加えて、次の権限。

  • 新しいキューとメッセージエクスチェンジを作成する。

  • 既存のキューとメッセージエクスチェンジの設定を編集する。

  • [Message Sender (メッセージ送信者)]​ と ​[Browser (ブラウザー)]​ ページにアクセスする。

  • メッセージを削除する。

  • キューからメッセージをパージする。

この権限は非推奨です。 [Manage (管理)] 権限​と同じ機能を実行するには、次の権限をユーザーに割り当てます。

  • Administer destinations (宛先の管理)​

  • Destination subscriber for given environment (特定の環境の宛先のサブスクライバー)​

  • Destination publisher for given environment (特定の環境の宛先のパブリッシャー)​

Destination subscriber for given environment (特定の環境の宛先のサブスクライバー)

  • 宛先からメッセージをコンシュームします。

  • 宛先からメッセージを削除します。

Destination publisher for given environment (特定の環境の宛先のパブリッシャー)

  • 宛先にメッセージを送信します。

  • 宛先でメッセージ TTL を更新します。

Read MQ stats (MQ 統計情報の参照)

組織と環境の統計情報を参照します。

## [](#環境の切り替え)環境の切り替え 環境を切り替える手順は、次のとおりです。 1. Anypoint Platform から、​**\[MQ\]**​ > ​**\[Design (設計)\]**​ をクリックします。 ![環境ボタン](/mulesoft/current/ja-jp/mq/_images/mq-switch-env.png) 2. **\[Switch Environment (環境の切り替え)\]**​ ボックスで、別の環境に切り替えたりデフォルトの環境を変更したりできます。 - 別の環境に切り替えるには、その環境の名前をクリック (たとえば、以前に Sandbox 環境を作成したことがあれば​**「Sandbox」**​) し、​**\[Switch (切り替え)\]**​ をクリックします。 - デフォルトの環境を変更するには、​**\[Open your profile to change the default environment (プロファイルを開いてデフォルト環境を変更)\]**​ をクリックし、​**\[Default (デフォルト)\]**​ 環境リストから別の環境を選択します。 ## [](#関連情報)関連情報 - [アクセス管理について](https://docs.mulesoft.com/jp/access-management/)