【发布时间】:2014-06-19 23:58:47
【问题描述】:
我在 ubuntu linux 机器上运行 glassfish v3。我在服务器上遇到了一些问题。有时服务器会停止接受请求并挂起。日志中的任何内容都没有给我任何帮助。在试图追查这个问题时,我注意到了一个奇怪的现象......以下是我在输入 ps aux | 时看到的内容。 grep java:
155 % ps aux | grep java
my-company 24242 90.0 17.3 3656228 690024 ? Sl 18:39 1:17 /usr/home/my-company/local/jdk1.6.0_45/bin/java -cp /usr/home/my-company/glassfish3/glassfish/modules/glassfish.jar -XX:+UnlockDiagnosticVMOptions -XX:MaxPermSize=256m -XX:NewRatio=2 -Xmx1024m -client -javaagent:/usr/home/my-company/glassfish3/glassfish/lib/monitor/flashlight-agent.jar -Dfelix.fileinstall.disableConfigSave=false -Djavax.net.ssl.keyStore=/usr/home/my-company/glassfish3/glassfish/domains/domain1/config/keystore.jks -Djava.awt.headless=true -Dfelix.fileinstall.poll=5000 -Djava.endorsed.dirs=/usr/home/my-company/glassfish3/glassfish/modules/endorsed:/usr/home/my-company/glassfish3/glassfish/lib/endorsed -Dfelix.fileinstall.bundles.startTransient=true -Djavax.net.ssl.trustStore=/usr/home/my-company/glassfish3/glassfish/domains/domain1/config/cacerts.jks -Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as -Djava.security.auth.login.config=/usr/home/my-company/glassfish3/glassfish/domains/domain1/config/login.conf -DANTLR_USE_DIRECT_CLASS_LOADING=true -Dgosh.args=--nointeractive -Dosgi.shell.telnet.maxconn=1 -Djdbc.drivers=org.apache.derby.jdbc.ClientDriver -Dfelix.fileinstall.dir=/usr/home/my-company/glassfish3/glassfish/modules/autostart/ -Dosgi.shell.telnet.port=6666 -Djava.security.policy=/usr/home/my-company/glassfish3/glassfish/domains/domain1/config/server.policy -Dfelix.fileinstall.log.level=2 -Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory -Dosgi.shell.telnet.ip=127.0.0.1 -Dcom.sun.aas.instanceRoot=/usr/home/my-company/glassfish3/glassfish/domains/domain1 -Dcom.sun.aas.installRoot=/usr/home/my-company/glassfish3/glassfish -Djava.ext.dirs=/usr/home/my-company/local/jdk1.6.0_45/lib/ext:/usr/home/my-company/local/jdk1.6.0_45/jre/lib/ext:/usr/home/my-company/glassfish3/glassfish/domains/domain1/lib/ext -Dfelix.fileinstall.bundles.new.start=true -Dorg.glassfish.additionalOSGiBundlesToStart=org.apache.felix.shell,org.apache.felix.gogo.runtime,org.apache.felix.gogo.shell,org.apache.felix.gogo.command,org.apache.felix.fileinstall -Djava.library.path=/usr/home/my-company/glassfish3/glassfish/lib:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk-amd64/lib/amd64:/usr/java/packages/lib/amd64:/usr/lib/jni:/lib:/usr/lib com.sun.enterprise.glassfish.bootstrap.ASMain -domainname domain1 -asadmin-args --host,,,localhost,,,--port,,,4848,,,--secure=false,,,--terse=false,,,--echo=false,,,--interactive=false,,,start-domain,,,--verbose=false,,,--debug=false,,,--domaindir,,,/usr/home/my-company/glassfish3/glassfish/domains,,,domain1 -instancename server -verbose false -debug false -asadmin-classpath /usr/home/my-company/glassfish3/glassfish/modules/admin-cli.jar -asadmin-classname com.sun.enterprise.admin.cli.AsadminMain -upgrade false -type DAS -domaindir /usr/home/my-company/glassfish3/glassfish/domains/domain1 -read-stdin true
my-company 24427 0.0 0.0 6512 620 pts/0 S+ 18:40 0:00 grep java
有些奇怪...似乎用于启动 glassfish(通过 asadmin 命令工具)的 jvm 是位于 /usr/home/my-company/local/jdk1.6.0_45 的 JVM ,但在文本的更远处,您可以看到 java.library.path 集,它只包含 /usr/lib/jvm/java-6 中的库-openjdk-amd64/ !
我使用的托管公司默认安装 openJDK。我已经安装了 java /usr/home/my-company/local/jdk1.6.0_45 的官方 oracle 版本——这是我想要使用的版本,我已经设置了 JAVA_HOME 和 JDK_HOME 指向来反映这一点。如何设置 java.library.path?应该通过环境变量设置,还是我必须在 glassfish 内部设置?
【问题讨论】:
标签: java linux glassfish-3