当前位置: 技术问答>java相关
问一个message Bean的问题,up有分
来源: 互联网 发布时间:2015-08-18
本文导语: 在message bean中调用session bean的方法时,如果方法失败,此时事务会回滚, 但是message会不断发向message bean,占用资源,如何避免此种情况发生? | WebLogic d对应用错误的处理办法是:将这个消息移送到JMS...
在message bean中调用session bean的方法时,如果方法失败,此时事务会回滚,
但是message会不断发向message bean,占用资源,如何避免此种情况发生?
但是message会不断发向message bean,占用资源,如何避免此种情况发生?
|
WebLogic
d对应用错误的处理办法是:将这个消息移送到JMS错误队列,然后有你的专门的系统意外处理模块处理---要使用一个专门处理各种出错的JMS队列,来避免出错消息的反复传递
d对应用错误的处理办法是:将这个消息移送到JMS错误队列,然后有你的专门的系统意外处理模块处理---要使用一个专门处理各种出错的JMS队列,来避免出错消息的反复传递
|
实际上就是个策略问题,
对于应用错误:例如消息里面对应的数据库字段不合法,这类问题可以捕获session bean定义的特定异常,抛出,但仍然正常提交,只不过什么都没干,但这种应用错误经常需要及时向消息生产者回溃出错信息,message bean对此无能为力.(抛出应用错误不会导致事务强制回滚)
对于系统错误:应该回滚,并将坏消息发送到出错队列,这时message bean充当消息生产者.系统应该统一注册一个出错队列,来处理各种出错信息,不光是针对message bean;对队列离得信息处理方式根据实际情况,可以给系统管理员发mail,手机短信息等,因为系统错误如数据库中断/应用服务器异常...都很严重.
对于应用错误:例如消息里面对应的数据库字段不合法,这类问题可以捕获session bean定义的特定异常,抛出,但仍然正常提交,只不过什么都没干,但这种应用错误经常需要及时向消息生产者回溃出错信息,message bean对此无能为力.(抛出应用错误不会导致事务强制回滚)
对于系统错误:应该回滚,并将坏消息发送到出错队列,这时message bean充当消息生产者.系统应该统一注册一个出错队列,来处理各种出错信息,不光是针对message bean;对队列离得信息处理方式根据实际情况,可以给系统管理员发mail,手机短信息等,因为系统错误如数据库中断/应用服务器异常...都很严重.
|
另外mastering EJB2.0L里面也提出了几种方法:
1,采用bean管理事务而不是container管理,这样事务的acknowledge和roll back就不会自动成为整个事务的一部分.
2.对重发设限制,超过设定的阀值就被认定为poison message,抛弃.
3,内建坏消息队列专门处理未预料的异常.
这几种方法能力所限,没用过,也不知道怎么设定.
message-drive bean is a single,weakly type method.
1,采用bean管理事务而不是container管理,这样事务的acknowledge和roll back就不会自动成为整个事务的一部分.
2.对重发设限制,超过设定的阀值就被认定为poison message,抛弃.
3,内建坏消息队列专门处理未预料的异常.
这几种方法能力所限,没用过,也不知道怎么设定.
message-drive bean is a single,weakly type method.
|
up
|
学习中.........UP.
|
关注!!
|
up!
|
没涉及到这些.
|
up