Sun ONE logo     上一个      目录      索引      下一个     
Sun ONE Application Server 7, Update 1 管理员指南



使用 JMS 服务

Sun ONE Application Server 支持使用 Java 消息传送服务 (JMS) 应用程序编程接口 (API) 进行消息传送操作的应用程序。JMS 是一组编程接口,为 Java 应用程序提供了在分布式环境中创建、发送、接收和阅读消息的常用方法。

JMS 尤其是基于标准的方法,通过这种方法 Java 2 Enterprise Edition (J2EE) 应用程序可以执行异步消息传送。因此,J2EE 组件(Web 组件或企业 JavaBeans [EJB] 组件)可以使用 JMS API 发送由专用 EJB 异步使用的消息,称为消息驱动的 Bean (MDB)。

Sun ONE Application Server 通常都支持 JMS 消息传送,尤其支持 MDB,它需要消息传送中间件来实现 JMS 规范(即 JMS 提供者)。Sun ONE Application Server 将 Sun ONE Message Queue (MQ) 3.01 版用作本地 JMS 提供者。

MQ 紧密地集成到 Sun ONE Application Server 中,支持透明的 JMS 消息传送。该支持(在 Sun ONE Application Server 中称为 JMS 服务) 仅要求最小管理。

本module提供理解和管理内置 JMS 服务(通过 Sun ONE Message Queue 提供)所需的信息,其中包括以下主题:

关于 JMS

JMS 规范说明了一组支持分布式企业消息传送的编程接口。企业消息传送系统允许独立分布式组件或应用程序通过消息进行交互。不管这些组件位于同一系统、同一网络还是通过因特网松散连接,它们都使用消息来传递数据和协调各自的功能。

为了支持企业规模的消息传送,JMS 提供了可靠的异步消息传送。

可靠传送。从一个组件到另一组件的消息不会由于网络或系统出现故障而丢失。这意味着系统能够保证消息成功传送。

异步传送。对于可以同时交换信息、支持高密度吞吐量的许多组件,消息的发送不能取决于用户能否立即接收。如果用户处于繁忙或脱机状态,系统允许用户发送消息,并在其做好准备后进行接收。这就叫做异步消息传送,通常称为存储和转发消息。

本主题将简要介绍 JMS 的概念和术语:

有关 JMS 的详细说明,请参见以下位置的 JMS 1.0.2 规范:

http://java.sun.com/products/jms/docs.html

消息传送系统的基本概念

企业消息系统(尤其是 JMS)通常以其中的几个基本概念为基础。本主题中将讨论这些概念。

消息

消息由具有一定格式(消息正文)的数据和说明消息特性或属性的元数据(消息标题)组成,例如由消息传送系统确定的目标、生命周期或其它特性。

消息服务体系结构

消息服务体系结构图中说明了消息传递系统的基本体系结构。消息传递系统包括消息生成方和消息用户,他们通过常见的消息服务交换信息。一般来说,同一消息传递组件中可以驻留任意数量的消息生成方和用户。消息生成方可以将消息传送给消息服务。反过来,使用消息路由和消息传送组件,消息服务可以将消息传送到一个或多个已在消息中注册了兴趣爱好的消息用户。消息路由和消息传送组件负责保证将消息传送给所有相关用户。

   消息服务体系结构
展示消息生成方和用户以及消息服务的图表。图中以文字形式进行解释。

消息传送模式

生成方和用户之间存在一对一、一对多和多对多等许多关系。例如,发送消息的方式可能为:

  • 一个生成方到一个用户
  • 一个生成方到多个用户
  • 多个生成方到一个用户
  • 多个生成方到多个用户

这些关系通常可以简化为两种消息传送模式:点对点发布/订阅模式的消息传送。点对点传送模式的关键是由特定生成方发送、并由特定用户接收的消息。发布/订阅传送模式的关键是由任意数量的生成方发送、并由任意数量的用户接收的消息。这些消息传送模式可以重复。

消息传送系统以前一直支持这两种模式的各种组合。JMS API 旨在创建支持点对点传送模式和发布/订阅传送模型的通用编程方法。

JMS 规范

JMS 可以指定消息结构、编程模式以及一组管理消息传送操作的规则和语义。

JMS 消息结构

根据 JMS 规范中的规则,消息由三部分组成:标题、属性(可以视为标题的扩展)和正文。

标题。标题可以指定消息的 JMS 特性:目标、是否具有永久性、生命周期和优先级。这些特性能够管理消息传送系统传送消息的方法。

