I'm currently stress testing an application using Spring Jdbc templates. The setup is a Weblogic 10.3.2 server and a DB2 as database, where the connection is a jdbc->data source (defined with 40 available connections - I only use 6-7 when I get the error below). The setup for testing is simple (using grinder, I your want to know) and I'm just going to see how much load I can add to the system.


Spring: 2.5.6 (for architectural reasons I cannot upgrade)



The load doesn't have to be very high before I get this error:
Code:
15-11-2011 08:11:49 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
org.springframework.dao.DataAccessResourceFailureException: PreparedStatementCallback; SQL [my sql is here, I don't want to list it - it works, trust me :)]; [OWLS][DB2 JDBC Driver][DB2]Error occured with SQLCode -1218 with the following parameters: 1, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null; nested exception is java.sql.SQLException: [OWLS][DB2 JDBC Driver][DB2]Error occured with SQLCode -1218 with the following parameters: 1, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null
	at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:103)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:607)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:641)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:666)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:698)
	at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:133)
	at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:137)
	at org.springframework.jdbc.core.simple.SimpleJdbcTemplate.query(SimpleJdbcTemplate.java:176)
	at dk.sparnord.salesoverview.dao.impl.SignalServiceDaoImpl.fetchSignalHistoryForHousehold(SignalServiceDaoImpl.java:438)
	at dk.sparnord.salesoverview.dao.impl.SignalServiceDaoImpl.getSignalHistoryForHousehold(SignalServiceDaoImpl.java:429)
	at dk.sparnord.salesoverview.service.impl.SignalServiceImpl.getSignalHistoryForHousehold(SignalServiceImpl.java:44)
	at dk.sparnord.salesoverview.ws.SignalHistoryForHouseholdEndpoint.invokeInternal(SignalHistoryForHouseholdEndpoint.java:29)
	at org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint.invoke(AbstractMarshallingPayloadEndpoint.java:131)
	at org.springframework.ws.server.endpoint.adapter.MessageEndpointAdapter.invoke(MessageEndpointAdapter.java:41)
	at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:228)
	at org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:170)
	at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88)
	at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57)
	at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:230)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
	at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3594)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
	at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
	at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
	at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: java.sql.SQLException: [OWLS][DB2 JDBC Driver][DB2]Error occured with SQLCode -1218 with the following parameters: 1, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null
	at weblogic.jdbc.db2base.BaseExceptions40.createAppropriateSQLExceptionInstance(Unknown Source)
	at weblogic.jdbc.db2base.BaseExceptions40.createSQLException(Unknown Source)
	at weblogic.jdbc.db2base.BaseExceptions.createException(Unknown Source)
	at weblogic.jdbc.db2base.BaseExceptions.getException(Unknown Source)
	at weblogic.jdbc.db2.drda.DRDARequest.processSQLCA(Unknown Source)
	at weblogic.jdbc.db2.drda.DRDARequest.processCodePoint(Unknown Source)
	at weblogic.jdbc.db2.drda.DRDAStatementRequest.processCodePoint(Unknown Source)
	at weblogic.jdbc.db2.drda.DRDAQueryStatementRequest.processCodePoint(Unknown Source)
	at weblogic.jdbc.db2.drda.DRDARequest.processReply(Unknown Source)
	at weblogic.jdbc.db2.DB2ImplStatement.reExecuteWithParamInfos(Unknown Source)
	at weblogic.jdbc.db2.DB2ImplStatement.getNextResultSet(Unknown Source)
	at weblogic.jdbc.db2base.BaseImplStatement.getNextResultSet(Unknown Source)
	at weblogic.jdbc.db2base.BaseStatement.getNextImplResultSet(Unknown Source)
	at weblogic.jdbc.db2base.BaseStatement.commonGetNextResultSet(Unknown Source)
	at weblogic.jdbc.db2base.BaseStatement.executeQueryInternal(Unknown Source)
	at weblogic.jdbc.db2base.BasePreparedStatement.executeQuery(Unknown Source)
	at weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:128)
	at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:648)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:591)
	... 33 more
The selection of data is done using the following:
Code:
List<History> list = new ArrayList<History>();

Map<String, Object> args = new HashMap<String, Object>();
args.put("myval", myval);

list = jdbcTemplate.query(
		SignalServiceDaoSql.GET_SIGNAL_HISTORY_LIST,
		new ParameterizedRowMapper<History>() {

			@Override
			public History mapRow(ResultSet rs, int rowNum) throws SQLException {
				...create history object and return this...				
				return history;
			}
			
		},
		args);
		
return list;
Where, why, or what? Any ideas? As mentioned, I should have more than 30 connections available... "Normal" load and the system works fine, but I need to know how much load I can have before it becomes slow.