167 lines
4.8 KiB
HTML
167 lines
4.8 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<LINK rel="stylesheet" type="text/css" href="../../../rzahg/ic.css">
|
|
|
|
<title>Example: Connection factory lookup</title>
|
|
</head>
|
|
|
|
<BODY>
|
|
<!-- Java sync-link -->
|
|
<SCRIPT LANGUAGE="Javascript" SRC="../../../rzahg/synch.js" TYPE="text/javascript"></SCRIPT>
|
|
|
|
<h6><a name="datacflk"></a>Example: Connection factory lookup</h6>
|
|
|
|
<pre> 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 verify 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 Information.
|
|
if (verbose) System.out.println(" ** EISProductName :"
|
|
+ metaData.getEISProductName());
|
|
if (verbose) System.out.println(" EISProductVersion:"
|
|
+ metaData.getEISProductVersion());
|
|
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);
|
|
}
|
|
}
|
|
}</pre>
|
|
|
|
</body>
|
|
</html>
|
|
|