JDBC Data Source connection creation - help
elad86 Mar 16, 2012 11:36 AMI have successfully got a JNDI data source working in JBoss 7.1.x. However, when I attempt to set up a JDBC data source connection I run into issues. I've read through many of the JBoss 7 documentation sites / JBoss dicussions / search sites, but have not found the correct solution.
I've started with a standalone installation. The datasource section in my standalone.xml file contains the following:
<datasource jta="true" jndi-name="java:jboss/datasources/testDS" pool-name="testDS" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:postgresql://localhost:5432/testDS</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<driver>postgresql-9.1-901.jdbc4.jar</driver>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>false</prefill>
<use-strict-min>false</use-strict-min>
</pool>
<security>
<user-name>postgres</user-name>
<password>postgres</password>
</security>
<validation>
<check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
</validation>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="postgresql-9.1-901.jdbc4.jar" module="org.postgresql"/>
</drivers>
NOTE: I found one site that stated that the use-java-context="false" would work, but didn't for me
I have tried using both methods of pushing out the database driver: module AND deployment. I have gone with the module method.
I created the appropriate modules directory structure and files. My module.xml file contains:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="org.postgresql">
<resources>
<resource-root path="postgresql-9.1-901.jdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<!-- <module name="javax.transaction.api"/> --> <!-- Only necessary on Linux and Mac -->
</dependencies>
</module>
In my application I have a jboss-web.xml file which contains:
<?xml version="1.0" encoding="UTF-8" ?>
<jboss-web>
<context-root>/test-app</context-root>
<resource-ref>
<res-ref-name>jdbc/testDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:jboss/datasources/testDS</jndi-name>
</resource-ref>
</jboss-web>
When I attempt to change the jndi-name to include jdbc I get a message stating that the jndi-name must start with "java:" OR "java:jboss..."
I have seen references to persistence.xml, but this file doesn't exist in a default JBoss 7.x installation. I have also seen a could of references to jndi-name="java:jboss/jdbc/yourDS", but JBoss 7 appears to want jndi-name="java:jboss/datasource/yourDS".
What am I missing? Any help would be appreciated
Thank you
Dale