MyBatis DB 连接故障转移机制不起作用
MyBatis DB connection fail-over mechanism is not working
我在 Adobe Experience Manager 中安装了一个 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.
我们有数据库服务器集群,每当我们必须对数据库应用补丁时,我们就会切换数据库服务器。
即使 dataSource URL 保持不变,应用程序也会导致数据库连接失败错误。
只有在捆绑重新启动后问题才会得到解决。
连接池有什么方法可以自动重新连接或恢复吗?
我是 MyBatis、SQL 服务器和 AEM 的新手,非常感谢任何帮助。
最简单的解决方法是设置 pool-ping-query。看来,您的连接无法在切换到冷备用数据库后继续存在。他们必须重新开放。通过此查询,连接池可以检查连接是否仍然正常。否则,将关闭此错误连接。
发表评论后,我查看了http://www.mybatis.org/mybatis-3/configuration.html。在那里你应该寻找参数
- poolPingQuery
- poolPingEnabled
我会尝试以下配置
<dataSource type="POOLED">
...
<property name="poolPingQuery" value="/* ping */ SELECT 1"/>
<property name="poolPingEnabled" value="true"/>
</dataSource>
但请注意,这仍然不是一个优雅的切换。它只检查池中的连接。您的所有 运行 交易仍然会出错。但如果您的事务很短,不是大规模并行,也不是高度关键,那可能没问题。
我在 Adobe Experience Manager 中安装了一个 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.
我们有数据库服务器集群,每当我们必须对数据库应用补丁时,我们就会切换数据库服务器。 即使 dataSource URL 保持不变,应用程序也会导致数据库连接失败错误。 只有在捆绑重新启动后问题才会得到解决。 连接池有什么方法可以自动重新连接或恢复吗? 我是 MyBatis、SQL 服务器和 AEM 的新手,非常感谢任何帮助。
最简单的解决方法是设置 pool-ping-query。看来,您的连接无法在切换到冷备用数据库后继续存在。他们必须重新开放。通过此查询,连接池可以检查连接是否仍然正常。否则,将关闭此错误连接。
发表评论后,我查看了http://www.mybatis.org/mybatis-3/configuration.html。在那里你应该寻找参数
- poolPingQuery
- poolPingEnabled
我会尝试以下配置
<dataSource type="POOLED">
...
<property name="poolPingQuery" value="/* ping */ SELECT 1"/>
<property name="poolPingEnabled" value="true"/>
</dataSource>
但请注意,这仍然不是一个优雅的切换。它只检查池中的连接。您的所有 运行 交易仍然会出错。但如果您的事务很短,不是大规模并行,也不是高度关键,那可能没问题。