ATG DMS是真正的JMS实现吗? [英] Is ATG DMS true JMS implementation

查看:167
本文介绍了ATG DMS是真正的JMS实现吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

看起来ATG的JMS实现是通过调度程序实现的,它通过SqlJmsProvider组件以特定间隔轮询数据库.我确实同意ATG的DMS确实提供了所有JMS功能,例如队列,主题,持久订阅者,重试等...,但是不是使用调度程序来轮询数据库以将ATG订单发送给Fulfillment吗? (激发的查询太多)

It looks like ATG's implementation of JMS is achieved through scheduler whereby it polls database in specific interval through SqlJmsProvider component. I do agree that ATG's DMS does provide with all JMS feature like Queue, Topic, Durable Subscribers, Retry etc... but isin't using a scheduler to poll the DB to send ATG Order to Fulfillment an overkill ? (too many queries fired)

推荐答案

来自

From the ATG Documentation it explains that there are two JMS providers available within ATG:

  • SQL JMS
  • 本地JMS

两者之间的区别是:

本地JMS是同步的,并且非常快.它在单个事务中运行,并绑定到单个进程,因此,在发送消息时,它在等待确认时会阻塞.另一方面,SQL JMS是异步的,可以在各个流程中使用(因此,可以在履行"中处理在Commerce上的订单提交). SQL JMS是非阻塞的,因此一旦将消息放入队列,请求过程就可以继续.这也意味着即使实现"失败了,Commerce也可以继续运行.这些消息在无状态时也将保留在SQL JMS中,并且在重新启动本地JMS时会丢失.

Local JMS is Synchronous and extremely fast. It runs within a single transaction and is bound to a single process, thus when sending a message, it blocks while waiting for an acknowledgement. SQL JMS on the otherhand, is Asynchronous and can be used across processes (thus an order submission on Commerce can be processed on Fulfillment). SQL JMS is non-blocking so once the message is put on the queue, the requesting process can continue. This also means that Commerce can continue running, even if Fulfillment is down. The messages are also persisted in SQL JMS while they are stateless and lost during a restart for Local JMS.

使用调度程序轮询队列是可以接受的解决方案,大多数较早的异步消息队列都实现了该解决方案.在 IBM MQ版本7 中,通过减少以下内容的数量来提高性能:使用

Using the scheduler to poll the queue is an acceptable solution and most of the older asynchronous message queues implemented this solution. In IBM MQ Version 7 performance has been improved by reducing the amount of polling while using IBM WAS Version 6 for example the solution is also based on regular polling of the queue.

所以不,按计划的时间间隔轮询数据库并不是一个大问题.

So no, polling the database on a scheduled interval is not an overkill.

这篇关于ATG DMS是真正的JMS实现吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