I've seen a few posts on this with not too many answers, so I thought I would share what I have just been experimenting with. I am using JBoss 2.4.9 with Oracle 8i.
When I upgraded from JBoss 2.4.1, I started seeing the "No ManagedConnections Available" message on occasion. I had not made any modifications to the attributes of my data source pool in jboss.jcml and as far as the blocking attributes I had:
and no BlockingTimeout set.
It appears that the Blocking flag is basically ignored in JBoss 2.4.9 (I believe David Jencks posted something indicating this as well and I've checked the code in ObjectPool). It also appears that the default blocking timeout is to not block (although in ObjectPool, it looks like the default is 10 seconds, but that is not what I am experiencing).
By adding the BlockingTimeout attribute and setting it to a greater than 0 value, I can achieve blocking again in JBoss 2.4.9. I also found that setting it to -1 or 0 resulting in no blocking.
I have also found what I believe is a leak in the object pool related to transaction rollbacks that could ultimately lead to the no managed connections available, but I'll post that separately.