WSCallHelper インターフェースを使用するアプリケーションの Liberty へのマイグレーション

アプリケーションが Liberty で機能するためには、WebSphere® Application Server traditional で使用される WSCallHelper インターフェースを Java™ Database Connectivity (JDBC) ラッパー・パターンにマイグレーションする必要があります。WSCallHelper API は、WebSphere Application Server 7.0 で非推奨になり、WebSphere Application Server Liberty では使用できません。

このタスクについて

WebSphere Application Server traditional では、アプリケーションは、ベンダー固有の非標準 JDBC API にアクセスするために WSCallHelper インターフェースを使用します。Liberty では、 JDBC 仕様をベースにした、より標準に近い手法である JDBC ラッパー・パターン を使用してください。ラッパー・パターンは、JDBC プログラマーが Wrapper インターフェースを実装して、 アプリケーション・サーバー管理環境でベンダー固有の JDBC API に安全にアクセスするのを可能にします。ラッパー・パターンが機能するためには、 JDBC ドライバーが JDBC 4.0 以降の仕様レベルに準拠している必要があります。 JDBC 仕様レベルを判別するには、ご使用のドライバーのベンダーに確認してください。

手順

ベンダー固有の JDBC API にアクセスするために、Wrapper インターフェース、isWrapperFor メソッドおよび unwrap メソッドを実装します。

以下の例は、JDBC ラッパー・パターンを使用してネイティブ Oracle 接続またはネイティブ Oracle PreparedStatement オブジェクトを取得して、ベンダー固有の非標準メソッドを呼び出す方法を示しています。

  • oracle.jdbc.OracleConnection オブジェクトを取得します。
    Context ic = new InitialContext();
    DataSource ds = (DataSource)ic.lookup("jdbc/OracleDS");
    Connection conn = ds.getConnection();
    
    if (conn.isWrapperFor(oracle.jdbc.OracleConnection.class)) {
        oracle.jdbc.OracleConnection oraCon = conn.unwrap(oracle.jdbc.OracleConnection.class);
        // Do some vendor-specific work here.
    }
    conn.close();
  • oracle.jdbc.OraclePreparedStatement オブジェクトを取得します。
    Context ic = new InitialContext();
    DataSource ds = (DataSource)ic.lookup("jdbc/OracleDS");
    Connection conn = ds.getConnection();
    
    PreparedStatement pstmt = conn.prepareStatement("SELECT 1 FROM DUAL");
    if(pstmt.isWrapperFor(oracle.jdbc.OraclePreparedStatement.class)){
        oracle.jdbc.OraclePreparedStatement opstmt = pstmt.unwrap(oracle.jdbc.OraclePreparedStatement.class);
        // Do some vendor-specific work here.
    }
    pstmt.close();
    conn.close();

トピックのタイプを示すアイコン タスク・トピック

ファイル名: twlp_mig_wscallhelper.html