当我的应用程序正在运行时重新启动数据库时,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 ]
但仍然我能在我的CXF路线执行与弹簧数据的SQL请求。在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) - 关闭连接 - [Camel(camel-1)thread#59 - jpa:// com.' – teikitel
因此,骆驼正在保持连接在民意调查之间打开?然后您可能需要查阅骆驼文档。 – Naros
实际上,如果没有指定骆驼instanciate它自己的EntityManagerFactory JPA组件。我终于明白它并没有使用我在我的春天环境中声明的那个。 – teikitel