2014-04-04 71 views
0

我试图在单个服务器上运行2个tomcat实例。我更新了tomcat实例的server.xml,以便http/https端口不同。我还更新了setenv.sh中的CATALINA_OPTS,以便远程jmx端口不同。在单个服务器上运行2个tomcat实例

CATALINA_OPTS为Tomcat 1:

CATALINA_OPTS="-Dcom.sun.management.jmxremote \ 
    -Dcom.sun.management.jmxremote.port=7061 \ 
    -Dcom.sun.management.jmxremote.ssl=false \ 
    -Dcom.sun.management.jmxremote.authenticate=false \ 
    -javaagent:/mnt/production/tomcat/bin/remoteagent.jar" 

CATALINA_OPTS为Tomcat 2:

CATALINA_OPTS="-Dcom.sun.management.jmxremote \ 
    -Dcom.sun.management.jmxremote.port=7065 \ 
    -Dcom.sun.management.jmxremote.ssl=false \ 
    -Dcom.sun.management.jmxremote.authenticate=false \ 
    -javaagent:/mnt/production/tomcat/bin/remoteagent.jar \ 
    -Djava.security.auth.login.config=$CATALINA_HOME/conf/crowd.conf" 

但是,当我尝试启动tomcat的第二个实例,我得到在端口3000我greped绑定异常tomcat的第一个实例的日志,我在catalina日志文件中看到以下行:

Created service URL service:jmx:rmi://localhost:3001/jndi/rmi://localhost:3000/jmxrmi 

我把3000的整个tomcat目录加密了,但是没有关于端口3000的配置。所以我认为这是一些默认配置。有人知道如何修改此配置。

+0

tomcat的版本是什么? 6,还是7? – BMW

+0

它是雄猫6 .. – KunalC

回答

0

server.xml用于设置tomcat服务器端口,例如http,https,shutdown,AJP等,但不适用于jmx remote。

看来你有一个单独的环境文件setenv.sh(UNIX)或setenv.bat(窗口),其中规定JMX连接的URL

Attribute Description    Example 
url   Set JMX connection URL service:jmx:rmi:///jndi/rmi://localhost:8050/jmxrmi 

请找到它的第二个实例,并更新到其他端口。

这是tomcat 6关于jmx远程设置的文档。 https://tomcat.apache.org/tomcat-6.0-doc/monitoring.html

如果你仍然无法找到该端口的文件,请确认您使用到grep整个tomcat目录

cd $TOMCAT_HOME 
find . -type f -exec grep -l 3000 {} \; 
0

您可以设置-Dcom.sun.management.jmxremote.port命令= CATALINA_OPTS中的%my.jmx.port%以更改JMX端口。

相关问题