commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philip Arad <philip_a...@datatex.it>
Subject WAITING on lock=org.apache.commons.pool.impl.GenericObjectPool
Date Sat, 26 Apr 2008 02:27:36 GMT
Hi

I am using commons-pool-1.3.jar with commons-dbcp-1.2.2.jar.
My program is using concurrent threads that each of them access the DB 
through
BasicDataSource. If I use 5 concurrent threads, the program is running 
without
any problem. The problem starts when I am using 10 threads:
Each thread is using the class ConnectionHelper to get a connection to 
the DB:

------------------------------------------------------------------------------------
package dataAccess.util;

import java.util.*;
import java.sql.*;
import javax.sql.*;
import org.w3c.dom.*;

import org.apache.commons.pool.*;
import org.apache.commons.pool.impl.*;
import org.apache.commons.dbcp.*;

import dataAccess.db.*;
import dataAccess.util.xml.*;

public class ConnectionHelper
{
    private ConnectionHelper()
    {

    }
    private static Hashtable<String,DataSource>iDataSources = null;

    public static synchronized Connection getConnection(String 
aJNDIName) throws Exception
    {
        if(iDataSources == null)
        {
            iDataSources = new Hashtable<String,DataSource>();
        }
        DataSource vDataSource = iDataSources.get(aJNDIName);
        if(vDataSource==null)
        {
            vDataSource = buildDataSource(aJNDIName);
        }
        Connection vConnection = vDataSource.getConnection();
        return vConnection;
    }

    private static DataSource buildDataSource(String aJNDIName) throws 
Exception
    {
        BasicDataSource vBDS = new BasicDataSource();

        String vXMLDSName = 
aJNDIName.substring(aJNDIName.indexOf(":/")+1).toUpperCase()+"-ds.xml";
        vXMLDSName = vXMLDSName.trim();
        XMLHelper vXMLHelper = new XMLHelper();

        Document vXMLDoc = vXMLHelper.retrieveXmlDocument(vXMLDSName);

        Element vRoot = vXMLDoc.getDocumentElement();
        NodeList vParamList = 
vRoot.getElementsByTagName("local-tx-datasource");
        Element vLocalTxDataSource = (Element)vParamList.item(0);

        String vURL = 
vXMLHelper.getFirstValue(vLocalTxDataSource,"connection-url");
        String vConnectionProperty = 
vXMLHelper.getFirstValue(vLocalTxDataSource,"connection-property");
        Element vPropertyElement = 
(Element)vXMLHelper.selectFirstNode(vXMLDoc,"/datasources/local-tx-datasource/connection-property");
        if(vPropertyElement!=null)
        {
            String vLibraryName = 
vXMLHelper.getAttributeAsString(vPropertyElement,"name");
            vURL = vURL + ";" + vLibraryName + "=" + vConnectionProperty;
        }
        vBDS.setUrl(vURL);

        String vDriverClassName = 
vXMLHelper.getFirstValue(vLocalTxDataSource,"driver-class");
        vBDS.setDriverClassName(vDriverClassName);

        String vUserName = 
vXMLHelper.getFirstValue(vLocalTxDataSource,"user-name");
        vBDS.setUsername(vUserName);

        String vPassword = 
vXMLHelper.getFirstValue(vLocalTxDataSource,"password");
        vBDS.setPassword(vPassword);

        String vMaxPoolSize = 
vXMLHelper.getFirstValue(vLocalTxDataSource,"max-pool-size");
        if(vMaxPoolSize.length()>0)
        {
            vBDS.setMaxActive(Integer.parseInt(vMaxPoolSize));
        }
        // Create a PoolableDataSource
        ObjectPool vConnectionPool = new GenericObjectPool(null);
        ConnectionFactory vConnectionFactory = new 
DataSourceConnectionFactory(vBDS);
        PoolableObjectFactory poolableConnectionFactory = new 
PoolableConnectionFactory(vConnectionFactory,vConnectionPool,null,null,false,true);
        DataSource vDataSource = new PoolingDataSource(vConnectionPool);
        iDataSources.put(aJNDIName,vDataSource);
        return vDataSource;
    }

    public static void trace(Object aMsg)
    {
        System.out.println("[ConnectionHelper] " + aMsg);
    }

}
------------------------------------------------------------------------------------
I keep all the DataSources in a Hashtable, so I can re-use it when needed.
When running the program with the threads, it stops executing after a while.
 From the FullThreadDump I receive:
