Sun Java System Message Queue 3 2005Q4 管理指南 |
第 2 章
快速入门教程本快速入门教程通过指导您使用 Message Queue 管理控制台(用于管理消息代理及对象存储的图形界面)完成某些基本管理任务,对 Message Queue 的管理进行了简要介绍。本章包含以下各节:
本教程建立了运行符合 JMS 的简单应用程序 HelloWorldMessageJNDI 所需的物理目标和受管理对象。该应用程序位于示例应用程序目录(在 Solaris 和 Windows 平台上为 demo,在 Linux 平台上为 examples;请参见附录 A“Message Queue 数据在特定平台上的位置”)的 helloworld 子目录中。在本教程的最后一部分,您将运行此应用程序。
本教程仅介绍基本信息,因此不能替代文档。通过执行教程中介绍的步骤,您将学会以下操作:
某些管理任务无法使用管理控制台完成。您必须使用命令行实用程序按如下所示的过程来执行此类任务:
在本手册的后面几章对上述所有任务进行了介绍。
启动管理控制台要启动管理控制台,请使用以下方法之一:
您可能需要等待几秒钟,才会显示“管理控制台”窗口(见图 2-1)。
图 2-1 管理控制台窗口
请花几秒钟时间查看一下管理控制台窗口。该窗口包括位于顶部的菜单栏、紧挨在菜单栏下面的工具栏、左侧的浏览窗格、右侧的结果窗格(目前显示标识 Sun Java System Message Queue 产品的图形)以及底部的状态窗格。
管理控制台联机帮助管理控制台提供帮助工具,其中包含有关如何使用控制台执行管理任务的完整信息。要使用帮助工具,请展开菜单栏右端的“帮助”菜单,然后选择“概述”。将显示管理控制台的“帮助”窗口(图 2-2)。
图 2-2 管理控制台帮助窗口
“帮助”窗口左侧的浏览窗格将主题划分为三个区域:Message Queue 管理控制台、Message Queue 对象存储管理和 Message Queue 代理管理。每个区域中都包含若干文件和文件夹。文件夹为包含多个选项卡的对话框提供帮助,而文件则用于简单的对话框或单个选项卡。在浏览窗格中选择某个项之后,将在右侧的结果窗格中显示该项的内容。选中“概述”项之后,结果窗格中会显示管理控制台窗口的概貌,并对窗口中的每个窗格进行了标识,如图所示。
使用管理控制台执行的第一个任务是创建代理引用。但在开始之前,请查阅“帮助”窗口以了解相关信息。在“帮助”窗口的浏览窗格中单击“添加代理”项;结果窗格的内容将改为显示相应的文本,该文本说明了添加代理后的情况以及“添加代理”对话框中每个字段的用途。请仔细阅读帮助文本,然后关闭“帮助”窗口。
使用代理本节说明如何使用管理控制台连接和管理消息代理。
启动代理
使用管理控制台无法启动代理,而应使用以下方法之一:
如果使用 Windows 的“开始”菜单,则会出现一个显示类似以下文本行的命令窗口,以表明代理已经准备就绪:
正在加载持久性数据...
代理 "imqbroker@stan:7676" 就绪。重新激活“管理控制台”窗口。您现在可以将代理添加到控制台并连接到代理。在管理控制台中添加对代理的引用之前不必启动代理,但在连接代理之前必须启动它。
将代理添加到管理控制台
添加代理即在管理控制台中创建了对该代理的引用。添加代理之后,您就可以连接到它。
将代理添加到管理控制台
- 在“管理控制台”窗口的浏览窗格中单击“代理”项,然后从“操作”菜单中选择“添加代理”。
或者,也可以在“代理”上单击鼠标右键,然后从弹出的上下文菜单中选择“添加代理”。无论在哪种情况下,都会显示“添加代理”对话框(图 2-3)。
图 2-3 “添加代理”对话框
- 在“代理标签”字段中输入代理的名称。
这样便提供了一个在管理控制台中标识代理的标签。
请记下在对话框中指定的默认主机名 (localhost) 和主端口 (7676)。以后在配置客户端用于创建此代理连接的连接工厂时,您必须指定这些值。
在本练习中,请在“代理标签”字段中键入名称 MyBroker。将“密码”字段保留为空;如果在连接时指定密码,则密码将会更安全。
- 单击“确定”添加代理并关闭该对话框。
新代理将显示在浏览窗格中的“代理”之下,如图 2-4 所示。代理图标上的红色 X 表示该代理当前未连接到管理控制台。
图 2-4 管理控制台窗口中显示的代理
添加代理之后,可以使用“操作”菜单(或弹出的上下文菜单)上的“属性”命令来显示“代理属性”对话框(类似于图 2-3 中显示的“添加代理”对话框),以便查看或修改代理的任意属性。
连接到代理
将代理添加到管理控制台之后,即可连接该代理。
连接到代理
连接到代理之后,可以使用“操作”菜单(或上下文菜单)上的命令对选定代理执行下列操作:
查看连接服务
根据代理提供的连接服务及其支持的物理目标可以区分代理。
查看可用连接服务
“操作”菜单中还包含用于暂停和恢复服务的命令。但是,如果选择管理服务并展开“操作”菜单,您会看到“暂停服务”命令已被禁用。这是因为管理服务是管理控制台与代理之间的链接:如果暂停该服务,您将无法再访问该代理。
使用物理目标物理目标是消息代理中的一个位置,从消息生成方收到的消息先保存在此处,稍后再传送给一个或多个消息使用方。根据所使用的消息传送域,目标可以分为以下两种:队列(点对点域)和主题(发布/订阅域)。有关消息传送域及其关联目标的进一步讨论,请参见 Message Queue 技术概述。
创建物理目标
默认情况下对消息代理进行如下配置:只要消息生成方或使用方试图访问不存在的目标,即自动创建新的物理目标。在软件开发环境中测试客户端代码时,这种自动创建的目标非常便于使用。但在生产设置中,建议您禁用目标自动创建功能,而要求所有目标都由管理员明确创建。以下过程说明了如何将这种自动创建的目标添加到代理。
将物理目标添加到代理
- 在“管理控制台”窗口的浏览窗格中,单击代理名称下的“目标”项,然后从“操作”菜单中选择“添加代理目标”。
或者,也可以在“目标”上单击鼠标右键,然后从弹出的上下文菜单中选择“添加代理目标”。无论在哪种情况下,都会显示“添加代理目标”对话框(图 2-8)。
图 2-8 “添加代理目标”对话框
- 在“目标名称”字段中输入物理目标的名称。
请记下为目标指定的名称,以后在创建与此物理目标对应的受管理对象时需要用到此名称。
在本练习中,请键入名称 MyQueueDest。
- 选择“队列”或“主题”单选按钮,以指定要创建的目标的类型。
在本练习中,请选择“队列”(如果它未处于选中状态)。
- 单击“确定”添加物理目标并关闭对话框。
新目标将显示在结果窗格中。
查看物理目标属性
可以使用管理控制台“操作”菜单上的“属性”命令来查看或修改物理目标的属性。
查看或修改物理目标的属性
- 在“管理控制台”窗口的浏览窗格中,选择代理名称下的“目标”。
结果窗格中会显示可用物理目标的列表,其中包括每个目标的名称、类型及当前状态。
- 通过在结果窗格中单击某个物理目标的名称来选择该物理目标。
- 从“操作”菜单中选择“属性”。
将显示“代理目标属性”对话框(图 2-9),其中显示了有关选定物理目标的当前状态和配置信息。可以使用此对话框更改各种配置属性,如该目标可以容纳的消息、生成方和使用方的最大数量。
图 2-9 “代理目标属性”对话框
在本练习中,不要更改目标的任何属性。
对于主题目标,“代理目标属性”对话框中包含一个额外的选项卡“长期订阅”。单击此选项卡会显示“长期订阅”面板(图 2-10),其中列出了当前与给定主题关联的所有长期订阅的信息。
图 2-10 “长期订阅”面板
可以使用“长期订阅”面板的“清除”和“删除”按钮执行下列操作:
- 单击“确定”接受新的属性值并关闭对话框。
清除物理目标中的消息
清除物理目标中的消息会删除与目标关联的所有待处理消息,从而使目标为空。
清除物理目标中的消息
删除物理目标
删除目标会清除它的所有消息,然后销毁目标本身,从而将其从所属的代理中永久删除。
删除物理目标
使用对象存储对象存储用于存储 Message Queue 受管理对象,这类对象封装特定于具体 Message Queue 提供者的实现及配置信息。对象存储可以是轻量目录访问协议 (Lightweight Directory Access Protocol, LDAP) 目录服务器,也可以是本地文件系统中的目录。
虽然可以在客户端应用程序的代码中直接实例化和配置受管理对象,但一般最好是由管理员来创建和配置这些对象并将其存储在对象存储中,以便客户端应用程序可以使用 Java 命名和目录接口 (Java Naming and Directory Interface, JNDI) 来访问它们。这使得客户端代码本身可以与提供者无关。
添加对象存储
虽然可以使用管理控制台来管理对象存储,但不能使用它来创建对象存储;将作为对象存储的 LDAP 服务器或文件系统目录必须已事先存在。之后,可以将此现有对象存储添加到管理控制台中,同时创建对它的引用,以便可以在控制台中对它执行操作。
注
本章中使用的样例应用程序假定对象存储位于 C 驱动器上一个名为 Temp 的目录中。如果 C 驱动器上尚不存在名为 Temp 的文件夹,请先创建该文件夹,然后再继续完成以下练习。(在 Windows 以外的平台上,可以使用 /tmp 目录,该目录应该已经存在。)
将对象存储添加到管理控制台
- 在“管理控制台”窗口的浏览窗格中单击“对象存储”项,然后从“操作”菜单中选择“添加对象存储”。
或者,也可以在“对象存储”上单击鼠标右键,然后从弹出的上下文菜单中选择“添加对象存储”。无论在哪种情况下,都会显示“添加对象存储”对话框(图 2-11)。
图 2-11 “添加对象存储”对话框
- 在“对象存储标签”字段中输入对象存储的名称。
这样便提供了一个用于在管理控制台中标识该对象存储的标签。
在本练习中,请键入名称 MyObjectStore。
- 输入要用于查找受管理对象的 JNDI 属性值:
- 从“名称”下拉菜单中选择要指定的属性名称。
- 在“值”字段中键入属性的值。
- 单击“添加”按钮添加指定的属性值。
该属性及其值将显示在属性概要窗格中。
在本练习中,请将 java.naming.factory.initial 属性设置为:
com.sun.jndi.fscontext.RefFSContextFactory
将 java.naming.provider.url 属性设置为:
file:///C:/Temp
(或者,在 Solaris 或 Linux 平台上设置为 file:///tmp)。对于文件系统对象存储,只需设置以上属性;有关 LDAP 存储所需的属性值的信息,请参见 LDAP 服务器对象存储。
- 单击“确定”添加对象存储并关闭对话框。
新的对象存储将显示在浏览窗格中的“对象存储”下,如图 2-12 所示。对象存储图标上的红色 X 表示该对象存储当前未连接到管理控制台。
图 2-12 管理控制台窗口中显示的对象存储
在浏览窗格中单击对象存储时,将在结果窗格中列出其内容。由于您尚未将任何受管理对象添加到对象存储,因此对于目标和连接工厂,“计数”列中都显示 0。
添加对象存储之后,可以使用“操作”菜单(或弹出的上下文菜单)上的“属性”命令来显示“对象存储属性”对话框(类似于图 2-11 中显示的“添加对象存储”对话框),以便查看或修改对象存储的任意属性。
连接到对象存储
现在,您已经将对象存储添加到管理控制台,必须连接到该对象存储才能向其中添加受管理对象。
连接到对象存储
使用受管理对象将对象存储连接到管理控制台之后,即可向其中添加受管理对象(连接工厂和目标)。本节将介绍具体操作。
注
管理控制台仅显示 Message Queue 受管理对象。如果对象存储中包含与要添加的受管理对象具有相同查找名称的非 Message Queue 对象,则您在尝试执行添加操作时将会收到一条错误消息。
添加连接工厂
连接工厂供客户端应用程序用来创建代理连接。通过配置连接工厂,您可以控制它所创建的连接的属性。
将连接工厂添加到对象存储
- 确保该对象存储已连接到管理控制台(请参见连接到对象存储)。
- 在“管理控制台”窗口的浏览窗格中,单击对象存储名称下的“连接工厂”项,然后从“操作”菜单中选择“添加连接工厂对象”。
或者,也可以在“连接工厂”上单击鼠标右键,然后从弹出的上下文菜单中选择“添加连接工厂对象”。无论在哪种情况下,都会显示“添加连接工厂对象”对话框(图 2-13)。
图 2-13 “添加连接工厂对象”对话框
- 在“查找名称”字段中输入连接工厂的名称。
客户端应用程序在通过 JNDI 查找连接工厂时将会使用该名称。
在本练习中,请键入名称 MyQueueConnectionFactory。
- 从“工厂类型”下拉菜单中选择要创建的连接工厂的类型。
在本练习中,请选择 "QueueConnectionFactory"。
- 单击“连接处理”选项卡。
将显示“连接处理”面板,如图 2-13 所示。
- 在“消息服务器地址列表”字段中,填入此连接工厂将为其创建连接的代理的地址。
地址列表可能包含一个代理,也可能包含多个代理(对于代理群集)。对于每个代理,它指定了代理的连接服务、主机名和端口号等信息。要指定的信息的确切性质及语法各不相同,这取决于要使用的连接服务;有关具体信息,请参见连接处理。
在本练习中,无需在“消息服务器地址列表”字段中键入任何内容,因为样例应用程序 HelloWorldMessageJNDI 要求连接工厂使用默认情况下自动为其配置的标准地址列表属性(连接服务 jms、主机名 localhost 和端口号 7676)。
- 根据需要配置连接工厂的任何其他属性。
除“连接处理”外,“添加连接工厂对象”对话框还包含许多其他面板,用于配置连接工厂的不同属性。
在本练习中,不要更改任何其他设置。但是您可能会发现,依次单击其他选项卡来了解可以指定的配置信息种类很有好处。使用“帮助”按钮可以了解与这些配置面板的内容有关的详细信息。
- 如果适用,单击“只读”复选框。
这会锁定连接工厂对象的配置属性,使其只具有在创建时指定的值。无论是在客户端代码中通过编程方式,还是在命令行中通过管理方式,都不能覆盖受管理对象的只读属性。
在本练习中,不要选中“只读”。
- 单击“确定”创建连接工厂、将其添加到对象存储并关闭对话框。
新的连接工厂将显示在结果窗格中。
添加目标
目标受管理对象表示代理上的物理目标,它使得客户端在向该物理目标发送消息时,可以不必考虑特定于提供者的配置和命名语法。当客户端发送通过受管理对象寻址的消息时,代理会将该消息传送到对应的物理目标(如果存在)。如果不存在对应的物理目标,则在启用了自动创建功能的情况下,代理会自动创建一个物理目标(如创建物理目标中所述),并将消息传送到该目标;否则,它会生成一个错误,指出无法传送该消息。
以下过程说明了如何将目标受管理对象添加到与现有物理目标对应的对象存储中。
将目标添加到对象存储
- 确保该对象存储已经连接到管理控制台(请参见连接到对象存储)。
- 在“管理控制台”窗口的浏览窗格中,单击对象存储名称下的“目标”项,然后从“操作”菜单中选择“添加目标对象”。
或者,也可以在“目标”上单击鼠标右键,然后从弹出的上下文菜单中选择“添加目标对象”。无论在哪种情况下,都会显示“添加目标对象”对话框(图 2-14)。
图 2-14 “添加目标对象”对话框
- 在“查找名称”字段中输入目标受管理对象的名称。
客户端应用程序在通过 JNDI 查找目标时将会使用该名称。
在本练习中,请键入名称 MyQueue。
- 选择“队列”或“主题”单选按钮,以指定要创建的目标对象的类型。
在本练习中,请选择“队列”(如果它未处于选中状态)。
- 在“目标名称”字段中输入对应物理目标的名称。
这是您向代理中添加物理目标时指定的名称(请参见使用物理目标)。
在本练习中,请键入名称 MyQueueDest。
- 或者,在“目标描述”字段中输入目标的简短描述。
此字段的内容只是为了方便用户使用,对客户端操作不会产生任何影响。
在本练习中,您可以删除“目标描述”字段的内容,或者键入一些描述性文本,例如:
Example destination for MQ Admin Guide tutorial
- 如果适用,单击“只读”复选框。
这会锁定目标对象的配置属性,使其只具有在创建时指定的值。无论是在客户端代码中通过编程方式,还是在命令行中通过管理方式,都不能覆盖受管理对象的只读属性。
在本练习中,不要选中“只读”。
- 单击“确定”创建目标对象、将其添加到对象存储并关闭对话框。
新的目标对象将显示在结果窗格中,如图 2-15 中所示。
图 2-15 管理控制台中显示的目标对象
查看受管理对象的属性
可以使用管理控制台“操作”菜单上的“属性”命令来查看或修改受管理对象的属性。
查看或修改受管理对象的属性
- 在“管理控制台”窗口的浏览窗格中,选择对象存储名称下的“连接工厂”或“目标”。
结果窗格中将显示可用连接工厂或目标受管理对象的列表,其中显示了每一项的查找名称和类型(对于目标受管理对象,还会显示目标名称)。
- 通过在结果窗格中单击某个受管理对象的名称来选择该受管理对象。
- 从“操作”菜单中选择“属性”。
将显示“连接工厂对象属性”或“目标对象属性”对话框,它们与“添加连接工厂对象”(图 2-13)或“添加目标对象”(图 2-14)对话框类似。可以使用此对话框更改选定对象的配置属性。但请注意,您不能更改对象的查找名称;更改此名称的唯一方法是删除该对象,然后添加一个新的具有所需查找名称的受管理对象。
- 单击“确定”接受新的属性值并关闭对话框。
删除受管理对象
删除受管理对象会将其从所属的对象存储中永久删除。
删除受管理对象
运行样例应用程序样例应用程序 HelloWorldMessageJNDI 是为了与本教程配套使用而提供的。它使用您创建的物理目标和受管理对象:
该代码创建了一个简单的队列发送者和接收者,并发送和接收一条 Hello World 消息。
在运行应用程序之前,请打开源文件 HelloWorldMessageJNDI.java 并通读代码。该程序很简短,但注释非常详细,您可以很容易地了解它的工作原理。
运行样例应用程序
- 根据您使用的平台,使用以下命令之一将包含 HelloWorldmessageJNDI 应用程序的目录作为当前目录:
- 在 Solaris 上:
cd /usr/demo/imq/helloworld/helloworldmessagejndi
- 在 Linux 上:
cd /opt/sun/mq/examples/helloworld/helloworldmessagejndi
- 在 Windows 上:
cd IMQ_HOME\demo\helloworld\helloworldmessagejndi
您会发现 HelloWorldMessageJNDI.class 文件已经存在。(如果对应用程序进行更改,则必须使用 Message Queue Developer's Guide for Java Clients 中介绍的客户端应用程序编译过程来重新编译它。)
- 设置 CLASSPATH 变量,以包括含有 HelloWorldMessageJNDI.class 文件的当前目录以及 Message Queue 产品附带的以下 .jar 文件:
jms.jar
imq.jar
jndi.jar
fscontext.jar有关设置 CLASSPATH 变量的信息,请参见 Message Queue Developer's Guidefor Java Clients 。
- 根据您使用的平台,通过执行以下命令之一来运行 HelloWorldMessageJNDI 应用程序:
- 在 Solaris 或 Linux 上:
% java HelloWorldMessageJNDI file:///tmp
- 在 Windows 上:
java HelloWorldMessageJNDI
如果应用程序成功运行,您会看到代码示例 2-1 中显示的输出: