mqsicreatebroker 命令

支持的平台

用途

mqsicreatebroker 命令:
  • 如果 WebSphere MQ 队列管理器不存在,则创建它(在 z/OS 上例外)。
    注:
    1. 如果使用 mqsicreatebroker命令创建了 WebSphere MQ 队列管理器,则自动启用 WebSphere MQ(SYSTEM.DEAD.LETTER.QUEUE)提供的缺省 DLQ。安全性设置与其他代理特定的 WebSphere MQ 队列的安全性设置相同。

      如果选择单独创建队列管理器,则必须设置死信队列(DLQ)。处理 消息流 中的消息时若发生错误,则由 WebSphere Message Broker 引用 DLQ。

      如果无法处理用户定义的消息流或发布/预订模型中的消息,则使用最后一个办法,将消息路由到此 DLQ。 如果更希望将此消息回退到输入队列,并且在问题解决之前有效地阻止消息流,则禁用 DLQ。

      除非删除了队列管理器,否则 mqsideletebroker 命令不删除此队列。

    2. 如果使用的 WebSphere MQ 队列管理器不是用 mqsicreatebroker 命令创建的,并且做了相应的选择,就可以定义群集。在大多数情况下,这样可以简化配置工作。

  • 如果 WebSphere MQ 队列管理器尚未运行,则启动它(在 z/OS 上例外)。

    如果队列管理器是用此命令创建的,它就不作为 Windows 服务启动;因此,如果您注销,它就会停止。要避免发生这种情况,必须保持登录状态,或者更改队列管理器服务的启动状态。(如果锁定工作站,WebSphere MQ 队列管理器并不停止。)

  • 创建特定于代理的 WebSphere MQ 队列(如果它们还不存在)。
  • 为代理创建还不存在的数据库表,或将特定于此代理的行添加到现有的表。
  • Windows 平台上,安装用来运行代理的服务。
  • 在代理注册表中为组件创建记录。

语法

Windows 平台、Linux 和 UNIX 系统

z/OS 控制台命令

参数

brokername
(必需)要创建代理的名称。它必须是第一个参数,并且在 LinuxUNIX 系统上区分大小写。

如果在 z/OS 上创建大写的代理名,在工作台中也必须为代理使用此大写名称。

有关可用字符集的限制,请参阅命令中允许使用的字符
-i ServiceUserID
(必需 - Windows 平台、Linux 和 UNIX 系统)用于运行代理的用户标识。

您可以用任何有效的用户名语法指定它。在 Windows 平台上,有效的语法有:

  • domain\username
  • \\server\username
  • .\username
  • username

在 Linux 和 UNIX 系统上,仅最后一种格式 username 有效。

如果在 Windows 平台上使用该用户标识的非限定格式(username),操作系统就从本地系统开始,在它的整个域中搜索该用户标识。这种搜索可能要花费一些时间才能完成。

指定的 ServiceUserID 必须是本地组 mqbrkrs 的成员。在 Windows 平台上,它可以是该组的直接或间接成员。ServiceUserID 还必须有权访问主目录(安装了 WebSphere Message Broker 的目录)和工作目录(如果 -w 标志指定了此目录)。

如果在 Windows 平台上将代理指定为作为 WebSphere MQ 可信应用程序运行(标志为 -t),还必须将此用户标识添加到组 mqm。在 Linux 和 UNIX 系统上,如果设置了 -t 标志,则将 ServiceUserID 指定为 mqm

Windows 平台的安全性需求中详细描述了 ServiceUserID 的安全要求。

如果使用此用户标识访问数据库(即,不使用 -u 标志指定其他用户标识),并为数据库使用 SQL Server,则必须创建此用户标识作为 SQL Server 的登录标识,并在创建代理前赋予它正确的访问权(有关进一步的详细信息,请参阅考虑代理的安全性)。如果代理数据库位于 DB2 中,而 DB2 无法识别此用户标识,DB2 将自动创建用户标识。

-a ServicePassword
(必需 - Windows 平台、Linux 和 UNIX 系统)ServiceUserID 的密码。

