发布在weblogic里的程序随时间越长就越慢

gameming 2007-05-18 09:37:06
大家好,我最近碰到一个非常麻烦的问题,我在weblogic8.1里部置了我的系统,然后运行了一段时间就变慢了.我用了weblogic的连接池.具体情况如下:
1 在weblogic里查看内存使用情况,内存并没有多大的变化,在垃圾回收的时候可以回收内存.
2 在weblogic里查看连接池的连接数也很正常.没有过多的连接占用.
3 在weblogic里还发布了几个系统,其它的系统都很正常,就是我的系统特别慢.(这个很奇怪)
4 在我发布的系统中看会话连接数也很正常.
5 在url里打开我的系统的一些背景图片,发现也是一样的很慢.
我的系统比较特别,是长期打开网页的,并不会关闭浏览器.现在只有4个IE在长期打开着我的网页.程序是用hibernate+spring写的,大家可以分析一下到底是什么原因吗?最近烦死我了.大家帮帮忙吧.
...全文
2233 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
接分先!
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
接分是王道!
YuLimin 2007-07-20
  • 打赏
  • 举报
回复
做一下ThreadDump
检查一下内存情况
检查应用是否有存在内存泄漏的问题。。。
liujun999999 2007-06-17
  • 打赏
  • 举报
回复
关注本帖
gameming 2007-06-17
  • 打赏
  • 举报
回复
我现在加了一个静态网页在我的系统里,发觉打开的时候都是很慢.
gameming 2007-06-17
  • 打赏
  • 举报
