我有一个在我的客户端系统上运行的连接测试脚本,并通过调用 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 级别也没有显示任何新内容。坦率地说,我不知道下一步该尝试什么,任何帮助将不胜感激。