我有一个设计问题,希望得到建议。
我正在使用Weblogic 11g,EJB3.0
我有一个系统,它的目标是检索和发送消息到几个资源(数据库)。
每条消息都包含信息和目标数据库密钥。
所以这是一个流程示例:
我从网络服务获得了一条消息和关键目标。我解析消息并通过密钥目标将其发送到正确的数据库。
消息有可能包含多个目标数据库。(例如,键'all'表示我应该调度到所有数据库。
如果其中一个资源中的插入失败,则会发生回滚,我将重新尝试重新执行整个操作。
所以现在这是我的问题:
我应该将队列数作为我的资源数吗? (并将每个队列专用于特定资源)
(在这种情况下,我解析每条消息并将其发送到正确的队列,而MDB将监听并插入到正确的数据库中)
如果我这样做,我就无法做到动态,这意味着每次在未来中需要添加/删除新资源时我会需要打开代码并进行正确的更改。
你认为什么?我怎么能更好地动态实现呢?
感谢您的帮助 射线。
答案 0 :(得分:0)
我认为为每个目标资源(数据库)使用队列很好。只要从配置文件驱动这些端点,您就不需要更改代码来添加和删除这些端点。您的调度程序应具有一个配置,列出每个“目标数据库密钥”的目标队列。读取监视端点队列的进程/组件同样需要配置,例如db connect string或其他。
现在,添加一个新的资源类型,这需要您修改代码。但这是可以预料的。