WEB开发网
开发学院软件开发Java 故障诊断学习工具:在实践中学习 WebSphere 应用服... 阅读

故障诊断学习工具:在实践中学习 WebSphere 应用服务器故障诊断

 2010-07-19 00:00:00 来源:WEB开发网   
核心提示: 图 5. 代码编辑器查看原图(大图)这段代码主要完成如下操作:获取一个全局锁 locker1(Sleep(5000))获取一个全局锁 locker2释放全局锁 locker2释放全局锁 locker1获取一个全局锁 locker2(Sleep(5000))获取一个全局锁 locker1释放全局锁

图 5. 代码编辑器
故障诊断学习工具:在实践中学习 WebSphere 应用服务器故障诊断

查看原图(大图)

这段代码主要完成如下操作:

获取一个全局锁 locker1

(Sleep(5000))

获取一个全局锁 locker2

释放全局锁 locker2

释放全局锁 locker1

获取一个全局锁 locker2

(Sleep(5000))

获取一个全局锁 locker1

释放全局锁 locker1

释放全局锁 locker2

这段代码在单线程运行时可以很顺利的执行,但在多线程并发条件下却很容易发生死锁:当两个不同的线程分别执行到第 2 步和第 6 步之前时 , 其中的一个线程已经占用了 locker1, 它需要等待 locker2, 而另一个线程则刚好相反。 因此如果我们模拟多用户并发执行这段代码,就能够重现死锁问题。

模拟多用户并发

PDLT 内置了压力引擎,可以方便的模拟多用户并发调用的场景,如下图所示,展开动作面板下方的 Advanced Settings"面板,可以设置模拟客户端的个数,发送请求总数以及请求之间的间隔时间。这里我们将用户数设置为 2。返回动作面板并单击"DeadLock Jsp" 按钮,压力引擎会同时发送 2 个请求来调用"DeadLock Jsp" 按钮所对应 jsp,从而运行上面我们所编辑的代码。

图 6. 设置压力引擎
故障诊断学习工具:在实践中学习 WebSphere 应用服务器故障诊断

上一页  1 2 3 4 5 6  下一页

Tags:故障 诊断 学习

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接