无效令牌 - 偏移量 340 函数 F_LRTRIM 处的无效请求 BLR 未定义

Invalid token - invalid request BLR at offset 340 function F_LRTRIM is not defined

我正在尝试使两个 Firebird 数据库相互同步。首先,我已经配置了单向同步。因此,一个数据库是Source-DB,另一个是target-DB。

要开始同步,我使用 IBReplicator!当我开始同步时,出现错误:

Exception: Invalid token
invalid request BLR at offset 340
function F_LRTRIM is not defined 
module name or entrypoint could not be found

我开始寻找问题的原因。我已经检查过的内容:

我了解到当 Firebird 服务器版本和 .dll 文件版本不匹配时可能会出现问题。但我不知道如何验证版本。

而且我想搜索 .conf 文件来检查 UDF 文件 (.dll) 的路径,但我没有找到它。我只找到了 firebird.conf 文件并且我已经将 UDFAccess 设置为 Full。

如果有人能帮助我,我将不胜感激。我在这个问题上浪费了大量时间。

该错误表示Firebird在执行函数时找不到入口点或库。这意味着

  1. 找不到库:它不在(库)路径上或 UdfAccess 配置中列出的文件夹之一
  2. 库已找到,但它是 32 位的而你是 运行 64 位(或者它是 64 位而你是 运行 32 位)
  3. 已找到库,但没有 UDF 的入口点。

你的问题好像是第一个,解决方法是在UdfAccess配置中加入UDF的位置。鉴于评论,你应该使用

UdfAccess = Restrict UDF

这将只允许来自 Firebird 安装目录 UDF 的 UDF 库。如果需要,您可以列出由 ;.

分隔的多个目录

你永远不应该使用 UdfAccess = Full,它是不安全的,因为它可能被用来破坏你系统的(库)路径上的任何库。