各种类型的数据库,都可以根据%JBOSS_HOME%/docs/examples/jca/下的示例文档配置,更详细的参数配置可参阅JBOSS.com上的文档或…/docs/dtd/下的dtd定义来配置。
下面以oracle为例,提供我们在生产机环境的配置。
该xml文件需要被部署在%JBOSS_HOME%/server/all(or default)/deploy/下,对应的数据库驱动程序jar需copy至部署的配置的lib下,如…all/lib/或…default/lib/下。
<datasources>
<local-tx-datasource>
<jndi-name>jdbc/TestDataSource</jndi-name>
<connection-url>jdbc:oracle:thin:@192.168.1.2:1521:test</connection-url>
<!--<connection-url>jdbc:oracle:oci:@youroracle-tns-name</connection-url>-->
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>test</user-name>
<password>test</password>
<!-- Uses the pingDatabase method to check a connection is still valid before handing it out from the pool -->
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name>
<!-- Checks the Oracle error codes and messages for fatal errors -->
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<min-pool-size>5</min-pool-size><!—最小连接池数目-->
<max-pool-size>800</max-pool-size><!—最大连接池数目-->
<idle-timeout-minutes>5</idle-timeout-minutes><!—数据库连接空闲时间,单位为分钟,如果负载较大,可以设为5,如果一般,可以设为3-->
<!—在从连接池里获得一个连接之前先通过执行一个简单的SQL来校验connection的有效性-->
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
</local-tx-datasource>
</datasources>
如有多个数据源,则根据数据库的类型,配置完成,部署在上述路径下即可。
在代码中可通过JNDI来从连接池中获取连接。
……
Context ctx = new javax.naming.InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:jdbc/TestDataSource ");
Connection con = ds.getConnection();
……