第16章 コンジット

概要

コンジットは、アウトバウンド接続を実装するために使用されるトランスポートアーキテクチャーの低レベルの部分です。それらの動作とライフサイクルは、システムのパフォーマンスと処理負荷に影響を与える可能性があります。

概要

コンジットは、Apache CXF ランタイムでクライアント側またはアウトバウンドのトランスポートの詳細を管理します。これらは、ポートのオープン、アウトバウンド接続の確立、メッセージの送信、およびアプリケーションと単一の外部エンドポイント間の応答のリッスンを担当します。アプリケーションが複数のエンドポイントに接続する場合、エンドポイントごとに 1 つのコンジットインスタンスがあります。

各トランスポートタイプは、コンジットインターフェイスを使用して独自のコンジットを実装します。これにより、アプリケーションレベルの機能とトランスポート間の標準化されたインターフェイスが可能になります。

一般に、クライアント側のトランスポートの詳細を設定するときに、アプリケーションで使用されているコンジットについてのみ心配する必要があります。ランタイムがコンジットを処理する方法の基本的なセマンティクスは、一般に、開発者が心配する必要のあるものではありません。

ただし、コンジットを理解することが役立つ場合があります。

  • カスタムトランスポートの実装
  • 限られたリソースを管理するための高度なアプリケーションチューニング

コンジットのライフサイクル

コンジットは、クライアント実装オブジェクトによって管理されます。作成されると、コンジットはクライアント実装オブジェクトの期間中存続します。コンジットのライフサイクルは次のとおりです。

  1. クライアント実装オブジェクトが作成されると、ConduitSelector オブジェクトへの参照が付与されます。
  2. クライアントがメッセージを送信する必要がある場合は、コンジットセレクターからのコンジットへのリクエストの参照です。

    メッセージが新しいエンドポイントに対するものである場合、コンジットセレクターは新しいコンジットを作成し、それをクライアント実装に渡します。それ以外の場合は、ターゲットエンドポイントのコンジットへの参照をクライアントに渡します。

  3. コンジットは、必要に応じてメッセージを送信します。
  4. クライアント実装オブジェクトが破棄されると、それに関連付けられているすべてのコンジットが破棄されます。

コンジットの重み

コンジットオブジェクトの重みは、トランスポートの実装によって異なります。HTTP コンジットは非常に軽量です。JMS コンジットは、JMS Session オブジェクトと 1 つ以上の JMSListenerContainer オブジェクトに関連付けられるため重くなります。