JIRA: Unable to obtain a connection from the underlying connection pool

Al levantar una nueva instancia de Jira para un entorno de integración, tras cargar el asistente web para finalizar la instalación y configurar los datos, justo tras añadir la licencia y pulsar en Siguiente Jira se quedo bloqueado. Tras reiniciar Jira, el problema persistía. En los logs encontré el siguiente error:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2016-08-23 12:07:26,597 ajp-bio-8009-exec-3 ERROR anonymous 717x20x1 10mo64s 172.21.12.32 /secure/SetupLicense.jspa [NoModule] There was an error getting a DBCP datasource.
java.lang.RuntimeException: Unable to obtain a connection from the underlying connection pool
at org.ofbiz.core.entity.jdbc.interceptors.connection.ConnectionTracker.trackConnection(ConnectionTracker.java:59)
at org.ofbiz.core.entity.transaction.DBCPConnectionFactory.trackConnection(DBCPConnectionFactory.java:242)
at org.ofbiz.core.entity.transaction.DBCPConnectionFactory.getConnection(DBCPConnectionFactory.java:73)
at org.ofbiz.core.entity.ConnectionFactory.tryGenericConnectionSources(ConnectionFactory.java:69)
at org.ofbiz.core.entity.transaction.JNDIFactory.getConnection(JNDIFactory.java:146)
at org.ofbiz.core.entity.TransactionFactory.getConnection(TransactionFactory.java:101)
at org.ofbiz.core.entity.ConnectionFactory.getConnection(ConnectionFactory.java:59)
at org.ofbiz.core.entity.jdbc.SQLProcessor.getConnection(SQLProcessor.java:367)
at org.ofbiz.core.entity.jdbc.SQLProcessor.prepareStatement(SQLProcessor.java:515)
at org.ofbiz.core.entity.GenericDAO.selectListIteratorByCondition(GenericDAO.java:1053)
at org.ofbiz.core.entity.GenericDAO.selectByAnd(GenericDAO.java:621)
at org.ofbiz.core.entity.GenericHelperDAO.findByAnd(GenericHelperDAO.java:131)
at org.ofbiz.core.entity.GenericDelegator.findByAnd(GenericDelegator.java:804)
at org.ofbiz.core.entity.GenericDelegator.findByAnd(GenericDelegator.java:789)
at org.ofbiz.core.entity.GenericDelegator.findAll(GenericDelegator.java:727)
at com.atlassian.jira.ofbiz.DefaultOfBizDelegator.findAll(DefaultOfBizDelegator.java:355)
at com.atlassian.jira.ofbiz.WrappingOfBizDelegator.findAll(WrappingOfBizDelegator.java:193)
at com.atlassian.jira.issue.fields.screen.DefaultFieldScreenStore.getFieldScreens(DefaultFieldScreenStore.java:52)
at com.atlassian.jira.issue.fields.screen.CachingFieldScreenStore$FieldScreenCache.<init>(CachingFieldScreenStore.java:183)
at com.atlassian.jira.issue.fields.screen.CachingFieldScreenStore$1.create(CachingFieldScreenStore.java:38)
at com.atlassian.jira.issue.fields.screen.CachingFieldScreenStore$1.create(CachingFieldScreenStore.java:34)
at com.atlassian.util.concurrent.ResettableLazyReference$InternalReference.create(ResettableLazyReference.java:140)
at com.atlassian.util.concurrent.LazyReference$Sync.run(LazyReference.java:321)
at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:143)
at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:112)
at com.atlassian.util.concurrent.ResettableLazyReference.get(ResettableLazyReference.java:87)
at com.atlassian.jira.issue.fields.screen.CachingFieldScreenStore.refresh(CachingFieldScreenStore.java:124)
at com.atlassian.jira.issue.fields.screen.DefaultFieldScreenManager.refresh(DefaultFieldScreenManager.java:141)
at com.atlassian.jira.plugin.JiraCacheResetter.resetCaches(JiraCacheResetter.java:84)

Por suerte la documentación de Atlassian es muy buena y el problema está documentado en Unable to obtain a connection from the underlying connection pool, donde te rediriguen a Surviving connection closures

Solución

Editar el archivo dbconfig.xml localizado en el jira-home y aumentar el tiempo de espera para la validación de las consultas SQL, indicado con el parámetro <validation-query-timeout>3</validation-query-timeout> y cuyo valor por defecto son 3 segundos.

Entradas de interés

Contenidos
  1. 1. Solución