Migración de aplicaciones que utilizan la interfaz WSCallHelper a Liberty
La interfaz WSCallHelper, que se utiliza en WebSphere Application Server tradicional, se debe migrar al patrón de derivador Java™ Database Connectivity (JDBC) para que la aplicación funcione en Liberty. Las API WSCallHelper, que estaban en desuso en WebSphere Application Server 7.0, no están disponibles en WebSphere Application Server Liberty.
Acerca de esta tarea
En WebSphere Application Server tradicional, las aplicaciones utilizan la interfaz WSCallHelper para acceder a API JDBC específicas de proveedor no estándar. Para Liberty, utilice el patrón de derivador JDBC, que es un enfoque basado en la especificación JDBC más estándar. El patrón de derivador permite a los programadores JDBC implementar la interfaz Wrapper para acceder a API JDBC específicas de proveedor de forma segura en un entorno gestionado de servidor de aplicaciones. Para que el patrón de derivador funcione, el controlador JDBC debe ser compatible con el nivel de especificación JDBC 4.0 o posterior. Para determinar el nivel de especificación JDBC, consulte al proveedor del controlador.
Procedimiento
Los ejemplos siguientes demuestran cómo puede utilizar el patrón de derivador JDBC para obtener una conexión Oracle nativa o un objeto PreparedStatement Oracle nativo para llamar a los métodos específicos de proveedor no estándar.
- Obtenga un objeto 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); // Realizar aquí algunos trabajos específicos de proveedor. } conn.close();
- Obtenga un objeto 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); // Realizar aquí algunos trabajos específicos de proveedor. } pstmt.close(); conn.close();