WebLogic
d对应用错误的处理办法是:将这个消息移送到JMS错误队列,然后有你的专门的系统意外处理模块处理---要使用一个专门处理各种出错的JMS队列,来避免出错消息的反复传递

解决方案 »

  1.   

    to heifei可以讲的详细一些么?
      

  2.   

    实际上就是个策略问题,
    对于应用错误:例如消息里面对应的数据库字段不合法,这类问题可以捕获session bean定义的特定异常,抛出,但仍然正常提交,只不过什么都没干,但这种应用错误经常需要及时向消息生产者回溃出错信息,message bean对此无能为力.(抛出应用错误不会导致事务强制回滚)
    对于系统错误:应该回滚,并将坏消息发送到出错队列,这时message bean充当消息生产者.系统应该统一注册一个出错队列,来处理各种出错信息,不光是针对message bean;对队列离得信息处理方式根据实际情况,可以给系统管理员发mail,手机短信息等,因为系统错误如数据库中断/应用服务器异常...都很严重.
      

  3.   

    另外mastering EJB2.0L里面也提出了几种方法:
    1,采用bean管理事务而不是container管理,这样事务的acknowledge和roll back就不会自动成为整个事务的一部分.
    2.对重发设限制,超过设定的阀值就被认定为poison message,抛弃.
    3,内建坏消息队列专门处理未预料的异常.这几种方法能力所限,没用过,也不知道怎么设定.
    message-drive bean is a single,weakly type method.