预订应用程序可使用通配符来扩大注册感兴趣的发布内容的范围。通过指定通配符,订户可指定感兴趣的多个主题的通用模式,而不是指定明确的主题。
使用的字符有:
WebSphere Message Broker 通配符的所有功能仅用于 MQRFH2 客户机。MQRFH 客户机向 WebSphere Message Broker 代理所进行的预订被拒绝,因预订的主题包含任一 WebSphere Message Broker 通配符,原因码为 MQRCCF_TOPIC_ERROR。
因此,使用 MRQFH 并且与异构网络中的 WebSphere MQ Publish/Subscribe代理连接的应用程序不应发布或预订包含 多级通配符(#)或 单级通配符(+)字符的主题。WebSphere MQ Publish/Subscribe 代理不遵循此规则;如果应用程序在异构代理网络中发布或注册预订时在主题中指定任何 WebSphere Message Broker 通配符,则网络内的 WebSphere Message Broker 代理将忽略这些发布内容和预订。因此,强烈建议在将 WebSphere Message Broker 代理添加到网络之前,先复查并在必要时更改 WebSphere MQ Publish/Subscribe实施内使用的主题。
当使用 MQRFH2 的应用程序使用 WebSphere Message Broker 通配符来指定 WebSphere MQ Publish/Subscribe网络中的多个发布内容时,执行通配符映射。多数情况下,代理使用星号替换 多级通配符 和 单级通配符 字符。这没有为 WebSphere Message Broker 的任何一个通配符提供精确的匹配,但确保将需要的发布内容超集发送到 WebSphere Message Broker 代理。 WebSphere Message Broker 代理对“#”和“+”通配符进行判断,以便匹配正确的发布内容。
例如,主题“employee/+/development”以“employee/*/development”的形式传播到 WebSphere MQ Publish/Subscribe的相邻代理。这可能会将多余的发布内容从 WebSphere Message Broker 的 WebSphere MQ Publish/Subscribe相邻代理发送到 WebSphere Message Broker 代理。但是,当 WebSphere Message Broker 评估原始预订时,不会将它们发送到原始客户机。
例外情况是对从不传播的主题“+”的预订,它不能表示为“*”,因为这是在 WebSphere Message Broker 代理上预订主题“#”时传播的主题。
不要在 MQRFH2 客户机预订中指定 WebSphere MQ Publish/Subscribe通配符。如果指定一个或多个 WebSphere MQ Publish/Subscribe通配符,WebSphere Message Broker 将假设这些通配符为主题的一部分,因此在预订发送到 WebSphere MQ Publish/Subscribe相邻代理之前,会将转义字符(%)用作它们的前缀。
例如,如果 MQRFH2 客户机预订主题“USA/Alaska*/Juneau?”,则该主题被修改为“"USA/Alaska%*/Juneau%?”并传送到 WebSphere MQ Publish/Subscribe 相邻代理。
如果使用 MQRFH 的应用程序连接到 WebSphere Message Broker 代理,则 WebSphere Message Broker 通过混合自己的通配符和过滤器表达式来效仿 WebSphere MQ Publish/Subscribe通配符 * 和 ? 的功能。因此,预订 WebSphere Message Broker 代理的现有 MQRFH 应用程序接收到的发布内容与这些应用程序预订 WebSphere MQ Publish/Subscribe 代理时接收到的发布内容相同。