GlassFish V3 Cluster + TimesTen奇怪的行为

时间:2013-02-16 19:27:05

标签: java glassfish-3 timesten

我对GlassFish V3 + TimesTen有一个非常奇怪的问题。 我的配置是:

  1. GlassFish Server开源版3.1.2.2(版本5)
  2. TimesTen版本11.2.2.2.0
  3. Java(TM)SE运行时环境(版本1.6.0_31-b04)Java HotSpot(TM)64位服务器VM(版本20.6-b01,混合模式)。
  4. Linux 2.6.32-131.0.15.el6.x86_64
  5. 两台带有相同硬件的机器(第二台服务器是第一台服务器的克隆)。
  6. 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个实例

1 个答案:

答案 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

然后使用此脚本启动实例。 然后我的应用程序正常工作:)