Sun Java logo     上一页      目录      索引      下一页     

Sun logo
Sun Java System Message Queue 3 2005Q1 管理指南 

第 2 章
管理快速入门

本快速入门重点介绍基本管理任务,即使用具有图形界面的管理控制台来管理 Message Queue 代理和对象存储库。按照本章中的说明,您将学习如何进行以下操作:

本快速入门建立了运行简单的 JMS 兼容应用程序 HelloWorldMessageJNDI 所需的物理目标和受管理对象。该应用程序位于示例应用程序目录(Solaris 和 Windows 平台上为 demo,Linux 平台上为 examples;请参见附录 A“Message Queue 数据在特定操作系统中的位置”)的 helloworld 子目录中。在本快速入门的最后一部分,您将运行此应用程序。

本快速入门主要用来指导您通过使用管理控制台来执行基本管理任务。即使了解了本快速入门,您还是需要仔细阅读和参考本文档。

某些 Message Queue 管理任务无法使用管理控制台来完成。您必须使用命令行实用程序按如下所示的过程来执行此类任务:

有关如何完成这些任务的详细信息,请参见第 6 章“管理物理目标”第 9 章“使用代理群集”第 7 章“管理安全性”。


准备工作

在开始之前,必须先安装 Message Queue 产品。有关详细信息,请参见 Message Queue 安装指南。请注意,本章以 Windows 为中心,并为 UNIX 用户添加了说明。

在本章中,选择“项目1”>“项目2”>“项目3” 表示,您应该下拉名为 “项目1” 的菜单,从该菜单选择“项目2”,然后从“项目2”提供的选择中选择 “项目3” 。


启动管理控制台

要启动管理控制台,请使用以下方法之一:

显示控制台窗口之前,您可能需要等待几秒钟。

请花几秒钟仔细观察一下控制台窗口。

控制台包括位于顶部的菜单栏、菜单栏下面的工具栏、左侧的浏览窗格、右侧的结果窗格(现在显示标识 Sun Java System Message Queue 产品的图形)和底部的状态窗格。

Sun Java System Message Queue 的启动屏幕。树视图位于左侧窗格,内容位于右侧窗格。

本章不可能提供全部的信息,因此让我们首先了解如何获得管理控制台的帮助信息。

获得帮助

在菜单栏的最右侧找到“帮助”菜单。


显示管理控制台帮助信息
  1. 下拉“帮助”菜单并选择“概述”。将显示一个帮助窗口。

  2. ìMessage Queue Administration Console 帮助窗口。可用帮助主题的树视图位于左侧:帮助主题内容窗口位于右侧。

    请注意帮助信息是如何组织的。左侧的浏览窗格显示目录,右侧的结果窗格显示在浏览窗格中选择的任何项的内容。

    观察“帮助”窗口的结果窗格。它显示管理控制台的概貌,并标识了每个控制台窗格的用途。

  3. 观察“帮助”窗口的浏览窗格。它使用以下三个区域来组织主题:概述、对象存储库管理和代理管理。其中每个区域都包含文件和文件夹。每个文件夹提供的是包含多个选项卡的对话框的帮助,每个文件则提供简单对话框或选项卡的帮助。
  4. 您的第一个控制台管理任务(请参见添加代理)将是通过控制台创建对所管理的代理的引用。但是,启动之前请查阅联机帮助以获得有关信息。

  5. 单击“帮助”窗口的浏览窗格中的“添加代理”项。
  6. 您会发现结果窗格发生了变化。它现在包含一些文本,说明添加代理的含义并介绍“添加代理”对话框中每个字段的使用。字段名称以粗体文本显示。

  7. 仔细阅读帮助文本。
  8. 关闭“帮助”窗口。


启动代理

使用管理控制台无法启动代理。相反,请使用下列方法之一:

如果使用 Windows“开始”菜单,将会出现命令窗口。然后出现命令响应,通过显示如下所示的各行内容来表明代理已准备就绪:

Loading persistent data...
Broker "imqbroker@stan:7676 ready.

现在让我们把注意力转回到“管理控制台”窗口。您现在可以将代理添加到控制台并连接到代理。

在管理控制台中添加对代理的引用之前不必启动代理,但是必须启动代理才能连接到它。


添加代理

添加代理在管理控制台中创建了一个对该代理的引用。添加代理之后,您就可以连接到它。