为与现有系统兼容,可以仍然指定 <password>。但在运行此命令时,如果未使用该参数指定密码,调用此命令时会提示您输入密码,并且还提示您再次输入密码以验证您的输入是否正确。

在 Linux 和 UNIX 系统上,为与 Windows 平台兼容需要使用 -a,但在涉及 ServiceUserID 时并不使用它;仅当未指定 -p 时才使用它作为缺省值。(有关进一步的详细信息,请参阅关于 -p 参数的注释。)

-q QueueManagerName
(必需)与此代理关联的队列管理器名称。为代理和队列管理器使用相同的名称可以简化网络的组织和管理。队列管理器的名称长度不得超过 48 个字符,并且区分大小写。

更新开始每个代理都必须有自身的独特队列管理器。多个代理之间不能共享队列管理器。更新结束

对于不存在的队列管理器,可以使用此命令创建。它不作为缺省队列管理器创建;如果希望它成为该系统上的缺省队列管理器,必须在发出该命令之前创建它,或者更改该队列管理器的设置,使其成为缺省队列管理器。根据您使用的 WebSphere MQ 版本,使用 WebSphere MQ 资源管理器或 WebSphere MQ 服务管理单元。

将队列管理器属性 MAXMSGLN(可以放入队列中的消息的最大长度)更新为 100 MB。无论队列管理器是不是使用此命令创建的,都必须执行此项更新。

有关可用字符集的限制,请参阅命令中允许使用的字符

-n DataSourceName
(必需 - Windows 平台、Linux 和 UNIX 系统)在其中创建代理表的数据库的 ODBC 数据源名称(DNS)。 如果 DSN 与数据库的名称不同, 它必须是 DSN,而不是数据库名称。

此数据库必须已经存在。如果还没有为此 DSN 创建一个系统 DSN ODBC 连接的话,必须先执行这一步。

如果在 Linux 上有 DB2 数据库,则输入相应的 DB 数据库别名;不需要 ODBC DSN。

-u DataSourceUserID
(可选 - Windows 平台、Linux 和 UNIX 系统)用来访问包含代理表和用户数据的数据库的用户标识。如果未指定它,缺省情况下就是由 -i 指定的值。

此用户标识必须具有在数据库中创建表的权限,以及对那些表读写的权限。

Windows 平台上,如果在 DB2 中存在您的代理数据库,并且 DB2 不知道该用户标识,则在 DB2 中为您创建它。在 Linux 和 UNIX 系统上,服务用户必须以前就被授予正确的特权。 如果您的数据库是 SQL Server,则必须在创建代理之前,将该用户标识创建为 SQL Server 登录标识并且赋予正确的访问权(有关详细信息,请参阅Windows 平台的安全性需求)。

如果在 DB2 中有个应用程序数据库,它是使用此用户标识创建的,或者此用户标识对它有合适的读、写或创建权限,则在此代理中执行的消息流就能够访问和处理它所包含的应用程序数据,而不需要指定显式模式名。

更新开始-n DB2Location更新结束
更新开始(必需 - z/OS)数据库中创建代理表的位置。更新结束
更新开始-u DB2TableOwner更新结束
更新开始(必需 - z/OS)用于访问包含代理表和用户数据的数据库的用户标识。

此用户标识必须具有在数据库中创建表的权限,以及对那些表读写的权限。

如果在 DB2 中有个应用程序数据库,它是使用此用户标识创建的,或者此用户标识对它有合适的读、写或创建权限,则在此代理中执行的消息流就能够访问和处理它所包含的应用程序数据,而不需要指定显式模式名。

更新结束
-p DataSourcePassword
(可选 - Windows 平台、Linux 和 UNIX 系统)用来访问包含代理表和用户数据的数据库的用户标识的密码。如果未指定,则它缺省为 -a 指定的 ServicePassword

为与现有系统兼容,可以仍然指定 <password>。但在运行此命令时,如果未使用该参数指定密码,调用此命令时会提示您输入密码,并且还提示您再次输入密码以验证您的输入是否正确。