回复
这是日志
第一个错误
Servlet failed with Exception
java.lang.NullPointerException
at weblogic.servlet.internal.FilterWrapper.checkForReload()V(Optimized Method)
at weblogic.servlet.internal.FilterWrapper.getFilter(Z)Ljavax.servlet.Filter;(Optimized Method)
at weblogic.servlet.internal.WebAppServletContext.getFilterChain(Lweblogic.servlet.internal.ServletStubImpl;Ljavax.servlet.ServletRequest;Lweblogic.servlet.internal.ServletResponseImpl;)Lweblogic.servlet.internal.FilterChainImpl;(Optimized Method)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run()Ljava.lang.Object;(Optimized Method)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic.security.subject.AbstractSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(Optimized Method)
at weblogic.security.service.SecurityManager.runAs(Lweblogic.security.acl.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.AuthenticatedSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(Optimized Method)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(Lweblogic.servlet.internal.ServletRequestImpl;Lweblogic.servlet.internal.ServletResponseImpl;)V(Optimized Method)
at weblogic.servlet.internal.ServletRequestImpl.execute(Lweblogic.kernel.ExecuteThread;)V(Optimized Method)
at weblogic.kernel.ExecuteThread.execute(Lweblogic.kernel.ExecuteRequest;)V(Optimized Method)
at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:178)
at java.lang.Thread.startThreadFromVM(Ljava.lang.Thread;)V(Unknown Source)
>
第二个错误
<ExecuteThread: '1' for queue: 'weblogic.admin.HTTP'> <mmpuser> <> <BEA-140001> <An error occurred while getting attribute TotalNurserySize on MBean etdcsdomain:Location=etdcsserver,Name=etdcsserver,ServerRuntime=etdcsserver,Type=JRockitRuntime. Method: public long weblogic.t3.srvr.JRockitRuntime.getTotalNurserySize(). Exception: com.bea.jvm.NotAvailableException: The current garbage collector has no nursery..
com.bea.jvm.NotAvailableException: The current garbage collector has no nursery.
at jrockit.management.jvm.GarbageCollectorImpl.getNurserySize()J(Unknown Source)
at weblogic.t3.srvr.JRockitRuntime.getTotalNurserySize()J(JRockitRuntime.java:112)
at jrockit.reflect.NativeMethodInvoker.invoke0(Ljava.lang.Object;ILjava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at jrockit.reflect.NativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Optimized Method)
at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Optimized Method)
at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Optimized Method)
at weblogic.management.internal.DynamicMBeanImpl.getAttribute(Ljava.lang.String;)Ljava.lang.Object;(DynamicMBeanImpl.java:574)
at com.sun.management.jmx.MBeanServerImpl.getAttribute(Ljava.lang.Object;Ljava.lang.String;)Ljava.lang.Object;(MBeanServerImpl.java:1183)
at com.sun.management.jmx.MBeanServerImpl.getAttribute(Ljavax.management.ObjectName;Ljava.lang.String;)Ljava.lang.Object;(MBeanServerImpl.java:1153)
at weblogic.management.internal.RemoteMBeanServerImpl.getAttribute(Ljavax.management.ObjectName;Ljava.lang.String;)Ljava.lang.Object;(RemoteMBeanServerImpl.java:287)
at weblogic.management.internal.MBeanProxy.getAttribute(Ljava.lang.String;)Ljava.lang.Object;(MBeanProxy.java:610)
at weblogic.management.internal.MBeanProxy.invokeForCachingStub(Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.Object;(Optimized Method)
at weblogic.management.runtime.JRockitRuntimeMBean_Stub.getTotalNurserySize()J(JRockitRuntimeMBean_Stub.java:1065)
at jrockit.reflect.NativeMethodInvoker.invoke0(Ljava.lang.Object;ILjava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at jrockit.reflect.NativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Optimized Method)
at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Optimized Method)
at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Optimized Method)
at weblogic.management.console.info.ReflectingAttribute.doGet(Ljava.lang.Object;)Ljava.lang.Object;(ReflectingAttribute.java:110)
at weblogic.management.console.tags.form.ControlTag.getValue()Ljava.lang.Object;(ControlTag.java:340)
at weblogic.management.console.tags.form.TextControlTag.doStartTag()I(TextControlTag.java:31)
at weblogic.management.console.tags.form.ReflectingControlTag.doStartTag()I(ReflectingControlTag.java:75)
at weblogic.management.console.webapp._domain.__jrockitmonitoringtab._jspService(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(__jrockitmonitoringtab.java:472)
at weblogic.servlet.jsp.JspBase.service(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run()Ljava.lang.Object;(Optimized Method)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.FilterChainImpl;)V(Optimized Method)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(ServletStubImpl.java:315)
at weblogic.servlet.internal.RequestDispatcherImpl.include(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Z)V(RequestDispatcherImpl.java:622)
at weblogic.servlet.internal.RequestDispatcherImpl.include(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(RequestDispatcherImpl.java:412)
at weblogic.management.console.tags.IncludeTag.doDispatcherInclude()V(IncludeTag.java:121)
at weblogic.management.console.tags.IncludeTag.doStartTag()I(IncludeTag.java:83)
at weblogic.management.console.webapp._domain.__servermonitoringtab._jspService(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(__servermonitoringtab.java:1278)
at weblogic.servlet.jsp.JspBase.service(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(JspBase.java:33)
>
gameming 2007-06-17
  • 打赏
  • 举报
回复
谢谢z3h(zhaohonghui)
1.session的问题,每一次返回到主页的时候,我都会调用session.invalidate()的方法,清除了session(现在的确session存储的东西比较多).
2.数据库连接池已经被关闭.
你的第四个问题,如果真是发生了,会只影响我的系统吗,系统链接池太小,我想应该会影响其它系统吧,其它的系统都好正常.
谢谢fayeyiwang(GC)总共发布了7个系统在上面,weblogic的压力可能比较大,但是为什么就响影我的系统呢!!!
谢谢ashen926(ashen) 在上面其它几个系统已经运行了很久,就是到我这个发布上去就有问题.weblogic配置的问题可能性很少.
谢谢futureexport() 我现在的weblogic线程数是100个,在系统慢的时候我去看,还有80个左右的空闲线程,没有发现堵塞的情况.你说的请求队列满了,应该也会影响别的系统吧.
gameming 2007-06-17
  • 打赏
  • 举报
回复
最新发现,日志现在只剩下一个错误了
java.io.IOException: A complete message could not be read on socket: 'weblogic.servlet.internal.MuxableSocketHTTP@31c0910 - idle timeout: '30000' ms, socket timeout: '30000' ms', in the configured timeout period of '60' secs
at weblogic.socket.SocketMuxer$TimeoutTrigger.trigger(Lweblogic.time.common.Schedulable;)V(Optimized Method)
at weblogic.time.common.internal.ScheduledTrigger.run()Ljava.lang.Object;(Optimized Method)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic.security.subject.AbstractSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(Optimized Method)
at weblogic.security.service.SecurityManager.runAs(Lweblogic.security.acl.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.AuthenticatedSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(Optimized Method)
at weblogic.time.common.internal.ScheduledTrigger.executeLocally()V(Optimized Method)
at weblogic.time.common.internal.ScheduledTrigger.execute(Lweblogic.kernel.ExecuteThread;)V(ScheduledTrigger.java:223)
at weblogic.time.server.ScheduledTrigger.execute(Lweblogic.kernel.ExecuteThread;)V(ScheduledTrigger.java:50)
at weblogic.kernel.ExecuteThread.execute(Lweblogic.kernel.ExecuteRequest;)V(Optimized Method)
at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:178)
at java.lang.Thread.startThreadFromVM(Ljava.lang.Thread;)V(Unknown Source)
这是什么错呢??
futureexport 2007-06-09
  • 打赏
  • 举报
回复
这个z3h(zhaohonghui说的比较仔细,对于打开网页慢,如果内存正常,可以从线程数和请求队列中寻找一下问题.看是否空闲线程有堵塞情况.如果正常.再看一下请求队列是否空闲.weblogic默认是只用一个请求队列.如果满了就需要等待释放才能响应请求
ashen926 2007-06-06
  • 打赏
  • 举报
回复
z3h(zhaohonghui)
已经说的很详细了,基本也就这些,可以注意写程序的规范性,程序的健壮性,以及对weblogic的配置问题,对于你的weblogic环境并不一定安装时候的默认值就是符合你的需求的,可以自己根据实际情况做写调整.
9441 2007-05-30
  • 打赏
  • 举报
回复
检查程序,有内存泄露
fayeyiwang 2007-05-29
  • 打赏
  • 举报
回复
在weblogic里还发布了几个系统?这可能就是原因,每次启动服务的话,所有发布的系统它都会去创建连接,导致速度慢
z3h 2007-05-20
  • 打赏
  • 举报
回复
可能如下
1、长期打开页面,应该用到了Session对象,你可能向Session中加入了大量得到数据。
2、存在数据库链接泄露,看看数据库服务器,数据链接有没有被关闭。
3、可以采用单独部署你的应用,看系统的内存变换情况。
4、系统链接池太小,并发后,链接不够用,需要等待(可能性较大)。
gameming 2007-05-18
  • 打赏
  • 举报
回复
刚才忘了说一点了,只需要重新部署我的系统就会变回正常了,并不需要重新启动整个weblogic这个服务.

1,220

社区成员

发帖
与我相关
我的任务
社区描述
企业软件 中间件技术
社区管理员
  • 中间件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