JDBC Checker

From MediaWiki

Revision as of 09:35, 11 February 2008 by Dusan (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This is a simple way of checking compatibility between JDBC driver and database with Ant. Ant has integrated support for access to SQL databases which is used by following build file

  [dusan@woodoo JDBCChecker]$ cat build.xml
  <project name="JDBC Checker"
           default="check"
           basedir=".">
  <description>
      ANT build file which allows checking the compatibility 
      between JDBC driver and database.
  </description>
  <target name="check">
        <sql driver="<insert JDBC URL>"
           onerror="stop"
        url="<insert connection URL>"
        userid="<insert user name>"
        password="<insert password>">
        <classpath>
           <pathelement path="<insert path to JDBC driver here>"/>
        </classpath>
        </sql>
  </target>
  </project>

Possible values of the JDBC URL are: jdbc.driver.OracleDriver, oracle.jdbc.driver.OracleDriver,... in the case of Oracle database or com.mysql.jdbc.Driver,... in the case of MySQL database.

Possible values of the connection URL are: jdbc:oracle:thin:@machine_name:port_number:instance_name for the Orace Type 4 JDBC Driver or jdbc:mysql://host_name:port/dbname for the MySQL Connector/J JDBC Driver.

If ant check command retrieves something like

  [dusan@woodoo jdbc]$ ant check
  Buildfile: build.xml
  check:
        [sql] Executing commands
        [sql] 1 of 1 SQL statements executed successfully
  BUILD SUCCESSFUL
  Total time: 1 second

your JDBC driver is compatible with DB, otherwise it is not and you should change it.

This is the example of build.xml file in the case of Oracle database

  <project name="JDBC Checker"
           default="check"
           basedir=".">
  <description>
      ANT build file which allows to check compatibility 
      between JDBC driver and database.
  </description>
  <target name="check">
          <sql driver="oracle.jdbc.driver.OracleDriver"
           onerror="stop"
           url="jdbc:oracle:thin:@(DESCRIPTION =
           (ADDRESS = (PROTOCOL = TCP)(HOST = lcgr8-v.cern.ch)(PORT = 10121))
           (ADDRESS = (PROTOCOL = TCP)(HOST = lcgr7-v.cern.ch)(PORT = 10121))
           (ADDRESS = (PROTOCOL = TCP)(HOST = lcgr3-v.cern.ch)(PORT = 10121))
           (ADDRESS = (PROTOCOL = TCP)(HOST = lcgr4-v.cern.ch)(PORT = 10121))
           (ADDRESS = (PROTOCOL = TCP)(HOST = lcgr5-v.cern.ch)(PORT = 10121))
           (ADDRESS = (PROTOCOL = TCP)(HOST = lcgr6-v.cern.ch)(PORT = 10121))
           (ADDRESS = (PROTOCOL = TCP)(HOST = lcgr1-v.cern.ch)(PORT = 10121))
           (ADDRESS = (PROTOCOL = TCP)(HOST = lcgr2-v.cern.ch)(PORT = 10121))
           (ENABLE=BROKEN)
           (LOAD_BALANCE = yes)
           (CONNECT_DATA =
           (SERVER = DEDICATED)
           (SERVICE_NAME = lcg_same.cern.ch)
           (FAILOVER_MODE = (TYPE = SELECT)(METHOD = BASIC)(RETRIES = 200)(DELAY = 15))))"
           userid="lcg_same_r"
           password="xxxxxx">
           <classpath>
                  <pathelement path="usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/ojdbc14.jar"/>
           </classpath>
           select * from tab;
           </sql>
  </target>
  </project>

This is the example of build.xml file in the case of MySQL database:

  <project name="JDBC Checker"
           default="check"
           basedir=".">
  <description>
      ANT build file which allows to check compatibility 
      between JDBC driver and database.
  </description>
  <target name="check">
           <sql driver="com.mysql.jdbc.Driver"
           onerror="stop"
           url="jdbc:mysql://localhost:3306/mysql"
           userid="root"
           password="xxxxxx">
           <classpath>
              <pathelement path="/usr/share/java/mysql-connector-java-3.1.12.jar"/>
           </classpath>
           desc db;
           </sql>
  </target>
  </project>

Suggestions and comments can be sent to Dusan Vudragovic (dusan at ipb.ac.rs).

Personal tools