Flex Gateway新着情報
Governance新着情報
Monitoring API Manager接続モジュール (コネクタ) は、最も一般的なモジュールです。Mule フローと外部リソース間の接続を提供します。
接続フレームワークの ConnectionProvider
でこれらの接続を設定して、Mule Runtime Engine が処理する接続を作成、切断、および説明します。
接続を使用する方法についての詳細は、接続の使用を参照してください。
新しい ConnectionProvider
を宣言するには、ConnectionProvider
インターフェースを実装する新しいクラスを作成する必要があります。ConnectionProvider
インターフェースは、ConnectionProvider
が処理するインスタンスのクラスを示す 1 つの型引数を受け取る型付けされたインターフェースです。
この例は、ConnectionProvider
インターフェースを実装する MyConnectionProvider
クラスを宣言します。
public class MyConnectionProvider implements ConnectionProvider<MyConnection> {
@Parameter
private String password;
public MyConnection connect() throws ConnectionException {
return new MyConnection(password);
}
public void disconnect(MyConnection connection) {
connection.invalidate();
}
public ConnectionValidationResult validate(MyConnection connection) {
return connection.isValid() ?
ConnectionValidationResult.success() :
ConnectionValidationResult.failure("Connection is not valid", new InvalidConnectionException());
}
}
定義された各 ConnectionProvider は、インスタンス化可能で公開されており、デフォルトのコンストラクターがある必要があります。
|
接続へのアクセスを必要とする他のコンポーネント (操作やソースなど) は、MyConnection
クラスのインスタンスを介して接続へのアクセスを取得します。
上記の例には、@Parameter
とメソッド connect()
、disconnect()
、および validate()
が含まれます。次のセクションでそれぞれについて説明します。
その他の Module
要素と同様に、ConnectionProvider
には @Parameters
を使用できます。
各 ConnectionProvider
の @Parameters
は、connect()
メソッドで、実際の接続をインスタンス化するために必要な設定可能な要素である必要があります。
複数の操作で必要な一般的な @Parameters は、ConnectionProvider には含まれていない必要があります。それは設定 @Parameter で一般的なケースです。「@Parameter セクション」を参照してください。
|
connect()
メソッドは、設定されたすべてのパラメーターを使用して実際の接続をインスタンス化します。返される接続はすぐに使用可能であると期待されることを知ることが非常に重要です。
返される接続は、インターフェースやコントラクトを実装する必要はありません。ソケット接続を参照するとは限りません。単なるクライアントやそれと同様の何かである可能性があります。
上記のように、ConnectionProvider
の connect()
メソッドは有効で完全に機能する接続を返す必要があります。接続はアイドル状態中に古くなる可能性があるため、ConnectionProvider
には validate(Connection)
メソッドが用意されています。このメソッドは、使用する前に接続を確認するために呼び出されます。
検証に失敗した場合、接続は無効になり、新しい接続が取得されます。
validate(Connection)
メソッドは、ConnectionValidationResult
型のオブジェクトを返します。これは ConnectionValidationResult.success()
と ConnectionValidationResult.failure()
の 2 つの型のいずれかになります。
failure()
が返されると、説明メッセージと失敗 Exception
(接続が無効な理由を提供) が新しい failure()
に提供されます。必要に応じて、エラー処理機能を追加するために ErrorType
を指定できます。
failure(String, Exception)
failure(String, ErrorType, Exception)
各 ConnectionProvider
は、0、1 つ、または複数の ConnectionProvider
を持つことができる接続にバインドされます。
ConnectionProvider
の実装をモジュール設定に追加するには、@ConnectionProviders
アノテーションを使用する必要があります。このアノテーションは、Module
が定義する各 ConnectionProvider
を宣言します。@Extension
または @Configuration
レベルで使用できます。
拡張に複数の ConnectionProvider
が含まれる場合、@Alias
を使用してそれぞれに意味のある名前を付ける必要があります。慣例により、その接続プロバイダーの名前については、指定された名前に `-connection
サフィックスが追加されます。
@Extension
レベルで宣言された ConnectionProvider
の例:
@Extension(name="xyz")
@Operations(Operations.class)
@ConnectionProviders(MyConnectionProvider.class)
public class MyModule {
@Parameter
private String someParameter;
public String getSomeParameter() {
return someParameter;
}
}
サンプル MyConnectionProvider
を使用したこの設定の XML の例:
<xyz:config name="a-xyz-config" someParameter="value">
<xyz:connection password="aVeryDifficultPassword"/>
</xyz:config>
ConnectionProvider
のいくつかの接続管理戦略を
指定できます。
接続はプールされます。接続のキャッシュは維持されるため、将来の要求で必要になったときに再利用できます。
これは、接続の作成にコストがかかる場合や、接続インスタンスへの同時アクセスがサポートされていない場合に役立ちます。
このプーリング戦略では、プーリングプロファイル設定が自動的に接続に追加されます。次の表に、[Use default connection pool configuration (デフォルトの接続プール設定を使用)] 種別のプーリングプロファイルのデフォルト値を示します。
名前 | デフォルト値 |
---|---|
Max Active (最大アクティブ) |
|
Max Idle (最大アイドル) |
|
Max Wait (最大待機) |
|
Exhausted Action (枯渇アクション) |
|
Initialisation Policy (初期化ポリシー) |
|
Min Eviction Millis (最小除去時間) |
|
Eviction Check Interval Millis (除去確認間隔) |
|
プーリング接続管理を有効にするには、PoolingConnectionProvider
インターフェースを実装します。
詳細は、「Pooling Profiles (プーリングプロファイル)」を参照してください。
設定インスタンスごとに、1 つの特定の設定が常に同じ接続を取得するように、接続が確立されてキャッシュされます。設定自体が停止されるまで、接続は維持されます。
キャッシュ接続管理を有効にするには、CachedConnectionProvider
インターフェースを実装します。
詳細は、「Caching (キャッシュ)」を参照してください。