本部分包含了 Message Queue 3.7 UR1 中已知问题的列表。涵盖以下产品领域:
有关当前错误、错误的状态和解决方法的列表,Java Developer ConnectionnSM 成员应参见 Java Developer Connection Web 站点上的 "Bug Parade" 页,其网址为 http://bugs.sun.com/bugdatabase/index.jsp。在报告新的错误之前请先查看该页。虽然未列出所有的 Message Queue 错误,但如果您想了解是否已报告了某个问题,可以将该页作为一个很好的起点。
可以免费获得 Java Developer Connection 成员资格,但需要进行注册。有关如何成为 Java Developer Connection 成员的详细信息,请访问 Sun 的 "For Developers" Web 页。
要报告新错误或提交功能请求,请向 imq-feedback@sun.com 发送电子邮件。
使用 SSL 的连接服务当前仅支持自签名服务器证书,即信任主机模式。
使用 HTTP 传输的 JMS 客户端突然终止时(例如,使用 Ctrl-C),代理要花费大约一分钟的时间才能释放客户端连接和所有关联的资源。
如果在这一分钟内客户端的另一个实例启动,并且该实例尝试使用同一个客户端 ID、长期订阅或队列,则可能会出现“客户端 ID 已经在使用”的异常。此异常只是上述终止过程中产生的副作用。如果推迟大约一分钟再启动客户端,则不会出现任何问题。
在 Message Queue 3.7 UR1 中,config.properties 文件的注释部分提供了将 LDAP 服务器作为用户系统信息库的示例代理配置。而 default.properties 文件中的 LDAP 用户系统信息库示例已被注释掉。
如果您以前使用示例 LDAP 用户系统信息库属性(在 default.properties 文件中指定)中的任何属性值,则当您升级到 Message Queue 3.7 UR1 时,如果 JMS 应用程序客户端尝试创建 JMS 连接,则会收到一个安全异常。
当 JMS 客户端尝试连接到 Message Queue 3.7 UR1 代理时,代理日志中会记录一个错误,且 JMS 客户端会收到以下异常:
SecurityException. 20/Aug/2004:11:16:41 PDT] ERROR [B4064]: Ldap repository ldap property .uidattr not defined for authentication type basic:com.sun.messaging.jmq.auth.LoginException: [B4064]: Ldap repository ldap property .uidattr not defined for authentication type basic
解决方法:请按照《Sun Java System Message Queue 3.7 UR1 Administration Guide》中的第 7 章 “Managing Security”中的说明来设置代理属性 imq.user_repository.ldap.uidattr。
以下各项内容与代理群集的使用相关。
本发行版中只支持完全连接的代理群集。因此群集中的每个代理都必须与群集中的其他所有代理直接通信。如果使用 imqbrokerd -cluster 命令行参数连接代理,请确保包含了群集中的所有代理。
如果客户端只与某个代理(属于群集的一部分)进行连接,则此客户端目前无法使用 QueueBrowser 来浏览位于该群集中远程代理上的队列。此客户端只能浏览位于直接连接的代理上的队列的内容,但仍可以向群集中任何代理上的任意队列发送消息或使用来自对方的消息。该限制只影响浏览。
如果代理群集中未使用主代理,则对于要添加到群集中的代理来说,其存储的持久性信息将不会传播到群集中的其他代理。
在代理群集中,代理会对要传送到尚未启动的远程连接的消息进行排队(错误号 4951010)。
解决方法:一旦启动远程连接,这些消息将会由使用方接收。如果该使用方的连接关闭,则这些消息将重新传送给另一个使用方。
以下是有关管理和配置 Message Queue 的问题。
在 Windows 计算机上,当 CLASSPATH 包含双引号时,imqadmin 和 imqobjmgr 实用程序将抛出错误(错误号 5060769)。
解决方法:您可以忽略此错误消息,代理只是正确地向使用方通知所出现的任何错误。此错误不影响系统的可靠性。
如果所提供的值中包含空格,则所有 Solaris 和 Windows 脚本中的 -javahome 选项都将不起作用(错误号 4683029)。
Message Queue 命令和实用程序通过 javahome 选项来指定要使用的备用 Java 2 兼容运行时环境。但是,备用 Java 运行时环境的路径名不能包含空格。例如:
Windows: C:/jdk 1.4
Solaris: /work/java 1.4
解决方法:请在不包含空格的位置或路径中安装 Java 运行时环境。
imqQueueBrowserMaxMessagesPerRetrieve 属性可用来指定客户端运行时环境在浏览队列目的地的内容时一次可以检索的最大消息数。由于客户端应用程序始终可以获取队列上的所有消息,因此,imqQueueBrowserMaxMessagesPerRetrieve 属性会影响如何划分已排队的消息(若干个小型消息块或几个大型的消息块),以便将这些消息传送到客户端运行时环境。此属性不会影响所浏览的全部消息。更改此属性的值可能会对性能产生影响,但不会导致客户端应用程序获取不同数量的数据(错误号 6387631)。
以下问题将影响 Message Queue 代理。
在 Windows 2000 中,HTTPS createQueueConnection 偶尔会抛出异常(错误号 4953348)。
解决方法:重试连接。
当使用 Ctrl-C 关闭代理时,事务可能会在存储库关闭后被清除(错误号 4934446)。
如果在处理消息或事务时关闭代理,代理可能会显示错误消息“存储库关闭后访问存储方法”。
解决方法:您可以忽略此错误消息,代理只是正确地向使用方通知所出现的任何错误。此错误不会影响系统的可靠性。
目的地销毁后,使用方会被孤立(错误号 5060787)。
目的地销毁后,活动的使用方将被孤立。使用方一旦孤立,他们将再也收不到消息(即使重新创建了目的地也是如此)。
解决方法:此问题没有解决方法。
无法使用 JMSMessageID 来选择消息(错误号 6196233)。
解决方法:更改选择器,将下面的表达式
JMSMessageID = "ID:message-id-string"
更改为
JMSMessageID IN (’ID:message-id-string’, ’message-id-string’)
Message Queue 3.7 UR1 不包含独立产品。对于此发行版,必须使用 Java Enterprise System 安装程序来安装 Message Queue。请参阅 Sun Java System 安装指南以获取说明信息。
Message Queue“菜单”->“索引”显示了错误的产品文档 URL 和自述文件位置(错误号 6515574)
描述:当用户通过 Windows“开始”菜单,选择 Message Queue 的文档项时,显示的内容是早期的文档。
解决方法:访问 http://docs.sun.com/app/docs/coll/1307.2 和 http://docs.sun.com/app/docs/coll/1391.2 Web 站点上的文档。
“添加/删除程序”控制面板列出了 Sun Java Enterprise System 而不是 Message Queue。
Config_MQ.txt 文件包含错误的信息。以下各项纠正了其中的一些错误:
Message Queue 中不提供“自动配置”和“手动配置”选项,并且不提供用于设置管理员密码的选项。
“自动配置”选项可以自动安装并启动 Message Queue 代理 Windows 服务。
“手动配置”选项允许您安装 Message Queue 代理,而无需将其作为一项 Windows 服务进行启动。
如果磁盘空间不足,则尝试在该磁盘上进行安装时会出现意义不明确的错误消息。例如,“错误:-1603 安装过程中出现致命错误。”
安装期间,没有将 mq/bin 添加到路径中(错误号 6515557)
描述:无法通过 Windows 命令提示找到 Message Queue 的可执行文件。例如,键入 imqcmd 将触发以下错误:无法将 'imqcmd' 识别为内部或外部命令、可操作的程序或批处理文件。
解决方法:将 install-MQ-directory/bin 加入 PATH 变量,或者在 install-MQ-directory/bin 目录下运行应用程序。
Message Queue 安装不支持自动安装共享的组件。
解决方法:使用 JDK 版本 1.6.0(SOAP 组件位于 1.6.0 中),或者在 Windows 上安装 Application Server,由 Application Server 安装 SOAP 共享的组件。