属性。属性是可选的,提供应用程序可以根据各种选择条件来过滤消息的值。属性是可选的。

消息正文。消息正文包括要交换的实际数据。JMS 支持六种正文类型。

JMS 编程模式

在 JMS 编程模式中,JMS 客户机(组件或应用程序)通过 JMS 消息服务来交换消息。消息生成方将消息传送到消息服务,消息用户可以从中接收消息。这些消息传送操作通过使用一组实现 LMS API 的对象(由 JMS 提供者提供)来执行。JMS 编程对象图显示了用于对消息传送进行编程的 JMS 对象。

在 JMS 编程模式中,JMS 客户机使用 ConnectionFactory 对象创建连接,可以通过该连接将消息传送到 JMS 消息服务或从 JMS 消息服务接收消息。Connection 是一种 JMS 客户机与消息服务的活动连接。创建连接时会分配通信资源和验证客户机。

   JMS 编程对象
展示在编程 JMS 客户机中使用的对象的图表。图中以文字形式进行解释。

连接可以用于创建会话。会话是生成和使用消息的单线程上下文,用于创建发送和接收消息的消息生成方和用户。会话支持通过很多确认选项或事务(可由分布式事务管理器进行管理)实现的可靠传送。

JMS 客户机使用 MessageProducer 向指定的物理目标发送消息,该目标在 API 中表示为目标对象。消息生成方可以指定默认的发送模式(永久性和非永久性消息)、优先级和生命周期,用于管理生成方发送到物理目标的所有信息。

同样,JMS 客户机使用 MessageConsumer 从指定物理目标接收消息,该目标在 API 中表示为目标对象。消息用户支持同步或异步使用消息。异步使用通过向用户注册一个 MessageListener 来实现。当会话线程调用 MessageListener 对象的 onMessage() 方法时,客户机将使用一条消息。

管理的对象:提供者独立性

“JMS 编程模式”图中说明的两个对象取决于 JMS 提供者实现 JMS 消息服务的方法的详细信息。连接工厂对象取决于要发送消息的提供者所使用的基础协议和机制,目标对象则取决于提供者所使用物理目标的特定命名惯例和功能。

正常情况下,这些特定于提供者的特性会使 JMS 客户机代码依赖于 JMS API 实现的详细信息。但是,要使 JMS 客户机代码独立于提供者,JMS 规范要求以标准化的方法访问特定于提供者的对象(称为管理的对象),而不是直接在客户机代码中实例化。

管理的对象封装了特定于提供者的实现和配置信息。这些对象由管理员创建和配置、存储在名称服务中、并由客户机应用程序通过标准 JNDI 查找代码来访问。通过这种方法使用管理的对象使 JMS 客户机代码独立于提供者。

JMS 提供了两种通用类型的管理的对象:连接工厂和目标。两类对象都封装了特定于提供者的信息,但是它们在 JMS 客户机中的用途不同。连接工厂用于创建到消息服务器的连接,而目标对象用于识别 JMS 消息服务所使用的物理目标。



注意

在 Sun ONE Application Server 上下文中,JMS 管理的对象被视为 JMS 资源,与其它应用程序服务器资源类似。



消息驱动 Bean