------------------------------------------------------------------------------------
Connecting to localhost:1090
Full Java thread dump with locks info
"JMX server connection timeout 24" Id=24 in TIMED_WAITING on lock=[I@124d504
    at java.lang.Object.wait(Native Method)
    at 
com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)
    at java.lang.Thread.run(Thread.java:619)

    Locked synchronizers: count = 0

"RMI TCP Connection(2)-10.0.0.1" Id=23 in RUNNABLE
    at sun.management.ThreadImpl.dumpThreads0(Native Method)
    at sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:374)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at 
com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:167)
    at 
com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:96)
    at 
com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:33)
    at 
com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
    at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)
    at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)
    at javax.management.StandardMBean.invoke(StandardMBean.java:391)
    at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
    at 
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
    at 
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1426)
    at 
javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
    at 
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1264)
    at 
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1359)
    at 
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
    at sun.rmi.transport.Transport$1.run(Transport.java:159)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
    at 
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
    at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
    at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:619)

    Locked synchronizers: count = 1
      - java.util.concurrent.locks.ReentrantLock$NonfairSync@11d329d

"RMI Scheduler(0)" Id=22 in TIMED_WAITING on 
lock=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1e61026
    at sun.misc.Unsafe.park(Native Method)
    at 
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
    at 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)
    at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:582)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:575)
    at 
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:946)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:906)
    at java.lang.Thread.run(Thread.java:619)

    Locked synchronizers: count = 0

"RMI TCP Connection(1)-127.0.0.1" Id=21 in RUNNABLE (running in native)
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
      - locked java.io.BufferedInputStream@d507d3
    at java.io.FilterInputStream.read(FilterInputStream.java:66)
    at 
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)
    at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
    at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:619)

    Locked synchronizers: count = 1
      - java.util.concurrent.locks.ReentrantLock$NonfairSync@1f4c4a3

"Thread-10" Id=20 in BLOCKED on lock=java.lang.Class@99d56b
     owned by Thread-4 Id=14
    at 
dataAccess.util.ConnectionHelper.getConnection(ConnectionHelper.java:26)
    at 
dataAccess.util.DataAccessLocalImpl.getConnection(DataAccessLocalImpl.java:25)
    at 
dataAccess.db.BaseDataAccess.getPrimaryKeysColumnsNames(BaseDataAccess.java:1215)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1321)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1298)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1272)
    at 
dataAccess.util.CreateStatement.createStatement(CreateStatement.java:63)
    at dataAccess.util.CreateStatement.process(CreateStatement.java:48)
    at 
dataAccess.db.thread.query.QueryRunnerThread.run(QueryRunnerThread.java:19)

    Locked synchronizers: count = 0

"Thread-9" Id=19 in BLOCKED on lock=java.lang.Class@99d56b
     owned by Thread-4 Id=14
    at 
dataAccess.util.ConnectionHelper.getConnection(ConnectionHelper.java:26)
    at 
dataAccess.util.DataAccessLocalImpl.getConnection(DataAccessLocalImpl.java:25)
    at 
dataAccess.db.BaseDataAccess.getPrimaryKeysColumnsNames(BaseDataAccess.java:1215)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1321)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1298)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1272)
    at 
dataAccess.util.CreateStatement.createStatement(CreateStatement.java:63)
    at dataAccess.util.CreateStatement.process(CreateStatement.java:48)
    at 
dataAccess.db.thread.query.QueryRunnerThread.run(QueryRunnerThread.java:19)

    Locked synchronizers: count = 0

"Thread-8" Id=18 in BLOCKED on lock=java.lang.Class@99d56b
     owned by Thread-4 Id=14
    at 
dataAccess.util.ConnectionHelper.getConnection(ConnectionHelper.java:26)
    at 
dataAccess.util.DataAccessLocalImpl.getConnection(DataAccessLocalImpl.java:25)
    at 
dataAccess.db.BaseDataAccess.getPrimaryKeysColumnsNames(BaseDataAccess.java:1215)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1321)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1298)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1272)
    at 
dataAccess.util.CreateStatement.createStatement(CreateStatement.java:63)
    at dataAccess.util.CreateStatement.process(CreateStatement.java:48)
    at 
dataAccess.db.thread.query.QueryRunnerThread.run(QueryRunnerThread.java:19)

    Locked synchronizers: count = 0

"Thread-7" Id=17 in BLOCKED on lock=java.lang.Class@99d56b
     owned by Thread-4 Id=14
    at 
dataAccess.util.ConnectionHelper.getConnection(ConnectionHelper.java:26)
    at 
