更新:我们正在使用 AIX 环境。
我们的队列(集群队列)一直面临一些随机问题,例如:
- 2189 集群解析错误(最常见的一种)
- 第2270章
- 2053 Queue full error(Weirdest) : 发布一条消息,它会成功发布,发布一些 3-4 条消息,它会为其余的消息抛出此错误。
一旦我们进行集群刷新,所有这些问题都会得到解决。但是,我想知道根本原因,为什么我们会得到这些错误。出了什么问题?
集群刷新如何解决这些错误?
可能是套接字问题。您可以根据您的操作系统监控套接字 - 就像在 Windows 上一样
netstat -a -b -o >/newfile.txt
您还可以在 Windows 上使用 TCP 查看器(来自 Microsoft/sysinternals 的一个 exe)http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx实际上,如果 Windows,所有 sys 内部工具都应该在您的产品框中。
对于 linux/Un* 中的套接字,还有其他工具,有些只是 ls 命令进入 RAM,具体取决于版本。也许谷歌会有所帮助。
此外,如果使用 windows 考虑将一些东西移到 linux 上,你会在开始时有些痛苦,但会变得更好。
如果这没有帮助,您应该在您的问题上发布您的环境并提供任何其他详细信息。如果您将 jprofiler 投入生产并在问题发生时使用它。
至少你可以做一个 jstack 和 jmap
操作系统和 java、websphere 的版本/名称是什么?
如果是套接字问题,可以尝试增加套接字(注册表),然后分析您的代码以查看谁创建了太多套接字,需要限制或重写什么。
请记住每个页面、每个数据库连接、外部缓存命中(如果您使用)或任何其他 URL 工作/远程连接通常是一个套接字。