快速业务通道

Weblogic session persistence的性能的问题 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
ava:626) at weblogic.servlet.internal.ServletRequestImpl.getValidSession(ServletRequestImpl.java:2639) at weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.java:2251) - locked <0x29b68f58> (a java.lang.Object) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3752) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) "ExecuteThread: ''9'' for queue: ''weblogic.kernel.Default''" daemon prio=5 tid=0x032d85e0 nid=0x10c0 waiting for monitor entry [0x039ef000..0x039efd68] at weblogic.servlet.internal.session.FileSessionContext.loadSession(FileSessionContext.java:482) - waiting to lock <0x159a82a8> (a java.lang.Object) at weblogic.servlet.internal.session.FileSessionContext.getSessionInternal(FileSessionContext.java:626) at weblogic.servlet.internal.ServletRequestImpl.getValidSession(ServletRequestImpl.java:2639) at weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.java:2251) - locked <0x13d804f0> (a java.lang.Object) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3752) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) "ExecuteThread: ''8'' for queue: ''weblogic.kernel.Default''" daemon prio=5 tid=0x032d79b8 nid=0x12cc runnable [0x039af000..0x039afd68] at java.io.FileOutputStream.write(Native Method) at java.io.DataOutputStream.write(DataOutputStream.java:66) - locked <0x10b2bf28> (a java.io.DataOutputStream) at java.io.FilterOutputStream.write(FilterOutputStream.java:60) ...... at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278) at weblogic.servlet.internal.session.FileSessionContext.sync(FileSessionContext.java:368) - locked <0x159a82a8> (a java.lang.Object) - locked <0x1f9cab60> (a weblogic.servlet.internal.session.FileSessionData)

看了Thread dump, 发现居然很多线程在等同一lock,如上面的0x159a82a8,而这个lock的holder居然是FileSessionContext.java。看了一下代码,感觉这代码太太那啥了,

FileSessionContext.sync(HttpSession sess)

1         saveTo = getSessionPath(id); 2         synchronized (dirTreeLock) { 3           makeStorageDir(id); 4           os = new DataOutputStream(new FileOutputStream(saveTo)); 5           WLObjectOutputStream oos = new WLObjectOutputStream(os); 6           oos.setReplacer(RemoteObjectReplacer.getReplacer()); 7           oos.writeObject(data); 8           oos.flush(); 9    

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号