Note that there are some explanatory texts on larger screens.

plurals
  1. POIJ000653: The pool has been shutdown JBoss AS 7 OpenShift
    primarykey
    data
    text
    <p>I newbie in Java please help me to understand how is right. And My English on basic level..</p> <p>I use OpenShift and before, maybe 2 or more weeks ago all be fine, but last time I have 3 or ~ &lt; 20 errors like this:</p> <p>maybe something is wrong on OpenShift? or I doing something bad?</p> <p>Please explain to me why this is happened?:</p> <pre><code>Caused by: javax.resource.spi.RetryableUnavailableException: IJ000653: The pool has been shutdown (MysqlDS,178e455) </code></pre> <p>Similar: <a href="https://stackoverflow.com/questions/12317307/ij000453-unable-to-get-managed-connection-datasources">IJ000453: Unable to get managed connection datasources</a></p> <pre><code>&lt;datasource jndi-name="java:jboss/datasources/ShopDS" enabled="${mysql.enabled}" use-java-context="true" pool-name="MysqlDS" use-ccm="false"&gt; &lt;connection-url&gt;jdbc:mysql://${env.OPENSHIFT_MYSQL_DB_HOST}:${env.OPENSHIFT_MYSQL_DB_PORT}/${env.OPENSHIFT_APP_NAME} &lt;/connection-url&gt; &lt;driver&gt;mysql&lt;/driver&gt; &lt;connection-property name="autoReconnect"&gt;true&lt;/connection-property&gt; &lt;connection-property name="useUnicode"&gt;true&lt;/connection-property&gt; &lt;connection-property name="autoCommit"&gt;false&lt;/connection-property&gt; &lt;connection-property name="characterEncoding"&gt;UTF-8&lt;/connection-property&gt; &lt;transaction-isolation&gt;TRANSACTION_READ_COMMITTED&lt;/transaction-isolation&gt; &lt;pool&gt; &lt;min-pool-size&gt;10&lt;/min-pool-size&gt; &lt;max-pool-size&gt;300&lt;/max-pool-size&gt; &lt;flush-strategy&gt;IdleConnections&lt;/flush-strategy&gt; &lt;prefill&gt;true&lt;/prefill&gt; &lt;/pool&gt; &lt;security&gt; &lt;user-name&gt;${env.OPENSHIFT_MYSQL_DB_USERNAME}&lt;/user-name&gt; &lt;password&gt;${env.OPENSHIFT_MYSQL_DB_PASSWORD}&lt;/password&gt; &lt;/security&gt; &lt;validation&gt; &lt;valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker" /&gt; &lt;check-valid-connection-sql&gt;SELECT 1&lt;/check-valid-connection-sql&gt; &lt;validate-on-match&gt;true&lt;/validate-on-match&gt; &lt;background-validation&gt;true&lt;/background-validation&gt; &lt;exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter" /&gt; &lt;/validation&gt; &lt;timeout&gt; &lt;idle-timeout-minutes&gt;60000&lt;/idle-timeout-minutes&gt; &lt;/timeout&gt; &lt;/datasource&gt; </code></pre> <p>hibernate.cfg.xml</p> <pre><code>&lt;?xml version='1.0' encoding='utf-8'?&gt; &lt;!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"&gt; &lt;hibernate-configuration&gt; &lt;session-factory&gt; &lt;property name="hibernate.dialect"&gt;org.hibernate.dialect.MySQL5InnoDBDialect &lt;/property&gt; &lt;property name="hibernate.connection.datasource"&gt;java:jboss/datasources/ShopDS&lt;/property&gt; &lt;property name="hibernate.connection.autoReconnect"&gt;true&lt;/property&gt; &lt;property name="hibernate.connection.is-connection-validation-required"&gt;true&lt;/property&gt; &lt;property name="hibernate.connection.autocommit"&gt;false&lt;/property&gt; &lt;property name="hibernate.connection.release_mode"&gt;after_statement&lt;/property&gt; &lt;property name="hibernate.connection.useUnicode"&gt;true&lt;/property&gt; &lt;property name="hibernate.connection.characterEncoding"&gt;utf8&lt;/property&gt; &lt;property name="hibernate.connection.charSet"&gt;UTF-8&lt;/property&gt; &lt;property name="hibernate.show_sql"&gt;false&lt;/property&gt; &lt;property name="hibernate.use_sql_comments"&gt;false&lt;/property&gt; &lt;property name="hibernate.format_sql"&gt;false&lt;/property&gt; &lt;property name="hibernate.current_session_context_class"&gt;jta&lt;/property&gt; &lt;property name="hibernate.transaction.manager_lookup_class"&gt;org.hibernate.transaction.JBossTransactionManagerLookup&lt;/property&gt; &lt;property name="hibernate.transaction.jta.platform"&gt;org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform&lt;/property&gt; &lt;property name="hibernate.transaction.auto_close_session"&gt;true&lt;/property&gt; &lt;property name="hibernate.archive.autodetection"&gt;class, hbm&lt;/property&gt; &lt;property name="hibernate.generate_statistics"&gt;true&lt;/property&gt; &lt;property name="hibernate.cache.use_query_cache"&gt;false&lt;/property&gt; &lt;property name="hibernate.cache.use_second_level_cache"&gt;false&lt;/property&gt; &lt;property name="hibernate.cache.use_minimal_puts"&gt;true&lt;/property&gt; &lt;property name="hibernate.cache.use_structured_entries"&gt;true&lt;/property&gt; &lt;property name="hibernate.hbm2ddl.auto"&gt;update&lt;/property&gt; &lt;property name="hibernate.connection.pool_size"&gt;20&lt;/property&gt; &lt;property name="hibernate.default_batch_fetch_size"&gt;20&lt;/property&gt; &lt;property name="hibernate.max_fetch_depth"&gt;6&lt;/property&gt; &lt;mapping class="small.business.dao.entity.Settings" /&gt; &lt;/session-factory&gt; &lt;/hibernate-configuration&gt; </code></pre> <p>spring-jpa-config.xml</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd"&gt; &lt;jee:jndi-lookup jndi-name="java:/db_EntityManagerFactory" id="entityManagerFactory" expected-type="javax.persistence.EntityManagerFactory" cache="true" /&gt; &lt;bean id="entityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean"&gt; &lt;property name="entityManagerFactory" ref="entityManagerFactory" /&gt; &lt;/bean&gt; &lt;!-- Process the PersistenceUnit and PersistenceContext annotations --&gt; &lt;bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /&gt; &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"&gt; &lt;property name="configLocation" value="classpath:hibernate.cfg.xml" /&gt; &lt;/bean&gt; &lt;!-- &lt;bean class="org.springframework.orm.hibernate4.support.OpenSessionInViewInterceptor"&gt; --&gt; &lt;!-- &lt;property name="sessionFactory" ref="sessionFactory" /&gt; --&gt; &lt;!-- &lt;/bean&gt; --&gt; &lt;bean class="org.springframework.orm.hibernate4.HibernateExceptionTranslator" /&gt; &lt;tx:annotation-driven /&gt; &lt;bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"&gt; &lt;property name="transactionManagerName" value="java:/TransactionManager" /&gt; &lt;property name="userTransactionName" value="java:jboss/UserTransaction" /&gt; &lt;property name="transactionSynchronizationRegistryName" value="java:jboss/TransactionSynchronizationRegistry" /&gt; &lt;/bean&gt; &lt;/beans&gt; </code></pre> <p>GenericDAO methods called with @Transactional anotation</p> <pre><code>package small.business.dao; import java.lang.reflect.ParameterizedType; import javax.persistence.EntityManager; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.exception.GenericJDBCException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import small.business.domainmodel.interfaces.IElement; /** * * @author 452 */ public abstract class GenericDAO&lt;E extends IElement&lt;?&gt;&gt; { private static final Logger log = LoggerFactory.getLogger(GenericDAO.class); protected Class&lt;E&gt; entityClass; @Autowired protected EntityManager entityManager; @Autowired protected SessionFactory sessionFactory; @SuppressWarnings("unchecked") public GenericDAO() { entityClass = (Class&lt;E&gt;) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; } @SuppressWarnings("unchecked") public E getCurrentElement(Long currentElement) { E element = null; try { //element = entityManager.find(entityClass, currentElement); Session session = sessionFactory.getCurrentSession(); //element = (E) session.load(entityClass, currentElement); element = (E) session.get(entityClass, currentElement); } catch (Exception e) { log.error(e.getMessage(), e); } finally { } return element; } public E saveOrUpdate(E currentElement) throws Exception { E result; try { result = entityManager.merge(currentElement); } catch (GenericJDBCException e) { try { result = entityManager.merge(currentElement); } catch (GenericJDBCException ex) { throw new Exception("saveOrUpdate: ", ex); } } return result; } public void remove(E currentElement) throws Exception { E element = entityManager.find(entityClass, currentElement.getId()); entityManager.remove(element); } } </code></pre> <p>StackTrace:</p> <pre><code>at java.lang.Thread.run(Thread.java:722) Caused by: java.sql.SQLException: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:jboss/datasources/ShopDS at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:137) at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141) at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:276) at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297) ... 161 more Caused by: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:jboss/datasources/ShopDS at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:390) at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:368) at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:464) at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:129) ... 164 more Caused by: javax.resource.spi.RetryableUnavailableException: IJ000653: The pool has been shutdown (MysqlDS,178e455) at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:264) at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getTransactionNewConnection(AbstractPool.java:495) at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:374) at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:329) </code></pre> <p>JBoss AS 7.1.1, MySql 5, Hibernate 4, Spring 3.2.2</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload