Форум программистов, компьютерный форум CyberForum.ru

Java EE (J2EE)

Войти
Регистрация
Восстановить пароль
 
mikhaillo
0 / 0 / 0
Регистрация: 21.02.2016
Сообщений: 21
#1

Деплой spring mvc+hibernate на heroku (из под Tomcat) - Java EE

21.12.2016, 05:34. Просмотров 407. Ответов 9

Доброго времени суток. Задеплоил первое самостоятельное полуприложение на heroku: kiev-lease.herokuapp.com/ БД выбрал ClearDB MySQL. Когда я только указываю гит-репрозиторий и Manual'но деплою branch master - оно работает отлично (регистрация, добавление объявлений, прочее). После прохождения некоторого времени страницы, отправляющие запросы на БД выдают ошибку (указана ниже), страницы, не обращающиеся к БД работают норм. Если подключаюсь к этой же БД с идеи (с тем же логином и паролем) - работает норм. В чем может быть ошибка?

Java
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
32
33
34
35
36
37
38
39
40
41
42
43
HTTP Status 500 - Request processing failed; nested exception is javax.persistence.PersistenceException: unexpected error when rollbacking
 
type Exception report
 
message Request processing failed; nested exception is javax.persistence.PersistenceException: unexpected error when rollbacking
 
description The server encountered an internal error that prevented it from fulfilling this request.
 
exception
 
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is javax.persistence.PersistenceException: unexpected error when rollbacking
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
...
 
root cause
 
javax.persistence.PersistenceException: unexpected error when rollbacking
    org.hibernate.jpa.internal.TransactionImpl.rollback(TransactionImpl.java:111)
    ua.kiev.kvartirant.dao.UserDAOImpl.saveUser(UserDAOImpl.java:33)
...
 
root cause
 
org.hibernate.TransactionException: rollback failed
    org.hibernate.engine.transaction.spi.AbstractTransactionImpl.rollback(AbstractTransactionImpl.java:217)
    org.hibernate.jpa.internal.TransactionImpl.rollback(TransactionImpl.java:108)
    ua.kiev.kvartirant.dao.UserDAOImpl.saveUser(UserDAOImpl.java:33)
...
 
root cause
 
java.lang.NullPointerException
    org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doRollback(JdbcTransaction.java:163)
    org.hibernate.engine.transaction.spi.AbstractTransactionImpl.rollback(AbstractTransactionImpl.java:211)
    org.hibernate.jpa.internal.TransactionImpl.rollback(TransactionImpl.java:108)
...
 
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.30 logs.
 
Apache Tomcat/8.0.30
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KEKCoGEN
Эксперт Java
1909 / 1787 / 434
Регистрация: 28.12.2010
Сообщений: 7,208
21.12.2016, 10:40     Деплой spring mvc+hibernate на heroku (из под Tomcat) #2
mikhaillo, на хероке коннект до БД отваливается после короткого таймаута. Настройте спринг чтобы он переодически не давал коннекшну упасть (непомню точно какой проперти, думаю нагуглить несложно)
mikhaillo
0 / 0 / 0
Регистрация: 21.02.2016
Сообщений: 21
11.01.2017, 17:49  [ТС]     Деплой spring mvc+hibernate на heroku (из под Tomcat) #3
спасибо там походу проблема в том, что в той БД стоит в насткроках timeout=60 пробовал я много чего и проперти менять и autoconnect по разному прописывать и протокол c3p0 ставить - ничего не помогло=(
KEKCoGEN
Эксперт Java
1909 / 1787 / 434
Регистрация: 28.12.2010
Сообщений: 7,208
11.01.2017, 21:53     Деплой spring mvc+hibernate на heroku (из под Tomcat) #4
mikhaillo, ничего не помогло потому что гуглили плохо

spring.datasource.testWhileIdle = true
spring.datasource.timeBetweenEvictionRunsMillis = 3600000
spring.datasource.validationQuery = SELECT 1
Andreas
15 / 15 / 1
Регистрация: 20.05.2014
Сообщений: 146
13.01.2017, 16:11     Деплой spring mvc+hibernate на heroku (из под Tomcat) #5
на хероке сделано спецом так, чтобы приложение засыпало через пол часа, кажется - это касается бесплатного уровня
KEKCoGEN
Эксперт Java
1909 / 1787 / 434
Регистрация: 28.12.2010
Сообщений: 7,208
13.01.2017, 16:23     Деплой spring mvc+hibernate на heroku (из под Tomcat) #6
Andreas, засыпание приложения тут не при чем.
Andreas
15 / 15 / 1
Регистрация: 20.05.2014
Сообщений: 146
13.01.2017, 16:28     Деплой spring mvc+hibernate на heroku (из под Tomcat) #7
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
на хероке коннект до БД отваливается после короткого таймаута
я так полагаю, что если приложение заснуло, то и коннект до БД отваливается
KEKCoGEN
Эксперт Java
1909 / 1787 / 434
Регистрация: 28.12.2010
Сообщений: 7,208
13.01.2017, 16:34     Деплой spring mvc+hibernate на heroku (из под Tomcat) #8
Andreas, коннект в БД отваливается примерно каждые 2 минуты. Это конфигурация бесплатной БД. Приложение на хероке на засыпает. Оно просто отключается и когда приходит запрос, хероку заного поднимает контейнер. Таким образом приложение перезапускается и заного подключается к БД.
Andreas
15 / 15 / 1
Регистрация: 20.05.2014
Сообщений: 146
13.01.2017, 17:00     Деплой spring mvc+hibernate на heroku (из под Tomcat) #9
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
Приложение на хероке на засыпает.
назвать можно как угодно, но они сами пишут, что

SLEEPS AFTER 30 MINS OF INACTIVITY
sleep [sliːp] гл slept, slept
спать, засыпать, ночевать, заснуть, поспать
(bed, pour, spend the night, fall asleep, nap)
проспать
(oversleep)
бездействовать
(idle)
Добавлено через 2 минуты
а то что каждые две минуты коннект в БД отваливается, так это они вообще зажлобились на бесплатный тайер
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2017, 11:37     Деплой spring mvc+hibernate на heroku (из под Tomcat)
Еще ссылки по теме:
Java EE Spring mvc, hibernate, mysql: sessionFactory забивает базу подключениями
Spring mvc org.hibernate.LazyInitializationException: could not initialize proxy - no Session Java EE
Путь для сохранения файла на сервере (Spring Hibernate MVC) Java EE
Как отобразить нужную запись из БД по id на странице JSP? (Spring MVC + Hibernate) Java EE
Hibernate + Spring Java EE

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
KEKCoGEN
Эксперт Java
1909 / 1787 / 434
Регистрация: 28.12.2010
Сообщений: 7,208
14.01.2017, 11:37     Деплой spring mvc+hibernate на heroku (из под Tomcat) #10
Andreas, то что они пишут что оно засыпает не отменяет того что я выше написал. Приложение убивается и делает рестарт. С точки зрения пользователя оно засыпает.

Цинизм ваш неуместен.
Yandex
Объявления
14.01.2017, 11:37     Деплой spring mvc+hibernate на heroku (из под Tomcat)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru