β

技术问题分析05(4.19)

Harries Blog™ 23 阅读

首先记录下最近做的修改的情况

1. 由于OSB服务运行后台日志有报错,插入Log日志的 数据 的时候出现超长而无法正常插入,我们开始的解决思路是把 Oracle 的系统表的Error_Reason和Error_Detail两个字段的长度调整到了4000,但是仍然报错。后面的解决思路是直接将Oracle的服务日志先禁用掉。

2. 回顾下问题出现的顺序情况,最初整个环境是正常的,但是收到反馈有 JMS 分省分发的WS服务接口响应缓慢和超时。而当时收到这个信息后我们没有马上去校验是否所有Server节点都有问题,因为当时出现的情况是不分省分发的服务正常,只有分省分发的服务缓慢。

因此初步思路是检查分省分发逻辑,发现分省分发的场景需要动态建立JMS连接,而通过De bug 发现这块的响应相对缓慢导致服务调用超时。因此对这部分逻辑在OSB控制台上的部署模板上直接修改。

在这个修改完成后,发现管控台服务进行服务部署,在进行服务部署的时候出现500错误。

接着就是去查找500错误的原因,这个原因实际上查找起来也相对困难,在网上也搜索了很多方法进行验证,但是最终并没有解决掉该问题。

3. 在后台日志中发现了30秒超时的问题,而我们实际的服务部署超时是3分钟,考虑到将Weblogic Http Post等几个超时 时间 设置增加到60秒到120秒。在进行了该修改后,某天上午部署正常,但是再修改到30秒后部署报错。奇怪的是修改回60秒也部署报错。

而在出现500错误,伴随出现了Session占有或Session会话激活需要重启Server的异常错误。而接着有出现了JMS分发服务出现调用超时的错误。即:

4. 对于Cluster环境,再调用JMS分发服务进行JMS消息分发的时候,出现由两个JMS节点分发出现异常,一个JMS节点正常。当时出现的场景是当OSB Server和JMS Server在一台 服务器 上面的时候正常,而不在一台服务器上面的时候出现异常。而JMS消息分发本身封装为了服务,并不是服务本身封装慢,而是在建立初始化JMS上下文和建立JMS会话的时候缓慢,同时还导致了JMS分发服务超时。该问题暂时也无法解决,只有停掉了两个节点。

在停掉了两个JMS节点后,JMS分发服务正常,其它WS服务也正常。但是对于服务部署仍然是存在500错误和Session占有错误。同时发现一旦Session占有就无法再进行部署,往往需要对整个Server重启才能够进行部署。

5. 对于Session占有,尝试了在部署的时候对于管控台不登录,对于部署管控平台也只一台机登录,但是该情况往往仍然存在。同时发生Session占有的情况都是在部署出现500错误或超时服务后。

检查 代码 ,对于通过JMX进行 自动化 部署的代码,在出现异常后,我们进行了DiscardSession操作,但是在DiscardSession这个操作本身又出现异常,导致了Session根本没有释放掉,同时在Session没有在超时自动过期的情况下我们又去调用部署,所以导致Session占用。

而这个时候,问题衍生为两个子问题需要进一步分析和处理,即:

5.1 如何在部署出现异常的时候能够成功释放Session,当前Session无法释放是否是Session本身已经超时,所有无法正常释放掉,还是说出现了类似Lock的场景。

5.2 在出现部署异常的时候,是否可以到SB Console控制台对Session进行手工释放。

6. 对于 SOA P的报文,如果XSD文件结构中对于某个element的设置是nil=true,那么这个时候在生成的 测试 脚本的时候胡自动带上nil=true这个信息,而这个时候到了Oracle SOA Gateway进行处理的时候会发生将null值转变为chr(0)隐藏字符进行处理的情况。

FND_ API .G_MISS_CHAR中对这个值进行了定义,即如下:

G_MISS_CHAR CONSTANT VARCHAR2(1):= chr(0),那么按道理在这里将其修改为空串应该可以解决问题。或者找到SOA网关是在哪里 解析 XML 数据的地方进行相应修改。

如果对于XSD文件中,本身nil=false进行设置,则不会带了这个问题。因此是否对WSDL契约结构文件进行修改也可以作为考虑解决问题的方式之一。

原文

http ://blog.sina.com.cn/s/blog_493a84550102xcku.html

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。 PS:推荐一个微信公众号,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处: Harries Blog™ » 技术问题分析05(4.19)

作者:Harries Blog™
追心中的海,逐世界的梦
原文地址:技术问题分析05(4.19), 感谢原作者分享。

发表评论