-
使用jboss的时候出现一个问题,没有太明确的分析思路,求解5
大家好!
我的环境是这样的:
我现在碰到的问题是,在客户端程序对部属在jboss中的ejb进行jndi查找和方法调用的时候,都非常的慢;一般情况下,执行
//initialContext是初始上下文; initialContext.lookup("ejb/TestService");
上面的语句,一般是花费60000多毫秒的时间;(我测试过比较正常的lookup是500左右毫秒,当然了这也跟实际的网络环境有关系);
接下来的代码是这样的
ejbHome = (EJBHome)PortableRemoteObject.narrow(nsObject, EJBHome.class); System.out.println("narrow OK"); Method method = ejbHome.getClass().getMethod("create", null); //调用create方法 EJBObject obj = (EJBObject)method.invoke(ejbHome, null); System.out.println("invoke ok");
在这个调用create方法的时候,就会抛出异常,如下:
java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.boco.topouc.connector.impls.Test.main(Test.java:54) Caused by: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is: java.net.SocketTimeoutException: Read timed out at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:286) at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110) at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown Source) at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProxy.java:135) at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:96) at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46) at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:53) at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:173) at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85) at $Proxy0.create(Unknown Source) ... 5 more Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read(BufferedInputStream.java:237) at java.io.DataInputStream.readByte(DataInputStream.java:248) at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:228) ... 15 more
上面异常中,关键的异常是:
Caused by: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is: java.net.SocketTimeoutException: Read timed out
记录了一下这个超时异常发生的时间,大概也是60000多毫秒左右;
在这些客户端的方法执行的时候,jboss服务端没有报出任何错误日志;
我做过的努力:
上网google搜索,按照类似的异常查找,能找到不少,但是基本都是提问,没有什么答案;
我下载jboss 3.2.5的源码中naming包的源代码,进行代码跟踪,就只找到发生阻塞的大概地方(我只对jndi的lookup进行调试查找了,
没有对create方法进行调试过,但是我相信两个都是因为相同的原因而出现问题,只是一个jndi没有超时设定,所以没有抛出异常,而create
方法有超时设定,造成了异常的抛出);
此外我把实际业务的ejb对象暂时卸载了,只是加载了一个测试的ejb对象,非常的简单;
我的分析:
我认为可能是本身jboss中一些服务或者其部署的环境(操作系统,或者是环境变量)对jboss服务产生了影响,但是我不知道是哪出了错;
而且 相同的jboss服务在很多地方,(solaris,hp-unix)都好使,运行正常;呵呵,非常奇怪!
还有一个地方,有时候服务上会报这个异常:
2011-02-22 14:55:42,852 70787 INFO [STDOUT] (JNP Server:) Exception in thread "JNP Server"
2011-02-22 14:55:42,852 70787 INFO [STDOUT] (JNP Server:) java.lang.OutOfMemoryError: unable to create new native thread 2011-02-22 14:55:42,853 70788 INFO [STDOUT] (JNP Server:) at java.lang.Thread.start0(Native Method) 2011-02-22 14:55:42,853 70788 INFO [STDOUT] (JNP Server:) at java.lang.Thread.start(Thread.java:574) 2011-02-22 14:55:42,853 70788 INFO [STDOUT] (JNP Server:) at org.jnp.server.Main.listen(Main.java:320) 2011-02-22 14:55:42,853 70788 INFO [STDOUT] (JNP Server:) at org.jnp.server.Main.run(Main.java:288) 2011-02-22 14:55:42,853 70788 INFO [STDOUT] (JNP Server:) at java.lang.Thread.run(Thread.java:595)
创建不了线程???? 通过jboss的控制台和我自己写的代码测试了一下,只有50多个thread!!!!
网上有说,在hp-unix上,一个进程数创建的线程数跟线程的栈空间有关系,问题还在细查(主要是对hp-unix中查看线程状况的还不太懂),我跑过一个测试程序
一直创建thread,可以创建至少2000多个;碰到这个问题,我现在只能重启服务;(不知道这个跟前面的问题是否有关联)
请高手帮着看看,指点迷津;
2011年2月22日 15:06
目前还没有答案
相关推荐
毕业设计论文
(自适应手机版)响应式化工工业企业模板_网站整站打包下载.zip
金蝶EAS凭证引入 “webservice接口”说明
毕业设计论文
安装插件重启即可,可以使用所有功能,不会提示收费弹窗
包含 10 个不同奧运会项目的 1000 张标记图像数据集 数据说明: 该数据集包含 10 个不同奧运会项目的 1000 张标记图像:田径、羽毛球、篮球、足球、手球、橄榄球、游泳、网球、水球和举重。 所有图像的分辨率相同,为 1000x562像素,来自YouTube上的奧林匹克频道,这些帧的速率为25fps。数据集经过注释平衡和均匀分布,每个类别有 100 张图像,整个数据集共有 1000 张图像。 由于视频数据的可用性,这个数据集中的图像是从 YouTube视频中收集和随机捕获的,这些视频是真实的奥运会,包括从 1996年亚特兰大奥运会到最近在里约热内卢举行的 2016 年奥运会的不同赛事。 数据集收集代表了游戏中各种场景和视角的自然动作池,并描绘了多种观看条件下的奥林匹克赛事,这些条件包括运动员的位置、相机视角和尺度的变化。
嵌入式_优质嵌入式项目之基于STM32的多功能数控电源设计_附原理图+PCB+程序_优秀毕业设计
LucidVision Labs, Inc.介绍LUCID最新的短波红外和紫外相机以及先进传感技术。 Teledyne Dalsa讨论Sherlock8视觉生态平台如何使3D和AI解决方案更加活跃和强大。 皆爱科技探讨多光谱成像-棱镜技术在新质生产力多元应用中的助力。 中国大恒集团有限公司北京图像视觉技术分公司介绍非可见光成像技术与应用。 Teledyne Dalsa展示高效能接触式宽幅CIS相机及新品TDI线扫相机如何助力行业应用转型升级。 翌视科技宁波有限公司探索工业精度新纪元线激光产品在现代工业领域的多元化应用。 北京阿丘科技有限公司工业视觉进入AI-Native大时代。 Basler基于应用介绍Basler机器视觉解决方案。 深圳赛视智能科技有限公司探讨如何利用AI解决AI视觉项目的痛点。 Teledyne e2v讨论如何选择适合应用的高性能2D与3D机器视觉解决方案。 麦威德昆山视觉技术探索机器视觉
TMS FNC Chart v2.6.1.7.7z
初识C语言 C语言概述 认识C语言.pdf
毕业设计论文
一、章节目录 Scratch 语言概述 Scratch 界面介绍 编程基础概念 角色与舞台控制 运动与外观模块 声音模块 事件与控制模块 变量与列表模块 学习 Scratch 语言的方法 总结与资源简介 二、各章节知识点总结 Scratch 语言概述 Scratch 是一种可视化编程语言,由麻省理工学院媒体实验室开发。它主要面向青少年和初学者,旨在通过图形化编程方式培养编程思维和创造力。 Scratch 语言的特点包括:简单易学、可视化编程、丰富的素材库、支持多种项目类型、社区分享等。 Scratch 可以用于创作动画、游戏、故事等各种互动项目,帮助用户在轻松愉快的氛围中学习编程。 Scratch 界面介绍 舞台区:展示项目的运行结果,用户可以在此看到角色的动作和交互。 角色列表区:显示项目中的所有角色,可以对角色进行添加、删除、编辑等操作。 脚本区:用于编写角色的程序脚本,通过拖拽积木块的方式进行编程。 积木区:包含各种不同功能的积木块,如运动、外观、声音、事件等。 菜单栏:提供文件操作、编辑、视图等功能选项。 3. 编程基础概念 顺序结构:程序按照从上到下的顺序依次执行积木块。 循
(自适应手机版)html5蓝色装修工程建设类企业网站响应式整站模板_网站整站打包下载.zip
编号:310 本校园新闻发布系统根据当前各类高校的实际需要,采用php开源最流行的web开发语言而制作的。Php是服务器端脚本编写环境,使用它可以组合 HTML 页、脚本命令和mysql数据库以创建交互的 Web 页和基于 Web 的功能强大的应用程序。本文主要介绍校园新闻发布系统的基本框架及各功能的技术解决方案。 学生校园新闻发布系统的主要功能要求如下: 1、分级别管理校园新闻发布系统前台、后台 2、 用户列表管理,按条件查询用户 3、 用户个人注册信息管理及留言、评论信息 4、 用户信息评论功能 5、用户留言管理功能 6、 后台校园新闻发布系统基本信息管理功能 7、 校园新闻类别设置功能 9、 管理员管理功能
1、资源内容地址:https://blog.csdn.net/2301_79696294/article/details/142994379 2、代码特点:今年全新,手工精心整理,放心引用,数据来自权威,相对于其他人的控制变量数据准确很多,适合写论文做实证用 ,不会出现数据造假问题 3、适用对象:大学生,本科生,研究生小白可用,容易上手!!! 3、课程引用: 经济学,地理学,城市规划与城市研究,公共政策与管理,社会学,商业与管理
扩散模型_基于Pytorch实现的去噪扩散概率模型_附项目源码_优质项目实战
毕业设计论文
(自适应手机版)html5响应式卡片式设计动态加载模板_网站整站打包下载.zip
毕业设计论文