将代理添加到管理控制台
  1. 在浏览窗格的“代理”上单击右键并选择“添加代理”。
  2. 在“代理标签”字段中输入 MyBroker
  3. 这样便提供了一个在管理控制台中标识代理的标签。


    “添加代理”对话框。按钮从左到右依次为:“确定”、“重置为默认值”、“取消”和“帮助”。

    注意,在对话框中已指定默认主机名 (localhost) 和默认主端口 (7676)。这些值是以后必须指定的值,即在您配置客户机用来建立与此代理的连接的连接工厂时需要指定这些值。

    将“密码”字段保留为空。如果在连接时指定密码,则密码将会更安全。

  4. 单击“确定”以添加代理。
  5. 观察浏览窗格。“代理”下方应已列出刚才添加的代理。代理图标上的红色 X 表示该代理当前未连接到控制台。


    ìMessage Queue Administration Console 窗口。已在树视图中选中“代理”。

  6. 在 "MyBroker" 上单击右键,并从弹出式菜单中选择“属性”。
  7. 将显示代理属性对话框。可以使用此对话框更新添加代理时指定的任意属性。

  8. 单击“取消”关闭对话框。


连接到代理


连接到代理
  1. 在 "MyBroker" 上单击右键并选择“连接到代理”。
  2. 将显示一个对话框,要求输入用户名和密码。


    “连接到代理”对话框。按钮从左到右依次为:“确定”、“取消”和“帮助”。

    默认情况下,管理控制台可以作为用户 admin 并使用密码 admin 连接到代理。在本练习中,请使用默认值。在实际环境中,您应尽快设置安全的用户名和密码。有关详细信息,请参见验证用户

  3. 在“密码”字段中输入 admin
  4. 指定用户名 admin 并提供正确密码将使您以管理员权限连接到代理。

  5. 单击“确定”连接到代理。

连接到代理后,可以从“操作”菜单中选择各个菜单项,以获得有关代理的信息、暂停和恢复代理、关闭和重新启动代理以及从代理断开连接。

查看连接服务

从代理提供的连接服务及其支持的物理目标可以区分代理。


查看可用连接服务
  1. 在浏览窗格中选择“服务”。
  2. 在结果窗格中列出了可用服务。对于每项服务,均提供了其名称、端口号和状态。


    ìMessage Queue Administration Console 窗口。已选中代理服务节点。在内容窗格显示节点的内容。

  3. 单击结果窗格中的 "jms" 服务,以选中它。
  4. 下拉“操作”菜单并注意高亮显示的项。
  5. 您可以选择暂停 jms 服务或查看和更新其属性。

  6. 从“操作”菜单中选择“属性”。
  7. 请注意,在“服务属性”对话框中,您可以分配服务的静态端口号并可以更改分配给此服务的最小和最大线程数。


    “服务属性”对话框。按钮从左到右依次为:“确定”、“取消”和“帮助”。

  8. 单击“确定”或“取消”关闭“属性”对话框。
  9. 在结果窗格中选择"admin" 服务。
  10. 下拉“操作”菜单。
  11. 您会注意到无法暂停此服务,暂停项已被禁用。admin 服务是指向代理的管理员链接。如果您暂停该服务,将再也无法访问代理。

  12. 选择“操作”>“属性”查看 admin 服务的属性。
  13. 完成时请单击“确定”或“取消”。

将物理目标添加到代理

默认情况下,为代理启用物理目标自动创建功能。自动创建功能使代理可以动态创建物理目标。

在开发环境中,您不必为了测试客户机代码而明确地创建物理目标。

在生产设置中,建议您明确地创建物理目标。这样,您(管理员)就可以完全掌握代理上使用的物理目标。

现在在代理中添加一个物理目标。请注意分配给目标的名称,您以后会在创建对应此物理目标的受管理对象时用到此名称。


将队列目标添加到代理
  1. 在 "MyBroker" 的“目标”节点上单击右键并选择“添加代理目标”。
  2. 将显示以下对话框:


    “添加代理目标”对话框。按钮从左到右依次为:“确定”、“重置为默认置”、“取消”和“帮助”。

  3. 在“目标名称”字段中输入 MyQueueDest
  4. 选择“队列”单选按钮(如果尚未选中此按钮)。
  5. 单击“确定”添加物理目标。
  6. 现在,物理目标显示在结果窗格中。

管理物理目标

在代理上添加一个物理目标后,您可以按照稍后的步骤说明来执行以下任意一项任务:


