Example: Connection factory lookup
import javax.resource.cci.*; import javax.resource.ResourceException; import javax.naming.*; import java.util.*; /** * This class is used to look up a connection factory. */ public class ConnectionFactoryLookup { String jndiName = "java:comp/env/eis/SampleConnection"; boolean verbose = false; /** * main method */ public static void main(String[] args) { ConnectionFactoryLookup cfl = new ConnectionFactoryLookup(); cfl.checkParam(args); try { cfl.lookupConnectionFactory(); } catch(javax.naming.NamingException ne) { System.out.println("Caught this " + ne); ne.printStackTrace(System.out); } catch(javax.resource.ResourceException re) { System.out.println("Caught this " + re); re.printStackTrace(System.out); } } /** * This method does a simple Connection Factory lookup. * * After the Connection Factory is looked up, a connection is got from * the Connection Factory. Then the Connection MetaData is retrieved * to verfiy the connection is workable. */ public void lookupConnectionFactory() throws javax.naming.NamingException, javax.resource.ResourceException { javax.resource.cci.ConnectionFactory factory = null; javax.resource.cci.Connection conn = null; javax.resource.cci.ConnectionMetaData metaData = null; try { // lookup the connection factory if (verbose) System.out.println("Look up the connection factory..."); InitialContext ic = new InitialContext(); factory = (ConnectionFactory) ic.lookup(jndiName); // Get connection if (verbose) System.out.println("Get the connection..."); conn = factory.getConnection(); // Get ConnectionMetaData metaData = conn.getMetaData(); // Print out the metadata Informatin. if (verbose) System.out.println(" ** EISProductName :" + metaData.getEISProductName()); if (verbose) System.out.println(" EISProductVersion:" + metaData.getEISProductName()); if (verbose) System.out.println(" UserName :" + metaData.getUserName()); System.out.println("Connection factory "+jndiName+" is successfully looked up"); } catch (javax.naming.NamingException ne) { // Connection factory cannot be looked up. throw ne; } catch (javax.resource.ResourceException re) { // Something wrong with connections. throw re; } finally { if (conn != null) { try { conn.close(); } catch (javax.resource.ResourceException re) { } } } } /** * Check and gather all the parameters. */ private void checkParam(String args[]) { int i = 0, j; String arg; char flag; boolean help = false; // parse out the options while (i < args.length && args[i].startsWith("-")) { arg = args[i++]; // get the database name if (arg.equalsIgnoreCase("-jndiName")) { if (i < args.length) jndiName = args[i++]; else { System.err.println("-jndiName requires a J2C Connection Factory JNDI name"); break; } } else { // check for verbose, cmp , bmp for (j = 1; j < arg.length(); j++) { flag = arg.charAt(j); switch (flag) { case 'v' : case 'V' : verbose = true; break; case 'h' : case 'H' : help = true; break; default : System.err.println("illegal option " + flag); break; } } } } if ((i != args.length) || help) { System.err.println("Usage: java ConnectionFactoryLookup [-v] [-h]"); System.err.println(" [-jndiName the J2C Connection Factory JNDI name]"); System.err.println("-v=verbose"); System.err.println("-h=this information"); System.exit(1); } } }
See Also
Connection factory