转载

技术问题分析04(4.18)

关于OSB Session会话被占用的问题,实际上涉及到两个异常:

1. osb server require restart before session can be activated

对1个异常常见的场景是我们在OSB中激活会话,但是在Admin Server上做了某些参数修改,当时没有重启。那么我们在OSB中激活的会话要Apply生效就会报这个错。提示你需要进行重启操作。在Oracle Support网站给出了该问题可以复现的详细步骤如下:

1. Browse to OSBCOnsole /sbconsole and Create a new Session

2. Create a "TEST_PS" Proxy Service under "Default" project and a "TEST_BS" Business Service.

3. Activate Session in OSBConsole.

4. Access to WLS Admin Console and save a change which needs a server restart to take effect, for instance, modify the ListenAddress. DO NOT RESTART THE WLS SERVER.

5. Browse now to the FMW Conttrol /em.

6. Under SOA > service-bus(AdminServer) > Default > Operations Tab, you should see the previous TEST_PS and TEST_BS services.

7. For one of them, check the Monitoring checkbox to activate that feature and click APPLY.

8. The change is not applied, and if you check the logs, the error reported by the customer appears:

对于第二个问题从字面意思容易理解,即当一个OSB Project项目在激活Session的时候发现Session已经占用。如果两个人同时在操作一个Project项目会出现类似的情况。同时如果我们通过JMX接口进行OSB接口服务部署,但是又在OSB Console上面进行了Session激活也会出现类似的场景。

在JMX的远程部署代码里面可以看到,存在一种场景就是创建的Session进行服务部署,但是在激活Session的时候出现了失败或异常。而这个时候我们进行DiscardSession的操作,而这个时候很有可能DiscardSession仍然失败,那么这个时候Session就会存留在Server上面,直到Session超时。那么在Session没有超时的时候你再进行服务部署,那么就会存现Session被占用的提示。

对于部署报500错误,即:

[Deployer:149150]An IOException occurred while reading the input. : with response code '500' : with response message 'Internal Server Error'

一直没有找到确切的原因,对于Oracle Support网站提到的权限不足的原因以及进行尝试没有解决问题。同时怀疑是Cluster集群间状态同步出现问题,对其它集群节点全部进行暂停处理,但是仍然会存在这个问题。对于部署本身的500错误,同时导致Session无法正常关闭,即这个时候如果我们再去部署就很容易导致Session被占用的情况。特别是针对同一个Project项目去部署。

而实际我们看到通过JMX进行服务部署的时候,异常也是发生在activateSession这个方法操作上面,即Session无法激活,要么是500错误,要么是Session被占用。同时在发送500错误的时候Session又没有办法释放掉。

oracle Support网站最近接近的一篇文章

https://support.oracle.com/epmos/faces/DocumentDisplay?id=1500916.1&displayIndex=5

解决方法为:

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错误的问题。对于500究竟有哪些原因会引起该错误,仍然没有找到明确的根源点。

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