除了“JMS 编程模式”图中介绍的通用 JMS 客户机编程模式外,J2EE 应用程序的上下文中还采用了更专业的 JMS API。专用 JMS 客户机称为消息驱动 Bean,它是在 EJB 2.0 规范 (http://java.sun.com/products/ejb/docs.html) 中指定的 EJB 组件系列中的一员。

由于其它 EJB 组件(会话 Bean 和实体 Bean)只能同步调用,因此出现了消息驱动 Bean。因此,当您调用这些 Bean 中的方法时,在方法完成之前可以一直中断资源。这些 EJB 组件没有异步接收消息的机制,因此只能通过标准 EJB 接口进行访问。

但是,许多企业应用程序需要异步消息传送。因此,需要 EJB 组件能够接收消息并使用这些消息,而无需紧密耦合到消息的生成方。

MDB 是专用 EJB 容器(为所支持的组件提供分布式服务的软件环境)支持的专用 EJB 组件。

   MDB 消息用户
显示各种消息生成方和用户类型的图表。图中以文字形式进行解释。

消息驱动 Bean。MDB 是实现 JMS MessageListener 接口的 JMS 消息用户。MDB 容器收到消息时将调用它的 onMessage 方法(由 MDB 开发者编写)。与任何 JMS MessageListener 对象中的 onMessage 方法一样,onMessage 方法也使用消息。MDB 可以使用单个目标中的消息。消息可以由独立的 JMS 客户机应用程序、Web 组件或其它 EJB 组件生成,如图“MDB 消息用户”所示。

MDB 容器。MDB 由专用 EJB 容器支持,它负责创建 MDB 实例,并为异步使用消息对这些实例进行设置。其中包括设置与消息服务的连接(包括验证)、创建与给定目标相关联的会话池、以及在会话池与关联的 MDB 实例之间收到消息时管理消息的发布。由于容器控制 MDB 实例的生命周期,因此它可以管理 MDB 的实例池以便容纳传入的消息负载。

与 MDB 相关联的是部署描述符,它为设置消息使用时容器使用的管理的对象指定 JNDI 查找名称:连接工厂和目标。部署描述符也可以包括配置容器时部署工具使用的其它信息。每一个这类的容器都支持仅包含一个 MDB 的实例。

有关为 Sun ONE Application Server 配置 EJB 容器的 MDB 设置的信息,请参见“关于消息驱动的 Bean”

内置 JMS 服务

一般情况下支持内置于 Sun ONE Application Server 中的 JMS 消息传送(尤其是 MDB)。这种支持是通过紧密结合 Sun ONE Message Queue 和 Sun ONE Application Server 实现的,它提供本地、内置 JMS 服务。

本主题讲述了以下主题,以便于理解内置 JMS 服务:

有关管理内置 JMS 服务的信息,请参见“管理内置 JMS 服务”

关于 Sun ONE Message Queue (MQ)

Sun ONE Message Queue (MQ) 是一种实现 JMS 开放标准的企业消息传送系统:它是 JMS 提供者。

MQ 产品所具有的功能超过了 JMS 规范中对于可靠、异步消息传送的最低要求。某些功能(集中管理、可优化的性能、支持多种消息传输、用户验证和授权)可以从集成到 Sun ONE Application Server 的 MQ Platform Edition 中获得。其它功能(可伸缩的消息服务器和安全消息传送)可以通过升级到 MQ Enterprise Edition 获得。

MQ 消息传送系统包括许多部件(如图“MQ 系统结构”所示),这些部件通过协同工作来提供可靠的消息传送。

MQ 消息传送系统的主要部件为:

以下主题中对这些部件进行了简要的介绍。有关 MQ 消息传送系统的完整说明,请参见以下站点中的 MQ Administrator's Guide

http://docs.sun.com/

MQ 消息服务器

MQ 消息服务器的主要部件为代理和物理目标,如图“MQ 系统结构”所示。

代理。代理可以为 MQ 消息传送系统提供传送服务。消息传送通过各种支持组件来完成,这些组件用于处理连接服务、消息路由和传送、持久性、安全性及记录。消息服务可以部署一个或多个代理来实现可伸缩性。

物理目标。消息的传送分为两个阶段进行:首先,消息从生产方客户机传送到由代理维护的物理目标;然后,消息从目标传送到一个或多个用户客户机。物理目标表示代理的物理内存或永久存储器中的位置(有关详细信息,请参见“物理目标”)。

   MQ 系统结构
展示了 MQ 消息传送系统的部件的图表。图中以文字形式进行解释。

代理

MQ 消息传送系统中的消息传送(从生成方客户机到目标,然后从目标到一个或多个用户客户机)是通过代理(在 MQ 3.01 Enterprise Edition 中,则为串联工作的代理群集)执行的。要执行消息传送,代理必须配置客户机中的通信频道、执行验证和授权、正确地路由信息、保证传送的可靠性并提供用于监视系统性能的数据。

要执行这一系列的复杂功能,代理使用许多不同的组件,这些组件在传送过程中发挥各自特定的作用。可以根据负荷条件、应用程序的复杂程度等方面的因素来配置这些内部组件,以便优化代理的性能。有关详细信息,请参见 MQ Administrator's Guide

物理目标

MQ 消息传送将分两个阶段进行:首先,消息从生成方客户机传送到代理上的目标;然后,消息从代理上的目标传送到一个或多个用户客户机。目标有两种类型:队列(点对点传送模式)和主题(发布/订阅传送模式)。这些目标表示代理物理内存中的位置,传入的消息在路由到用户客户机之前在此处进行编排。

物理目标通常可以使用管理工具来创建,但也可以由代理根据收到的消息自动创建。

队列目标。队列目标用于点对点的消息传送,点对点发送表示消息只一次性地发送给已注册到该目标的用户组中的一个用户。生成方客户机的消息到达后,它们将排队并传送到用户客户机。

主题目标。主题目标用于发布/订阅消息传送,这种方式是将消息永久发送到注册到目标的所有用户。生成方的消息到达后,它们将路由到订阅主题的所有用户。如果用户注册了长期订阅主题,则不必在消息传送到主题时处于活动状态,代理将存储该消息,直到用户再次被激活,然后传送该消息。

MQ 客户机运行时

MQ 客户机运行时间为 JMS 客户机(独立的应用程序、Web 组件或 EJB 组件)提供与 MQ 消息服务器通信的接口,它向 JMS 客户机提供客户机将消息发送到目标和从这类目标接收消息时所需的所有编程接口实现。

“消息传送操作”图说明了消息的生成和使用如何在 JMS 客户机和 MQ 客户机运行时之间进行交互,以及消息传送如何在 MQ 客户机运行时和 MQ 消息服务器之间进行交互。

   消息传送操作
展示了消息生成方及用户与 MQ 运行时之间的交互方式的图表。图中以文字形式进行解释。

MQ 管理的对象

MQ 管理的对象允许 JMS 客户机代码独立于提供者(参见“管理的对象:提供者独立性”)。通过封装对象(该对象可以通过独立于提供者的方式由客户机应用程序使用)中特定于提供者的实现以及配置信息,从而使 JMS 客户机代码独立于提供者。MQ 管理对象由管理员创建和配置、存储在名称服务中、并由 JMS 客户机通过标准 JNDI 查找代码来访问。

连接工厂管理的对象。连接工厂对象用于创建 JMS 客户机(独立应用程序、Web 组件或 EJB 组件)与 MQ 消息服务器之间的物理连接。连接工厂对象在代理中没有物理表示,它仅用于启用 JMS 客户机,以建立与代理之间的连接。它还用于指定连接和使用该连接访问代理的客户机运行时的操作:因此,MQ 连接工厂具有大量可配置的属性,通过这些属性可以优化 MQ 系统的属性。

目标管理的对象。目标管理的对象(队列或主题)表示代理中的物理目标,它与公开命名的目标管理的对象相对应。通过创建目标管理的对象,可以允许 JMS 客户机(消息用户和/或消息生成方)访问相应的物理目标。

MQ 管理工具

MQ 管理工具分为两类:命令行公用程序和图形用户界面 (GUI) 管理控制台。

管理控制台。可以使用管理控制台连接到代理并对其进行管理、在代理中创建物理目标、连接到对象存储、以及向对象存储添加或更新管理的对象或者从中删除管理的对象。有些任务不能通过管理控制台执行,主要包括启动代理、创建代理群集、配置更专业的代理属性、以及管理用户数据库。

命令行公用程序使用 MQ 公用程序可以执行所有通过管理控制台执行的任务,而且,还可以启动和管理代理、配置更专业的代理属性、以及管理 MQ 用户数据库。

MQ 的集成 Sun ONE Application Server

作为 Sun ONE Application Server 安装过程的一部分,将自动安装 MQ Platform Edition。有关详细信息,请参阅《Sun ONE Application Server Developer's Guide》。

本安装为 Sun ONE Application Server 提供了一个 JMS 消息传送系统,支持任意数量的 Sun ONE Application Server 实例。默认情况下,每个服务器实例都有关联的内置 JMS 服务,这些服务支持所有 JMS 客户机在实例中运行。

本主题包括以下主题:

内置 JMS 服务可以使用 Sun ONE Application Server 管理工具(参见“管理内置 JMS 服务”)进行管理。

内置 JMS 服务的体系结构

“内置 MQ 消息传送系统”图中说明的内置 JMS 服务与普通 MQ 消息传送系统(如“MQ 系统结构”图中所示)类似,但下述资格除外。

   内置 MQ 消息传送系统
展示应用程序服务器实例中内置 JMS 服务的图表。图中以文字形式进行解释。

MQ 消息服务器。每个 Sun ONE Application Server 实例都与自身内置的 JMS 服务相关联。内置 JMS 服务使用单个代理消息服务器。代理在 Sun ONE Application Server 实例之外的单独进程中运行,如“内置 MQ 消息传送系统”图中所示。默认情况下,代理实例(内置 JMS 服务)会在与之关联的服务器实例启动时启动,并在服务器实例关闭时关闭。服务器实例内置 JMS 服务的配置信息记录在 Sun ONE Application Server 配置存储(server.xml 文件)中,并且可以根据“配置 JMS 服务”中的说明进行修改。

MQ 客户机运行时。JMS 服务的客户机运行时部件是一组支持 JMS API 的库。任何在服务器实例中运行的 JMS 客户机(JMS 客户机组件,包括 MDB)都可以访问这些库。

MQ 管理的对象。内置 JMS 服务使用 Sun ONE Application Server 提供的对象存储。每个服务器实例都有自己的对象存储。JMS 服务将管理的对象(连接工厂和目标资源)存储在此对象存储中。根据“管理被管理的对象资源”中的说明创建这些管理的对象资源,这些资源可以通过 JMS 客户机使用 JNDI 查找代码进行访问。

Sun ONE Application Server 管理。Sun ONE Application Server 管理界面和命令行公用程序可以实现有限的 MQ 管理功能子集。通过管理界面和命令行,可以配置内置 JMS 服务、创建和删除物理目标、以及创建和删除 JMS 客户机执行 JMS 消息传送操作所使用的管理对象资源。但是,这些管理工具不允许(或不便于)执行更复杂的管理任务,例如设置代理的属性、优化 MQ 客户机运行时、修改 MQ 用户系统信息库、管理 MQ 安全性等。如果要对内置 JMS 服务执行这些管理任务,则必须使用 MQ 中安装的管理工具,有关说明可以参见 MQ Administrator's Guide。有关 MQ 和 Sun ONE Application Server 管理功能的比较,请参见表“Sun ONE Message Queue 和 Sun ONE Application Server 管理功能比较”

禁用内置 JMS 服务

默认情况下,关联的 Sun ONE Application Server 实例启动时,内置 JMS 服务也随之启动(即 MQ 代理启动)。但是,由于服务器实例无需支持 JMS 消息传送,或者由于服务器实例使用外部 JMS 服务,因此可能需要在启动服务器实例时禁用 JMS 服务的自动启动。(要禁用内置 JMS 服务,请参见“配置 JMS 服务”。)

外部 JMS 服务是一种消息传送系统,它不受 Sun ONE Application Server 控制。对于 MQ(本地 JMS 提供者),这意味着使用 MQ 管理工具只能独立地启动和管理 MQ 消息服务器。各种服务器实例中运行的 JMS 客户机仍然可以使用 MQ 管理对象来访问 MQ 消息服务器。这些管理对象可以存储在与应用程序服务器实例关联的对象存储中,也可以存储在由 MQ 管理工具管理的独立对象存储(必要时多个服务器实例可以在其中共享存储)中。

服务器实例使用外部 JMS 服务的方案有很多种。最常见的方案是不同服务器中的 JMS 客户机需要访问同一物理目标时的方案。在这种情况下,所有服务器实例都必须都访问同一消息服务器。因此,需要禁用所有服务器实例的内置 JMS 服务,并将所有 JMS 客户机配置为执行相应的 JNDI 查找以访问外部 JMS 服务。此外,还需要使用外部 JMS 服务提供者的管理工具独立管理外部 JMS 服务(管理消息服务器、创建物理目标、以及创建所有所需的管理对象)。

配置多个应用程序服务器实例来共享单个 MQ 代理实例的步骤:

  1. 禁用所有服务器实例中的 JMS 服务。
  2. 独立管理任何服务器实例的共享 MQ 代理(即必须使用用于管理外部服务的管理工具启动和关闭代理),还必须独立管理 Sun ONE Application Server 的物理目标。
  3. 配置每个服务器实例中的连接工厂 JMS 资源,以便指向此外部 MQ 代理(必须正确设置 imqBrokerHostNameimqBrokerHostPort 属性)。
  4. 在 Sun ONE Application Server 上部署 JMS 应用程序时使用此连接工厂资源。

可以同时运行外部和内置 JMS 服务。服务器实例中的 JMS 客户机可以访问所需的任何 JMS 服务。

推荐多个服务器实例共享同一内置 JMS 服务(一个被启用,其余的被禁用),因为启用的 JMS 服务仅在关联的服务器实例运行时才运行,这样管理起来非常困难。

禁用内置 JMS 服务时,同时也会禁用执行与内置 JMS 服务关联的管理任务的功能。支持外部 JMS 服务所需的所有管理工具必须使用用于管理外部服务的管理工具来执行。

管理内置 JMS 服务

本主题主要讲述内置 JMS 服务的管理。管理的执行是逐个服务器实例进行的

内置 JMS 服务的管理包括以下任务:

可以使用 Sun ONE Application Server 的管理界面或命令行公用程序执行管理。“Sun ONE Message Queue 和 Sun ONE Application Server 管理功能比较”表将这些管理工具与 MQ 管理工具进行了比较。

   Sun ONE Message Queue 和 Sun ONE Application Server 管理功能比较

功能

Sun ONE MQ 管理工具

Sun ONE AS

管理界面

Sun ONE AS 管理命令行

管理 MQ 代理状态

 

 

启动/停止

 

启动/停止

 

配置 MQ 代理

 

 

 

 

管理 MQ 代理用户系统信息库

 

 

 

 

多代理群集

 

 

 

 

管理安全性

 

 

 

 

管理物理目标

 

 

创建/删除

 

创建/删除

 

管理长期订阅和事务

 

 

 

 

管理被管理的对象资源

 

 

创建/删除/
配置

 

 

下面各节解释了如何使用 Sun ONE Application Server 管理界面执行 JMS 服务管理任务。

配置 JMS 服务

安装时已为内置 JMS 服务设置了很多 JMS 服务属性。可以通过配置 JMS 服务来更改这些属性的默认值。

“JMS 服务属性”表中说明了 JMS 服务的属性。

   JMS 服务属性 

属性

说明

默认值

日志级别

 

要写入 Sun ONE Application Server 日志文件中的记录信息的级别。有关详细信息,请参见“使用日志”

 

DEBUG_HIGH

 

端口

 

提供内置 JMS 服务的代理实例的主端口号。默认情况下,JMS 服务使用默认的主端口号。但是,如果该端口与其它软件冲突,或者启动了多个 Sun ONE Application Server 实例,则需要为每个实例指定唯一的主端口号。

请注意,如果安装时将端口号指定给 JMS 服务,而后其它服务又使用了该端口号,则可能会出现端口冲突。在这种情况下,必须为 JMS 服务指定其它端口号。

 

7676

 

管理员用户名/密码

 

执行代理管理任务(例如管理物理目标)时所需的用户名/密码(参见“管理物理目标”)。如果希望管理员能够安全访问代理实例(默认情况下,任何用户都具有访问权限),首先需要在代理的用户系统信息库中创建相应的项(见 MQ Administrator's Guide),然后为管理员用户名和密码输入对应的值。

 

admin/admin

 

启动超时

 

指定服务器实例等待 JMS 服务启动的时间(以秒为单位)。如果超时,则终止服务器实例的启动。

 

60

 

启动变量

 

指定启动 JMS 服务时使用的任何变量。imqbroker 命令的启动变量以及指定这些变量的方法可以参见 MQ Administrator's Guide。(如果提供了 -name-port 变量,则忽略这些变量。)

 

 

启用启动

 

指定服务器实例启动时是否启动内置 JMS 服务。如果不支持 JMS 消息传送或者要使用外部 JMS 消息服务,请将该属性设置为 FALSE。

 

TRUE

 

启动相应的服务器实例之前配置内置 JMS 服务。但是,如果已经运行了服务器实例,对配置的更改只有在停止服务器实例并重新启动后才能生效。

配置内置 JMS 服务的步骤:

  1. 打开管理界面。
  2. 打开左侧窗格中的一个服务器实例。
  3. 打开 JMS 文件夹。
  4. 选择“Service”链接。
  5. 右侧窗格中将显示“JMS Service configuration”屏幕。

   JMS 服务配置屏幕
应用程序服务器窗口和 JMS 服务配置。屏幕以文字形式进行解释。

  1. 修改所需的任何属性(参见表“JMS 服务属性”)。
  2. 单击“Save”按钮。
  3. JMS 服务屏幕将被刷新。

管理物理目标

在 JMS 消息传送中,一个 JMS 生成方向消息服务上的物理目标发送消息,然后该服务将消息分发到 JMS 用户。

对于内置 JMS 服务,可以明确地创建这些物理目标,也可以在收到消息后由 JMS 服务(MQ 代理)自动创建。通常情况下,通过明确地创建消息传送应用程序所需的物理目标,可以更好地控制消息传送系统及其资源。当不再需要这些目标时,可以将它们删除。

为了创建或删除内置 JMS 服务的物理目标,必须运行 JMS 服务,并且管理员用户名和密码(配置内置 JMS 服务时指定)必须与代理的用户系统信息库中的项相对应(参见表“JMS 服务属性”)。

使用管理界面可以在内置 JMS 服务中执行以下物理目标管理任务:

创建队列或主题目标

创建队列或主题目标的步骤:

  1. 打开管理界面。
  2. 打开左侧窗格中的一个服务器实例。
  3. 打开 JMS 文件夹。
  4. 打开“Service”链接。
  5. 选择“Physical Destinations”链接。
  6. 右侧窗格中将显示“Physical Destinations”屏幕。

  7. 单击“New”按钮。
  8. 右侧窗格中将显示“Physical Destinations:New”屏幕。

   新的 JMS 物理目标屏幕
应用程序服务器窗口,展示 JMS 物理目标对话框。屏幕以文字形式进行解释。

  1. 输入物理目标的名称。
  2. 从“Type”下拉列表中选择队列或主题。
  3. 单击“OK”按钮。
  4. 右侧窗格将被刷新,并在现有队列和主题目标列表中显示新的队列或主题目标。

列出物理目标

列出现有队列和主题目标的步骤:

  1. 打开管理界面。
  2. 打开左侧窗格中的一个服务器实例。
  3. 打开 JMS 文件夹。
  4. 打开“Service”链接。
  5. 选择“Physical Destinations”链接。
  6. 右侧窗格中将显示当前的物理目标。

删除物理目标

可以根据需要删除队列或主题目标。

删除物理目标的步骤:

  1. 列出现有目标(参见“列出物理目标”)。
  2. 单击要删除的每个目标旁边的选择框。

   JMS 物理目标屏幕
“Application Server”窗口,显示用于删除目标的对话框。屏幕以文字形式进行解释。

  1. 单击“Delete”按钮删除选定的目标。
  2. 列表将刷新,显示其它目标。

管理被管理的对象资源

JMS 客户机使用 MQ 管理对象(Sun ONE Application Service 将其视为 JMS 资源)访问 JMS 服务(内置或外部服务)。

J2EE 组件使用两个管理对象资源(连接工厂和目标)连接到 JMS 服务,然后将消息传送到服务的物理目标,或从物理目标接收消息(参见“MQ 管理的对象”)。

由于创建管理对象资源不直接包括 JMS 服务,因此,为服务器实例创建管理对象资源时无需启用 JMS 服务,也无需有效的用户名和密码(参见表“JMS 服务属性”)。

管理对象属性

要支持 JMS 消息传送,必须创建在服务器实例中运行的所有 JMS 客户机所需的管理对象资源。至少需要为每个管理对象资源指定一个 JNDI 查找名称、其类型(连接工厂、队列或主题)、说明(可选)以及是否启用资源。其它属性将在以下各节中讲述。

目标(队列或主题)

对于队列或主题管理对象,还需要指定对应的物理目标的名称。

连接工厂

对于连接工厂管理对象,默认情况下,管理界面将创建指向内置 JMS 服务的连接工厂,即指向主机名为本地主机、端口号为配置 JMS 服务时设置的端口号的代理实例(参见表“JMS 服务属性”)。

但是,如果禁用了特定服务器实例的 JMS 服务,该服务器实例所支持的 JMS 客户机则必须使用外部 JMS 服务。创建连接工厂(用于创建到外部 JMS 服务的链接)时,需要设置属性来指定相应代理实例的主机名和端口号。

连接工厂管理对象还有一些属性,用于优化服务器实例的 MQ 客户机运行时。这些属性在 MQ Developer's Guide 中均有说明。

使用管理界面创建的连接工厂管理对象支持分布式事务管理器。

管理对象资源管理任务

可以在管理界面中执行以下管理对象资源的管理任务:

创建队列或主题管理对象(目标资源)

创建队列或主题管理对象的步骤:

  1. 打开管理界面。
  2. 打开左侧窗格中的一个服务器实例。
  3. 打开 JMS 文件夹。
  4. 选择“Destination Resources”链接。
  5. 右侧窗格中将显示“Destination Resources”屏幕。

  6. 单击“New”按钮。
  7. 将显示“Destination Resources:New”屏幕。

   新的目标管理对象屏幕
“Application Server”窗口,显示用于创建管理对象的对话框。屏幕以文字形式进行解释。

  1. 输入与目标管理对象关联的 JNDI 查找名称。
  2. 从下拉列表中选择“队列”或“主题”对象类型。
  3. 单击“OK”按钮。
  4. 右侧窗格中将重新显示“Destination Resource:New”屏幕。

此外,必须通过指定 imqDestinationName 属性来指定对象的目标名称。此属性值应该与物理目标的名称相匹配。

更改此属性值的步骤:

  1. 打开管理界面。
  2. 打开左侧窗格中的一个服务器实例。
  3. 打开 JMS 文件夹。
  4. 打开“Destination Resources”文件夹。
  5. 选择要编辑的“Destination Resource”。
  6. 右侧窗格中将显示“Destination Resource”屏幕。

  7. 在右侧窗格中,单击“Properties”。
  8. 将出现“Edit Properties”屏幕。

  9. 在“Name”字段中,输入 imqDestinationName。
  10. 在“Value”字段中,输入物理目标的名称。
  11. 单击“OK”。
  12. 右侧窗格中将重新显示“Destination Resources”屏幕。

创建一个 ConnectionFactory Administered 对象

创建队列连接工厂或主题连接工厂管理对象的步骤:

  1. 打开管理界面。
  2. 打开左侧窗格中的一个服务器实例。
  3. 打开 JMS 文件夹。
  4. 选择“Connection Factories”链接。
  5. 右侧窗格中将显示“Connection Factory Resources”屏幕。

  6. 单击“New”按钮。
  7. 将显示“Connection Factory Resources:New”屏幕。

   新的 ConnectionFactory 管理对象屏幕
“Application Server”窗口,其中展示了“JMS Connection Factory”对话框。屏幕以文字形式进行解释。

  1. 输入与该连接工厂管理对象关联的 JNDI 查找名称。
  2. 从下拉列表中选择连接工厂对象类型。
  3. 单击“OK”按钮。
  4. 右侧窗格中将重新显示“Connection Factory Resources”屏幕,列表中将显示新建的连接工厂对象。

如果该连接工厂创建的到代理的连接与到内置 JMS 服务的不同,则必须设置 imqBrokerHostNameimqBrokerHostPort 属性的值。

更改这些属性值的步骤:

  1. 打开管理界面。
  2. 打开左侧窗格中的一个服务器实例。
  3. 打开 JMS 文件夹。
  4. 打开“Connection Factories”文件夹。
  5. 选择要编辑的“Connection Factory”资源。
  6. 右侧窗格中将显示“Connection Factory”屏幕。

  7. 在右侧窗格中,单击“Properties”。
  8. 将出现“Edit Properties”屏幕。

  9. 在“Name”字段中,输入 imqBrokerHostName
  10. 在“Value”字段中,输入属性的值。
  11. 在“Name”字段中,输入 imqBrokerHostPort
  12. 在“Value”字段中,输入属性的值。
  13. 单击“OK”。
  14. 右侧窗格中将重新显示“Connection Factory”屏幕。

列出管理对象资源

列出现有管理对象的步骤:

  1. 打开管理界面。
  2. 打开左侧窗格中的一个服务器实例。
  3. 打开 JMS 文件夹。
  4. 选择“Destination Resources”或“Connection Factory Resources”链接。
  5. 右侧窗格中将显示当前目标或连接工厂管理对象。

删除管理对象资源

删除管理对象资源的步骤:

  1. 列出现有管理对象资源(参见“列出管理对象资源”)。
  2. 右侧窗格中将显示现有的管理对象资源。

  3. 单击要删除的每个对象旁边的选择框。

   JMS 连接工厂屏幕,已刷新
“Application Server”窗口,显示用于删除管理对象的对话框。屏幕以文字形式进行解释。

  1. 单击“Delete”按钮删除所有选定对象。
  2. 屏幕将刷新列表,显示其它管理对象资源。

使用命令行界面管理内置 JMS 服务

Sun ONE Application Server 中包含一个命令行公用程序(asadmin),可以用于执行与使用管理界面执行的任务相同的任务。

使用以下 asadmin 命令可以配置和管理内置 JMS 服务。

   用于管理内置 JMS 服务的 asadmin 命令

命令

用法

add-resources

 

为 jdbc、jms 和 javamail 类型添加一种或多种资源。

 

create-jmsdest

 

创建一个 JMS 物理目标。

 

create-jms-resource

 

创建一个 JMS 资源。

 

delete-jmsdest

 

删除 JMS 物理目标。

 

delete-jms-resource

 

删除 JMS 资源。

 

jms-ping

 

强制回应 JMS 提供者,查看其是否正在运行。

 

list-jmsdest

 

列出服务器实例的 JMS 物理目标。

 

list-jms-resources

 

列出服务器实例的 JMS 资源。

 

获取和设置 jms-service

 

获取和设置 JMS 服务的属性。

 

获取和设置 jms-resource

 

获取和设置 JMS 资源的属性。

 

有关这些命令的语法的信息,请参见 asadmin 联机帮助。有关 asadmin 的详细信息以及 jms-service 和 jms-resource 的属性列表,请参见“使用命令行界面”


上一个      目录      索引      下一个     
Copyright 2003 Sun Microsystems, Inc. All rights reserved.