转载

技术问题分析03(4.16)

[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


在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连接导致的超时。

原文  http://blog.sina.com.cn/s/blog_493a84550102xcet.html
正文到此结束
Loading...