【问题标题】:Embedded Firebird unload delay嵌入式 Firebird 卸载延迟
【发布时间】:2010-10-23 19:21:54
【问题描述】:

关闭应用程序后,fbclient.dll 会在内存中保留大约 3 秒。所以它会锁定数据库文件并阻止我的应用程序卸载。我正在使用嵌入式 Firebird。

问题与事件有关。我使用 isc_que_events 注册活动。如果我不注册事件 dll 会立即卸载。

我在以前的 FB 版本中遇到过这个问题,现在在 2.1.3 中它仍然是一样的。

http://tracker.firebirdsql.org/browse/CORE-15 此处描述了相同的问题,但已解决为“无法重现”。

有人遇到这个问题还是我的代码有问题?

【问题讨论】:

  • 您是否在 Firebird Tracker 中提交了一些内容?
  • 不tracker.firebirdsql.org/browse/CORE-15 现在已关闭为“无法复制”
  • 在尝试卸载之前您是否正确 ubsubscribe (isc_cancel_events, iirc)?
  • 我在不使用任何事件的情况下也遇到了同样的问题——即使我所做的只是“连接”到我的数据库文件并再次关闭它,它也会发生。这很烦人,尤其是在开发过程中。即使禁用池,我也已经尝试过 ClearAllPools()。

标签: firebird


【解决方案1】:

您是否在使用 .NET 提供程序?这个在池中保持连接打开,也许这就是问题所在。在退出应用程序之前尝试清除连接池:

FbConnection.ClearAllPools();

【讨论】:

  • 不,我使用的是原生 Firebird API
  • 我正在使用 .NET 提供程序,而您刚刚帮我解决了我一整天都在解决的问题。我选择只调用 ClearPool(connection),效果很好。
【解决方案2】:

我已经重写了我的逻辑,现在我不需要订阅本地事件。所以这对我来说不再是问题了。但问题仍然存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    相关资源
    最近更新 更多