Showing posts with label oracle10g. Show all posts
Showing posts with label oracle10g. Show all posts

Wednesday, April 27, 2011

JBoss DataSource Configuration


Hi All,

Following is the Demo for connecting remote java client to DataSource(Oracle) on JBoss.....

Step-1:Create a oracle-ds.xml and place it in server\default\deploy directory

oracle-ds.xml (server\default\deploy\oracle-ds.xml)

<datasources>
<local-tx-datasource>
          <jndi-name>MyOracleDS</jndi-name>
          <connection-url>jdbc:oracle:thin:@localhost:1521/XE</connection-url>
          <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
          <user-name>SYSTEM</user-name>
          <password>tiger</password>
          <exception-sorter-class-name>
          org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
          </exception-sorter-class-name>
          <use-java-context>false</use-java-context>
                    <!-- should only be used on drivers after 3.22.1 with "ping" support
                    <valid-connection-checker-class-name>
                    org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker
                    </valid-connection-checker-class-name>
                    -->
                    <!-- sql to call when connection is created
                    <new-connection-sql>some arbitrary sql</new-connection-sql>
                    -->
                    <!-- sql to call on an existing pooled connection when it is obtained from pool -
                     MySQLValidConnectionChecker is preferred for newer drivers
                     -->
                    <check-valid-connection-sql>select * from dual</check-valid-connection-sql>
                       <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
                     <metadata>
                     <type-mapping>Oracle9i</type-mapping>
                     </metadata>
</local-tx-datasource>
</datasources>


Step-2 :Create a Java Program DataSourceClient.java

DataSourceClient.java

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import java.util.Properties;


public class DataSourceClient {


    public static void main(String[] args) throws Exception {
        testDataSource();
    }


    private static void testDataSource()
            throws NamingException, SQLException {
        final String sql = "select systimestamp from dual";


        Properties properties = new Properties();


        properties.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
        properties.put("java.naming.factory.url.pkgs","org.jboss.namingrg.jnp.interfaces ");
        properties.put("java.naming.provider.url","jnp://localhost:1099");
        InitialContext ic = new InitialContext(properties);
        DataSource ds = null;
        try {
            ds = (DataSource) ic.lookup("java:/MyOracleDS");
        } catch (Exception e) {
            System.out.println(e);
        }
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
            con = ds.getConnection();
            stmt = con.createStatement();
            rs = stmt.executeQuery(sql);
            while (rs.next()) {
                System.out.println(rs.getString(1));
            }
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (stmt != null) {
                stmt.close();
            }
            if (con != null) {
                con.close();
            }
        }
    }
}

echo %classpath%
C:\JBoss\jboss-5.1.0.GA\jboss-5.1.0.GA\client\*;C:\Oracle\Ora81\jdbc\lib\classes111.zip;C:\Users\xyz\Downloads\jars\ojdbc6.jar;.;

Output:
2011-04-28 01:53:02.694 -4:00....

Thanks
Sathya