我开发了一个 Delphi 7 应用程序,在客户端中使用 Firebird 1.5.6 数据库 服务器环境。
应用程序在 Windows 7 32 位笔记本电脑上运行,数据库正在运行 在用作服务器的 Windows XP 32 位计算机上。 问题是应用程序闲置一段时间后会自行冻结。 只有当我们安装在Windows 7上时,Windows XP上才出现此问题。
5 年来一切都运行良好,但现在在 Windows 7 上该应用程序完全不稳定。
有时唤醒时间为 10-30 秒即可成功,但有时却不会出现“应用程序未响应”或“应用程序崩溃”消息。
我不知道在哪里搜索或尝试寻找解决方案。 我尝试制作一个分辨率为 10 秒的计时器,使其持续处于活动状态 但没有成功。
顺便说一句,我正在管理员模式下运行,并且 XP 兼容模式处于活动状态。 我还没有尝试过虚拟XP模式,但我认为这不能解决问题。
我遇到了类似的问题:在一些使用 Windows 7 32 位的独立计算机(同一台 PC 上的 firebird 服务器和客户端)上,有时会出现应用程序冻结(Delphi 7)。
所有冻结的时间相同(60 秒)。我尝试更改
firebird.conf
,经过一些测试后我发现了参数DUMMY_PACKET_INTERVAL
。
我将其设置为非常低的值,冻结似乎消失了。
当然,您保持开放的连接存在问题。
控制 firebird.log 并尝试测试一下自己。
是否数据库文件的扩展名为 .gdb,而 Windows XP 正在按照此处所述备份该文件http://www.firebirdfaq.org/faq353/?
如果你从未解决过这个问题,我认为这与交易有关。你说连接一直处于活动状态。我猜您正在使用自动/自动提交事务。当您执行此操作时,感兴趣的事务永远不会移动,因为事务始终保留(提交和保留)。
发生这种情况时,如果不运行“垃圾收集”进程,Firebird 就无法清理垃圾。这会导致两个问题。