dataAccess.util.DataAccessLocalImpl.getConnection(DataAccessLocalImpl.java:25)
    at 
dataAccess.db.BaseDataAccess.getPrimaryKeysColumnsNames(BaseDataAccess.java:1215)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1321)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1298)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1272)
    at 
dataAccess.util.CreateStatement.createStatement(CreateStatement.java:63)
    at dataAccess.util.CreateStatement.process(CreateStatement.java:48)
    at 
dataAccess.db.thread.query.QueryRunnerThread.run(QueryRunnerThread.java:19)

    Locked synchronizers: count = 0

"Thread-6" Id=16 in BLOCKED on lock=java.lang.Class@99d56b
     owned by Thread-4 Id=14
    at 
dataAccess.util.ConnectionHelper.getConnection(ConnectionHelper.java:26)
    at 
dataAccess.util.DataAccessLocalImpl.getConnection(DataAccessLocalImpl.java:25)
    at 
dataAccess.db.BaseDataAccess.getPrimaryKeysColumnsNames(BaseDataAccess.java:1215)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1321)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1298)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1272)
    at 
dataAccess.util.CreateStatement.createStatement(CreateStatement.java:63)
    at dataAccess.util.CreateStatement.process(CreateStatement.java:48)
    at 
dataAccess.db.thread.query.QueryRunnerThread.run(QueryRunnerThread.java:19)

    Locked synchronizers: count = 0

"Thread-5" Id=15 in BLOCKED on lock=java.lang.Class@99d56b
     owned by Thread-4 Id=14
    at 
dataAccess.util.ConnectionHelper.getConnection(ConnectionHelper.java:26)
    at 
dataAccess.util.DataAccessLocalImpl.getConnection(DataAccessLocalImpl.java:25)
    at 
dataAccess.db.BaseDataAccess.getPrimaryKeysColumnsNames(BaseDataAccess.java:1215)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1321)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1298)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1272)
    at 
dataAccess.util.CreateStatement.createStatement(CreateStatement.java:63)
    at dataAccess.util.CreateStatement.process(CreateStatement.java:48)
    at 
dataAccess.db.thread.query.QueryRunnerThread.run(QueryRunnerThread.java:19)

    Locked synchronizers: count = 0

"Thread-4" Id=14 in WAITING on 
lock=org.apache.commons.pool.impl.GenericObjectPool@18a80d4
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at 
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:942)
    at 
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
    at 
dataAccess.util.ConnectionHelper.getConnection(ConnectionHelper.java:37)
      - locked java.lang.Class@99d56b
    at 
dataAccess.util.DataAccessLocalImpl.getConnection(DataAccessLocalImpl.java:25)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1284)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1272)
    at 
dataAccess.util.CreateStatement.createStatement(CreateStatement.java:63)
    at dataAccess.util.CreateStatement.process(CreateStatement.java:48)
    at 
dataAccess.db.thread.query.QueryRunnerThread.run(QueryRunnerThread.java:19)

    Locked synchronizers: count = 0

"Thread-3" Id=13 in BLOCKED on lock=java.lang.Class@99d56b
     owned by Thread-4 Id=14
    at 
dataAccess.util.ConnectionHelper.getConnection(ConnectionHelper.java:26)
    at 
dataAccess.util.DataAccessLocalImpl.getConnection(DataAccessLocalImpl.java:25)
    at 
dataAccess.db.BaseDataAccess.getPrimaryKeysColumnsNames(BaseDataAccess.java:1215)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1321)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1298)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1272)
    at 
dataAccess.util.CreateStatement.createStatement(CreateStatement.java:63)
    at dataAccess.util.CreateStatement.process(CreateStatement.java:48)
    at 
dataAccess.db.thread.query.QueryRunnerThread.run(QueryRunnerThread.java:19)

    Locked synchronizers: count = 0

"Thread-2" Id=12 in BLOCKED on lock=java.lang.Class@99d56b
     owned by Thread-4 Id=14
    at 
dataAccess.util.ConnectionHelper.getConnection(ConnectionHelper.java:26)
    at 
dataAccess.util.DataAccessLocalImpl.getConnection(DataAccessLocalImpl.java:25)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1284)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1272)
    at 
dataAccess.util.CreateStatement.createStatement(CreateStatement.java:63)
    at dataAccess.util.CreateStatement.process(CreateStatement.java:48)
    at 
dataAccess.db.thread.query.QueryRunnerThread.run(QueryRunnerThread.java:19)

    Locked synchronizers: count = 0

