使用JMS在集群应用程序中分配任务(图)(二)

2014-11-23 22:58:54 · 作者: · 浏览: 1
同的场景编写单独的方法,但是为了简明起见,我选择了编写一个可以处理大多数情况的方法:
  
  static void execute(CommandMessage cm, long delay, b oo lean runEverywhere, b oo lean persisted, b oo lean
  enableXA, int priority)
  
  这个静态方法带有几个用于精确执行控制的参数。让我们逐个讨论这些参数:
  
  CommandMessage cm : 一个命令消息实例。
  
  long delay : 代表发送属性的时间,借助 weblogic.jms.extensions.WLMessageProducer 类进行设置。这样,就可以在夜间或者其他方便的时间执行命令。接受一个 Date 对象也是可以的。
  
  b oo lean runEverywhere : 决定是否发送要执行的消息给集群中的一台随机选中的访问器或者所有的服务器。
  
  b oo lean persisted : 将通过使用队列发送程序的 setDeliveryMode 方法选择发送模式。应该始终保持业务关键型的消息,从而在访问器崩溃的时候,这些消息不会丢失。然而,持久性始终是以性能损失为代价的,这也应该纳入考虑的范围内。
  
  b oo lean enableXA : 将选择方法是否使用支持 XA 的 JMS 连接工厂。此参数设置为 true 时,排队将参与底层事务(如果存在的话),在提交事务之前不会对消息进行排队。
  
  int priority : 决定消息的 JMS 优先级。在发送之前,将使用给定的值调用 javax.jms.Message 类的 setJMSPriority 方法。有效的范围是 0-