Example: Handling data access exception - ConnectionWaitTimeoutException (for the JDBC API)

In all cases in which the ConnectionWaitTimeoutException is caught, there is very little to do for recovery.

The following code fragment shows how to use this exception in the JDBC API...

    public void test1() {
        java.sql.Connection conn = null;
        java.sql.Statement stmt = null;
        java.sql.ResultSet rs = null;

        try {
            // Look for datasource
            java.util.Properties props = new java.util.Properties();
            props.put(
                javax.naming.Context.INITIAL_CONTEXT_FACTORY,
                "com.ibm.websphere.naming.WsnInitialContextFactory");
            ic = new javax.naming.InitialContext(props);
            javax.sql.DataSource ds1 =
                (javax.sql.DataSource) javax.rmi.PortableRemoteObject.narrow(
                    ic.lookup(jndiString),
                    javax.sql.DataSource.class);

            // Get Connection.
            conn = ds1.getConnection();
            stmt = conn.createStatement();
            rs = stmt.executeQuery("select * from mytable where this = 54");
        }
        catch (com.ibm.websphere.ce.cm.ConnectionWaitTimeoutException cwte) {
            //notify the user that the system could not provide a 
            //connection to the database.  This usually happens when the 
            //connection pool is full and there is no connection 
            //available for to share.
        }
        catch (java.sql.SQLException sqle) {
            // handle other database problems.
        }
        finally {
            if (rs != null)
                try {
                    rs.close();
                }
                catch (java.sql.SQLException sqle1) {
                }
            if (stmt != null)
                try {
                    stmt.close();
                }
                catch (java.sql.SQLException sqle1) {
                }
            if (conn != null)
                try {
                    conn.close();
                }
                catch (java.sql.SQLException sqle1) {
                }
        }
    }


 

See Also

Data sources
Connection pooling
Connection pool settings