將使用 WSCallHelper 介面的應用程式移轉至 Liberty

WebSphere® Application Server traditional 中所用的 WSCallHelper 介面必須移轉為「Java™ 資料庫連線功能 (JDBC)」封套型樣,應用程式才能在 Liberty 中運作。 在 WebSphere Application Server Liberty 中,無法使用 WebSphere Application Server 7.0 已淘汰的 WSCallHelper API。

關於這項作業

WebSphere Application Server traditional 中,應用程式利用 WSCallHelper 介面來存取非標準供應商專用的 JDBC API。 對於 Liberty,請使用 JDBC 封套型樣,這是一種更標準的 JDBC 規格型方法。 封套型樣可讓 JDBC 程式設計師實作 Wrapper 介面,以在應用程式伺服器管理的環境中,安全存取供應商專用的 JDBC API。 封套型樣若要運作,JDBC 驅動程式必須符合 JDBC 4.0 或更新版本的規格層次。 如果要確定 JDBC 規格層次,請洽詢您的驅動程式供應商。

程序

實作 Wrapper 介面 isWrapperForunwrap 方法來存取供應商專用的 JDBC API。

下列範例示範如何利用 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();

指示主題類型的圖示 作業主題



「時間戳記」圖示 前次更新: 2016 年 11 月 30 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_mig_wscallhelper
檔名:twlp_mig_wscallhelper.html