2

クライアント システムで実行され、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 Proxy サーバーのログは次のようになります。

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

そのため、2 つのシステムの 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 レベルを上げても、新しいことは何も明らかになりませんでした。率直に言って、次に何を試すべきかわかりません。どんな助けでも大歓迎です。

4

0 に答える 0