对于 Linux 和 UNIX 系统,可以将 -u-p 指定为空字符串(用两个双引号"" 表示)。在这种情况下,DB2 把 ServiceUserID 的特权授予 WebSphere Message Broker,这会使数据库连接成为“已验证”。如果将 -a-u-p 都指定为空字符串,WebSphere Message Broker 就不存储密码,创建最安全的配置。

-s UserNameServerQueueManagerName
(可选)与用户名称服务器关联的 WebSphere MQ 队列管理器的名称。 如果您需要认证服务或发布/预订访问控制,则必须指定此参数。如果未指定它,代理就假设没有定义用户名称服务器
-j
(可选)您必须-s UserNameServerQueueManagerName 参数一起指定此标志以启用发布/预订访问控制。
-w Workpath
(可选 - Windows 平台、Linux 和 UNIX 系统)存储该代理的工作文件的目录。如果未指定该目录,则文件就存储在缺省工作路径中,此路径在安装产品时指定。如果指定了,则您必须在启动代理前创建该目录。在 Windows 平台上,这不能在网络驱动器上。

该目录还用于在跟踪是活动时所创建的跟踪记录。这些写到子目录 log,您必须在启动代理前创建它们。

当进程异常终止时,代理写的出错日志将存储在该目录中。在 Windows 平台上,使 用该选项,在不是安装产品的驱动器上指定目录。

出错日志是无限制的并继续增长。请定期检查该目录并清除旧的错误信息。

您不能使用 mqsichangebroker 命令更改此选项。如果您要指定或更改工作路径,请删除并重新创建代理。

-t
(可选 - Windows 平台、Linux 和 UNIX 系统)代理配置成作为 WebSphere MQ 可信应用程序运行。

如果您在 Windows 平台上指定此选项,则将 ServiceUserID(由标志 -i 标识)添加到组 mqm。如果在 HP-UX 和 Solaris 上指定此选项,则将 ServiceUserID 指定为 mqm。 有关使用 WebSphere MQ 可信应用程序的更多详细信息,请参阅 WebSphere MQ Intercommunication

-m
(可选 - Windows 平台、Linux 和 UNIX 系统)迁移现有的 WebSphere MQ Publish/Subscribe 代理。如果指定此选项,由 -q 标识的队列管理器必须是由 WebSphere MQ Publish/Subscribe 代理使用的队列管理器。
-l UserLilPath
(可选 - Windows 平台、Linux 和 UNIX 系统)代理为用户定义的消息处理节点装入 LIL(可装入实现库)的路径列表(目录)。

必须创建您自己的目录用于存储 .lil.jar 文件。 请勿将它们保存在 WebSphere Message Broker 安装目录中。

如果您指定多个其他目录,则必须用平台特定的路径分隔符分隔它们(在 Windows 平台上用分号 ;,在 Linux 和 UNIX 系统上用冒号 :)。

不可以在该路径中包含环境变量:即使包含,也会忽略它们。

-g ConfigurationTimeout
(可选)允许代理中的执行组应用配置中更改(例如,已经在工作台中部署的更新)的时间长度(以秒为单位)。

当消息流正在处理应用程序消息时,它无法响应配置更改。只要被请求更改其配置的执行组中有一条消息流未在此超时期间完成应用程序消息的处理以及配置更改的应用,执行组就会向部署的配置消息返回否定响应。

为该超时设置的值取决于系统负载(包括 CPU 利用率)和每个执行组的负载。您可以通过部署代理的整个配置进行初步估计。成功完成该任务的时间指示要设置的最小值的指示。

该值是以秒为单位指定的,其范围可以从 10 到 3600。缺省值是 300。

ConfigurationTimeoutConfigurationDelayTimeout(在下面描述)之和表示在代理生成否定响应之前,允许代理处理部署的配置消息的最大时间长度。

-k ConfigurationDelayTimeout
(可选)允许代理处理配置中最小的更改(例如,已从工作台部署的更新)的时间长度(以秒为单位)。

