jacorb的通知服务消息乱序的问题

我们在程序中大量的使用了JACORB的通知服务,用它来进行消息通知。不过在使用过程中发现如果消息发送的太快,在消费者一端会出现消息乱序的问题。经过返回研究,终于发现其BUG,原来是jacorb的fifo队列使用错误,它没有使用默认的消息队列,而是使用了TIME队列,即系统使用快速排序对进入队列的消息都打上了一个时间戳,然后按照时间戳采用快速排序对消息进行排序,如果消息发送的太快,自然顺序就会乱。修改了程序后一切OK。

修改如下代码 

org.jacorb.notification.queue.EventQueueFactory.java

将这段代码修改为
      case FifoOrder.value:
            queue = new BoundedFifoEventQueue(maxEventsPerConsumer, _overflowStrategy);
            break;

 

http://blog.sina.com.cn/s/blog_5dd35a650100bv9t.html

你可能感兴趣的:(html,Blog)