I would gladly open a JIRA and attach a patch, but once again I find that I 
have just read-only access to JIRA - I cannot create new issues, nor comment on 
existing issues. So Adrian, could you open a JIRA? The patch follows (should be 
good for 5.0.x and 5.1.x):

Index: BaseConnectionManager2.java
  | ===================================================================
  | --- BaseConnectionManager2.java     (revision 86861)
  | +++ BaseConnectionManager2.java     (working copy)
  | @@ -438,7 +438,7 @@
  |        }
  |  
  |        // If we get here all retries failed, throw the lastest failure
  | -      throw failure;
  | +      throw new ResourceException("Unable to get managed connection for 
datasource " + jndiName, failure);
  |     }
  |     
  |     public void returnManagedConnection(ConnectionListener cl, boolean kill)

I could not get the the code in InternalManagedConnectionPool to add in the 
JNDI name because it did not know it. Based on Eclipse, and on the compiler, 
the only way to get to InternalManagedConnectionPool.getConnection() is from 
BaseConnectionManager2.getManagedConnection() (via 
ConnectionListener.getConnection()). Of those three, only 
BaseConnectionManager2 knew the JNDI name. The choice was either passing the 
JNDI name along (by changing the method signatures) or adding the name in at 
BaseConnectionManager2. Then I noticed that 
BaseConnectionManager2.getManagedConnection rethrows the exceptions it catches 
and that make it easy to layer on another exception which did name the data 
source.

Here is an example of the exception:

2009-04-06 14:03:29,169 DEBUG [org.hibernate.util.JDBCExceptionReporter] 
(http-127.0.0.1-8080-3) Cannot open connection [???]
  | org.jboss.util.NestedSQLException: Unable to get managed connection for 
datasource jdbc/jsfDS; - nested throwable: (javax.resource.ResourceException: 
Unable to get managed connection for datasource jdbc/jsfDS)
  |   at 
org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:95)
  |   at 
org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:46)
  |   ***lots of lines deleted***
  |   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
  |   at java.lang.Thread.run(Thread.java:619)
  | Caused by: javax.resource.ResourceException: Unable to get managed 
connection for datasource jdbc/jsfDS
  |   at 
org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:441)
  |   at 
org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:381)
  |   at 
org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:496)
  |   at 
org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:941)
  |   at 
org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:89)
  |   ... 91 more
  | Caused by: javax.resource.ResourceException: No ManagedConnections 
available within configured blocking timeout ( 10000 [ms] )
  |   at 
org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:295)
  |   at 
org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:644)
  |   at 
org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:404)
  |   ... 95 more

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4223811#4223811

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4223811
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to