这表示代理及其执行组处理最小部署配置消息的时间,它取决于队列管理器网络延迟、代理的队列管理器上的负载和系统负载。

可以通过发出请求简单配置更改的命令来估计这个值,例如:
  • Windows 平台、Linux 和 UNIX 系统上:
    mqsireporttrace brokerName -e "Execution Group Name" -u
  • 在 z/OS 上
    F MQP1BRK,reporttrace u=yes,e='exgrp1'

各个执行组的响应时间因系统负载及其自身的处理负载不同而各异。设置的值必须反映任何执行组的最长响应时间。如果设置的值太低,代理返回否定响应并可能将错误消息发到本地错误日志。

该值是以秒为单位指定的,其范围可以从 10 到 3600。缺省值是 60。

如果代理在产品系统上,则增加 ConfigurationTimeoutConfigurationDelayTimeout 的值以允许在应用配置更改之前完成消息流当前正在处理的应用程序消息。

如果代理在部署或测试系统上,则可能需要减少超时(特别是 ConfigurationTimeout)以增加感知响应时间,并对不显示期望行为的代理强制进行响应。但是,减少超时值会降低成功地部署配置更改的可能性。

-P HTTPListenerPort
(可选 - Windows 平台、Linux 和 UNIX 系统)输入 Web service 支持正在侦听的端口号。

当支持 Web service 的消息流启动时,代理将启动该侦听器,缺省值为 7080。

确保您指定的端口没有未用于任何其他用途。

-v statisticsMajorInterval
(可选)WebSphere Message Broker 统计信息和记帐的计时器时间间隔(以分钟为单位)告诉给输出归档记录。对于内部记帐,有效范围是 10 至 14400 分钟。

时间间隔为 0 秒表明平台有一个外部通知方法,并且不使用 WebSphere Message Broker 中的内部计时器。

