SQL-соединение недоступно в Websphere 6.1 (весна / гибернация / оракул) - PullRequest
1 голос
/ 19 августа 2011

Когда наше приложение запускается, оно не может подключиться к базе данных (используя JNDI) в websphere 6.1.

В логах нет ошибок, пока hibernate не инициализирует провайдера соединений; он зависает в течение 180 секунд (я предполагаю, что это тайм-аут соединения, установленный на источнике данных), а затем:

[2011-08-19 10:48:27,585] INFO  [SoapConnectorThreadPool : 1] [o.h.c.ConnectionProviderFactory] Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider µ
[2011-08-19 10:51:27,628] DEBUG [SoapConnectorThreadPool : 1] [o.h.util.JDBCExceptionReporter] SQL Exception com.ibm.websphere.ce.cm.ConnectionWaitTimeoutException: Connection not available, Timed out waiting for 180029
            at com.ibm.ws.rsadapter.AdapterUtil.toSQLException(AdapterUtil.java:1362) ~[com.ibm.ws.runtime_6.1.0.jar:na]
            at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:462) ~[com.ibm.ws.runtime_6.1.0.jar:na]
            at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:418) ~[com.ibm.ws.runtime_6.1.0.jar:na]
            at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81) ~[spring-orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:113) [hibernate-core-3.6.5.Final.jar:3.6.5.Final]
            at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2863) [hibernate-core-3.6.5.Final.jar:3.6.5.Final]
            at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2859) [hibernate-core-3.6.5.Final.jar:3.6.5.Final]
            at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1870) [hibernate-core-3.6.5.Final.jar:3.6.5.Final]
            at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:860) [spring-orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:779) [spring-orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) [spring-orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:844) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:786) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:474) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:282) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1074) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
            at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE] :

С самой базой данных все в порядке (мы можем подключиться к ней с помощью инструмента db), и одно и то же приложение иногда работает без изменения какого-либо кода или конфигурации. Кроме того, в нашем локальном WAS приложение работает без проблем, но здесь мы используем другого оракула. ​​

Любые намеки или мысли по этому вопросу приветствуются.

UPDATE:
После дальнейшего исследования кажется, что вышеуказанная ошибка связана с тем, что в пуле больше нет доступных соединений. Я не знаю, есть ли проблема с нашим кодом (я бы ожидал, что Hibernate обрабатывает это) или с конфигурацией, или это проблема в настройке websphere ...

Ответы [ 2 ]

2 голосов
/ 19 августа 2011

решаемые

В итоге возникла проблема с исчерпанием соединений в пуле; приложение (война) внутри уха пропускало <tx:annotation-driven ... /> Spring из его контекста, поэтому для каждого вызова БД создавалось новое соединение. Добавление этого решило проблему.

1 голос
/ 19 августа 2011

В Websphere вы можете сделать «test connection» при настройке источника данных.Это работает?Также есть ojdbc4.jar на пути к классам?видна на консоли администратора -> провайдеры jdbc.И убедитесь, что параметр для этой записи правильный (окружение -> переменные веб-сферы)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...