問題1:
????????配置Javabeans時(shí),出現(xiàn)錯(cuò)誤信息"沒有找到本地方法庫:java.lang.UnsatisfiedLinkError"。
錯(cuò)誤原因:
trsbean.jar對應(yīng)的本地方法庫trsbean.dll或libtrsbean.so配置不正確。
解決方法:
????????1.確認(rèn)安裝介質(zhì)在傳輸過程中沒有損壞,如ftp傳輸需要使用二進(jìn)制模式。
????????2.確認(rèn)操作系統(tǒng)的版本和JDK的位數(shù)。
???????????JavaBeans的位數(shù)必須和JDK的位數(shù)保持一致,如32位JDK必須使用32位JavaBeans。
???????????JavaBeans的平臺必須和JDK的平臺保持一致。如AIX5.1平臺的JavaBeans只支持AIX5.1/5.2/5.3,不支持AIX4.3或其它廠商的Unix。
????????3.注意libtrsbean.so的文件屬性。
???????????如HP平臺,必須設(shè)置libtrsbean.sl的可執(zhí)行權(quán)限。
????????4.注意trsbean.dll/libtrsbean.so的存放路徑,應(yīng)該包含在JAVA本地方法庫的搜索路徑。
???????????Windows平臺:
???????????????JAVA本地方法庫的搜索路徑包含環(huán)境變量PATH和%JAVA_HOME%/jre/bin;
???????????Linux/Solaris平臺:
???????????????JAVA本地方法庫的搜索路徑包含環(huán)境變量LD_LIBRARY_PATH;
???????????AIX平臺:
???????????????JAVA本地方法庫的搜索路徑包含環(huán)境變量LIBPATH;
???????????HPUX平臺:
???????????????JAVA本地方法庫的搜索路徑包含環(huán)境變量SHLIB_PATH;
?? ??
???????????JDK1.4以上版本,也可以在java啟動參數(shù)中設(shè)置系統(tǒng)屬性java.library.path,?指向libtrsbean.so所在的目錄,如java?-Djava.library.path="/home/trs/trsbean"
???????????通常情況下,在應(yīng)用服務(wù)器的啟動腳本中指定本地方法庫的搜索路徑。???????????
問題2:
???????多套應(yīng)用同時(shí)使用javabean,出現(xiàn)錯(cuò)誤信息"java.lang.UnsatisfiedLinkError:?Native Library trsbean.dll already loaded in another classloader"。
錯(cuò)誤原因:
???????一個(gè)JAVA進(jìn)程,JAVA本地方法庫只能被加載一次,如果被多次加載就會出現(xiàn)該錯(cuò)誤。
解決方法:
????????保證在一個(gè)JAVA虛擬機(jī)中,TRS Javabeans的本地方法庫只被加載一次。
如果應(yīng)用服務(wù)器上的多個(gè)應(yīng)用使用TRS JavaBeans,不能將trsbean.jar部署到每個(gè)應(yīng)用下。
????????建議只保留一套TRS JavaBeans,在應(yīng)用服務(wù)器中配置全局的trsbean.jar。
以Tomcat4.1.36,?Windows系統(tǒng)為例:
????????????將trsbean.jar放在%TOMCAT_HOME%/common/lib,或修改啟動腳本中的CLASSPATH變量。
????????????將trsbean.dll放在系統(tǒng)動態(tài)庫的搜索路徑。
問題3:
??????為什么TRSConnection和TRSResultSet需要close??能否將TRS對象放在WEB應(yīng)用的Session中?
答案3:
??????TRSConnection對應(yīng)TRS連接,?TRSResultSet對應(yīng)TRS結(jié)果集,占用少量的Native內(nèi)存。
??????如果程序不調(diào)用close方法關(guān)閉,會造成Native內(nèi)存泄露,嚴(yán)重時(shí)導(dǎo)致java進(jìn)程出現(xiàn)OutOfMemory錯(cuò)誤。
??????如果將TRS對象放在Session中,WEB客戶端快速翻頁時(shí)會導(dǎo)致記錄內(nèi)容的不一致。
評論
感謝關(guān)注TRS開發(fā)問題。
從6.0開始, 動態(tài)庫只有一個(gè)trsbean.dll。
TRS JavaBeans開發(fā)手冊已經(jīng)更新了。
64位操作系統(tǒng),一般情況下,能夠運(yùn)行32位/64位JDK。
JavaBeans的位數(shù)必須和JDK的位數(shù)保持一致,32位JDK必須使用32位JavaBeans,64位JDK必須使用64位JavaBeans。
JavaBeans的平臺必須和JDK的平臺保持一致,Solaris注意SPARC/X86,HPUX注意PA-RISC/IA64,等等。
問題1的解決方法2:
在不影響其它TRS應(yīng)用的前提下,可以將trsbean.jar和libtrsbean.so放在JDK目錄。
trsbean.jar放在$JAVA_HOME/jre/lib/ext。
libtrsbean.so放在$JAVA_HOME/jre/bin, 或$JAVA_HOME中*.so所在的子目錄。
這種配置方法,會影響所有使用該JDK的JavaBeans應(yīng)用,需要特別注意。
回復(fù) 更多評論
從6.0開始, 動態(tài)庫只有一個(gè)trsbean.dll。
TRS JavaBeans開發(fā)手冊已經(jīng)更新了。
64位操作系統(tǒng),一般情況下,能夠運(yùn)行32位/64位JDK。
JavaBeans的位數(shù)必須和JDK的位數(shù)保持一致,32位JDK必須使用32位JavaBeans,64位JDK必須使用64位JavaBeans。
JavaBeans的平臺必須和JDK的平臺保持一致,Solaris注意SPARC/X86,HPUX注意PA-RISC/IA64,等等。
問題1的解決方法2:
在不影響其它TRS應(yīng)用的前提下,可以將trsbean.jar和libtrsbean.so放在JDK目錄。
trsbean.jar放在$JAVA_HOME/jre/lib/ext。
libtrsbean.so放在$JAVA_HOME/jre/bin, 或$JAVA_HOME中*.so所在的子目錄。
這種配置方法,會影響所有使用該JDK的JavaBeans應(yīng)用,需要特別注意。
回復(fù) 更多評論
只有注冊用戶登錄后才能發(fā)表評論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||
相關(guān)文章:
|
||