我们有一个使用连接到Oracle DB的BDE的应用程序 我使用TQuery进行SQL查询,它连接到TDatabase,我们不是专业的程序员,我们不知道幕后会发生什么。
我们的网络不稳定,我们遇到丢包问题。
问题发生时,我们的应用程序与数据库服务器断开连接,或者无法完成当前查询 处理这个问题的最佳方法是什么?
我们的网络团队目前正在努力解决根本问题,并且在发生故障时我们已将代码更改为重新连接到数据库。我们遇到了数据库服务器上打开会话数量的问题。
有没有解决方案?
这似乎是我们的共同问题。
答案 0 :(得分:3)
我建议在数据库组件上进行以下操作。
这个问题在车间数据收集中很常见,上面的建议是我有效处理问题的唯一方法。
答案 1 :(得分:2)
对不起,简短的回答...修复你的网络。在这一点上,这真的是你最好的选择。
答案 2 :(得分:2)
转到n层解决方案也可能有所帮助......尤其是如果中间层也在数据库服务器上,那么它的连接是本地的。 Delphi最近的大多数实现使用自定义HTTP服务器作为中间层,其优点是只需要对当前正在执行的请求进行连接。请求完成后,连接可以被切断而没有任何问题
答案 3 :(得分:1)
尝试实现一个“看门狗”线程:
考虑到任何交易可能根本不会成功,并将该信息保存在某处。然后,在通过“看门狗”线程连接时,如果交易的性质允许,则尝试再次预先形成该交易。
答案 4 :(得分:1)
使用DBExpress技术而不是其他任何ADO。结构dbquery + provider + Clientdataset按设计“断开连接”。
您可以测试只是打开数据集,删除连接,重新连接并发布数据。
顺便说一下,使用DBExpress可以很容易地将应用程序升级到n层方案。