如果断开连接,请重新连接 Oracle 数据库

问题描述 投票:0回答:1

环境: Visual Studio C++ 2022、Windows Server 2019 数据中心、Oracle 数据库、Oracle 数据访问组件 (ODAC)

嗨,

我开发了 C++ 服务器应用程序,该应用程序 24x7 运行。我的应用程序使用 Oracle OleDB 连接 Oracle 数据库。连接到Oracle数据库后,连接对象被缓存。有时此连接对象会变得无效并报告错误“未连接到 Oracle”。当时我的程序重试连接Oracle数据库但失败了。

当我重新启动应用程序时,程序成功连接到Oracle数据库。

正在使用的Oracle OleDB函数

  • CDataSource::OpenFromInitializationString 正在用于连接 Oracle数据库。

  • CDataSource::Close() 正在关闭连接。

  • CSession::Open() 用于打开会话。

  • CSession::Close() 用于关闭会话。

我的要求是在不重新启动程序的情况下恢复Oracle连接。

知道如何解决这个问题吗?

提前致谢。 问候, 维杰·库马尔·辛格

c++ oracle database-connection odac
1个回答
0
投票

现在这些问题可以通过 JDBC 驱动程序比 OCI 驱动程序更好地解决。 但你仍然可以搜索:

  • Oracle DCD,死连接检测
  • Oracle TCP keepalive,各种防火墙在数据库连接不活动时切断它。在 Oracle 的连接字符串中搜索
    (ENABLE=BROKEN)
  • Oracle AC,应用程序连续性,在某些情况下连接丢失可以对应用程序完全透明。驱动程序会记住哪些数据发送到数据库,它会重新连接并将数据重新传输到数据库,而应用程序甚至不会注意到发生了什么事。
© www.soinside.com 2019 - 2024. All rights reserved.