加载中…
个人资料
人月聊IT
人月聊IT 新浪个人认证
  • 博客等级:
  • 博客积分:0
  • 博客访问:4,979,591
  • 关注人气:6,012
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

技术问题分析03(4.16)

(2018-04-16 20:57:33)
标签:

soa

osb

分类: IT咨询
对于OSB服务部署的时候遇到的ORA-01461,插入字段超长的问题,暂时通过取消Oracle OSB log日志记录解决掉,但是处理掉该问题后,在进行服务部署的时候仍然会不稳定,偶尔出现500错误,具体如下:

[AdminServer] [ERROR] [OSB-390101] [oracle.osb.configfwk] [tid: [ACTIVE].ExecuteThread: '91' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: weblogic] [ecid: af950416-f921-4eae-a502-57d025471fa4-00000164,0]
[APP: Service Bus Kernel] [partition-name: DOMAIN] [tenant-name: GLOBAL] Activation of session import1523844201336 failed: java.rmi.RemoteException: [Deployer:149150]An IOException occurred while reading the input. : with response code '500' : with response message 'Internal Server Error
java.rmi.RemoteException: [Deployer:149150]An IOException occurred while reading the input. : with response code '500' : with response message 'Internal Server Error'
weblogic.deploy.service.internal.transport.http.HTTPMessageSender.sendMessageToServerURL(HTTPMessageSender.

这个问题今天找了下Oracle Support网站,有类似一个SR问题,找的解决问题方法如下:

Cause:
In this case, the issue is due to the ownership and permissions that were granted to the user running the SOA suite.The user which started OSB does not have the appropriate privileges over the files in the filesystem.It's quite common that people have started OSB with the user "root". So OSB creates the files with  "root" as the owner. If the next time the user starts OSB with a different user, you might not be able to write the files.


Solution:
Please: Verify if the user that is starting now the OSB server has been granted with the corresponding Read-Write_Execute (rwx) permissions in the Linux file system
To fix the appropriate ownership, you can execute the command chown.

Example:
chown -R soa:oinstall /u01/oracle

After that: Restart the managed servers and the Admin Server.Then, the deploy in OSB console will be successful.

但是采用该方法后问题依然没有解决掉,还是存在部署的时候偶尔出现500错误。实际上我们怀疑是否是Weblogic Cluster集群招到了破坏导致。但是没有确切的方法进一步进行排查。即使我们队集群中个别节点进行停用,仍然没有彻底找到问题的原因在哪里。

在ORA-01461的问题解决后,对于OSB的Log日志已经基本正常,现在不正常的是Admin Server的Log日志记录,而错误也就是发送在进行OSB Console部署的时候。

根据具体的错误日志,我们也可以看到是在程序部署下去后,在Active Session激活会话的时候发生了错误。由于对OSB本身部署后激活会话的机制不太了解,因此对于关键的sendMessageToServerURL,这个步骤,究竟是做了哪些处理很难真正了解到。

简单来说也就是对于ServerURL地址不可访问,我们发送到该地址的消息会返回HTTP 500错误。因此我们又进一步查了下在什么场景下会返回Http 500错误,但是这个500错误涉及到的因素太多了,要想从这个500错误代码进行精确定位更加困难。

个人感觉要真正解决问题还是要搞清楚OSB进行动态服务部署并激活会话的时候究竟需要做哪些操作,这些操作中上面谈到的这个方法究竟起什么作用,是去访问什么ServerURL地址。这个搞清楚了再进行定位相对来说才会更加容易。

看SIT_Domain的Log日志,我们发现一点新的异常信息,即在部署的时候Socket time out,具体如下:


 for request id "63,326,830,031,657" from server "AdminServer". Exception is: "java.net.SocketTimeoutException: Read time out after 30000 millis

即服务在部署的时候超过30秒后发送了超时。


在Oracle的Support网站搜索到一篇文章说是Oracle的Bug。
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=dzzcoqnks_9&_afrLoop=198079255742398#SYMPTOM

具体描述如下:

Java  updated from jrockit-jdk1.6.0_26 to jrockit-jdk1.6.0_105 on WebLogic
Server 10.3.5.0.Any active changes on admin console getting below exceptions.
 
####
<[ACTIVE]
ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'>
<> <22119326784eae7f:63c035d1:151493f7757:-8000-000000000000005c>
<1448633421792>
java.rmi.RemoteException: [Deployer:149150]An IOException occurred while
reading input. : with response code '500' : with response message 'Internal
Server Error'at
weblogic.deploy.service.internal.transport.http.HTTPMessageSender.sendMessageT
oS erverURL(HTTPMessageSender.at
weblogic.deploy.service.internal.transport.http.HTTPMessageSender.sendMessageT
oTargetServer(HTTPMessageSender.

这个异常实际和我们记录的异常相对类似。
https://support.oracle.com/epmos/faces/BugDisplay?_afrLoop=198230751005085&parent=DOCUMENT&sourceId=2251209.1&id=22484759&_afrWindowMode=0&_adf.ctrl-state=dzzcoqnks_285

具体能否解决还需要进一步验证,按道理最新的12C版本应该已经修复了这些bug。但是这个bug本身的更新时间是2018年2月份。

既然部署是在30秒后超时,那么是否可以调整OSB部署的超时时间设置?实际在部署的时候我们调整了超时时间设置到180秒,但是看来有些地方的超时设置仍然维持在默认的30秒状态。同时还需要还要注意检查下jdbc连接池的情况,是否存在管控jdbc连接没有及时释放的问题?这种超时还有可能是获取jdbc连接导致的超时。

查看Admin Server中的Weblogic超时配置,具体如下:

技术问题分析03(4.16)

因此先将超时配置修改为Http Post和Session会话保持时间都修改到60秒再进行进一步的观察。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有