如何修复DBI代理连接的Storable版本差异?

时间:2015-12-16 15:19:36

标签: perl dbi storable

我有一个连接测试脚本,它在我的客户端系统上运行,并通过

调用Perl DBI代理服务器
my $dbh = DBI->connect("dbi:Proxy:$dbiproxy;dsn=$dsn", "$user","$pass",{ PrintError => 1}) || ($errmsg = "ERROR on connect");

运行脚本时,将无法说明

connect('hostname=***;port=2001;dsn=dbi:Oracle:***','***',...) failed: Cannot log in to DBI::ProxyServer: Unexpected EOF from server at /usr/local/share/perl/5.10.1/RPC/PlClient.pm line 79.

DBI代理服务器上的日志读取

Wed Dec 15 14:47:47 2015 err, Child died: Storable binary image v2.7 more recent than I am (v2.6) at blib/lib/Storable.pm (autosplit into blib/lib/auto/Storable/thaw.al) line 363, at /usr/lib/perl5/site_perl/5.8.0/RPC/PlServer/Comm.pm line 179

所以我检查了两个系统的Perl和Storable模块版本号,而DBI代理服务器似乎已经过时了:

source: perl 5.10.1, storable 2.20, storable 2.7 (binary), Debian 6.0
target: perl 5.8.0 , storable 2.13, storable 2.6 (binary), RHEL 3

问题是我无法更新目标系统的模块/ perl版本,所以我想我可以通过修改/usr/local/share/perl/5.10.1/RPC/来简单地降低使用的客户端版本PlServer / Comm.pm文件并更改行

require Storable;

use Storable 2.13;

但这会导致与上面相同的错误。我也尝试在我的Perl测试脚本中直接使用Storable 2.13,但这也没有改变任何东西。

在谷歌搜索时,我找不到任何解决方案,只能确认此版本的差异可能是个问题。在客户端增加DBI_TRACE级别也没有发现任何新内容。坦率地说,我不知道下一步该尝试什么,非常感谢任何帮助。

0 个答案:

没有答案