[size=large][color=blue]JBoss下数据源名称的配置[/color][/size]
JBoss下配置数据源比较简单,只需将配置好的××-ds.xml放到default/deploy下,JBoss启动的时候会自动的发布这些资源。配置文件如下:
[b]oracle-ds.xml[/b]
但是这样发布上去,在程序中使用ctx.lookup("Firefly")取得数据源的时候,抛出NameNotFoundException,看了一下JNDI树,发现Firefly被放到了java命名空间下。因此,应该使用ctx.lookup("java:/Firefly")来获取数据源。
这对于新规项目来说,没有什么问题,在配置文件里面改一下JNDIName即可。但是,对于移植和升级项目,应尽量保持新旧环境JNDI名的一致性,减少代码以及配置文件的修改量。因此,看了一下JBoss的文档,发现××-ds.xml中有一个use-java-context属性,该属性设置为false时,JBoss就不会将配置的数据源绑定到java命名空间下,就可以使用原始的JNDI(Firefly)名进行检索。配置文件修改后如下:
[b]oracle-ds.xml[/b]
JBoss下配置数据源比较简单,只需将配置好的××-ds.xml放到default/deploy下,JBoss启动的时候会自动的发布这些资源。配置文件如下:
[b]oracle-ds.xml[/b]
<datasources>
<local-tx-datasource>
<jndi-name>Firefly</jndi-name>
<connection-url>jdbc:oracle:thin:@serverhost:1521:oradb</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>prismtest</user-name>
<password>prismtest</password>
<exception-sorter-class-name>
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
</exception-sorter-class-name>
<min-pool-size>40</min-pool-size>
<max-pool-size>40</max-pool-size>
<prepared-statement-cache-size>10</prepared-statement-cache-size>
<check-valid-connection-sql>SELECT 1 FROM DUAL</check-valid-connection-sql>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
但是这样发布上去,在程序中使用ctx.lookup("Firefly")取得数据源的时候,抛出NameNotFoundException,看了一下JNDI树,发现Firefly被放到了java命名空间下。因此,应该使用ctx.lookup("java:/Firefly")来获取数据源。
这对于新规项目来说,没有什么问题,在配置文件里面改一下JNDIName即可。但是,对于移植和升级项目,应尽量保持新旧环境JNDI名的一致性,减少代码以及配置文件的修改量。因此,看了一下JBoss的文档,发现××-ds.xml中有一个use-java-context属性,该属性设置为false时,JBoss就不会将配置的数据源绑定到java命名空间下,就可以使用原始的JNDI(Firefly)名进行检索。配置文件修改后如下:
[b]oracle-ds.xml[/b]
<datasources>
<local-tx-datasource>
<jndi-name>Firefly</jndi-name>
<use-java-context>false</use-java-context>
...
...
</local-tx-datasource>
</datasources>