java 虚拟机调整
默认情况下,代理使用大小为 192mb 的 jvm 堆。通常,这对于较大的消息负荷来说太小,应该增大。
当代理快要耗尽 java 对象使用的 jvm 堆空间时,它将使用各种技术(如流控制和消息交换)来释放内存。在极端情况下,代理甚至关闭客户机连接以释放内存并减少消息内流。所以最好将最大 jvm 堆空间设置得足够大,以避免这种情况。
但是,与系统的物理内存相比,如果最大 java 堆空间设置过大,代理将继续增大 java 堆空间,直至整个系统耗尽内存。这会导致性能的降低、不可预计的代理崩溃和/或影响系统中运行的其他应用程序和服务的行为。通常,需要有足够的物理内存以便操作系统和其他应用程序在计算机上运行。
总的说来,好的方法是:估算正常和峰值系统内存容量,并配置 java 堆大小,使其足以提供良好性能,但同时不应过大,以免引起系统内存问题。
要更改代理的最小和最大堆大小,请在启动代理时使用 -vmargs 命令行选项。例如:
/usr/bin/imqbrokerd -vmargs -xms256m -xmx1024m
此命令会将启动 java 堆大小设置为 256mb,将最大 java 堆大小设置为 1gb。
在 solaris 上,如果通过 /etc/rc(即 /etc/init.d/imq)启动代理,请在 /etc/imq/imqbrokerd.conf 文件中指定代理的命令行参数。有关详细信息,请参见该文件中的注释。
在 windows 上,如果将代理作为 window 服务启动,请使用 imqsvcadmin install 命令的 -vmargs 选项指定 jvm 参数。在任何情况下,请通过检查代理的日志文件或通过使用 imqcmd metrics bkr -m cxn 命令验证设置。
服务管理器实用程序 (imqsvcadmin)
可以使用服务管理器实用程序 (imqsvcadmin) 安装、查询和删除作为 windows 服务运行的代理。本节介绍了 imqsvcadmin 命令的基本语法,提供了一个子命令列表,概述了 imqsvcadmin 命令选项,并说明了如何使用这些命令执行特定的任务。
imqsvcadmin 命令语法
imqsvcadmin 命令的一般语法如下:
imqsvcadmin subcommand [options]
imqsvcadmin -h
请注意,如果指定 -v、-h 或 -h 选项,将不会执行命令行中指定的其他子命令。例如,输入以下命令将显示帮助信息,而不是执行 query 子命令。
imqsvcadmin query -h
imqsvcadmin 子命令
列出了 message queue 服务管理器实用程序 (imqsvcadmin) 包含的子命令:
表 d-1 imqsvcadmin 子命令 | |
子命令 | 说明 |
install | 安装服务并特定启动选项。 |
query | 显示 imqsvcadmin 命令的启动选项。启动选项包括服务的启动方式(手动或自动)、服务的位置、java 运行时的位置以及启动时传递给代理的参数值。 |
remove | 删除服务。 |
imqsvcadmin 选项概述
列出了 imqsvcadmin 命令的选项。有关如何使用这些选项的论述,请参见基于任务的以下各节。
表 d-2 imqsvcadmin 选项 | |
选项 | 说明 |
-h | 显示使用帮助。不在命令行执行其他命令。 |
-javahome path | 指定要使用的替代 java 2 兼容运行时(默认使用系统上的运行时或 message queue 附带的运行时)的路径。 示例:imqsvcadmin -install -javahome d:jdk1.4 |
-jrehome path | 指定替代 java 2 兼容 jre 的路径。 示例:imqsvcadmin -install -jrehome d:jre1.4 |
-vmargs arg [[arg]] | 指定传递给正在运行代理服务的 java vm 的其他参数。(也可以在 windows 服务控制面板的启动参数字段中指定这些参数。) 示例:-vmargs -xms16m -xmx128m |
-args arg [[arg]] | 指定传递给代理服务的其他命令行参数。有关 imqbrokerd 选项的说明,请参见。 (也可以在 windows 服务控制面板的启动参数字段中指定这些参数。)例如, imqsvcadmin -install -args -passfile d:imqpassfile |
使用 -javahome、-vmargs 和 -args 选项指定的信息存储在 window 注册表项 javahome、jvmargs 和 serviceargs 下,其路径位于
hkey_local_machinesystemcurrentcontrolsetservicesimq_brokerparameters
删除代理服务
删除代理服务之前,应使用 imqcmd shutdown bkr 命令关闭代理。然后使用 imqsvcadmin remove 命令删除服务并重新启动计算机。
重新配置代理服务
要重新配置服务,首先要删除服务,然后重新安装并使用 -args 参数指定不同的启动选项。
使用替代 java 运行时
可以使用 -javahome 或 -jrehome 选项指定替代 java 运行时的位置。(也可以在 windows 服务控制面板的启动参数字段中指定这些选项。)请注意,启动参数字段将反斜杠 () 作为转义符进行处理,因此如果要使用它作为路径分隔符,必须键入两次,例如 -javahome d:\jdk1.3。
查询代理服务
要确定代理服务的启动选项,请使用 imqsvcadmin 命令的 -q 选项。
imqsvcadmin -query |
service imq_broker is installed. |
display name: imq_broker |
start type: manual |
binary location: c:program filessun microsystemsmessage queue 3.5binimqbrokersvc |
javahome: c:j2sdk1.4.0 |
broker args: -passfile d:imqpassfile |
eclipse.exe -vmargs -xmx256m