GlassFish V3 + TimesTen 有一个非常奇怪的问题。我的配置是:
- GlassFish Server 开源版 3.1.2.2(内部版本 5)
- TimesTen 发布 11.2.2.2.0
- Java(TM) SE 运行时环境(内部版本 1.6.0_31-b04) Java HotSpot(TM) 64 位服务器 VM(内部版本 20.6-b01,混合模式)。
- Linux 2.6.32-131.0.15.el6.x86_64
- 两台机器具有相同的硬件(第二台服务器是第一台的克隆)。
GlassFish、TimesTen、Java 和 Linux 在两台服务器上都是相同的。
我在服务器一上有 GlassFish DAS。使用一个实例(在本地主机上)成功创建节点代理,部署我的应用程序,它与 TimesTen 数据库通信,在 GlassFish 中配置 JVM 选项,我的应用程序运行完美。我已经用 Soap UI 对其进行了测试,并得到了正确的响应。
但是当我在远程服务器 2 上创建节点 + 实例时,应用程序将无法在这台机器上运行。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
环境。两台机器上的变量 LD_LIBRARY_PATH 相同:
LD_LIBRARY_PATH=/opt/TimesTen/tt1122/lib
实例根文件夹中的库在两台服务器上是相同的。我会尝试添加 JVM 选项:
-Djava.library.path=/opt/TimesTen/tt1122/lib
但它没有效果,server.log中的错误是一样的。我还能如何解决这个问题?
PS:刚才试过这个:在第二台机器上安装相同的 glassfish,在 domain1/libs 目录中复制库,在服务器上配置 JDBC 资源,部署我的应用程序,它的工作完美!但它不适用于集群配置......
PPS:在 glassfish v 2.1.1 上一切正常。我在具有相同应用程序的 4 台服务器上有 7 个实例。