This Is A FineDay

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  93 随笔 :: 0 文章 :: 69 评论 :: 0 Trackbacks

问题1:
        配置Javabeans时,出现错误信息"没有找到本地方法库:java.lang.UnsatisfiedLinkError"。
错误原因:
trsbean.jar对应的本地方法库trsbean.dll或libtrsbean.so配置不正确。
解决方法:
        1.确认安装介质在传输过程中没有损坏,如ftp传输需要使用二进制模式。
        2.确认操作系统的版本和JDK的位数。
           JavaBeans的位数必须和JDK的位数保持一致,如32位JDK必须使用32位JavaBeans。
           JavaBeans的平台必须和JDK的平台保持一致。如AIX5.1平台的JavaBeans只支持AIX5.1/5.2/5.3,不支持AIX4.3或其它厂商的Unix。
        3.注意libtrsbean.so的文件属性。
           如HP平台,必须设置libtrsbean.sl的可执行权限。
        4.注意trsbean.dll/libtrsbean.so的存放路径,应该包含在JAVA本地方法库的搜索路径。
           Windows平台:
               JAVA本地方法库的搜索路径包含环境变量PATH和%JAVA_HOME%/jre/bin;
           Linux/Solaris平台:
               JAVA本地方法库的搜索路径包含环境变量LD_LIBRARY_PATH;
           AIX平台:
               JAVA本地方法库的搜索路径包含环境变量LIBPATH;
           HPUX平台:
               JAVA本地方法库的搜索路径包含环境变量SHLIB_PATH;
     
           JDK1.4以上版本,也可以在java启动参数中设置系统属性java.library.path, 指向libtrsbean.so所在的目录,如java -Djava.library.path="/home/trs/trsbean"

           通常情况下,在应用服务器的启动脚本中指定本地方法库的搜索路径。           

问题2:
       多套应用同时使用javabean,出现错误信息"java.lang.UnsatisfiedLinkError: Native Library trsbean.dll already loaded in another classloader"。
错误原因:
       一个JAVA进程,JAVA本地方法库只能被加载一次,如果被多次加载就会出现该错误。
解决方法:
        保证在一个JAVA虚拟机中,TRS Javabeans的本地方法库只被加载一次。
如果应用服务器上的多个应用使用TRS JavaBeans,不能将trsbean.jar部署到每个应用下。
        建议只保留一套TRS JavaBeans,在应用服务器中配置全局的trsbean.jar。
以Tomcat4.1.36, Windows系统为例:
            将trsbean.jar放在%TOMCAT_HOME%/common/lib,或修改启动脚本中的CLASSPATH变量。
            将trsbean.dll放在系统动态库的搜索路径。

问题3:
      为什么TRSConnection和TRSResultSet需要close? 能否将TRS对象放在WEB应用的Session中?
答案3:
      TRSConnection对应TRS连接, TRSResultSet对应TRS结果集,占用少量的Native内存。
      如果程序不调用close方法关闭,会造成Native内存泄露,严重时导致java进程出现OutOfMemory错误。
      如果将TRS对象放在Session中,WEB客户端快速翻页时会导致记录内容的不一致。

posted on 2008-05-30 20:27 Peter Pan 阅读(1767) 评论(3)  编辑  收藏 所属分类: J2EE

评论

# re: trs常见问题 2008-07-14 15:50 dracula
貌似某些版本动态链接库还需要两个dll
t40api32.dll
t40sql32.dll  回复  更多评论
  

# re: trs常见问题 2008-10-13 15:01 TRS
感谢关注TRS开发问题。

从6.0开始, 动态库只有一个trsbean.dll。
TRS JavaBeans开发手册已经更新了。

64位操作系统,一般情况下,能够运行32位/64位JDK。
JavaBeans的位数必须和JDK的位数保持一致,32位JDK必须使用32位JavaBeans,64位JDK必须使用64位JavaBeans。
JavaBeans的平台必须和JDK的平台保持一致,Solaris注意SPARC/X86,HPUX注意PA-RISC/IA64,等等。

问题1的解决方法2:
在不影响其它TRS应用的前提下,可以将trsbean.jar和libtrsbean.so放在JDK目录。
trsbean.jar放在$JAVA_HOME/jre/lib/ext。
libtrsbean.so放在$JAVA_HOME/jre/bin, 或$JAVA_HOME中*.so所在的子目录。
这种配置方法,会影响所有使用该JDK的JavaBeans应用,需要特别注意。
  回复  更多评论
  

# re: trs常见问题 2014-02-19 13:16 林玮晶
知道如何解决 TRS 升级失败的问题的吗?  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: