1

从我的 jboss EAP 5.1 日志中,我可以看到数据源不断绑定,然后每 5 秒左右解除绑定......有人知道为什么吗?我已经为数据源和日志附加了我的 oracle-ds.xml 片段。

<local-tx-datasource>
<jndi-name>datasource</jndi-name>
<connection-url>jdbc:oracle:thin:@myDB:1521:SID</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>username</user-name>
<password>userpass</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<min-pool-size>5</min-pool-size>
<max-pool-size>100</max-pool-size>
<set-tx-query-timeout/>
<query-timeout>300</query-timeout>
<idle-timeout-minutes>15</idle-timeout-minutes>
<metadata>
    <type-mapping>Oracle10g</type-mapping>
</metadata>

2012-11-08 08:15:46,487 信息 [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] (HDScanner) 绑定 ConnectionManager 'jboss.jca:service=DataSourceBinding,name=datasource' 到 JNDI 名称 'java:datasource' 2012- 11-08 08:15:51,657 INFO [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] (HDScanner) 未绑定 ConnectionManager 'jboss.jca:service=DataSourceBinding,name=datasource' 来自 JNDI 名称'java:datasource' 2012-11- 08 08:15:51,826 INFO [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] (HDScanner) 绑定 ConnectionManager 'jboss.jca:service=DataSourceBinding,name=datasource' 到 JNDI 名称 'java:datasource' 2012-11-08 08 :15:56,996 信息 [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] (HDScanner) 未绑定 ConnectionManager 'jboss.jca:service=DataSourceBinding,name=datasource' 来自 JNDI 名称'java:datasource' 2012-11-08 08:15:57,174 INFO [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] (HDScanner) 绑定 ConnectionManager 'jboss.jca:service=DataSourceBinding,name=datasource' 到 JNDI 名称 'java:datasource' 2012-11-08 08:16:02,424 INFO [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] (HDScanner ) 来自 JNDI 名称 'java:datasource' 的未绑定 ConnectionManager 'jboss.jca:service=DataSourceBinding,name=datasource' 2012-11-08 08:16:02,591 INFO [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] (HDScanner) 绑定ConnectionManager 'jboss.jca:service=DataSourceBinding,name=datasource'到 JNDI 名称 'java:datasource' 2012-11-08 08:16:07,758 INFO [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] (HDScanner) Unbound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=datasource' 来自 JNDI名称'java:datasource' 2012-11-08 08:16:08,056 INFO [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] (HDScanner) 绑定 ConnectionManager 'jboss.jca:service=DataSourceBinding,name=datasource' 到 JNDI 名称' java:datasource' 2012-11-08 08:16:13,226 INFO [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] (HDScanner) Unbound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=datasource' 来自 JNDI 名称'java:数据源' 2012-11-08 08:16:13,394 信息 [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] (HDScanner) 绑定 ConnectionManager 'jboss.jca:service=DataSourceBinding,name=datasource' 到 JNDI 名称 'java:datasource' 2012-11-08 08:16:18,668 INFO [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] (HDScanner) 来自 JNDI 名称 'java:datasource' 的未绑定 ConnectionManager 'jboss.jca:service=DataSourceBinding,name=datasource'

谢谢,马克。

4

1 回答 1

0

看起来您的热部署扫描程序很“疯狂”。默认情况下,JBoss 定义热部署以每 5000 毫秒(5 秒)扫描一次更改或新部署。但是它不应该重新部署一个文件,如果它没有从上次扫描中改变,所以这种行为很奇怪,(除非有某种进程不断更改数据源文件,你能检查一下最后一次修改日期吗?文件?)

您也可以尝试禁用 hotdeployment 扫描器,或者增加它的 scanPeriod。扫描器在文件 deploy/hdscanner-jboss-beans.xml 中设置。所以更改 scanPeriod 属性(以毫秒为单位),或者只是从部署目录中删除此文件(注意进行备份)。请注意,如果您删除该文件,您将禁用所有文件的热部署,因此要部署新应用程序,您必须重新启动服务器或使用 bin/twiddle.sh 脚本。

另一方面,虽然这可能不是问题的原因,但数据源看起来不完整:记得关闭 xml 标签,并且 ds 文件的根标签是“数据源”:

<datasource>
  <local-tx-datasource>
   ...
  </local-tx-datasource>
</datasource>

我希望它会有所帮助。

于 2012-11-08T14:39:13.840 回答