Have a look at this thread: http://www.mail-archive.com/user-java@ibatis.apache.org/msg11828.html
Good luck On Wed, Aug 6, 2008 at 4:47 PM, Brian Parkinson <[EMAIL PROTECTED]> wrote: > Hello: > > So, I have things up and running under Java and iBATIS, but running into > some starvation issue, and my server is locking up. When I dump threads, > I see a bunch that are waiting for the connnection pool (see output #1 > below) and as well, a bunch that are waiting on Throttle.increment (see > output #2). > > Has anyone see anything similar? > > I am stumped right now - looking for ANY hints to help me track down > (and fix :) what is going on - I don't know databases all that well, so > help appreciated greatly. First up, I'm going to upgrade to latest > version of iBATIS, but thinking I might have something wrong in my > thread pool setup. > > The pool setup: > > <bean id="mapConfig" > class="org.springframework.core.io.ClassPathResource"> > <constructor-arg> > > <value>com/ecobee/foundation/dao/ibatis/SqlMapConfig.xml</value> > </constructor-arg> > </bean> > > <bean id="dataSource" > class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> > <property name="driverClassName" > value="com.mysql.jdbc.Driver" /> > <property name="url" value="jdbc:mysql:///ecobee" /> > <property name="username" value="XXX" /> > <property name="password" value="XXX" /> > <property name="initialSize" value="10" /> > <property name="maxActive" value="100" /> > <property name="maxIdle" value="10" /> > </bean> > > <bean id="sqlMapClient" > class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> > <property name="dataSource" ref="dataSource" /> > <property name="configLocation" ref="mapConfig" /> > </bean> > > I currently have no <settings> element in my SqlMapConfig.xml file, so > running with those defaults. > > Any help is greatly appreciated - I am mystified. > > I am using iBATIS 2.3.0.667 and commons dbcp 1.2.2, and running MySQL > 5.0.32. > > Off to upgrade to latest iBATIS as a start - > > Cheers, > > parki... > > --- x8 snip > > Output #1: > > Thread: Thread[pool-1-thread-121,5,main]= > -- java.lang.Object.wait(Native Method) > -- java.lang.Object.wait(Object.java:474) > -- > org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjec > tPool.java:810) > -- > org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSourc > e.java:96) > -- > org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.ja > va:880) > -- > org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin > (DataSourceTransactionManager.java:200) > -- > org.springframework.transaction.support.AbstractPlatformTransactionManag > er.getTransaction(AbstractPlatformTransactionManager.java:377) > -- > org.springframework.transaction.interceptor.TransactionAspectSupport.cre > ateTransactionIfNecessary(TransactionAspectSupport.java:261) > -- > org.springframework.transaction.interceptor.TransactionInterceptor.invok > e(TransactionInterceptor.java:101) > -- > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Ref > lectiveMethodInvocation.java:171) > -- > org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(E > xposeInvocationInterceptor.java:89) > -- > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Ref > lectiveMethodInvocation.java:171) > -- > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAo > pProxy.java:204) > -- $Proxy2.saveLogSet(Unknown Source) > -- > com.ecobee.communicator.rest.restlet.LogRestlet.doPost(LogRestlet.java:7 > 6) > -- > com.ecobee.communicator.rest.RestletManager.handleRequest(RestletManager > .java:195) > -- > com.ecobee.communicator.engine.EngineRequest.handleRequest(EngineRequest > .java:112) > -- sun.reflect.GeneratedMethodAccessor338.invoke(Unknown Source) > -- > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > -- java.lang.reflect.Method.invoke(Method.java:585) > -- > com.whatevernot.engine.standard.StateRunnable.run(StateRunnable.java:56) > -- > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto > r.java:650) > -- > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja > va:675) > -- java.lang.Thread.run(Thread.java:595) > > Output #2: > > Thread: Thread[pool-1-thread-613,5,main]= > -- java.lang.Object.wait(Native Method) > -- java.lang.Object.wait(Object.java:474) > -- com.ibatis.common.util.Throttle.increment(Throttle.java:70) > -- com.ibatis.common.util.ThrottledPool.pop(ThrottledPool.java:57) > -- > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.popSession(SqlMapEx > ecutorDelegate.java:933) > -- > com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.<init>(SqlMapSessionImpl > .java:51) > -- > com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.getLocalSqlMapSession(Sql > MapClientImpl.java:259) > -- > com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.startBatch(SqlMapClientIm > pl.java:161) > -- com.ecobee.foundation.dao.ibatis.LogDao.saveLogSet(LogDao.java:22) > -- sun.reflect.GeneratedMethodAccessor341.invoke(Unknown Source) > -- > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > -- java.lang.reflect.Method.invoke(Method.java:585) > -- > org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection( > AopUtils.java:301) > -- > org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinp > oint(ReflectiveMethodInvocation.java:182) > -- > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Ref > lectiveMethodInvocation.java:149) > -- > org.springframework.transaction.interceptor.TransactionInterceptor.invok > e(TransactionInterceptor.java:106) > -- > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Ref > lectiveMethodInvocation.java:171) > -- > org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(E > xposeInvocationInterceptor.java:89) > -- > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Ref > lectiveMethodInvocation.java:171) > -- > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAo > pProxy.java:204) > -- $Proxy2.saveLogSet(Unknown Source) > -- > com.ecobee.communicator.rest.restlet.LogRestlet.doPost(LogRestlet.java:7 > 6) > -- > com.ecobee.communicator.rest.RestletManager.handleRequest(RestletManager > .java:195) > -- > com.ecobee.communicator.engine.EngineRequest.handleRequest(EngineRequest > .java:112) > -- sun.reflect.GeneratedMethodAccessor338.invoke(Unknown Source) > -- > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > -- java.lang.reflect.Method.invoke(Method.java:585) > -- > com.whatevernot.engine.standard.StateRunnable.run(StateRunnable.java:56) > -- > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto > r.java:650) > -- > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja > va:675) > -- java.lang.Thread.run(Thread.java:595) >