2012-09-05 43 views
0

我有一個Solaris系統與x86 CPU,當我嘗試連接到使用perl的sybase db時,出現以下錯誤(在調試模式下運行腳本時產生錯誤,在94行的Sybase.pm中進入函數DBD :: Sybase :: db :: _log)perl在x86pc-solaris上的sybase連接錯誤

ct_con_props(CS_PASSWORD)在/usr/local/lib/perl5/site_perl/5.8.8/i86pc-solaris失敗/DBD/Sybase.pm line 94. at /usr/local/lib/perl5/site_perl/5.8.8/i86pc-solaris/DBD/Sybase.pm line 94 DBD :: Sybase :: dr :: connect(' DBI :: dr = HASH(0x8613a5c)','server = server1','user1,'password1','HASH(0x86b4e5c)')在/usr/local/lib/perl5/site_perl/5.8.8/i86pc- solaris/DBI.pm line 617 D BI :: _ ANON _/usr/local/lib/perl5/site_perl/5.8.8/i86pc-solaris/DBI.pm:679在/usr/local/lib/perl5/site_perl/5.8.8/i86pc處調用-solaris/DBI.pm line 681 DBI :: connect('DBI','DBI:Sybase:server = server1','user1,'password1')在./test.pl行中調用28 DBI :: CODE 0x83fcdd4)(/ usr/local/lib/perl5/site_perl/5.8.8/i86pc-solaris/DBI.pm:618): 618:$ user =''if!defined $ user;

從消息看來,密碼似乎有問題嗎?但我確定密碼是正確的,並且相同的代碼在Spark-solaris系統上工作得非常好,誰能告訴我什麼是錯誤的,或者告訴我如何進入函數DBD :: Sybase :: db :: _ login( $ this,$ server,$ user,$ auth,$ attr)?看起來像這個函數是在.xs文件中,但我找不到它在哪裏,並且無法調試到它。

,如果我跑withtout調試腳本,我得到了以下錯誤

ct_con_props(CS_PASSWORD)未能在/usr/local/lib/perl5/site_perl/5.8.8/i86pc-solaris/DBD/Sybase .pm line 94. DBI connect('server = server1','user1',...)failed:OpenClient message:LAYER =(1)ORIGIN =(4)SEVERITY =(6)NUMBER =(221) Server server1的,數據庫 消息字符串:ct__string_extended_encryption:用戶API層:內部公共庫錯誤:錯誤字符串不可用 在./test.pl線28 連接失敗在./test.pl管線28

這裏是子的代碼Sybase.pm

sub connect { 
    my($drh, $dbase, $user, $auth, $attr) = @_; 
    my $ifile = ''; 
    my $server = $dbase || $ENV{DSQUERY} || 'SYBASE'; 

    my($this) = DBI::_new_dbh($drh, { 
     'Name'   => $server, 
     'Username'  => $user, 
     'CURRENT_USER' => $user, 
    }); 

    DBD::Sybase::db::_login($this, $server, $user, $auth, $attr) 
     or return undef; 

    return $this; 
} 

回答

0

連接發送電子郵件到邁克爾Peppler(模塊作家)後,我得到了以下的答案,這個問題是固定的。

的問題是lib3p目錄,其中包含在運行時直接被加載的OpenClient,特別是對於像密碼加密庫等

這個目錄顯然需要在LD_LIBRARY_PATH或引用在默認庫搜索路徑中。

所以基本上,我需要添加OCS-15文件夾的路徑到LD_LIBRARY_PATH