1 28 29 import java.util.Properties ; 30 31 import javax.naming.InitialContext ; 32 import javax.sql.DataSource ; 33 import javax.sql.XADataSource ; 34 import javax.transaction.TransactionManager ; 35 36 import org.objectweb.jotm.Jotm; 37 import org.objectweb.transaction.jta.TMService; 38 39 import org.enhydra.jdbc.standard.StandardXADataSource; 40 import org.enhydra.jdbc.pool.StandardXAPoolDataSource; 41 42 45 public class DataBaseLayer { 46 47 private static TransactionManager tm; 48 49 public static void main(String [] args) { 50 Properties props = new Properties (); 51 try { 52 props.load(ClassLoader.getSystemResourceAsStream("spy.properties")); 53 } catch (Exception e) { 54 System.err.println("no properties file found to init the database"); 55 System.exit(1); 56 } 57 58 System.out.println("\n database configuration:"); 59 props.list(System.out); 60 System.out.println("------------------------\n"); 61 62 try { 63 TMService jotm = new Jotm(true, true); 64 tm = jotm.getTransactionManager(); 65 66 StandardXAPoolDataSource ds = null; 67 StandardXADataSource xads = new StandardXADataSource(); 68 ds = new StandardXAPoolDataSource(xads); 69 ds.setVerbose(true); 70 ds.setDebug(true); 71 72 xads.setDriverName(props.getProperty("driver")); 73 xads.setUrl(props.getProperty("url")); 74 xads.setUser(props.getProperty("login")); 75 xads.setPassword(props.getProperty("password")); 76 xads.setTransactionManager(tm); 77 78 ds.setUser(props.getProperty("login")); 79 ds.setPassword(props.getProperty("password")); 80 ds.setDataSource(xads); 81 ds.setDataSourceName("XADataSource"); 82 83 InitialContext ictx = new InitialContext (); 84 ictx.rebind("XADataSource", (XADataSource ) xads); 85 System.out.println( 86 "bound XADataSource with JNDI name 'XADataSource'"); 87 ictx.rebind("DataSource", (DataSource ) ds); 89 System.out.println("bound DataSource with JNDI name 'DataSource'"); 90 ictx.rebind("UserTransaction", jotm.getUserTransaction()); 91 System.out.println( 92 "bound UserTransaction with JNDI name 'UserTransaction'"); 93 ictx.rebind("javax.transaction.TransactionManager", tm); 94 System.out.println( 95 "bound TransactionManager JNDI name 'javax.transaction.TransactionManager'"); 96 97 } catch (Exception e) { 98 e.printStackTrace(); 99 } 100 } 101 } 102 | Popular Tags |