2010-04-05 100 views
2

我们从JBoss得到这个随机警告..任何想法为什么?JBoss JDBC警告 - “无法填充池”

它发生在没有活动线程的随机时间。任何处理恢复时,一切正常。

13:49:31,764 WARN [JBossManagedConnectionPool] [ ] Unable to fill pool 
org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (java.sql.SQLException: Listener ref 
used the connection with the following error: 
ORA-12516, TNS:listener could not find available handler with matching protocol stack 
The Connection descriptor used by the client was: 
//localhost:1521/orcl 
) 
     at org.jboss.resource.adapter.jdbc.xa.XAManagedConnectionFactory.createManagedConnection(XAManagedConnectionFactory.java 
:144) 
     at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConne 
ctionPool.java:577) 
     at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.fillToMin(InternalManagedConnectionPool.java:524) 
     at org.jboss.resource.connectionmanager.PoolFiller.run(PoolFiller.java:74) 
     at java.lang.Thread.run(Thread.java:619) 
Caused by: java.sql.SQLException: Listener refused the connection with the following error: 
ORA-12516, TNS:listener could not find available handler with matching protocol stack 
The Connection descriptor used by the client was: 
//localhost:1521/orcl 

更新:按照richj的帖子,这里是四个数据来源之一的格式,我们使用:

<xa-datasource> 
     <jndi-name>ABCOracleDS</jndi-name> 
     <track-connection-by-tx/> 
     <isSameRM-override-value>false</isSameRM-override-value> 
     <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class> 
     <xa-datasource-property name="URL">jdbc:oracle:thin:@//localhost:1521/orcl</xa-datasource-property> 
     <xa-datasource-property name="User">myuser</xa-datasource-property> 
     <xa-datasource-property name="Password">mypw</xa-datasource-property> 
     <min-pool-size>20</min-pool-size> 
     <max-pool-size>200</max-pool-size> 
     <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker 
     </valid-connection-checker-class-name> 
     <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter 
     </exception-sorter-class-name> 
     <no-tx-separate-pools/> 

     <metadata> 
      <type-mapping>Oracle10g</type-mapping> 
     </metadata> 
    </xa-datasource> 
+0

带有堆栈跟踪的版本可能更有用 – skaffman 2010-04-05 18:22:00

+0

已将其添加回.. – 2010-04-05 19:32:20

回答

1
The Connection descriptor used by the client was: 
//localhost:1521/orcl 

我认为这个问题是可能在数据源定义中的某个地方。 您的JBoss热部署目录中是否有多个数据源定义? 您的数据源定义是否正确和完整 - 特别是用于构建连接URL的属性?

更新1

我不知道的斜杠,我想也许网址:

jdbc:oracle:thin:@//localhost:1521/orcl 

应该是这样的:

jdbc:oracle:thin:@localhost:1521:orcl 

更新2

这是Oracle的参考,它支持带斜线的语法。
以下是Orafaq的参考文件,它支持带冒号的语法。

即使斜杠合法,也许值得一试!从花样 “越来越绝望” 框

更新3

短短几年更多的想法:

ORA-12516: TNS:listener could not find available handler with matching protocol stack 

此消息看起来像一个TNS配置问题。 JDBC瘦驱动程序不应该需要TNS配置,但我发现有时它只是拒绝没有一个的工作。

您也可以尝试使用全限定主机名而不是localhost。有时machine.company.com作品时,机器本身并没有。

+0

是的,我们正在使用4个数据源。我会用其中一个更新这篇文章。 – 2010-04-05 19:22:33

+0

另外,请注意,数据库/数据源功能都可以正常工作..我们只是得到这些随机的警告/错误。 – 2010-04-05 19:33:32

+0

这不是一个相关/正确的答案。警告是随机的。否则连接正在进行。如果URL错误,那么可以建立无连接,并且不会有数据库相关的工作。我们也看到了这些随机的JBoss警告。将研究并查看真正的答案在哪里(某处DB如何处理陈旧的连接)。 – 2014-05-08 09:28:56