EJB的通讯有超时的说法吗?

heliang69 2010-06-19 11:36:40
当Client端调用一个EJB的时候,如果这个EJB长时间没有返回值。是否会出现类似于通讯超时的异常?如果没有这种异常的话,如何来处理这种情况?
例如:一个Client端调用EJB的时间太长了,依然没有返回结果。那么,我通过什么方式来通知Client超时了呢?
...全文
210 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wkk417301568 2010-06-22
  • 打赏
  • 举报
回复
学习了。
fxw780106978 2010-06-22
  • 打赏
  • 举报
回复
目前还没接触EJB,只得帮顶一下。
heliang69 2010-06-22
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 boyone2009 的回复:]

EJB其实使用了远程调用,因此就会有timeout超时的情况。
[/Quote]

首先,非常感谢你的回答。
如果有这种timeout的情况,那么中间件会怎么处理,client端是否会收到此类的异常信息。
因为,我在实际的测试中,在client端并没有接收到任何的异常信息。
无伤 2010-06-22
  • 打赏
  • 举报
回复
EJB其实使用了远程调用,因此就会有timeout超时的情况。
otzippo 2010-06-22
  • 打赏
  • 举报
回复
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>******</ejb-name>
<stateless-session-descriptor>
</stateless-session-descriptor>
<transaction-descriptor>
<trans-timeout-seconds>420</trans-timeout-seconds>
</transaction-descriptor>
<enable-call-by-reference>True</enable-call-by-reference>
<jndi-name>***********</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>


<trans-timeout-seconds>就是配置超时的标签,超时了就会抛exception
heliang69 2010-06-22
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 otzippo 的回复:]

<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>******</ejb-name>
<stateless-session-descriptor>
</stateless-session-descriptor>
<transaction-descriptor>
<trans-……
[/Quote]

你这个配置我试过了。他是报错了,但是只是在Weblogic端,在Client端却没有任何的异常信息
niujw002 2010-06-21
  • 打赏
  • 举报
回复
按我的理解,EJB里如果有死循环,就永远不能返回。如果由于事务被挂起,有超时返回异常。
heliang69 2010-06-21
  • 打赏
  • 举报
回复
顶起来。。。。。。。。希望大家指点
heliang69 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 niujw002 的回复:]

按我的理解,EJB里如果有死循环,就永远不能返回。如果由于事务被挂起,有超时返回异常。
[/Quote]

嗯,感谢你的回答。
当出现死循环的时候,在服务端也会报事务的超时异常。但是程序还是在继续执行。那么有没有什么办法,当这个异常出现时,也停止这个程序的运行呢。
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 injuer 的回复:]

通过自省机制通知client
[/Quote]我只知道javabean中的自省机制,例如
 <jsp:useBean id="mysend" class="JavaMail.SendHtmlMail"></jsp:useBean>
<jsp:setProperty property="*" name="mysend"/>

JavaBean:
String smtphost="SMTP.qq.com";//smtp服务器
String user="yuyanghudie@qq.com";//登录smtp服务器的账号
String password="liuguangqing0714"; //登录服务器的密码
String from="yuyanghudie@qq.com";// 发送人邮箱
String to="yuyanghudie@qq.com";//接受人邮箱
String title=" 这是测试邮件不要回复!!";//邮件标题
String content="这是测试邮件不要回复!!";//邮件内容

对应HTML中的字段:


SMTP服务器:<input type="text" id="SMTPHost" name="SMTPHost"><br>
登录帐号:<input type="text" id="user" name="user"><br>
登录密码:<input type="password" id="password" name="password"><br>& lt;br>
发件人邮箱:<input type="text" id="from" name="from">< br>
收件人邮箱:<input type="text" id="to" name="to"><br>
邮件标题:<input type="text" id="title" name="title"><br>
邮件内容 HTML代码:<textarea id="content" name="content" rows="5" cols="40">& lt;/textarea><br>
heliang69 2010-06-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ivorytower 的回复:]

引用 1 楼 injuer 的回复:

通过自省机制通知client
我只知道javabean中的自省机制,例如
HTML code
<jsp:useBean id="mysend" class="JavaMail.SendHtmlMail"></jsp:useBean>
<jsp:setProperty property="*" name="mysend"/>

JavaBean……
[/Quote]

你这段代码,我到是在网上见到过。但是,这段代码怎么用,以及是什么意思呢?
还有就是这段代码与EJB的超时这个问题,有什么联系呢?
希望你能指点一下,谢谢
heliang69 2010-06-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 theoffspring 的回复:]

有的,应该是先串行化一下,客户端再请求时,又会反串行化
[/Quote]

没有太明白你的意思,可以详细的说一下吗,或者你有这方面的资料吗?
theoffspring 2010-06-19
  • 打赏
  • 举报
回复
有的,应该是先串行化一下,客户端再请求时,又会反串行化
heliang69 2010-06-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhanlang9075 的回复:]
I'm Sorry,小弟目前还没接触EJB,只得帮顶一下。


引用 1 楼 injuer 的回复:
通过自省机制通知client
[/Quote]

谢谢,好友的支持
heliang69 2010-06-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 injuer 的回复:]
通过自省机制通知client
[/Quote]
这个可不可以详细说明一下?
zhanlang9075 2010-06-19
  • 打赏
  • 举报
回复


I'm Sorry,小弟目前还没接触EJB,只得帮顶一下。

[Quote=引用 1 楼 injuer 的回复:]
通过自省机制通知client
[/Quote]
injuer 2010-06-19
  • 打赏
  • 举报
回复
通过自省机制通知client

67,512

社区成员

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

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