Migration des applications utilisant l'interface WSCallHelper vers Liberty

L'interface WSCallHelper qui est utilisée dans WebSphere Application Server Traditional, doit être migrée vers le modèle d'encapsuleur JDBC (Java™ Database Connectivity) pour que l'application fonctionne dans Liberty. Les API WSCallHelper, qui ont été dépréciés dans WebSphere Application Server 7.0, ne sont pas disponibles dans WebSphere Application Server Liberty.

Pourquoi et quand exécuter cette tâche

Dans WebSphere Application Server Traditional, les applications utilisent l'interface WSCallHelper pour accéder aux API JDBC non standard spécifiques aux fournisseurs. Dans Liberty, utilisez le modèle d'encapsuleur JDBC, qui est une approche basée sur la spécification JDBC plus standard. Le modèle d'encapsuleur permet aux programmeurs JDBC d'implémenter l'interface Wrapper pour accéder aux API JDBC spécifiques aux fournisseurs de manière sûre dans un environnement géré du serveur d'applications. Pour que le modèle d'encapsuleur fonctionne, le pilote JDBC doit être conforme à JDBC 4.0 ou à un niveau de spécification ultérieur. Pour déterminer le niveau de spécification JDBC, consultez votre fournisseur de pilote.

Procédure

Implémentez les méthodes isWrapperFor et unwrap de l'interface Wrapper pour accéder aux API JDBC spécifiques au fournisseur.

Les exemples suivants montrent comment vous pouvez utiliser le modèle d'encapsuleur JDBC pour obtenir une connexion Oracle native ou un objet PreparedStatement Oracle natif pour appeler les méthodes non standard spécifiques au fournisseur.

  • Obtenez un objet 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();
  • Obtenir un objet 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();

Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_mig_wscallhelper.html