更新开始-1更新结束
更新开始(可选 - 仅 z/OS)注册表密码,仅创建代理注册表。更新结束
更新开始-2 更新结束
更新开始(可选 - 仅 z/OSWebSphere MQ 密码,仅创建代理 WebSphere MQ 队列。更新结束
更新开始-3更新结束
更新开始(可选 - 仅 z/OSDB2 密码,仅创建代理 DB2 表和索引。更新结束
-y LdapPrincipal
(可选 - 对所有平台都是可选的,但是当提供 LdapCredentials 时就是必需的)用于访问可选 LDAP 目录的用户主体,该目录存储 JMS 提供程序的 JNDI 管理的初始上下文。
-z LdapCredentials
(可选 - 对所有平台都是可选的,但是当提供 LdapPrincipal 时就是必需的)。用于访问 LDAP 的用户密码。
-c ICUConverterPath
(可选)用于搜索其他代码页转换器的定界目录集。在 Windows 系统上,定界符是 “;”。在 UNIXLinux 系统上,定界符是 “:”。 代码页转换器必须为 icudt32_codepagename.cnv 格式或位于 ICU 数据包 icudt32.dat 中。
-x UserExitPath
(可选)将为该代理中的 32 位执行组装入的路径,它包含所有用户出口位置。该路径仅添加至执行组进程的系统库搜索路径(PATH、LIBPATH、LD_LIBRARY_PATH、SHLIBPATH)。

权限

Windows 系统上,用来调用该命令的用户标识必须具有本地系统的管理员权限。

UNIX 系统上,用于调用此命令的用户标识必须是 mqbrkrs 组的成员。

z/OS 系统上,用来调用该命令的用户标识必须属于对组件目录拥有“读”和“写”访问权的组。

使用 LDAP:确保注册表受到适当保护以阻止未授权的访问。对于代理的正确操作,不需要在 mqsicreatebroker 上设置 LdapPrincipalLdapCredentials 选项。 密码没有用明文存储在文件系统中。

创建的 Websphere MQ 队列

  • SYSTEM.BROKER.ADMIN.QUEUE
  • SYSTEM.BROKER.CONTROL.QUEUE
  • SYSTEM.BROKER.EXECUTIONGROUP.QUEUE
  • SYSTEM.BROKER.EXECUTIONGROUP.REPLY
  • SYSTEM.BROKER.INTERBROKER.QUEUE
  • SYSTEM.BROKER.INTERBROKER.MODEL.QUEUE
  • SYSTEM.BROKER.MODEL.QUEUE
  • SYSTEM.BROKER.WS.INPUT
  • SYSTEM.BROKER.WS.REPLY
  • SYSTEM.BROKER.WS.ACK

授予 WebSphere Message Brokermqbrkrs 对所有这些队列的访问权。如果启用了 DLQ,它也有同样的权限。

创建的数据库表

数据库内容中描述了此命令创建或添加至的数据库表。

响应

该命令返回下列响应:

  • BIP8011 无法创建配置数据
  • BIP8012 无法连接到系统组件
  • BIP8014 无法创建组件
  • BIP8022 用户标识/密码无效
  • BIP8030 无法修改用户标识特权
  • BIP8040 无法连接到数据库
  • BIP8048 无法启动队列管理器
  • BIP8050 无法创建队列管理器
  • BIP8051 无法创建队列
  • BIP8053 无法设置队列管理器的安全性
  • BIP8054 无法设置队列的安全性
  • BIP8056 队列管理器未知
  • BIP8070 数据库异常
  • BIP8072 数据库异常
  • BIP8073 代理名无效
  • BIP8084 无法创建目录
  • BIP8086 队列管理器正在使用
  • BIP8087 组件已存在
  • BIP8093 正在创建队列管理器
  • BIP8094 正在停止队列管理器
在某些情况下,您可能会看到由 DB2 发出的下列错误消息:
    (51002)[IBM][CLI Driver][DB2/NT]SQL0805N
    Package "NULLID.SQLLF000" was not found. SQLSTATE=51002.

此错误在与数据库的绑定不成功时出现。

Windows 平台上,代理数据库不需要绑定,但用户数据库需要。如果使用 DB2“控制中心”创建了数据库,则会为您完成绑定。如果使用命令接口,则不会。例如,对于数据库 MYDB,您可以通过在命令提示符下输入以下命令来创建或重新创建绑定:

db2 connect to MYDB user db2admin using db2admin
db2 bind X:\sqllib\bnd\@db2cli.lst grant public
db2 connect reset

其中 X: 是安装 DB2 的驱动器。

UNIX 平台上,所有数据库都需要绑定。例如,对于数据库 WBRKBKDB,您可以通过在命令提示符下输入以下命令, 使其生效(其中 <user_name> 是创建数据库实例时所用的用户标识):

db2 connect to WBRKBKDB user db2admin using db2admin
db2 bind ~<user_name>/sqllib/bnd/@db2cli.lst grant public CLIPKG 5
db2 connect reset

如果没有使用缺省 DB2 用户标识和密码(db2admin),必须使用相应的值替换 db2 connect 命令中的标识和密码。

如果由于第一次运行失败而再次运行 mqsicreatebroker 命令,则会收到一系列消息。它们表明了任何无法创建的项。不应该由此产生任何不良影响。例如,只要解决了第一次失败的原因后,尝试创建第一次失败的代理应该导致代理被正确创建。

示例

mqsicreatebroker WBRK_BROKER -i wbrkuid -a wbrkpw -q WBRK_QM -s WBRK_UNS_QM -n WBRKBKDB
mqsicreatebroker WBRK_BROKER -i wbrkuid -a wbrkpw -q WBRK_QM -n WBRKBKDB -t
mqsicreatebroker WBRK_BROKER -i wbrkuid -a wbrkpw -q WBRK_QM -n WBRKBKDB -x /opt/3rdparty/wmbexits
更新开始
要在 z/OS 上创建整个代理:
mqsicreatebroker CSQ1BRK -q CSQ1 -u BRKUSER -n DBA0
更新结束
更新开始
要在 z/OS 上仅创建 DB2 表和索引:
mqsicreatebroker CSQ1BRK -q CSQ1 -u BRKUSER -n DBA0 -2
更新结束
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
an07080_