查看物理目标的属性
  1. 选择 "MyBroker" 的“目标”节点。
  2. 结果面格中出现两个物理目标 MyQueueDest 和 mq.sys.dmqmq.sys.dmq 目标是系统创建的队列,其中存储过期和被拒绝的代理消息。暂时,先忽略此停用消息队列。

  3. 在结果窗格中选择 "MyQueueDest"。
  4. 选择“操作”>“属性”。
  5. 将显示以下对话框:


    “代理目标属性”对话框。按钮从左到右依次为:“确定”、“取消”和“帮助”。

    注意,对话框显示有关队列以及您可更改的某些属性的当前状态信息。

  6. 单击“取消”关闭对话框。

清除物理目标中的消息
  1. 在结果窗格中选择物理目标。
  2. 选择“操作”>“清除消息”。
  3. 将显示一个确认对话框。

清除消息将删除消息,留下一个空目标。


删除目标
  1. 在结果窗格中选择物理目标。
  2. 选择“编辑”>“删除”。
  3. 将显示一个确认对话框。


    请不要删除 MyQueueDest 队列目标。


删除物理目标操作将清除该目标上的消息并删除目标。

获得主题的相关信息

代理主题目标属性对话框包含一个列出长期订阅的相关信息的附加选项卡。对于队列,该选项卡处于禁用状态。

用于列出有关长期订阅信息的对话框。图表用文本进行说明。按钮从左到右依次为:“确定”、“取消”和“帮助”。

使用此对话框可以执行以下操作:


使用对象存储库

对象存储库用于存储 Message Queue 受管理对象。这些受管理对象封装有关对象(由客户机应用程序使用)的 Message Queue 特有实现和配置信息。对象存储库可以是 LDAP 目录服务器或文件系统存储(文件系统中的目录)。

可以在客户机代码中实例化和配置受管理对象。但是,管理员最好在客户机应用程序能够使用 JNDI 进行访问的对象存储库中创建、配置和存储这些对象。这将使客户机代码与提供者无关。

您不能使用管理控制台来创建对象存储库。必须按照以下章节中的说明提前创建。

添加对象存储库

添加对象存储库将在管理控制台中创建一个对现有对象存储库的引用。即使退出并重新启动控制台,此引用也将保留。


