Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hibernate+MySQL, вылетает соединение 
:(
    Опции темы
tux
Дата 24.3.2008, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(ochnev @  24.3.2008,  14:14 Найти цитируемый пост)
Есть какая-нибудь адекватная замена для него, которая умеет делать периодические запросы для оживления соединения с MySQL?

C3P0 умеет тоже самое. Подробности конфигурирования здесь - http://www.hibernate.org/214.html и здесь - http://www.mchange.com/projects/c3p0/index...nection_testing.
PM MAIL Skype GTalk Jabber YIM   Вверх
AlexeyVorotnikov
Дата 24.3.2008, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 18.6.2007
Где: Москва

Репутация: 3
Всего: 18





--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
AndrewV
Дата 24.3.2008, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



Цитата(ochnev @ 24.3.2008,  14:14)
Цитата

А где это написано, что DBCPConnectionProvider - deprecated?


То там, то сям встречались подобные упоминания... вот например
http://opensource.atlassian.com/projects/h.../browse/HHH-636 млм http://forum.hibernate.org/viewtopic.php?t=932204

Это сообщение отредактировал(а) AndrewV - 24.3.2008, 22:19
PM MAIL   Вверх
nogoody
Дата 27.3.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 12.9.2007
Где: Смоленск

Репутация: нет
Всего: нет



Не помогло... не могу я с dbcp разобраться... пришел на работу, все лежит...

вот код ошибки:

Код

14:46:17,766  WARN JDBCExceptionReporter:71 - SQL Error: 0, SQLState: 08S01
14:46:17,766 ERROR JDBCExceptionReporter:72 - Communications link failure due to
 underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: Software caused connection abort: socket write error

STACKTRACE:

java.net.SocketException: Software caused connection abort: socket write error
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65
)
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
        at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2744)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1612)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3256)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.ja
va:1313)
        at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:
1448)
        at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:
139)
        at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
        at org.hibernate.loader.hql.QueryLoader.iterate(QueryLoader.java:397)
        at org.hibernate.hql.ast.QueryTranslatorImpl.iterate(QueryTranslatorImpl
.java:318)
        at org.hibernate.engine.query.HQLQueryPlan.performIterate(HQLQueryPlan.j
ava:177)
        at org.hibernate.impl.SessionImpl.iterate(SessionImpl.java:1177)
        at org.hibernate.impl.QueryImpl.iterate(QueryImpl.java:46)
        at parser.AcceptList.doPost(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:174)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:151)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:874)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.p
rocessConnection(Http11BaseProtocol.java:665)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo
int.java:528)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol
lowerWorkerThread.java:81)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:689)
        at java.lang.Thread.run(Thread.java:619)


** END NESTED EXCEPTION **



Last packet sent to the server was 0 ms ago.
14:46:17,797 ERROR [AcceptList]:260 - Servlet.service() for servlet AcceptList t
hrew exception
org.hibernate.exception.JDBCConnectionException: could not execute query using i
terate
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.j
ava:72)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelp
er.java:43)
        at org.hibernate.loader.hql.QueryLoader.iterate(QueryLoader.java:420)
        at org.hibernate.hql.ast.QueryTranslatorImpl.iterate(QueryTranslatorImpl
.java:318)
        at org.hibernate.engine.query.HQLQueryPlan.performIterate(HQLQueryPlan.j
ava:177)
        at org.hibernate.impl.SessionImpl.iterate(SessionImpl.java:1177)
        at org.hibernate.impl.QueryImpl.iterate(QueryImpl.java:46)
        at parser.AcceptList.doPost(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:174)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:151)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:874)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.p
rocessConnection(Http11BaseProtocol.java:665)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo
int.java:528)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol
lowerWorkerThread.java:81)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:689)
        at java.lang.Thread.run(Thread.java:619)
Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure d
ue to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: Software caused connection abort: socket write error

STACKTRACE:

java.net.SocketException: Software caused connection abort: socket write error
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65
)
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
        at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2744)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1612)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3256)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.ja
va:1313)
        at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:
1448)
        at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:
139)
        at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
        at org.hibernate.loader.hql.QueryLoader.iterate(QueryLoader.java:397)
        at org.hibernate.hql.ast.QueryTranslatorImpl.iterate(QueryTranslatorImpl
.java:318)
        at org.hibernate.engine.query.HQLQueryPlan.performIterate(HQLQueryPlan.j
ava:177)
        at org.hibernate.impl.SessionImpl.iterate(SessionImpl.java:1177)
        at org.hibernate.impl.QueryImpl.iterate(QueryImpl.java:46)
        at parser.AcceptList.doPost(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:174)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:151)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:874)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.p
