Home > Apache Geronimo v1.0 > Documentation > Apache Geronimo v1.0 - User's Guide > Administration > Administrative tasks > Configuring DB2 Datasource |
Article donated by: Hernan Cunico
This article shows you how to configure a DB2 datasource in Apache Geronimo v1.0. Normally you would just use the Geronimo Administration Console and the creation pool wizard for this task but that method allows you to specify only ONE driver jar file. In the case of DB2 you would have multiple files, one for the driver and two additional files for the license.
This article focuses on those tasks for manually adding the additional jar files to the datasource configuration.
Add a DB2 entry in the repository by creating a db2\jars directory in the Geronimo repository.
<geronimo_home>\repository\db2\jars
The db2\jars directory used in this article is just an example. As Apache Geronimo moves forward and use Maven2 for instance, all the content in the repository will be organized in packages. You may want to consider using a naming like com.ibm.db2 in your testings and future implementations. |
Copy the following files from <sqllib_home>\java to the <geronimo_home>\repository\db2\jars directory.
For additional information on the DB2 JDBC drivers and licenses visit the DB2 Information Center available at the following URL:
http://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm.db2.udb.doc/ad/t0010264.htm
Rename the files you just copied so Geronimo can recognize them.
Original name | Renamed |
---|---|
db2jcc.jar | db2jcc-8.1.8.jar |
db2jcc_license_cu.jar | db2jcc_license_cu-8.1.8.jar |
db2jcc_license_cisuz.jar | db2jcc_license_cisuz-8.1.8.jar |
For this particular case DB2 v8.1.8.806 was used. Failing to rename these files will cause the server to throw an exception.
Start the Geronimo server by running the following command:
<geronimo_home>\bin\geronimo run
Once the server is started open the Geronimo Administration Console by pointing a Web browser to the following URL:
Enter system and manager as the username and password.
On the Console Navigation menu on the left select Database Pools and create a new pool by clicking on Using the Geronimo database pool wizard.
On Step 1 of the create database pool wizard enter the pool name and database type as illustrated in the following figure and then click Next.
On Step 2 leave the JDBC Driver Class: field by default (com.ibm.db2.jcc.DB2Driver). If you click on the Driver JAR: pull-down menu you should now see the three DB2 jars you copied in the repository.
Since Geronimo v1.0 only allow you to select ONE jar file from this menu select the first jar on the list, db2jcc-8.1.8.jar which is the driver itself. You will add manually the license jars in the next steps.
Enter the remanining connection information as shown in the following figure. For this example the default db2admin user and password was used and a SAMPLE database was created via the DB2 Control Center.
Click Next.
Leave the options on Step 3 by default, you should see the message Driver Status: Loaded Successfully.
If you click on Test Connection now the connection will fail because you have not yet included the license files in the deployment plan.
com.ibm.db2.jcc.c.SqlException: The version of the IBM Universal JDBC driver in use is not licensed for connectivity to QDB2/NT databases. To connect to this DB2 server, please obtain a licensed copy of the IBM DB2 Universal Driver for JDBC and SQLJ. An appropriate license file db2jcc_license_*.jar for this target platform must be installed to the application classpath. Connectivity to QDB2/NT databases is enabled by any of the following license files: { db2jcc_license_cu.jar, db2jcc_license_cisuz.jar } at com.ibm.db2.jcc.c.o.db(o.java:3103) at com.ibm.db2.jcc.c.o.cb(o.java:3049) at com.ibm.db2.jcc.b.b.cb(b.java:629) at com.ibm.db2.jcc.b.b.<init>(b.java:306) ...
Click on Skip Test and Show Plan.
Copy the content of the Deployment Plan: and past it as a new db2_plan.xml file. You can save this file in a directory of your convenience, for simplicity (although not recommended) we saved this file to the <geronimo_home>\bin directory.
The deployment plan generated by the wizard is shown in the following example.
<?xml version="1.0" encoding="UTF-8"?> <connector configId="user/database-pool-DB2_Test/1/car" xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.0"> <dep:dependency xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.0"> <dep:uri>db2/db2jcc/8.1.8/jar</dep:uri> </dep:dependency> <resourceadapter> <outbound-resourceadapter> <connection-definition> <connectionfactory-interface>javax.sql.DataSource</connectionfactory-interface> <connectiondefinition-instance> <name>DB2_Test</name> <config-property-setting name="Password">db2admin</config-property-setting> <config-property-setting name="CommitBeforeAutocommit">false</config-property-setting> <config-property-setting name="Driver">com.ibm.db2.jcc.DB2Driver</config-property-setting> <config-property-setting name="ExceptionSorterClass">org.tranql.connector.AllExceptionsAreFatalSorter</config-property-setting> <config-property-setting name="UserName">db2admin</config-property-setting> <config-property-setting name="ConnectionURL">jdbc:db2://localhost:50000/SAMPLE</config-property-setting> <connectionmanager> <local-transaction/> <single-pool> <match-one/> </single-pool> </connectionmanager> </connectiondefinition-instance> </connection-definition> </outbound-resourceadapter> </resourceadapter> </connector>
Once you saved this deployment plan you can click on Cancel at the bottom left corner of the Database Pool portlet.
Edit the db2_plan.xml file you just created and add the dependencies for the license jar files as illustrated in the following example.
<?xml version="1.0" encoding="UTF-8"?> <connector configId="user/database-pool-DB2_Test/1/car" xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.0"> <!-- ##### COMMENT OUT THIS SECTION ##### --> <!-- --> <!-- <dep:dependency xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.0"> --> <!-- <dep:uri>db2/db2jcc/8.1.8/jar</dep:uri> --> <!-- </dep:dependency> --> <!-- ##### ADD THE FOLLOWING THREE DEPENDENCIES ##### --> <dependency> <uri>db2/db2jcc/8.1.8/jar</uri> </dependency> <dependency> <uri>db2/db2jcc_license_cu/8.1.8/jar</uri> </dependency> <dependency> <uri>db2/db2jcc_license_cisuz/8.1.8/jar</uri> </dependency> <!-- ##### THE REMAINING PART DOES NOT CHANGE ##### --> <resourceadapter> <outbound-resourceadapter> <connection-definition> <connectionfactory-interface>javax.sql.DataSource</connectionfactory-interface> <connectiondefinition-instance> <name>DB2_Test</name> <config-property-setting name="Password">db2admin</config-property-setting> <config-property-setting name="CommitBeforeAutocommit">false</config-property-setting> <config-property-setting name="Driver">com.ibm.db2.jcc.DB2Driver</config-property-setting> <config-property-setting name="ExceptionSorterClass">org.tranql.connector.AllExceptionsAreFatalSorter</config-property-setting> <config-property-setting name="UserName">db2admin</config-property-setting> <config-property-setting name="ConnectionURL">jdbc:db2://localhost:50000/SAMPLE</config-property-setting> <connectionmanager> <local-transaction/> <single-pool> <match-one/> </single-pool> </connectionmanager> </connectiondefinition-instance> </connection-definition> </outbound-resourceadapter> </resourceadapter> </connector>
To the deploy the DB2 datasource you just created run the following command from the <geronimo_home>\bin directory.
deploy --user system --password manager deploy db2_plan.xml ..\repository\tranql\rars\tranql-connector-1.1.rar
You should receive the following message:
E:\geronimo\bin>deploy --user system --password manager deploy db2_plan.xml ..\repository\tranql\rars\tranql-connector-1.1.rar
Deployed user/database-pool-DB2_Test/1/car
If you go back to the Database Pools portlet you should see the DB2_Test datasource listed in the portlet.