27

技术问题分析(9.17)

 5 years ago
source link: http://blog.sina.com.cn/s/blog_493a84550102xtu1.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

今天检查环境运行日志,发现一个异常信息,具体如下:

发送消息到主题出错,Error producing message for destination, 即在通过程序朝JMS消息主题里面发送消息的时候出现错误,这个提示看起来也是相当明确,即在朝JMS消息主题里面写入消息的时候出现故障,但是界面上提升的异常只有这么多信息。

于是还是去查找JMS Sever本身的Log日志,发现从JMS Server本身的Log日志来看,并没有看到任何明显的异常信息。而该JMS消息写入是通过调用OSB封装后的WS服务来完成的,经过排查服务日志,发现该消息是在某一个时间段偶尔出现了几次,而其它大部分调用仍然是正确的。

进一步排查服务器本身的Log日志,发现了出现过线程池满的警告信息,但是该警告信息原来也出现过,即提升信息为MaxThread is reached,而实际上这个服务本身的调用量并不大,具体什么原因导致触发到最大线程数暂时也很难查清楚。一个可能的原因是我们本身集群有42个节点,即对于JMS Server存在42个活动连接,如果每个连接都跑了多个线程,则容易达到最大线程数限制。但是看了下JMS Server上的设置,这个最大线程数设置为1000,应该是很难达到这值。

对于JMS服务的调用,进一步排查发现该时间段的错误全部产生在某一台OSB Sever节点上,于是去获取该节点的OSB Log日志进一步分析,在该Log日志上基本才找到具体详细的错误提升信息,具体为:

[2018-09-16T20:21:16.541+08:00][NOTIFICATION] [] [oracle.osb.debug.transports] [tid: [ACTIVE].ExecuteThread: '37' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: ] [ecid: bbb0fea9-5133-4ab9-8705-d86fb369a4e3-00002369,0] [APP: Service Bus Kernel] [partition-name: DOMAIN] [tenant-name: GLOBAL] [FlowId: 0000MNYKz1V9h^k5wzK6yW1RaoZ500005s] LoadBalanceFailoverHelper.sendMessageToServiceAsync[[

从这里来关键信息为 LoadBalanceFailoverHelper.sendMessageToServiceAsync但是根据这个关键信息进一步搜索,仍然没有找到合适的解释。

Caused by: weblogic.jms.common.JMSException: Error producing message for destination

at weblogic.utils.StackTraceDisabled.unknownMethod()

Caused by: weblogic.messaging.dispatcher.DispatcherException: could not find Server null

Caused by: javax.naming.NameNotFoundException: Unable to resolve 'weblogic.messaging.dispatcher.S:null'

Resolved 'weblogic.messaging.dispatcher'; remaining name 'S:null'

基于以上关键字信息进一步搜索,在Oracle Support网站查到一个关键信息如下:

https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=206929002947743&parent=EXTERNAL_SEARCH&sourceId=PROBLEM&id=2394315.1&_afrWindowMode=0&_adf.ctrl-state=16pmqvu8ww_193

从该文章说明是Oracle的一个补丁程序,而且适用版本是Oracle Service Bus - Version 12.2.1.3.0 and later。由于该服务调用异常是偶尔出现,出现的频率相对低,因此暂时不确定是否真是该Bug的影响,具体还要进一步咨询Oracle顾问。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK