JMX调用报错,原因不明,请高手提供思路(在线等,谢谢!)

DryKillLogic 2015-01-12 08:48:41
生产环境上有许多mbean的方法会通过jmx来定时调用;
但是从最近发现jmx启动一段时间后,就不能正常调用mbean的方法了;
通过jconsole可以连接jmx server,但是注册的mbean都看不到了
jmx server的端口可以通过telnet连上,但是adaptor的通过telnet连不上;
重新启动后则一切恢复正常(jconsole连接jmx后可以看到mbean,telnet连接端口也正常),但是过一段时间就又产生上述现象;
通过查看日志,发现报错之后的就不能调用mbean了,部分报错信息如下(由于日志非常多,截取了两段我觉得比较有意义的异常信息,请大家帮忙分析):

Exception during http request
javax.management.MBeanException: null nested exception is java.net.SocketException: Broken pipe
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java(Compiled Code))
at java.net.SocketOutputStream.write(SocketOutputStream.java(Compiled Code))
at java.io.BufferedOutputStream.write(BufferedOutputStream.java(Compiled Code))
at java.io.ByteArrayOutputStream.writeTo(ByteArrayOutputStream.java:130)
at mx4j.tools.adaptor.http.XSLTProcessor.writeResponse(XSLTProcessor.java:150)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
at mx4j.server.ReflectionMBeanInvoker.invokeImpl(ReflectionMBeanInvoker.java:156)
at mx4j.server.ReflectionMBeanInvoker.doInvoke(ReflectionMBeanInvoker.java:117)
at mx4j.server.ReflectionMBeanInvoker.invoke(ReflectionMBeanInvoker.java:52)
at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:238)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:120)
at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:84)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:120)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:120)
at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:203)
at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1043)
at mx4j.tools.adaptor.http.HttpAdaptor.postProcess(HttpAdaptor.java:752)
at mx4j.tools.adaptor.http.HttpAdaptor$HttpClient.run(HttpAdaptor.java:981)


Exception loading file mx4j/tools/adaptor/http/xsl/JeBZ5ApK.sqlite
java.io.IOException: Stream closed
at java.io.BufferedInputStream.ensureOpen(BufferedInputStream.java(Inlined Compiled Code))
at java.io.BufferedInputStream.read(BufferedInputStream.java(Inlined Compiled Code))
at mx4j.tools.adaptor.http.XSLTProcessor.notFoundElement(XSLTProcessor.java(Compiled Code))
at sun.reflect.GeneratedMethodAccessor1446.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
at mx4j.server.ReflectionMBeanInvoker.invokeImpl(ReflectionMBeanInvoker.java(Compiled Code))
at mx4j.server.ReflectionMBeanInvoker.doInvoke(ReflectionMBeanInvoker.java(Compiled Code))
at mx4j.server.ReflectionMBeanInvoker.invoke(ReflectionMBeanInvoker.java(Compiled Code))
at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java(Compiled Code))
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java(Inlined Compiled Code))
at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java(Compiled Code))
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java(Compiled Code))
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java(Inlined Compiled Code))
at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java(Compiled Code))
at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java(Compiled Code))
at mx4j.tools.adaptor.http.HttpAdaptor.findUnknownElement(HttpAdaptor.java:786)
at mx4j.tools.adaptor.http.HttpAdaptor$HttpClient.run(HttpAdaptor.java:976)
Exception during http request
javax.management.MBeanException: null nested exception is mx4j.tools.adaptor.http.HttpException: file mx4j/tools/adaptor/http/xsl/JeBZ5ApK.sqlite not found
mx4j.tools.adaptor.http.HttpException: file mx4j/tools/adaptor/http/xsl/JeBZ5ApK.sqlite not found
at mx4j.tools.adaptor.http.XSLTProcessor.notFoundElement(XSLTProcessor.java(Compiled Code))
at sun.reflect.GeneratedMethodAccessor1446.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
at mx4j.server.ReflectionMBeanInvoker.invokeImpl(ReflectionMBeanInvoker.java(Compiled Code))
at mx4j.server.ReflectionMBeanInvoker.doInvoke(ReflectionMBeanInvoker.java(Compiled Code))
at mx4j.server.ReflectionMBeanInvoker.invoke(ReflectionMBeanInvoker.java(Compiled Code))
at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java(Compiled Code))
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java(Inlined Compiled Code))
at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java(Compiled Code))
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java(Compiled Code))
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java(Inlined Compiled Code))
at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java(Compiled Code))
at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java(Compiled Code))
at mx4j.tools.adaptor.http.HttpAdaptor.findUnknownElement(HttpAdaptor.java:786)
at mx4j.tools.adaptor.http.HttpAdaptor$HttpClient.run(HttpAdaptor.java:976)
XSL template for path 'avatar.xsl' not found
Transformer for path /relation not found


PS:
JDK使用的是IBM的1.4版本,部署在red hat4上。

之前也在网上搜索了很多解决方案,其中与我这个问题比较相似的是:
http://stackoverflow.com/questions/9527795/why-a-java-net-socketexception-broken-pipe-will-occur
因为生产环境上确实也有类似的端口扫描程序在跑,但是我写了个demo,下了个端口扫描程序一直扫也没能复现不出来这个exception。

请各位帮忙吧,在线等待各位提供的思路。谢谢!
...全文
286 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
DryKillLogic 2015-01-13
  • 打赏
  • 举报
回复
自己顶下吧up

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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