首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MyBatis DB连接失效机制不起作用。

MyBatis DB连接失效机制不起作用。
EN

Stack Overflow用户
提问于 2017-07-19 01:21:10
回答 1查看 2.2K关注 0票数 1

我在Adobe管理器中安装了一个java应用程序(jar)作为OSGI。

在Java应用程序中,我有以下数据资源配置: 1.我使用MyBatis-3管理数据资源池连接,如下所示:使用http://www.mybatis.org/mybatis-3/getting-started.html中提到的属性

代码语言:javascript
复制
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的新手,任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-19 07:58:10

对于您来说,最简单的解决方法是设置一个池-ping查询。看来,您的连接无法在切换到冷备用数据库时存活下来。它们必须重新打开。使用此查询,连接池可以检查连接是否仍然正常。如果没有,这个错误的连接将被关闭。

在给出我的评论后,我查看了http://www.mybatis.org/mybatis-3/configuration.html。在那里你应该寻找参数

  • poolPingQuery
  • poolPingEnabled

我会尝试使用以下配置

代码语言:javascript
复制
<dataSource type="POOLED">
   ...
   <property name="poolPingQuery" value="/* ping */ SELECT 1"/>
   <property name="poolPingEnabled" value="true"/>
</dataSource>

但请注意,这仍然不是一个优雅的转变。它只检查池中的连接。所有正在运行的事务仍然会出现错误。但是,如果您的事务是短的,而不是大规模并行的,并且没有高度的批判性,这可能是可以的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45179509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档