所有TIBCO EMS 5的情况下*和.NET API
我一直沿着消息处理的现有模式,即在一个循环的工作:
- 连接创建/打开
- 创建会话/开放
- 创建消息消费者
- 接收方法被调用
如果消息!= null,则我们的消费它并提交或回滚事务(在底层会话)。 系统拉进该模型每隔x秒。
我创建了一个连接工厂确保了只有新会话创建(如果以前的会话仍在使用)。 这样一来系统的工作原理相同的连接上。
不过,我碰到的问题与预取每个接收呼叫(通过.NET接口)返回一个消息,并把几个(预取-1)到本地队列。 所以,我真的应该重复使用相同的会话下一次为了读那些已经退出的消息。 我已经把在包装,只要有那么点(接收不会返回null)重用会话和消息消费者。 这种做法样的作品,但似乎我可能会得到接收空,尽管仍有一些地方获取。 它也似乎只要我在同一个连接获取信息的传递将被标记(即使会议明确关闭)。
会有人有任何想法,如何可以打开的连接/会话与预取= 1? 或者有更好的解决办法?
提前致谢,