title: Spring connection pooling issue
body: <p>I'm not experienced in Java and Spring. I try to write a program that uses JdbcTemplate for Data access. I use DBCP pooling, here it is:</p>
  
  <pre><code>&lt;bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"&gt;
      &lt;property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /&gt;
      &lt;property name="url" value="jdbc:oracle:thin:@192.168.2.7:1521:xe" /&gt;
      &lt;property name="username" value="manifesto" /&gt;
      &lt;property name="password" value="manifesto" /&gt;
      &lt;property name="initialSize" value="2" /&gt;
      &lt;property name="maxActive" value="4" /&gt;
  &lt;/bean&gt;
  </code></pre>
  
  <p>My application perform several update operations and then throws an exception:</p>
  
  <pre><code>    7053 [SenderThread-0] DEBUG org.springframework.jdbc.datasource.DataSourceUtils  - Fetching JDBC Connection from DataSource
  Exception in thread "SenderThread-0" org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Listener refused the connection with the following error:
  ORA-12519, TNS:no appropriate service handler found
  The Connection descriptor used by the client was:
  192.168.2.7:1521:xe
  )
      at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
      at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:572)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:811)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:867)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:875)
      at org.springframework.jdbc.core.simple.SimpleJdbcTemplate.update(SimpleJdbcTemplate.java:249)
      at com.talutek.manifesto.dao.firestorm.dao.spring.MessageItemsTableDaoImpl.update(MessageItemsTableDaoImpl.java:52)
      at com.talutek.manifesto.lib.MessageItemMngr.updateItem(MessageItemMngr.java:115)
      at com.talutek.manifesto.gw.SenderThread.run(SenderThread.java:42)
      at java.lang.Thread.run(Thread.java:619)
  Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Listener refused the connection with the following error:
  ORA-12519, TNS:no appropriate service handler found
  The Connection descriptor used by the client was:
  192.168.2.7:1521:xe
  )
      at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
      at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
      at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
      at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
      at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
      ... 9 more
  Caused by: java.sql.SQLException: Listener refused the connection with the following error:
  ORA-12519, TNS:no appropriate service handler found
  The Connection descriptor used by the client was:
  192.168.2.7:1521:xe
  
      at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
      at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110)
      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)
      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:496)
      at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:411)
      at oracle.jdbc.driver.PhysicalConnection.&lt;init&gt;(PhysicalConnection.java:490)
      at oracle.jdbc.driver.T4CConnection.&lt;init&gt;(T4CConnection.java:202)
      at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
      at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:465)
      at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
      at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
      at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
      at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
      ... 13 more
  </code></pre>
  
  <p>When I change pool settings(pool size), the application can run some more times but it then crashes. I think the problem is related to pooling but I couldn't solve it.</p>
  
  <p>Any suggestions?</p>