如何交换ODBC连接



我有两个Informix数据库在网络中并行运行。一个是主服务器数据库,另一个是辅助服务器数据库。默认情况下,我需要从客户端节点(SCADA应用程序(连接主数据库。如果主数据库未处于活动状态,则我需要连接辅助数据库。如何使用ODBC连接在主连接和辅助连接之间切换?

您可能应该查看Connection Manager--oncmsm--它旨在处理副本之间的故障转移。您的应用程序将使用单个句柄连接到连接管理器,连接管理器将活动路由到主节点,除非它不可用。

如果您不使用连接管理器,那么在两个连接之间切换的机制就足够简单了。您有两个可用的连接句柄,并使用第三个变量current_connection,该变量最初指向主句柄。当检测到主句柄不可用时,将current_connection更改为指向辅助句柄。这里棘手的部分是检测主服务器何时不可用。您可能需要对每个操作进行某种超时,并能够在切换后重试最后一条语句。这变得很复杂——在恢复后检测何时切换回主屏幕也是如此。这是连接管理器自动处理的事情。

最新更新