6

关闭JBoss热部署服务的正确方法是什么?

这是一个生产环境。

编辑:JBoss 版本 5.1.0 GA

4

4 回答 4

3

我认为删除“deploy/hdscanner-jboss-beans.xml”文件是正确的方法。

于 2010-06-07T21:01:43.803 回答
3

来自 JBoss in Action, ch。3.1.5:

部署程序通过 deployers.xml 和 profile.xml 描述符文件进行配置,这两个文件都位于 server/xxx/conf 目录中。该文件定义了管理各种部署职责的几个 POJO。表 3.3 标识了这些 POJO 中的每一个,并突出显示了每个 POJO 提供的一些更有趣的配置属性。[...]

以及表中的相关位:

豆:HDScanner

  • 属性:scanEnabled - 将此设置为 true(默认)以启用热部署器,设置为 false 以禁用它。当设置为 false 时,仅当服务器启动或调用 MainDeployer MBean 上的 deploy 方法时才部署应用程序。

  • 属性:scanPeriod - 热部署程序在执行扫描之间等待的毫秒数。默认值为 5000 毫秒(5 秒)。如果 scanEnabled 设置为 false,则忽略此值。

  • 属性:scanThreadName - 您可以使用它来更改线程的名称,而不是默认的 HDScanner。如果您应该进行线程转储,线程名称使您能够识别热部署程序线程。

于 2010-06-07T21:11:05.750 回答
2

您可以使用 JMX 禁用和公开它:

<bean name="HDScanner" class="org.jboss.system.server.profileservice.hotdeploy.HDScanner">
    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.deployment:service=HDScanner", exposedInterface=org.jboss.system.server.profileservice.hotdeploy.Scanner, registerDirectly=false)</annotation>
    <start method="start" ignored="true" />    
    <property name="deployer"><inject bean="ProfileServiceDeployer"/></property>
    <property name="profileService"><inject bean="ProfileService"/></property>
    <property name="scanPeriod">5000</property>
    <property name="scanThreadName">HDScanner</property>
    <property name="scanEnabled">false</property>
</bean>
于 2010-11-22T16:24:03.953 回答
0

属性:scanEnabled 在 JBoss 5.x 上不存在,仅在部署扫描程序的 JBoss 4.x 上存在。在 JBoss 5.x 上,只需从部署目录中删除 hdscanner-jboss-beans.xml 并使用 MainDeployer MBean 来部署您的应用程序。

于 2010-06-08T08:48:34.603 回答