• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • paul wheaton
  • Liutauras Vilda
  • Ron McLeod
Sheriffs:
  • Jeanne Boyarsky
  • Devaka Cooray
  • Paul Clapham
Saloon Keepers:
  • Scott Selikoff
  • Tim Holloway
  • Piet Souris
  • Mikalai Zaikin
  • Frits Walraven
Bartenders:
  • Stephan van Hulst
  • Carey Brown

running out of ManagedConnections available

 
Ranch Hand
Posts: 60
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello Friends,

I'm connecting jboss 3.2.3 with SQL server. My project uses session n entity beans and seems to work fine for less load. We are now facing a strange problem. I've set the <max-pool-size> in mssql-ds.xml file to default ie 20, enabled the Trace in the log files that tells me how many jdbc connections are [InUse/Available/Max] from the pool.

This is my mssql-ds.xml

<datasources>
<local-tx-datasource>
<jndi-name>DefaultDS</jndi-name>
<connection-url>jdbc:microsoft:sqlserver://192.168.0.111:1111;DatabaseName=myCCP</connection-url>
<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
<user-name>myccp</user-name>
<password>myccp</password>
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!--<min-pool-size>1</min-pool-size>-->
<!--<max-pool-size>100</max-pool-size>-->
<blocking-timeout-millis>15000</blocking-timeout-millis>
<!-- sql to call on an existing pooled connection when it is obtained from pool
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!--<track-statements>true</track-statements>-->
</local-tx-datasource>
</datasources>

Everything works fine if I send less than 18 requests to the server simultaneously. The problem crops up when the requests exceed 18 .... coz these 18 requests use the 20 max connections. Instead of waiting for connections to be free from the pool they time out giving me an exception.

--------------------------------------------------------------
18:51:27,462 ERROR [LogInterceptor] EJBException, causedBy:
org.jboss.util.NestedSQLException: No ManagedConnections available within configured blocking timeout ( 5000 [ms] ); - nested throwable: (javax.resource.ResourceExcep
No ManagedConnections available within configured blocking timeout ( 5000 [ms] )
--------------------------------------------------------------

I can see all the 20 connections in use at one point. But they don't get freed up after being used for the remaining requests.

When I increase the number of max connections it works fine. But again if I max the connections to 100 and send even 100 requests it throws the exception. I'm not sure where the problem exists. Is it the instance pool or the connection pool that has a problem here.

Has anyone ever had encountered such a problem before?

Thanks
Karuna
 
Politics n. Poly "many" + ticks "blood sucking insects". Tiny ad:
Gift giving made easy with the permaculture playing cards
https://coderanch.com/t/777758/Gift-giving-easy-permaculture-playing
reply
    Bookmark Topic Watch Topic
  • New Topic