package com.sun.s1asdev.jdbc.statementwrapper.ejb; import javax.ejb.*; import javax.naming.*; import javax.sql.*; import java.sql.*; public class SimpleBMPBean implements EntityBean { protected DataSource ds; protected DataSource compareDs; public void setEntityContext(EntityContext entityContext) { Context context = null; try { context = new InitialContext(); ds = (DataSource) context.lookup("java:comp/env/DataSource"); compareDs = (DataSource) context.lookup("java:comp/env/CompareDataSource"); } catch (NamingException e) { throw new EJBException("cant find datasource"); } System.out.println("[**SimpleBMPBean**] Done with setEntityContext...."); } public Integer ejbCreate() throws CreateException { return new Integer(1); } public boolean statementTest() { boolean result = true; Connection conFromDS = null; Connection conFromStatement = null; Connection conFromCompareDS = null; Statement stmt = null; PreparedStatement stmt1 = null; try { conFromDS = ds.getConnection(); conFromCompareDS = compareDs.getConnection(); stmt = conFromDS.createStatement(); stmt1 = conFromCompareDS.prepareStatement("INSERT INTO COMPARE_RECORDS VALUES (?,?)"); System.out.println("Statement Test : stmt hashCode : " + stmt.hashCode()); stmt1.setString(1, "S"); stmt1.setInt(2, stmt.hashCode()); stmt1.executeUpdate(); } catch (SQLException sqe) { sqe.printStackTrace(); result = false; } finally { try { if (stmt1 != null) { stmt1.close(); } } catch (SQLException sqe) { } try { if (conFromDS != null) { conFromDS.close(); } } catch (SQLException sqe) { } try { if (conFromCompareDS != null) { conFromCompareDS.close(); } } catch (SQLException sqe) { } } return result; } public boolean preparedStatementTest() { boolean result = true; Connection conFromDS = null; Connection conFromCompareDS = null; Connection conFromStatement = null; PreparedStatement stmt = null; PreparedStatement stmt1 = null; try { conFromDS = ds.getConnection(); conFromCompareDS = compareDs.getConnection(); stmt = conFromDS.prepareStatement("select * from customer_stmt_wrapper"); stmt1 = conFromCompareDS.prepareStatement("INSERT INTO COMPARE_RECORDS VALUES (?,?)"); System.out.println("Prepared statement Test : stmt hasCode : " + stmt.hashCode()); stmt1.setString(1, "PS"); stmt1.setInt(2, stmt.hashCode()); stmt1.executeUpdate(); } catch (SQLException sqe) { result = false; } finally { try { if (stmt1 != null) { stmt1.close(); } } catch (SQLException sqe) { } try { if (conFromDS != null) { conFromDS.close(); } } catch (SQLException sqe) { } try { if (conFromCompareDS != null) { conFromCompareDS.close(); } } catch (SQLException sqe) { } } return result; } public boolean callableStatementTest() { boolean result = true; Connection conFromDS = null; Connection conFromCompareDS = null; CallableStatement stmt = null; PreparedStatement stmt1 = null; try { conFromDS = ds.getConnection(); conFromCompareDS = compareDs.getConnection(); stmt = conFromDS.prepareCall("select * from customer_stmt_wrapper"); stmt1 = conFromCompareDS.prepareStatement("INSERT INTO COMPARE_RECORDS VALUES (?,?)"); System.out.println("Callable statement Test : stmt hashCode : " + stmt.hashCode()); stmt1.setString(1, "CS"); stmt1.setInt(2, stmt.hashCode()); stmt1.executeUpdate(); } catch (SQLException sqe) { result = false; } finally { try { if (stmt1 != null) { stmt1.close(); } } catch (SQLException sqe) { } try { if (conFromDS != null) { conFromDS.close(); } } catch (SQLException sqe) { } try { if (conFromCompareDS != null) { conFromCompareDS.close(); } } catch (SQLException sqe) { } } return result; } public boolean metaDataTest() { boolean result = false; Connection conFromDS = null; Connection conFromMetaData = null; DatabaseMetaData dbmd = null; try { conFromDS = ds.getConnection(); dbmd = conFromDS.getMetaData(); conFromMetaData = dbmd.getConnection(); System.out.println("statementTest : conFromDS : " + conFromDS); System.out.println("statementTest : conFromDbMetadata : " + conFromMetaData); if (conFromDS == conFromMetaData || conFromDS.equals(conFromMetaData)) { result = true; } } catch (SQLException sqe) { } finally { try { if (conFromDS != null) { conFromDS.close(); } } catch (SQLException sqe) { } } return result; } public boolean resultSetTest() { boolean result = false; Connection conFromDS = null; Connection conFromResultSet = null; Statement stmt = null; ResultSet rs = null; try { conFromDS = ds.getConnection(); stmt = conFromDS.createStatement(); rs = stmt.executeQuery("select * from customer_stmt_wrapper"); conFromResultSet = rs.getStatement().getConnection(); System.out.println("ResultSet test : conFromDS : " + conFromDS); System.out.println("ResultSet test : conFromResultSet: " + conFromResultSet); if (conFromDS == conFromResultSet || conFromDS.equals(conFromResultSet)) { result = true; } } catch (SQLException sqe) { } finally { try { if (rs != null) { rs.close(); } } catch (SQLException sqe) { } try { if (stmt != null) { stmt.close(); } } catch (SQLException sqe) { } try { if (conFromDS != null) { conFromDS.close(); } } catch (SQLException sqe) { } } return result; } public boolean compareRecords(String stmtType) { boolean result = false; Connection con = null; Statement stmt = null; ResultSet rs = null; int firstCon = 0; int secondCon = 0; try { con = compareDs.getConnection(); stmt = con.createStatement(); rs = stmt.executeQuery("select * from COMPARE_RECORDS where REC_STMT_TYPE='" + stmtType + "'"); if (rs.next()) { firstCon = rs.getInt(2); System.out.println(">> first connection : " + firstCon); } if (rs.next()) { secondCon = rs.getInt(2); System.out.println(">> second connection : " + secondCon); } if (firstCon != 0 && secondCon != 0 && firstCon != secondCon) { result = true; } } catch (SQLException ex) { ex.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } } catch (SQLException sqe) { } try { if (stmt != null) { stmt.close(); } } catch (SQLException sqe) { } try { if (con != null) { con.close(); } } catch (SQLException sqe) { } } return result; } public void ejbLoad() { } public void ejbStore() { } public void ejbRemove() { } public void ejbActivate() { } public void ejbPassivate() { } public void unsetEntityContext() { } public void ejbPostCreate() { } }