Когда я перезагружаю свою базу данных во время работы моего приложения, Компоненты JPA не могут повторно подключаться автоматически.Компонент JPA на верблюде не может автоматически подключаться к базе данных
2017-02-09 17:45:08,400 ERROR o.h.e.j.spi.SqlExceptionHelper(131) - Connection closed. - [Camel (camel-1) thread #99 - jpa://com.toto.Toto ]
Но еще я могу выполнить запрос SQL с пружинными данными в моих CxF маршрутах.
Мое определение DataSource в context.xml:
<!-- JDBC connection -->
<Resource name="jdbc/oracle"
auth="Container"
type="javax.sql.DataSource"
username="toto"
password="toto"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@toto:1568:SID"
maxTotal="100"
maxIdle="10"
testOnBorrow="true"
validationQuery="select 1 from dual"/>
А вот что мой JPA компонент выглядит следующим образом:
@Component
public class TotoPollerRoute extends RouteBuilder {
private final String uri;
private static final String POLLING_REQUEST = "select tt from Toto tt where tt.key = 1";
public TotoPollerRoute() {
super();
final StringBuilder uriBuilder = new StringBuilder();
uriBuilder.append("jpa://");
uriBuilder.append(TotoPollerRoute.class.getName());
uriBuilder.append("?");
uriBuilder.append("consumeDelete=false");
uriBuilder.append("&consumeLockEntity=true");
uriBuilder.append("&consumer.SkipLockedEntity=true");
uriBuilder.append("&maximumResults=10");
uriBuilder.append("&consumer.query=");
uriBuilder.append(POLLING_REQUEST);
this.uri = uriBuilder.toString();
}
@Override
public void configure() {
// @formatter:off
from(uri)
.to("TotoMainRoute");
// @formatter:on
}
}
Любая идея?
Все еще недостаточно, я ха такое же поведение. При перезагрузке моей БД я получаю следующие ошибки в следующем порядке: '2017-02-10 10: 58: 00,366 ОШИБКА ohejspi.SqlExceptionHelper (131) - ORA-01033: Инициализация или завершение ORACLE: ' 2017 -02-10 10: 58: 05,615 ОШИБКА ohejspi.SqlExceptionHelper (131) - Больше нет данных для чтения из сокета - [Верблюд-1) нить # 10 - jpa: // com.' '2017-02 -10 10: 58: 30,339 ОШИБКА ohejspi.SqlExceptionHelper (131) - Закрытое соединение - [Верблюд-1) нить # 59 - jpa: // com.' – teikitel
Таким образом, верблюд поддерживает открытую связь между опросами ? Возможно, вам захочется проконсультироваться с документацией на верблюдах. – Naros
Фактически, если не указано, верблюд создает собственный компонент EntityManagerFactory для JPA. Я, наконец, понял, что не использовал тот, который я объявил в моем весеннем контексте. – teikitel