The .RepositoryService.getSession(String) use synchronization and is subject to contention on high concurrency.
Java Monitor Blocked at org.nuxeo.ecm.core.repository.RepositoryService.getSession(String) at org.nuxeo.ecm.core.api.local.LocalSession.createSession() at org.nuxeo.ecm.core.api.local.LocalSession.connect(String, NuxeoPrincipal)
Note that when using validation query things may be worth because the validation query is done in getSession:
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:681) at org.nuxeo.runtime.jtajca.NuxeoValidationSupport$QuerySQLConnection.validate(NuxeoValidationSupport.java:86) at org.nuxeo.runtime.jtajca.NuxeoValidationSupport$ValidationInterceptor.getConnection(NuxeoValidationSupport.java:116) at org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.getConnection(TransactionEnlistingInterceptor.java:49) at org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.getConnection(TransactionCachingInterceptor.java:101) at org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.getConnection(ConnectionHandleInterceptor.java:43) at org.apache.geronimo.connector.outbound.TCCLInterceptor.getConnection(TCCLInterceptor.java:39) at org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.getConnection(ConnectionTrackingInterceptor.java:66) at org.apache.geronimo.connector.outbound.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:77) at org.nuxeo.runtime.jtajca.NuxeoContainer$ConnectionManagerWrapper.allocateConnection(NuxeoContainer.java:739) at org.tranql.connector.jdbc.TranqlDataSource.getConnection(TranqlDataSource.java:62) at org.nuxeo.runtime.datasource.PooledDataSourceFactory$1NuxeoDataSource.getConnection(PooledDataSourceFactory.java:94) at org.nuxeo.runtime.datasource.ConnectionHelper.getConnection(ConnectionHelper.java:823) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCConnection.openBaseConnection(JDBCConnection.java:147) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCConnection.openConnections(JDBCConnection.java:136) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCMapper.connect(JDBCMapper.java:1413) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCMapperConnector.invoke(JDBCMapperConnector.java:65) at com.sun.proxy.$Proxy55.setTransactionTimeout(Unknown Source) at org.nuxeo.ecm.core.storage.sql.SoftRefCachingMapper.setTransactionTimeout(SoftRefCachingMapper.java:201) at org.nuxeo.ecm.core.storage.sql.SessionImpl.setTransactionTimeout(SessionImpl.java:1500) at org.apache.geronimo.transaction.manager.WrapperNamedXAResource.setTransactionTimeout(WrapperNamedXAResource.java:104) at org.apache.geronimo.transaction.manager.TransactionImpl.enlistResource(TransactionImpl.java:204) - locked <0x00000006b9860f90> (a org.apache.geronimo.transaction.manager.TransactionImpl) at org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.getConnection(TransactionEnlistingInterceptor.java:60) at org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.getConnection(TransactionCachingInterceptor.java:101) at org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.getConnection(ConnectionHandleInterceptor.java:43) at org.apache.geronimo.connector.outbound.TCCLInterceptor.getConnection(TCCLInterceptor.java:39) at org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.getConnection(ConnectionTrackingInterceptor.java:66) at org.apache.geronimo.connector.outbound.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:77) at org.nuxeo.runtime.jtajca.NuxeoContainer$ConnectionManagerWrapper.allocateConnection(NuxeoContainer.java:739) at org.nuxeo.ecm.core.storage.sql.ra.ConnectionFactoryImpl.getConnection(ConnectionFactoryImpl.java:96) at org.nuxeo.ecm.core.storage.sql.ra.ConnectionFactoryImpl.getSession(ConnectionFactoryImpl.java:159) at org.nuxeo.ecm.core.repository.RepositoryService.getSession(RepositoryService.java:230)
- is required by
-
NXP-23209 Fix repository initialization
- Resolved