<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Activiti can't get DB connection in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/activiti-can-t-get-db-connection/m-p/159775#M113799</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I've put Activiti under some high load and faced problems with DB connections. For first ~minute processing was fine, but later everything freezed just to throw "IJ000453: Unable to get managed connection for java:jboss/activitids" exception 90 secs later.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;!–break–&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Activiti Engine instance has it's own db connection pool from JBoss 7.2 and is configured to consume 20 DB connections at max.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When analyzing thread dump in the 90sec period between the freeze and the stack, I've found that every Activiti operation which keeps DB connection is blocked at DbIdGenerator.getNextId e.g.:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;"pool-15-thread-125" prio=10 tid=0x00007ff8381a8800 nid=0x2179 waiting for monitor entry [0x00007ff7e3324000]&lt;BR /&gt;&amp;nbsp;&amp;nbsp; java.lang.Thread.State: BLOCKED (on object monitor)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.db.DbIdGenerator.getNextId(DbIdGenerator.java:35)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- waiting to lock &amp;lt;0x000000074c929640&amp;gt; (a org.activiti.engine.impl.db.DbIdGenerator)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.db.DbSqlSession.insert(DbSqlSession.java:111)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.persistence.entity.JobEntity.insert(JobEntity.java:83)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.persistence.entity.JobEntityManager.send(JobEntityManager.java:43)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.persistence.entity.ExecutionEntity.scheduleAtomicOperationAsync(ExecutionEntity.java:545)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ….&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Such threads consume all available pool connections.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;On the other hand, threads (there are 2) which actually try to do DbIdGenerator.getNextId are pending on Db connection. E.g.:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;"pool-8-thread-101" prio=10 tid=0x0000000041098800 nid=0x2189 waiting on condition [0x00007ff7e4d2e000]&lt;BR /&gt;&amp;nbsp;&amp;nbsp; java.lang.Thread.State: TIMED_WAITING (parking)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at sun.misc.Unsafe.park(Native Method)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- parking to wait for&amp;nbsp; &amp;lt;0x00000007461fd8e8&amp;gt; (a java.util.concurrent.Semaphore$FairSync)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1011)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1303)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.util.concurrent.Semaphore.tryAcquire(Semaphore.java:383)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.jboss.jca.core.connectionmanager.pool.mcp.Semaphore.tryAcquire(Semaphore.java:59)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:253)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getTransactionNewConnection(AbstractPool.java:495)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:374)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:364)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:368)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:464)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:139)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.transaction.managed.ManagedTransaction.openConnection(ManagedTransaction.java:84)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.transaction.managed.ManagedTransaction.getConnection(ManagedTransaction.java:58)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:271)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:69)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:56)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:259)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:132)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:105)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:81)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:104)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:98)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:62)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.db.DbSqlSession.selectById(DbSqlSession.java:308)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.persistence.entity.PropertyEntityManager.findPropertyById(PropertyEntityManager.java:25)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.cmd.GetNextIdBlockCmd.execute(GetNextIdBlockCmd.java:34)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.cmd.GetNextIdBlockCmd.execute(GetNextIdBlockCmd.java:24)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:24)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:57)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:64)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:37)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:40)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.db.DbIdGenerator.getNewBlock(DbIdGenerator.java:43)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- locked &amp;lt;0x0000000749ac3cc8&amp;gt; (a org.activiti.engine.impl.db.DbIdGenerator)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.db.DbIdGenerator.getNextId(DbIdGenerator.java:36)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- locked &amp;lt;0x0000000749ac3cc8&amp;gt; (a org.activiti.engine.impl.db.DbIdGenerator)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.db.DbSqlSession.insert(DbSqlSession.java:111)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.persistence.AbstractManager.insert(AbstractManager.java:50)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; …&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;How to handle such case? Is it a bug or a configuration issue?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 20 Mar 2014 14:42:13 GMT</pubDate>
    <dc:creator>tomsko</dc:creator>
    <dc:date>2014-03-20T14:42:13Z</dc:date>
    <item>
      <title>Activiti can't get DB connection</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/activiti-can-t-get-db-connection/m-p/159775#M113799</link>
      <description>Hi,I've put Activiti under some high load and faced problems with DB connections. For first ~minute processing was fine, but later everything freezed just to throw "IJ000453: Unable to get managed connection for java:jboss/activitids" exception 90 secs later.&amp;lt;!–break–&amp;gt;Activiti Engine instance</description>
      <pubDate>Thu, 20 Mar 2014 14:42:13 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/activiti-can-t-get-db-connection/m-p/159775#M113799</guid>
      <dc:creator>tomsko</dc:creator>
      <dc:date>2014-03-20T14:42:13Z</dc:date>
    </item>
    <item>
      <title>Re: Activiti can't get DB connection</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/activiti-can-t-get-db-connection/m-p/159776#M113800</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Yes the DbIdGenerator needs a connection to the database to retrieve the next block of ids. So if there's no connection available anymore it gets blocked. You could use the StrongUuidGenerator instead or increase the number of connections in your pool.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Mar 2014 16:07:31 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/activiti-can-t-get-db-connection/m-p/159776#M113800</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2014-03-21T16:07:31Z</dc:date>
    </item>
  </channel>
</rss>