rocessConnection(Http11BaseProtocol.java:665)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo
int.java:528)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol
lowerWorkerThread.java:81)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:689)
        at java.lang.Thread.run(Thread.java:619)


** END NESTED EXCEPTION **



Last packet sent to the server was 0 ms ago.
        at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2759)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1612)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3256)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.ja
va:1313)
        at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:
1448)
        at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:
139)
        at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
        at org.hibernate.loader.hql.QueryLoader.iterate(QueryLoader.java:397)
        ... 21 more



Вот xml:

Код

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>


        <!-- Database connection settings -->
        <property name="connection.driver_class">
            com.mysql.jdbc.Driver
        </property>
        <property name="connection.url">
        jdbc:mysql://localhost:3306/test?autoReconnect=true</property>
        <property name="connection.username">root</property>
        <property name="connection.characterEncoding">UTF-8</property>
        <property name="connection.password">password</property>
        
        <!-- JDBC connection pool (use the built-in) -->

    <property name="dbcp.maxActive">15</property>
        <property name="dbcp.maxIdle">5</property>
        <property name="dbcp.maxWait">120000</property>
        <property name="dbcp.whenExhaustedAction">1</property>
        <property name="dbcp.testOnBorrow">true</property>
        <property name="dbcp.testOnReturn">true</property>
    <property name="dbcp.testWhileIdle">true</property>
        <property name="dbcp.timeBetweenEvictionRunsMillis">900000</property>
        <property name="dbcp.validationQuery">
            select 1
        </property>
        <property name="dbcp.ps.maxActive">0</property>
        <property name="dbcp.ps.maxIdle">0</property>
        <property name="dbcp.ps.maxWait">-1</property>
        <property name="dbcp.ps.whenExhaustedAction">2</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>




        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">
            org.hibernate.cache.NoCacheProvider
        </property>
        <property name="hbm2ddl.auto">update</property>
        <mapping resource="main\Objects.hbm.xml" />
        
    </session-factory>

</hibernate-configuration>




Уже не знаю что и делать, может на c3p0 попробовать реализовать...


Это сообщение отредактировал(а) nogoody - 27.3.2008, 15:01
PM MAIL   Вверх
ochnev
Дата 5.4.2008, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 253
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



Цитата(tux @ 24.3.2008,  18:14)
C3P0 умеет тоже самое. Подробности конфигурирования здесь - http://www.hibernate.org/214.html и здесь - http://www.mchange.com/projects/c3p0/index...nection_testing.

Ага, спасибо, помогло.
Добавил в hibernate.cfg.xml:

Код

        <property name="c3p0.idleConnectionTestPeriod">240</property>
        <property name="c3p0.testConnectionsOnCheckIn">1</property>
        <property name="c3p0.automaticTestTable">c_test</property>


Тестовая таблица создалась.
Вроде всё верно.
idleConnectionTestPeriod - не слишком длинный?

Сайт вроде перестал падать.
Или почти перестал.
Всё ещё остались подозрения. Сегодня я снова получил один из вариантов ошибки. Сейчас я уже перезапустил Tomcat, цитаты stacktrace не сохранилось, но было оно очень краткое, без упоминаний слова "ConnectionException".

PM MAIL   Вверх
ochnev
Дата 12.4.2008, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 253
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



Насколько я убедился, при длительных простоях (то есть при малой посещаемости молодого сайта) вышеупомянутые настройки c3p0 от ConnectionException НЕ спасают.
Заходишь на страницу, ходишь по сайту, и иногда вываливается этот ConnectionException. Перезагружаешь страницу - показывается нормально. И так далее.

Придётся периодически перезапускать приложение (ну или весь Tomcat, как удобнее).
Неужели нет более нормального решения?

PM MAIL   Вверх
ochnev
Дата 15.5.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 253
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



Цитата(tux @ 24.3.2008,  18:14)
http://www.mchange.com/projects/c3p0/index...nection_testing

Есть ещё где-нибудь копия этого документа?
Сайт лежит уже который день.
Я понял, что кое-что напутал со свойствами, что там ещё надо отдельный c3p0.properties (часть свойств можно указать только в нём, не в hibernate.cfg.xml), - теперь не могу докопаться до этого документа.

PM MAIL   Вверх
Kangaroo
Дата 15.5.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 14
Всего: 104



Цитата(ochnev @  15.5.2008,  14:21 Найти цитируемый пост)
Есть ещё где-нибудь копия этого документа?
Сайт лежит уже который день.

Всегда есть кэш Гугла  smile 


--------------------
Lost....
PM MAIL MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0511 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.