---
schema_version: "1"
id: 78d5ea7ae2d3a8e4cad21ffdc96362622fc15a865824f4e7614787f927356984
title: 再接続戦略の移行
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-runtime/4.9/migration-patterns-reconnection-strategies.md
canonical_url: https://docs.mulesoft.com/jp/mule-runtime/4.9/migration-patterns-reconnection-strategies
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 31f80b1d9155c5e7dfd1a21494283f34bda917281fe6d0efad2f29eeac2f16b4
description: MuleSoft Documentation Site
release: "4.9"
latest: false
---
# 再接続戦略の移行

構文の観点から見れば、再接続は Mule 3 から Mule 4 ではそれほど変更されていません。ただし、動作には大きな違いがあります。

Mule 3 では、再接続戦略は各コンポーネントの config 要素で指定されていました。これらの戦略には 2 つの目的があります。

- 実行中のアプリケーションがエンドポイントとの接続を失った場合に再接続する。
- アプリケーションがデプロイされているときにすべての接続を検証する。

Mysql データベースに接続するアプリケーションがあるとします。デプロイメント時にその接続を確立できなければ、デプロイメントが失敗します。これは、デプロイされるすべてのアプリケーションが機能する状態であることを保証するための設定でした。

Mule 3 の例: 再接続設定 (MySQL データベース用)

```xml
<db:mysql-config ...>
  <reconnect frequency="4000" count="4"/>`
</db:mysql-config>

<db:mysql-config ...>
  <reconnect-forever frequency="4000"/>`
</db:mysql-config>
```

ただし、接続が失敗した場合に、デプロイメントを失敗にしたくないユースケースがあります。たとえば、アプリケーションに、1 日 1 回だけ午前 3 時に外部 SFTP サーバーに到達するフローがあるとします。このアプリケーションが午前 8 時にデプロイされていて、SFTP サーバーがダウンした場合、デプロイメントを失敗にする理由がありません。実際に必要なときにサーバーが稼働していることを確認する時間はたっぷりあります。

Mule 3 でこれを実行するには、​`blocking="false"`​ オプションを使用して、再接続を非同期で行い、デプロイメントが中止されないようにする必要がありました。

Mule 3 の例: 非同期再接続設定 (MySQL データベース用)

```xml
<db:mysql-config ...>
  <reconnect frequency="4000" count="4" blocking="false"/>`
</db:mysql-config>
```

Mule 4 では単純に、接続テストが失敗した場合にデプロイメントが失敗するかどうかを指定できます。

Mule 4 の例: 再接続設定 (SQL データベース用)

```xml
<!-- fail deployment is connection cannot be established -->
<db:mssql-connection ...>
  <reconnection failsDeployment="true">
    <reconnect frequency="4000" count="4"/>
  </reconnection>
</db:mssql-connection>

<!-- don't fail deployment is connection cannot be established -->
<db:mssql-connection ...>
  <reconnection >
    <reconnect-forever frequency="4000" />
  </reconnection>
</db:mssql-connection>
```

デフォルトでは、接続を確立できないとログに警告が生成されるだけです。

## [](#操作レベル再接続戦略)操作レベル再接続戦略

Mule 3 では、同じ再接続戦略が config 要素で、デプロイメント時と実行時の両方に使用されました。たとえば、フローを実行しているデータベースとの接続が失われると、同じ再接続戦略が使用されます。

Mule 4 では、この動作がデフォルトになりますが、操作またはイベントソースレベルで別の戦略を指定することもできます。

Mule 4 の例: 再接続設定 (HTTP 要求用)

```xml
<flow name="reconnectionDemo">
  <http:listener path="test" config-ref="httpListener">
    <reconnect count="1" frequency="5000"/>
    <http:response>
      <http:body>#[{'my': 'map'}]</http:body>
      <http:headers>
          #[{{'content-type' : 'text/plain'}}]
      </http:headers>
    </http:response>
  </http:listener>

  <http:request path="unreliable/endpoint" config-ref="httpRequester" method="GET">
    <reconnect count="1" frequency="1000"/>
  </http:request>

</flow>
```

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

- [コネクタの移行](https://docs.mulesoft.com/jp/mule-runtime/4.9/migration-connectors)