"Thread-1" Id=11 in BLOCKED on lock=java.lang.Class@99d56b
     owned by Thread-4 Id=14
    at 
dataAccess.util.ConnectionHelper.getConnection(ConnectionHelper.java:26)
    at 
dataAccess.util.DataAccessLocalImpl.getConnection(DataAccessLocalImpl.java:25)
    at 
dataAccess.db.BaseDataAccess.getPrimaryKeysColumnsNames(BaseDataAccess.java:1215)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1321)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1298)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1272)
    at 
dataAccess.util.CreateStatement.createStatement(CreateStatement.java:63)
    at dataAccess.util.CreateStatement.process(CreateStatement.java:48)
    at 
dataAccess.db.thread.query.QueryRunnerThread.run(QueryRunnerThread.java:19)

    Locked synchronizers: count = 0

"RMI TCP Accept-1090" Id=10 in RUNNABLE (running in native)
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
      - locked java.net.SocksSocketImpl@101da9
    at java.net.ServerSocket.implAccept(ServerSocket.java:453)
    at java.net.ServerSocket.accept(ServerSocket.java:421)
    at 
sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
    at 
sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
    at java.lang.Thread.run(Thread.java:619)

    Locked synchronizers: count = 0

"RMI TCP Accept-0" Id=9 in RUNNABLE (running in native)
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
      - locked java.net.SocksSocketImpl@b6421
    at java.net.ServerSocket.implAccept(ServerSocket.java:453)
    at java.net.ServerSocket.accept(ServerSocket.java:421)
    at 
sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
    at 
sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
    at java.lang.Thread.run(Thread.java:619)

    Locked synchronizers: count = 0

"Attach Listener" Id=5 in RUNNABLE

    Locked synchronizers: count = 0

"Signal Dispatcher" Id=4 in RUNNABLE

    Locked synchronizers: count = 0

"Finalizer" Id=3 in WAITING on 
lock=java.lang.ref.ReferenceQueue$Lock@1dacb2b
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

    Locked synchronizers: count = 0

"Reference Handler" Id=2 in WAITING on 
lock=java.lang.ref.Reference$Lock@15092c0
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)

    Locked synchronizers: count = 0

"main" Id=1 in RUNNABLE
    at java.lang.Thread.isAlive(Native Method)
    at 
dataAccess.db.thread.query.QueryRunnerThread.isRunning(QueryRunnerThread.java:30)
    at 
dataAccess.db.thread.query.ConcurrentQuery.checkForCompletions(ConcurrentQuery.java:95)
    at 
dataAccess.db.thread.query.ConcurrentQuery.resolve(ConcurrentQuery.java:116)
    at 
dataAccess.db.cmd.CreateStatementFactory.process(CreateStatementFactory.java:67)
    at 
dataAccess.db.cmd.CreateStatementFactory.<init>(CreateStatementFactory.java:35)
    at 
dataAccess.db.cmd.DB2SerFactory.createConverters(DB2SerFactory.java:50)
    at dataAccess.db.cmd.DB2SerFactory.<init>(DB2SerFactory.java:23)
    at 
dataAccess.db.cmd.DB2SerFactoryParam.<init>(DB2SerFactoryParam.java:49)
    at 
dataAccess.db.cmd.DB2SerFactoryParam.main(DB2SerFactoryParam.java:110)

    Locked synchronizers: count = 0


No deadlock found.
------------------------------------------------------------------------------------
Pay attention to "Thread-4":
------------------------------------------------------------------------------------
"Thread-4" Id=14 in WAITING on 
lock=org.apache.commons.pool.impl.GenericObjectPool@18a80d4
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at 
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:942)
    at 
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
    at 
dataAccess.util.ConnectionHelper.getConnection(ConnectionHelper.java:37)
      - locked java.lang.Class@99d56b
    at 
dataAccess.util.DataAccessLocalImpl.getConnection(DataAccessLocalImpl.java:25)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1284)
    at dataAccess.db.BaseDataAccess.getFullColumns(BaseDataAccess.java:1272)
    at 
dataAccess.util.CreateStatement.createStatement(CreateStatement.java:63)
    at dataAccess.util.CreateStatement.process(CreateStatement.java:48)
    at 
dataAccess.db.thread.query.QueryRunnerThread.run(QueryRunnerThread.java:19)
------------------------------------------------------------------------------------

Can you tell me what should I do to solve this problem?

Regards
Philip



---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message