---
schema_version: "1"
id: ba240744b6a79ba83eda0281dd84ba14111f39ad3930e57cf95cdcca0903c8c1
title: アプリケーションでのクロスリージョンフェールオーバーの設定
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/anypoint-mq-connector/latest/anypoint-mq-failover.md
canonical_url: https://docs.mulesoft.com/jp/anypoint-mq-connector/latest/anypoint-mq-failover
source_site: docs.mulesoft.com
content_type: documentation
content_hash: d865907f8bc8e1ece949b89f4facef9c4368af86897290392ab723e1b881e97d
description: MuleSoft Documentation Site
release: 4.x
latest: true
---
# アプリケーションでのクロスリージョンフェールオーバーの設定

Mule 4 用 Anypoint MQ Connector バージョン 4.0.7 以降では、標準キューのフェールオーバー機能が提供されます。

この機能はデフォルトでは有効化されていません。 この機能を使用する前に、[mq::mq-failover.adoc](#mq::mq-failover.adoc)を参照してください。

<table><tbody><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content">キューのフェールオーバーを有効にしてプライマリリージョンがダウンすると、プライマリリージョンが使用可能になるまで、データは国外のリージョンに存在する可能性があります。</td></tr></tbody></table>

フェールオーバー機能を使用する手順は、次のとおりです。

- アプリケーションの場合
    
    1. Anypoint MQ Connector をバージョン 4.0.7 以降にアップグレードします。
    2. [アプリケーションでフェールオーバーを有効にします](#enable-failover-feature)​。
    3. (省略可能) ​[チェック頻度を変更します](#configure-check-frequency)​。
- Anypoint MQ の場合
    
    1. キューを作成または変更し、​[キューのフェールオーバーを有効にします](#mq::mq-failover.adoc#enable-failover)​。

## [](#enable-failover-feature)アプリケーションでフェールオーバーを有効にする

アプリケーションでフェールオーバー機能を有効にするには、​`cross.region.failover.feature.enabled`​ システムプロパティを ​`true`​ に設定します。 このプロパティは、デフォルトでは ​`false`​ に設定されています。

<table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">このフェールオーバープロパティが有効になっている場合、コネクタはプライマリキューとフェイーオーバーキューの両方の処理メッセージを処理します。 中断を防ぐため、アプリケーションは代替キューから直接パプリッシュやコンシュームを行うことはできません。 詳細は、​<a href="#consume-directly-fallback">代替キューから直接メッセージを処理する</a>​を参照してください。</td></tr></tbody></table>

Runtime Manager でこのアプリケーションプロパティを設定する手順は、次のとおりです。

1. Anypoint Platform にサインインし、ナビゲーションメニューで ​**\[Runtime Manager\]**​ をクリックします。
2. 新しいアプリケーションをデプロイするか、デプロイ済みアプリケーションの設定を変更します。
3. **\[Properties (プロパティ)\]**​ タブで、プロパティの値を指定します。次に例を示します。
    
    ![cross.region.failover.feature.enabled が true に設定された \[Properties (プロパティ)\] テーブル](_images/mq-set-properties-failover-enabled.png)

または、Anypoint Studio の ​**\[Run Configurations (設定を実行)\]**​ でプロパティを設定します。 詳細は、​[「Mule アプリケーションでのシステムプロパティ」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​を参照してください。

## [](#consume-directly-fallback)代替キューから直接メッセージを処理する

アプリケーションでのフェールオーバーが有効になっている場合、Anypoint MQ Connector は代替キュー (​`_fb`​ サフィックス付き) を管理し、代替キューで直接パブリッシュ、コンシューム、またはサブスクライブ操作を実行できないようにします。 アプリケーションが代替キューに直接接続すると、Anypoint MQ Connector はエラーを返します。

```none
java.lang.IllegalArgumentException: Using fallback queue directly is not supported
```

(Anypoint MQ UI から) キューのフェールオーバーを無効にしてアプリケーションを再起動すると、コネクタは代替キューからパブリッシュまたはコンシュームしなくなります。

フェールオーバーを無効にした後に代替キューに残っているメッセージを処理する手順は、次のとおりです。

1. 代替キューから直接処理するようにアプリケーションを設定します。
    
    Consume または Subscriber 操作の場合、​**\[Queue (キュー)\]**​ 項目を代替キューの名前に設定します。次に例を示します。
    
    ![キュー名 myDemoQueue\_fb を含む Subscriber 設定](/mulesoft/current/ja-jp/anypoint-mq-connector/latest/_images/mq-publish-fallback-queue-subscribe.png)
2. アプリケーションが代替キューから直接メッセージをコンシュームできるようにします。
    
    1. Anypoint Platform にサインインし、ナビゲーションメニューで ​**\[Runtime Manager\]**​ をクリックします。
    2. デプロイ済みアプリケーションの設定を変更します。
    3. **\[Properties (プロパティ)\]**​ タブで、​`cross.region.failover.feature.enabled`​ システムプロパティを ​`false`​ に設定します。次に例を示します。
        
        ![cross.region.failover.feature.enabled が false に設定された \[Properties (プロパティ)\] テーブル](_images/mq-set-properties-failover-disabled.png)
        
        または、Anypoint Studio の ​**\[Run Configurations (設定を実行)\]**​ でプロパティを設定します。 詳細は、​[「Mule アプリケーションでのシステムプロパティ」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​を参照してください。

## [](#configure-check-frequency)代替キューチェックの頻度を設定する

デフォルトでは、プライマリリージョンがダウンしている場合、Anypoint MQ Connector は次のチェックを行います。

- 新規メッセージの場合、5 分 (300,000 ミリ秒) ごとに 1 回代替キューをチェック
- 1 分 (60,000 ミリ秒) ごとに 1 回プライマリリージョンがバックアップされているかどうかをプライマリキューでチェック

この動作を変更するには、次のプロパティを設定します。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 3.3333%;">
<col style="width: 46.6666%;">
<col style="width: 16.6666%;">
<col style="width: 16.6666%;">
<col style="width: 16.6669%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">プロパティ</th>
<th class="tableblock halign-left valign-top">説明</th>
<th class="tableblock halign-left valign-top">最小値</th>
<th class="tableblock halign-left valign-top">最大値</th>
<th class="tableblock halign-left valign-top">デフォルト値</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top" colspan="5"><p class="tableblock"><code>primary.region.status.check.interval.ms</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">代替リージョンからの処理時にコネクタがプライマリリージョンの可用性をチェックする頻度</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1 分
(60,000 ミリ秒)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">15 分
(900,000 ミリ秒)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1 分
(60,000 ミリ秒)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" colspan="5"><p class="tableblock"><code>fallback.messages.check.interval.ms</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">コネクタが受信メッセージの代替キューをチェックする頻度</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1 分
(60,000 ミリ秒)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">12 時間
(4,320 万ミリ秒)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">5 分
(300,000 ミリ秒)</p></td>
</tr>
</tbody>
</table>

Runtime Manager でこれらのアプリケーションプロパティを設定する手順は、次のとおりです。

1. Anypoint Platform にサインインし、ナビゲーションメニューで ​**\[Runtime Manager\]**​ をクリックします。
2. 新しいアプリケーションをデプロイするか、デプロイ済みアプリケーションの設定を変更します。
3. **\[Properties (プロパティ)\]**​ タブで、次のプロパティの値 (ミリ秒) を指定します。
    
    ![プライマリおよび代替状況チェック間隔を含む \[Properties (プロパティ)\] テーブル](_images/mq-set-properties-failover.png)

または、Anypoint Studio の ​**\[Run Configurations (設定を実行)\]**​ でこれらのプロパティを設定します。 詳細は、​[「Mule アプリケーションでのシステムプロパティ」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​を参照してください

### [](#check-interval)チェック間隔の考慮事項

チェック間隔を微調整するためにアプリケーションプロパティ値を設定する方法を決定する場合、次の点を考慮してください。

- プライマリリージョンのダウンタイム中に代替リージョンにパブリッシュする場合、Anypoint MQ Connector の Publish 操作は、デフォルトでプライマリリージョンが 1 分に 1 回バックアップされているかどうかを確認します。
    
    フローが Publish 操作をトリガーする頻度が 1 分に 1 回未満の場合、コネクタはこの操作がトリガーされるたびにプライマリリージョンがバックアップされているかどうかを確認します。
    
    この動作を微調整するには、​`primary.region.status.check.interval.ms`​ の値を、フローが Publish 操作をトリガーする頻度より大きい値に設定します。
- フローが Anypoint MQ Connector の Consumer または Subscriber 操作をトリガーすると、コネクタはプライマリキューをチェックする前に、代替キューで新規メッセージをチェックします (デフォルトでは 5 分ごと)。
    
    フローが Consumer または Subscriber 操作をトリガーする頻度が 5 分ごとよりも短い場合、コネクタはプライマリキューからコンシュームする前に、代替キューで新規メッセージを確認します。
    
    代替キューをチェックする頻度を減らすには、​`fallback.messages.check.interval.ms`​ の値を、フローが Consumer または Subscriber 操作をトリガーする頻度より大きい値に設定します。
    
    <table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">このプロパティを高い値に設定すると、代替キュー内のメッセージは頻繁に処理されないため、メッセージは順不同になる可能性があります。</td></tr></tbody></table>

## [](#関連情報)関連情報

- [mq::mq-failover.adoc](#mq::mq-failover.adoc)
- [CloudHub 2.0 でのプロパティを使用したアプリケーションの動作の変更](https://docs.mulesoft.com/cloudhub-2/ch2-manage-props)
- [Manage Properties for Applications on CloudHub](https://docs.mulesoft.com/cloudhub/cloudhub-manage-props)
- [Anypoint Exchange の Anypoint MQ Connector](https://anypoint.mulesoft.com/exchange/com.mulesoft.connectors/anypoint-mq-connector/)
- [Anypoint MQ Connector Release Notes for Mule 4](https://docs.mulesoft.com/jp/release-notes/connector/anypoint-mq-connector-release-notes-mule-4)