我对GlassFish V3 + TimesTen有一个非常奇怪的问题。 我的配置是:
GlassFish,TimesTen,Java和Linux在两台服务器上是相同的。
我在服务器上有GlassFish DAS。使用一个实例(在localhost上)成功创建了Node-agent,部署了我的应用程序,它与TimesTen数据库通信,在GlassFish中配置JVM选项,我的应用程序运行完美。我用Soap UI测试了它并且有正确的响应。
但是当我在远程服务器2上创建node + instance时,应用程序将无法在此计算机上运行。 glassfish实例的配置是相同的,因为实例位于同一个集群中。
我在server.log中有这些错误:
无法分配连接,原因是:加载本机库/缺少方法的问题:/opt/TimesTen/tt1122/lib/libttJdbc.so: libtten.so:无法打开共享对象文件:没有这样的文件或目录
两个文件的权限:
-rwxr-x---. 1 esb esb 444K Dec 23 2011 /opt/TimesTen/tt1122/lib/libttJdbc.so
-rwxrwxrwx. 1 esb esb 18M Apr 10 2012 /opt/TimesTen/tt1122/lib/libtten.so
的Env。两台机器上的变量LD_LIBRARY_PATH是相同的:
LD_LIBRARY_PATH=/opt/TimesTen/tt1122/lib
实例中的Libs根文件夹在两台服务器上都是相同的。我尝试添加JVM选项:
-Djava.library.path=/opt/TimesTen/tt1122/lib
但它没有效果,server.log中的错误是相同的。 我怎么能解决这个问题?
PS:刚刚尝试过这个:在第二台机器上安装了同样的glassfish,在domain1 / libs目录中复制了libs,在服务器上配置了JDBC资源,部署了我的应用程序,它的工作完美无缺! 但它不适用于群集配置......PPS:在glassfish v 2.1.1上,一切正常。我在4台具有相同应用程序的服务器上有7个实例
答案 0 :(得分:0)
好的,我发现了。 写这样的simpe脚本:
export LD_LIBRARY_PATH="/opt/TimesTen/tt1122/lib"
/glassfish3/glassfish/bin/asadmin start-local-instance --user admin --passwordfile /glassfish3/passwd --node YOURNODE --sync normal YOURINSTANCE
然后使用此脚本启动实例。 然后我的应用程序正常工作:)