After looking at a thread dump of our application, I see threads that are permanently stuck waiting for a lock. Here are a couple of examples below. I suspect that this is a configuration issue but do you have any suggestions on what else I may try.
Odysseas
"http-127.0.0.1-8080-11" daemon prio=10 tid=0x00007f47a4013800 nid=0x7b5f in Object.wait() [0x00007f47903ea000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at com.orientechnologies.orient.client.remote.OStorageRemote.beginRequest(OStorageRemote.java:1805)
- locked <0x000000078363d2a8> (a java.util.ArrayList)
at com.orientechnologies.orient.client.remote.OStorageRemote.commit(OStorageRemote.java:1106)
at com.orientechnologies.orient.client.remote.OStorageRemoteThread.commit(OStorageRemoteThread.java:266)
at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:69)
at com.orientechnologies.orient.core.db.record.ODatabaseRecordTx.commit(ODatabaseRecordTx.java:114)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:458)
at EntityDaoOrientdb.saveRecord(EntityDaoOrientdb.java:152)
"http-127.0.0.1-8080-12" daemon prio=10 tid=0x00007f47a4015000 nid=0x7b60 in Object.wait() [0x00007f47902e9000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at com.orientechnologies.orient.client.remote.OStorageRemote.beginRequest(OStorageRemote.java:1805)
- locked <0x000000078363d2a8> (a java.util.ArrayList)
at com.orientechnologies.orient.client.remote.OStorageRemote.openRemoteDatabase(OStorageRemote.java:1552)
at com.orientechnologies.orient.client.remote.OStorageRemote.open(OStorageRemote.java:176)
at com.orientechnologies.orient.client.remote.OStorageRemoteThread.open(OStorageRemoteThread.java:70)
at com.orientechnologies.orient.core.db.raw.ODatabaseRaw.open(ODatabaseRaw.java:105)
at com.orientechnologies.orient.core.db.ODatabaseWrapperAbstract.open(ODatabaseWrapperAbstract.java:49)
at com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.open(ODatabaseRecordAbstract.java:119)
at com.orientechnologies.orient.core.db.ODatabaseWrapperAbstract.open(ODatabaseWrapperAbstract.java:49)
at com.orientechnologies.orient.core.db.graph.OGraphDatabase.open(OGraphDatabase.java:92)
at com.orientechnologies.orient.core.db.graph.OGraphDatabasePooled.<init>(OGraphDatabasePooled.java:44)
at com.orientechnologies.orient.core.db.graph.OGraphDatabasePool.createResource(OGraphDatabasePool.java:39)
at com.orientechnologies.orient.core.db.graph.OGraphDatabasePool.createResource(OGraphDatabasePool.java:20)
at com.orientechnologies.orient.core.db.ODatabasePoolBase$1.createNewResource(ODatabasePoolBase.java:68)
at com.orientechnologies.orient.core.db.ODatabasePoolBase$1.createNewResource(ODatabasePoolBase.java:57)
at com.orientechnologies.common.concur.resource.OResourcePool.getResource(OResourcePool.java:68)
at com.orientechnologies.orient.core.db.ODatabasePoolAbstract.acquire(ODatabasePoolAbstract.java:74)
at com.orientechnologies.orient.core.db.ODatabasePoolAbstract.acquire(ODatabasePoolAbstract.java:59)
at com.orientechnologies.orient.core.db.ODatabasePoolBase.acquire(ODatabasePoolBase.java:99)
at EntityDaoOrientdb.connect(EntityDaoOrientdb.java:1386)