Chinaunix首页 | 论坛 | 博客
  • 博客访问: 880160
  • 博文数量: 160
  • 博客积分: 420
  • 博客等级: 准将
  • 技术积分: 4566
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-04 00:31
文章分类

全部博文(160)

文章存档

2011年(13)

2010年(3)

2009年(63)

2008年(81)

分类: 网络与安全

2011-08-23 16:13:06

问题:tomcat使用startup.bat启动时,可以使用JMX方式监控(通过jdk6/bin/jconsole.exe连接测试),同时查看tomcat6的网络连接时(使用了360的网络连接查看器-_-),也会有配置的JMX的监听端口(我们这里配置的1090)。但是把tomcat做成NT服务之后,就无法使用jconsole连接,同时在网络连接里也看不到1090监听端口

 

原因:最根本的原因是startup.bat会去调用catalina.bat,而catalina.bat中配置了JMX的相关参数。但是注册成系统服务时就不会去调用catalina.bat

 

解决:根据原因,解决方法就是在注册服务时加上相应的参数。想到了两条路径,修改tomcat/bin/service.bat,在里面添加参数。另一个方法是直接修改注册后的服务的参数。

         第一种方法,看了看service.bat,没仔细研究,也没去尝试。

         第二种方法,打开服务的属性页面,理论上应该是在可执行文件路径后面加一些参数(从mysql的参数推断来看,不知道是不是如此),但是此项是无法编辑的(图1)。

         google的结果是先看到了一篇通过修改注册表的方法来修改参数的方法,在[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\ITSM\Parameters\Java]下修改Options参数,添加如下内容(图2):

-Dcom.sun.management.jmxremote

-Dcom.sun.management.jmxremote.port=1090

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false

         修改后测试发现可以连接,但是修改注册表毕竟不方便(当然可以写成.reg文件直接让工程师去执行)。再查一下修改tomcat参数的文章,说到可以利用tomcat6w.exe来修改参数。

tomcat/bin下面有tomcat6.exetomcat6w.exe,其中tomcat6.exe自然是服务运行时必须的文件。曾经用过jbuilder且使用jbuilder的原理来把jar包生成exe,所以对这个带wexe,第一印象就是对应的窗口化的程序。双击tomcat6w.exe执行,提示找不到服务tomcat6

         我理解tomcat默认会把服务注册为tomcat6,而我们使用了service install ITSM,注册后的服务是ITSM,于是鬼使神差的就把tomcat6w.exe复制了一份改名为ITSM,双击执行,打开了ITSM服务的配置界面(图3)。界面里的Java选项卡中发现java options中已经有了JMX相关的参数。此时才意识到原来这里的设置就是对应的注册表中设置的那些参数。

         至此,对于tomcat的参数设置终于明了,也意识到在catalina里面配置的增大jvm内存的参数,在注册为服务后,其实也没起作用。

后来又测试了一下,删除tomcat6w.exe对服务并没有影响,它只是个纯粹的图形化的配置界面。当然tomcat6.exe是不能删的,删了服务肯定就无法启动了。

(图1

(图2

(图3

阅读(6638) | 评论(3) | 转发(0) |
0

上一篇:tomcat启动报错

下一篇:movie

给主人留下些什么吧!~~

diyunpeng2017-02-20 10:30:06

学习了~~~~

千年松鼠2014-05-22 12:34:56

我知道怎么回事了

千年松鼠2014-05-08 15:16:42

你好 我想问一个问题 为什么tomcat注册成系统服务后就不会去调用catalina.bat 我看了startup.bat文件但还是没发现那里有这样的判断 真的很想知道是怎么回事