添加文件系统对象存储库
  1. 如果在您的 C 驱动器上没有名为 Temp 的文件夹,那么现在就请创建这个文件夹。
  2. 本章中使用的样例应用程序假定对象存储库是 C 驱动器上一个名为 Temp 的文件夹。文件系统对象存储库通常可以是任何驱动器上的任何目录。

    非 Windows 用户:可以使用现有的 /tmp 目录(应该已经存在)。

  3. 在“对象存储库”上单击右键并选择“添加对象存储库”。
  4. 将显示以下对话框:


    “添加对象存储库”对话框。按钮从左到右依次为:“确定”、“清除”、“取消”和“帮助”。

  5. 在名为“对象存储库”的字段中输入 MyObjectStore
  6. 这仅是在管理控制台中提供一个对象存储库显示的标签。

    在以下步骤中,必须输入 JNDI 名称/值对。JMS 兼容应用程序使用这些名称/值对查找受管理对象。

  7. 从“名称”下拉列表中,选择 java.naming.factory.initial
  8. 此属性使您可以指定希望使用哪个 JNDI 服务提供商。例如,文件系统服务提供商或 LDAP 服务提供商。

  9. 在“值”字段中,输入以下内容
  10. com.sun.jndi.fscontext.RefFSContextFactory

    这表示您将使用文件系统存储。(对于 LDAP 存储,将指定 com.sun.jndi.ldap.LdapCtxFactory。)

    在生产环境中,您可能希望将 LDAP 目录服务器用作对象存储库。有关设置服务器和进行 JNDI 查找的信息,请参见LDAP 服务器对象存储库

  11. 单击“添加”按钮。
  12. 您会注意到现在属性概要窗格中列出了属性及其值。

  13. 从“名称”下拉列表中,选择 java.naming.provider.url
  14. 此属性使您可以指定对象存储库的确切位置。对于文件系统类型的对象存储库,这将是现有目录的名称。

  15. 在“值”字段中,输入以下内容
  16. file:///C:/Temp

    (在 Solaris 和 Linux 操作系统上为 file:///tmp }

  17. 单击“添加”按钮。
  18. 您会注意到现在属性概要窗格中列出了属性及其值。如果正在使用 LDAP 服务器,还可能必须要指定验证信息。这对文件系统存储不是必需的。

  19. 单击“确定”添加对象存储库。
  20. 如果未在浏览窗格中选中节点 "MyObjectStore" ,那么现在请选中它。
  21. 现在,管理控制台的显示如下所示:


    ìMessage Queue Administration Console 窗口。在树视图窗格中,已选中对象存储库节点。

    浏览窗格中列出了该对象存储库,结果窗格中则列出了对象存储库的内容“目标”和“连接工厂”。我们尚未将任何受管理对象添加到对象存储库,如结果窗格的“计数”列中所示。

    浏览窗格中的对象存储库图标上绘制了一个红色的 X。这表示它处于断开连接的状态。必须先连接到对象存储库,然后才能使用它。

检查对象存储库属性

当管理控制台从对象存储库断开连接时,可以查看和更改对象存储库的某些属性。


显示对象存储库属性
  1. 在浏览窗格的 "MyObjectStore" 上单击右键。
  2. 从弹出式菜单中选择“属性”。
  3. 将显示一个对话框,其中显示所有在添加对象存储库时指定的属性。您可以更改这些属性中的任意属性,并单击“确定”更新旧信息。

  4. 单击“确定”或“取消” 关闭对话框。

连接到对象存储库

必须先连接到对象存储库,然后才能将对象添加其中。


连接到对象存储库
  1. 在浏览窗格的 "MyObjectStore" 上单击右键。
  2. 从弹出式菜单中选择“连接到对象存储库”。
  3. 您会注意到对象存储库图标上的红色 X 不见了。现在可以将对象、连接工厂和目标添加到对象存储库。

添加连接工厂受管理对象

可以使用管理控制台来创建和配置连接工厂。客户机代码使用连接工厂连接到代理。通过配置连接工厂,可以控制使用连接工厂创建的连接的行为。

有关配置连接工厂的信息,请参见联机帮助和 Message Queue Developer's Guidefor Java Clients 。


管理控制台仅列出和显示了 Message Queue 受管理对象。如果对象存储库中包含与要添加的受管理对象具有相同查找名称的非 Message Queue 对象,则您将在尝试执行添加操作时收到一条错误消息。



将连接工厂添加到对象存储库
  1. 如果仍未连接,请连接到 MyObjectStore(请参见连接到对象存储库
  2. 在“连接工厂”节点上单击右键,并选择“添加连接工厂对象”。
  3. 将显示“添加连接工厂对象”对话框。


    “添加连接工厂对象”对话框,其中显示“连接处理”选项卡。按钮从左到右依次为:“确定”、“重置为默认值”、“取消”和“帮助”。

  4. 在“查找名”字段中输入名称 "MyQueueConnectionFactory"。
  5. 这是客户机代码查找连接工厂时使用的名称,如 HelloWorldMessageJNDI.java 中的以下代码行所示:

    qcf=(javax.jms.QueueConnectionFactory)
        ctx.lookup(“MyQueueConnectionFactory”)

  6. 从下拉菜单中选择 "QueueConnectionFactory" 以指定连接工厂的类型。
  7. 单击“连接处理”选项卡。
  8. 您通常会在“消息服务器地址列表”字段中输入客户机将连接的代理的地址。此字段的一个示例如下所示:
  9. mq://localhost:7676/jms

    您不需要输入值,因为默认情况下已经将连接工厂配置为连接在端口 7676 的本地主机上运行的代理,这是快速入门示例所期望的配置。

  10. 逐个单击此对话框的各个选项卡,查看您可以配置的连接工厂的信息类型。使用“添加连接工厂对象”对话框右下角的“帮助”按钮来获得有关各个选项卡的信息。目前请勿更改任何默认值。
  11. 单击“确定”创建队列连接工厂。
  12. 观察结果窗格。列出了新创建的连接工厂的查找名称和类型。


添加目标对象

目标受管理对象与代理中的物理目标相关联,并且指向这些目标。目标受管理对象使客户机可以查找并找到物理目标,而与提供者特定的目标名称和配置无关。

当客户机发送消息时,它将查找或实例化目标受管理对象,并在 JMS API 的 send() 方法中引用它。然后,代理负责将消息传送给与该受管理对象相关联的物理目标,如下所示:

在本快速入门的下一部分中,您将添加一个与前面添加的物理目标相对应的受管理对象。


将目标添加到对象存储库
  1. 在浏览窗格中的“目标”节点(在 "MyObjectStore" 节点下)上单击右键。
  2. 选择“添加目标对象”。
  3. 管理控制台将显示一个“添加目标对象”对话框,用于指定有关对象的信息。


    “添加目标对象”对话框。按钮从左到右依次为:“确定”、“重置为默认值”、“取消”和“帮助”。

  4. 在“查找名”字段中输入 "MyQueue"。
  5. JNDI 查找调用使用该查找名称来查找对象。在样例应用程序中,此调用如下所示:

    queue=(javax.jms.Queue)ctx.lookup(“MyQueue”);

  6. 对于“目标类型”,请选择“队列”单选按钮。
  7. 在“目标名称”字段中输入 MyQueueDest
  8. 这是您在代理上添加物理目标时指定的名称(请参见将物理目标添加到代理)。

  9. 单击“确定”。
  10. 在浏览窗格中选择“目标”,并注意在结果窗格中如何显示有关刚才添加的队列目标受管理对象的信息。

  11. ìMessage Queue Administration Console 窗口。已在树视图中选中“目标”。在内容窗格中显示目标对象。


查看受管理对象的属性

要查看或更新受管理对象的属性,请在浏览窗格中选择“目标”或“连接工厂”,然后在结果窗格中选择特定对象,并选择“操作”>“属性”。


查看或更新目标对象的属性
  1. 在浏览窗格中选择 "MyObjectStore" 的“目标”节点。
  2. 在结果窗格中选择 "MyQueue"。
  3. 选择“操作”>“属性”以查看“目标对象属性”对话框。
  4. 请注意,您仅能更改目标名称和说明的值。要更改查找名称,就必须先删除对象,然后添加一个命名为所需查找名称的新队列受管理对象。

  5. 单击“取消”关闭对话框。

  6. “目标对象属性”对话框。按钮从左到右依次为:“确定”、“取消”和“帮助”。


更新控制台信息

不管使用对象存储库还是使用代理,都可以通过选择“查看”>“刷新”来更新任何元素或元素组的显示。


运行样例应用程序

样例应用程序 HelloWorldMessageJNDI 是为与本快速入门配套使用而提供的。它使用的是所您创建的物理目标和受管理对象:

代码创建简单的队列发件人和收件人,并发送和接收一条 "Hello World" 消息。


运行 HelloWorldMessageJNDI 应用程序
  1. 使包含 HelloWorldmessageJNDI 应用程序的目录成为当前目录,例如:
  2. cd IMQ_HOME\demo\helloworld\helloworldmessagejndi (Windows)

    cd /usr/demo/imq/helloworld/helloworldmessagejndi (Solaris)

    cd /opt/sun/mq/examples/helloworld/helloworldmessagejndi (Linux)

    您应查看 HelloWorldMessageJNDI.class 文件是否存在。(如果要更改该应用程序,必须使用 Message Queue Developer's Guide for C Clients 的快速入门教程中用于编译客户机应用程序的指令对其重新编译。)设置 CLASSPATH 变量以便包括含有 HelloWorldMessageJNDI.class 文件及 Message Queue 产品附带的以下 jar 文件的当前目录:jms.jarimq.jarfscontext.jar。有关设置 CLASSPATH 的说明,请参见 Message Queue Developer's Guide for Java Clients 。

    JNDI jar 文件 (jndi.jar) 是随 JDK 1.4 一起提供的。如果您使用的是该 JDK,则不必将 jndi.jar 添加到 CLASSPATH 设置。如果您使用的是 JDK 的早期版本,则必须将 jndi.jar 包含在 CLASSPATH 中。有关其他信息,请参见 Message Queue Developer's Guide for Java Clients。

  3. 运行应用程序之前,请打开源文件 HelloWorldMessageJNDI.java 并仔细阅读该源文件。虽然这个源文件很简短,但是其注释非常详细,您可以很清楚地了解该应用程序是如何使用您所创建的受管理对象和目标。
  4. 通过执行以下命令之一来运行 HelloWorldMessageJNDI 应用程序:
  5. java HelloWorldMessageJNDI(在 Windows 操作系统上)

    % java HelloWorldMessageJNDI file:///tmp(在 Solaris 和 Linux 操作系统上)

    如果应用程序成功运行,则会看到以下输出:

    java HelloWorldMessageJNDI

    正在使用 file:///C:/Temp for Context.PROVIDER_URL

    正在以此查找名称查找队列连接工厂对象:MyQueueConnectionFactory

    找到队列连接工厂对象。

    正在以此查找名称查找队列对象:MyQueue

    找到队列对象。

    正在建立与代理的连接。

    已建立与代理的连接。

    正在向队列发布消息:MyQueueDest

    已接收以下消息:Hello World



上一页      目录      索引      下一页     


文件号码 819-2219。   版权所有 2005 Sun Microsystems, Inc. 保留所有权利。