2010-04-05 4 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의 게시물 당으로, 우리가 사용하고있는 4 개 개의 데이터 소스 중 하나의 형식은 다음과 같습니다

<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

+0

다시 추가했습니다. –

답변

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

나는 문제 가능성이 생각 데이터 소스 정의 어딘가에 있어야합니다. JBoss hot deploy 디렉토리에 둘 이상의 데이터 소스 정의가 있습니까? 데이터 원본 정의가 정확하고 완전합니까 - 특히 연결 URL을 작성하는 데 사용되는 속성이 있습니까?

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

은 다음과 같아야합니다 :

업데이트 1

나는 어쩌면 URL 생각, 슬래시 확실하지 않다

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 개의 데이터 소스를 사용하고 있습니다. 그 중 하나를 사용하여 소식을 업데이트하겠습니다. –

+0

또한 데이터베이스/데이터 소스 기능이 모두 작동한다는 점에 유의하십시오. 우리는 이러한 임의의 경고/오류를 수신합니다. –

+0

이것은 관련/정답이 아닙니다. 경고는 무작위입니다. 그렇지 않으면 연결이 이루어지고 있습니다. URL이 잘못되면 연결이 이루어지지 않고 데이터베이스와 관련된 작업이 전혀 수행되지 않습니다. 우리는 또한 이러한 임의 JBoss 경고를 보았습니다. DB가 부실 연결을 처리하는 방식의 어딘가에서 진정한 해답이 어디에 있는지 조사하고 파악합니다. –

관련 문제