reactor线程阻塞引起故障
2016-07-28 16:47
387 查看
大致线程模型:
jstack打印JVM堆栈,可以看到reactor线程阻塞了,导致它对应的前端连接无法使用。阻塞在了oracle驱动rollback动作,这里其实是因为oracle驱动为了保证串行请求响应而在底层加了锁,而这个通道被慢语句塞住了,所以reactor线程都塞了。
解决方案,异步化
jstack打印JVM堆栈,可以看到reactor线程阻塞了,导致它对应的前端连接无法使用。阻塞在了oracle驱动rollback动作,这里其实是因为oracle驱动为了保证串行请求响应而在底层加了锁,而这个通道被慢语句塞住了,所以reactor线程都塞了。
"$_NIOREACTOR-7-RW" prio=10 tid=0x00007f069856f000 nid=0xde1 waiting for monitor entry [0x00007f0677011000] java.lang.Thread.State: BLOCKED (on object monitor) at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1167) - waiting to lock <0x000000068086fbc0> (a oracle.jdbc.driver.T4CConnection) "$_NIOREACTOR-4-RW" prio=10 tid=0x00007f069851e000 nid=0xddd waiting for monitor entry [0x00007f0677415000] java.lang.Thread.State: BLOCKED (on object monitor) at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1167) - waiting to lock <0x000000068083cf80> (a oracle.jdbc.driver.T4CConnection) "$_NIOREACTOR-0-RW" prio=10 tid=0x00007f06984b2000 nid=0xdd9 waiting for monitor entry [0x00007f0677819000] java.lang.Thread.State: BLOCKED (on object monitor) at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1167) - waiting to lock <0x000000068081c5f0> (a oracle.jdbc.driver.T4CConnection)
解决方案,异步化
相关文章推荐
- reactor线程阻塞引起故障
- ReactiveCocoa比较区分replay, replayLast和replayLazily
- react native 布局篇
- 一看就懂的ReactJs入门教程(精华版)
- react组件生命周期
- React Native之Modal实现自定义Dialog
- [React Native] Build a Separator UI component
- [React Native] Create a component using ScrollView
- [React Native] Reusable components with required propType
- [React Native] Using the Image component and reusable styles
- 使用reflux进行react组件之间的通信
- react-redux的connect()方法 学习笔记
- React—native+Android环境搭建和开发配置(Mac)
- Netty源码解读(四)Netty与Reactor模式
- ReactNative中iOS和Android的style分开设置教程
- ReactNative中iOS和Android的style分开设置教程
- React学习笔记
- boost asio学习笔记1--Reactor与Proactor模式
- 最新版CocoaPods的使用与安装-以导入ReactiveCocoa框架为例
- react native第三方组件问题