(翻译整理by Jim Ma)
4.3 JVM 设置
管理域和单独运行服务器的 JVM设置是不相同的。在管理域中, domain controller组件会负责停止和启动服务器进程,因此由它来决定 JVM的设置。在单独运行服务器中,由启动服务器的进程 (比如通过命令行参数 )负责 JVM的设置。
4.3.1 管理域
在管理域里, JVM设置可以在不同的作用域上声明 :比如在特定的服务器组,一个主机或者一个特别的服务器。如果没有显式声明, JVM设置从父作用域继承。这样可以在不同的层次上允许定制或者继承 JVM设置。
我们来看一下对一个服务器组 JVM的声明 :
<server-groups> <server-group name="main-server-group" profile="default"> <jvm name="default"> <heap size="64m" max-size="512m"/> </jvm> <socket-binding-group ref="standard-sockets"/> </server-group> <server-group name="other-server-group" profile="default"> <jvm name="default"> <heap size="64m" max-size="512m"/> </jvm> <socket-binding-group ref="standard-sockets"/> </server-group> </server-groups>
(参见 domain/configuration/domain.xml )
在这个例子里,服务器组 "main-server-group" 的 jvm设置成 64m的 heap size和 最大是 512m的 heap size.任何属于这个组的服务器都会集成这些 JVM设置。你可以改变整个组,或者一个特定服务器,主机的 JVM设置 :
<servers> <server name="server-one" group="main-server-group" auto-start="true"> <jvm name="default"/> </server> <server name="server-two" group="main-server-group" auto-start="true"> <jvm name="default"> <heap size="64m" max-size="256m"/> </jvm> <socket-binding-group ref="standard-sockets" port-offset="150"/> </server> <server name="server-three" group="other-server-group" auto-start="false"> <socket-binding-group ref="standard-sockets" port-offset="250"/> </server> </servers>
(参考 domain/configuration/host.xml)
在这个例子中, server-two 属于 main-server-group, 因此会继承名字为 default的 JVM设置,但是它在 server-two服务器上声明了一个较低的 maxium heap size。
[domain@localhost:9999 /] /host=local/server-config=server-two/jvm=default:read-resource { "outcome" => "success", "result" => { "heap-size" => "64m", "max-heap-size" => "256m", } }
4.3.2 单独运行服务器
对于单独运行的服务器,则需要在执行 $JBOSS_HOME/bin/standalone.sh 脚本时使用命令行参数来设置 JVM,或者在 $JBOSS_HOME/bin/standalone.conf 声明。 (对于 windows用户,需要执行 %JBOSS_HOME%/bin/standalone.bat 和设置
%JBOSS_HOME%/bin/standalone.conf.bat.)
4.4 命令行参数
启动 JBoss AS7的管理域,需要执行 : $JBOSS_HOME/bin/domain.sh 脚本,启动单独运行的服务器需要执行 $JBOSS_HOME/bin/standalone.sh . 使用这两个脚本启动时,将会使用默认的设置。以下内容,我们讲介绍如何通过额外的命令行参数来覆盖这些默认的设置。
4.4.1系统属性
单服务器和管理域模式都使用用来设置标准位置 (如 jboss.home.dir,jboss.server.config.dir)的默认设置, B这小节中介绍这些系统属性的默认值。每个系统属性,都可以通过标准的 JVM设置方式 -Dkey=value覆盖:
$JBOSS_HOME/bin/standalone.sh -Djboss.home.dir=some/location/AS7/jboss-as \ -Djboss.server.config.dir=some/location/AS7/jboss-as/custom-standalone
以上的命令行启动一个不是标准的 AS home目录,并且使用一个特定的配置文件路径 . 具体系统属性的含义将在以下内容中介绍。
同时,你也可以使用一个 properties文件通过下面任何一种方式来覆盖配置默认的系统属性 :
$JBOSS_HOME/bin/domain.sh --properties=/some/location/jboss.properties $JBOSS_HOME/bin/domain.sh -P=/some/location/jboss.properties
这个 properties文件是一个标准的包含 key=value对的标准 Java property文件 :
jboss.home.dir=/some/location/AS7/jboss-as jboss.domain.config.dir=/some/location/AS7/custom-domain
单独运行模式( Standalone)
属性名
说明
默认值
java.ext.dirs
指定 JDK extension路径
null
jboss.home.dir
JBoss AS 7 安装的根目录
standalone.sh 设置为 $JBOSS_HOME
jboss.server.base.dir
server的 base目录
jboss.home.dir /standalone
jboss.server.config.dir
base configuration目录
jboss.server.base.dir /configuration
jboss.server.data.dir
用于存放持久化数据的目录
jboss.server.base.dir /data
jboss.server.log.dir
存放 server.log 的目录
jboss.server.base.dir /log
jboss.server.temp.dir
临时文件目录
jboss.server.base.dir /tmp
jboss.server.deploy.dir
部署目录
jboss.server.data.dir /content
管理域模式 (Managed Domain)
属性名
说明
Default value
jboss.home.dir
The root directory of the JBoss AS 7 installation.
domain.sh 设置为 $JBOSS_HOME
jboss.domain.base.dir
domain的 base目录
jboss.home.dir /domain
jboss.domain.config.dir
base configuration目录
jboss.domain.base.dir /configuration
jboss.domain.data.dir
用于存放持久化数据的目录 .
jboss.domain.base.dir /data
jboss.domain.log.dir
存放 host-controller.log 和 process-controller.log 文件的目录
jboss.domain.base.dir /log
jboss.domain.temp.dir
临时文件目录
jboss.domain.base.dir /tmp
jboss.domain.deployment.dir
部署目录
jboss.domain.base.dir /content
<