我在Adobe管理器中安装了一个java应用程序(jar)作为OSGI。
在Java应用程序中,我有以下数据资源配置: 1.我使用MyBatis-3管理数据资源池连接,如下所示:使用http://www.mybatis.org/mybatis-3/getting-started.html中提到的属性
2. Creating SQL Session factory in following manner :
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
3. Using SQL Server 2014 as my database.我们有数据库服务器集群,每当我们必须向数据库应用补丁时,我们就切换DB服务器。即使dataSource URL保持不变,应用程序也会导致DB连接失败错误。只有在bundle restard之后才能解决问题。连接池是否可以自动重新连接或恢复?我是MyBatis,server和AEM的新手,任何帮助都是非常感谢的。
发布于 2017-07-19 07:58:10
对于您来说,最简单的解决方法是设置一个池-ping查询。看来,您的连接无法在切换到冷备用数据库时存活下来。它们必须重新打开。使用此查询,连接池可以检查连接是否仍然正常。如果没有,这个错误的连接将被关闭。
在给出我的评论后,我查看了http://www.mybatis.org/mybatis-3/configuration.html。在那里你应该寻找参数
我会尝试使用以下配置
<dataSource type="POOLED">
...
<property name="poolPingQuery" value="/* ping */ SELECT 1"/>
<property name="poolPingEnabled" value="true"/>
</dataSource>但请注意,这仍然不是一个优雅的转变。它只检查池中的连接。所有正在运行的事务仍然会出现错误。但是,如果您的事务是短的,而不是大规模并行的,并且没有高度的批判性,这可能是可以的。
https://stackoverflow.com/questions/45179509
复制相似问题