oracle - 当网络不稳定时,如何防止数据库连接失败?

标签 oracle delphi networking bde

我们有一个使用 BDE 连接到 Oracle DB 的应用程序。
我使用 TQuery 进行 SQL 查询,它连接到 TDatabase,我们不是专业程序员,我们不知道幕后发生了什么。

我们的网络不稳定,存在丢包问题。

当问题发生时,我们的应用程序会与数据库服务器断开连接,或者无法完成当前查询。
处理这个问题的最佳方法是什么?

我们的网络团队目前正在努力解决根本问题,并且我们已经更改了代码以在出现故障时重新连接到数据库。我们遇到了数据库服务器上打开 session 数量的问题。

有什么解决办法吗?
这对我们来说似乎是一个常见问题。

最佳答案

我对数据库组件提出以下建议。

  1. 连接每个 SQL 并在完成后关闭。
  2. 使用连接超时并在超时时重新启动查询
  3. 如果数据库断开连接,则将数据假脱机到客户端上的本地数据库,并在再次连接后重新启动到中央数据库的传输。这样您就不会丢失任何数据。
  4. 使用计时器检查中央数据库连接,以对未传输的数据进行假脱机操作。

这个问题在车间数据收集中很常见,上面的建议是我有效处理该问题的唯一方法。

关于oracle - 当网络不稳定时,如何防止数据库连接失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/885686/

相关文章:

java - Oracle 和 Java 中出现 UTF-8 字符问题

sql - 当约束名称未知时删除检查约束

delphi - 处理 ClientDataset 的 Delta

windows - 如何避免异步非阻塞 WSASend 调用的缓冲区溢出

JAVA:服务器客户端程序在读取文本文件时出现 NumberFormatException

c# - 在 C# 中使用 sql 语句更改 Oracle 数据库的用户密码

delphi - 我可以将动态数组声明为值类型的字典吗?

delphi - 如何将结构内的 C 联合转换为 Delphi

linux - 为什么 netstat 报告的开放端口数量少于 lsof

c# - Linq 实体分组依据(外部应用) "oracle 11.2.0.3.0 does not support apply"