WebSphere Application Server for i5/OS, Version 6.1   
             オペレーティング・システム: i5/OS

             目次と検索結果のパーソナライズ化

接続ハンドル

接続ハンドルは、物理接続を表現するものです。 WebSphere Application Server でバックエンド・リソース (リレーショナル・データベースなど) を使用するには、そのリソースへの接続を取得する必要があります。 getConnection() メソッドを呼び出すと、戻される接続ハンドル を受け取ります。 このハンドルは物理接続ではありません。 物理接続は接続マネージャーにより管理されます。

接続ハンドルの使用方法とその動作に影響を与える重要な 2 つの構成があります。1 番目は res-sharing-scope であり、 これは、データ・ソースまたは接続ファクトリーのルックアップに使用される resource-reference によって定義されます。 このプロパティーは、この接続が共用可能であるかどうかを接続マネージャーに知らせます。

接続ハンドルの動作に影響を与える 2 つ目の要素は、使用パターン です。 基本的に 2 つの使用パターンがあります。 1 つ目は 取得/使用/クローズ・パターンと呼ばれます。 このパターンは、単一のメソッド内で、 しかも同じデータ・ソースまたは接続ファクトリーから接続を取得する可能性がある別のメソッドを呼び出さずに、 使用されます。 このパターンを使用するアプリケーションは、以下のことを行います。
  1. 接続を取得する
  2. 作業を実行する
  3. コミットする (必要に応じて)
  4. 接続を閉じる
2 番目の使用パターンは、キャッシュされたハンドル・パターンと呼ばれます。 これは、アプリケーションが以下のことを実行する場合に使用します。
  1. 接続を取得する
  2. グローバル・トランザクションを開始する
  3. この接続で作業を実行する
  4. グローバル・トランザクションをコミットする
  5. この接続で作業を再実行する
キャッシュされたハンドルは、 トランザクションおよびメソッドの境界を越えて、アプリケーションによって保持される接続ハンドルです。 キャッシュされたハンドルを使用する場合は、以下の考慮事項に留意してください。

次のコード・セグメントはキャッシュ接続パターンを示しています。

Connection conn = ds.getConnection();
ut.begin();
conn.prepareStatement("....."); --> Connection runs in global transaction mode
...
ut.commit();
conn.prepareStatement(".....");   ---> Connection still valid but runs in autoCommit(True);
...

共用不可能接続

以降のセクションで説明しているように、 共用不可能res-sharing-scope で検索された接続ハンドルにはいくつかの特性があります。

共用可能接続

以降のセクションで説明しているように、共用可能res-sharing-scope で検索された接続ハンドルにはいくつかの特性があります。

遅延接続関連の最適化

WebSphere Application Server バージョン 5.0 では、Java 2 Platform, Enterprise Edition (J2EE) Connector (J2C) 接続マネージャーにスマート・ハンドル・サポートが実装されています。このテクノロジーにより、アプリケーションへの接続ハンドルの割り振りにおいて、その接続ハンドルに関連した管理対象の接続を他のアプリケーションでも使用できるようになります (接続がオリジナルのアプリケーションによって使用されていないことが前提)。この概念は、J2EE コネクター・アーキテクチャー (JCA) 1.5 仕様に組み込まれています。(JCA 1.5 仕様文書の『Lazy Connection Association Optimization』のセクションに記載。)スマート・ハンドルのサポートにより、ConnectionManager オブジェクト上のメソッド、LazyAssociatableConnectionManager() メソッド、および新しいマーカー・インターフェースの DissociatableManagedConnection クラスの使用が導入されます。環境内でこの機能を使用するには、リソース・アダプターのプロバイダーを構成する必要があります。(RRA の場合、WebSphere Application Server そのものがプロバイダーとなります。) 以下のコードの断片に、スマート・ハンドル・サポートを組み込む方法を示します。
package javax.resource.spi;
import javax.resource.ResourceException;

interface LazyAssociatableConnectionManager { // application server
    void associateConnection(
        Object connection, ManagedConnectionFactory mcf,
        ConnectionRequestInfo info) throws ResourceException;
}

interface DissociatableManagedConnection { // resource adapter
    void dissociateConnections() throws ResourceException;
}

DissociatableManagedConnection インターフェースは、Connection オブジェクトにもう 1 つの状態である非アクティブ を導入します。これで、Connection は、アクティブ、クローズ、および非アクティブの状態を持つようになりました。接続オブジェクトは、対応する ManagedConnection オブジェクトがクリーンアップされると、非アクティブ状態になります。接続は、アプリケーション・コンポーネントが接続の再使用を試みるまで、非アクティブとなります。リソース・アダプターは接続マネージャーを呼び戻して、接続をアクティブな ManagedConnection オブジェクトに再度関連付けます。




関連概念
リソース・アダプター
データ・ソース
接続プール
共用不可能接続および共用可能接続
分離レベル設定の要件
概念トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 5:46:14 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.base.iseries.doc/info/iseries/ae/cdat_cconpconh.html