IBM 数据库持久性模型
IBM DB Persistence Model
我正在尝试了解 IBM MQ 的持久性模型。我意识到消息存储在基于文件的系统中,但是有什么方法可以将文件存储在数据库中。我看到过文章指出消息可以存储在 DB2 数据库中,但我想知道我是否可以存储在其他数据库中,例如 Oracle DB 或 SQLite 或 No-SQL分贝。
您可能误解了这篇文章。 (link 会很好。)MQ 的早期版本当时与 IBM 的数据库紧密交织在一起,并且许多产品在名称、数据结构的大小和一些功能限制方面保留了该传统的痕迹。
然而,现代 MQ 对数据库的主要使用是在支持共享队列的耦合设施中,而这仅是 z/OS。然而,这是例外情况,对于绝大多数 MQ 版本和平台,您无法 select 队列持久性机制。
请记住,IBM 的 MQ 从未打算成为排队的前端数据库客户端。 MQ 的发明是为了解决同步通信的问题,在同步通信中,单个组件的中断会导致整个系统出现故障。 MQ 的目的是让应用程序可以将网络视为 100% 可靠(这与 1980 年代的情况相去甚远)。为了实现这一点,MQ 将所有关键操作保留在安装它的主机本地,并最大限度地减少对最可靠事物的外部依赖:POSIX IPC 和本地安装的文件系统。
一些较新的消息传输,尤其是 JMS 提供程序,让您可以选择 select 持久性存储,甚至允许它是远程的。有些只不过是数据库客户端上的 JMS API。尽管这些方法中的每一种都有有效的用例,但 IBM MQ 仍将重点放在终极速度和企业级可靠性上。
WAS Messaging Engine、MQTT、MQ Light、Sterling 等其他 IBM 产品的存在是为了填补其他一些需求空间。至于 MQ,除了在 z/OS 平台上,您没有其他选择持久性存储的选项,您的选项主要与耦合设施相关。
我正在尝试了解 IBM MQ 的持久性模型。我意识到消息存储在基于文件的系统中,但是有什么方法可以将文件存储在数据库中。我看到过文章指出消息可以存储在 DB2 数据库中,但我想知道我是否可以存储在其他数据库中,例如 Oracle DB 或 SQLite 或 No-SQL分贝。
您可能误解了这篇文章。 (link 会很好。)MQ 的早期版本当时与 IBM 的数据库紧密交织在一起,并且许多产品在名称、数据结构的大小和一些功能限制方面保留了该传统的痕迹。
然而,现代 MQ 对数据库的主要使用是在支持共享队列的耦合设施中,而这仅是 z/OS。然而,这是例外情况,对于绝大多数 MQ 版本和平台,您无法 select 队列持久性机制。
请记住,IBM 的 MQ 从未打算成为排队的前端数据库客户端。 MQ 的发明是为了解决同步通信的问题,在同步通信中,单个组件的中断会导致整个系统出现故障。 MQ 的目的是让应用程序可以将网络视为 100% 可靠(这与 1980 年代的情况相去甚远)。为了实现这一点,MQ 将所有关键操作保留在安装它的主机本地,并最大限度地减少对最可靠事物的外部依赖:POSIX IPC 和本地安装的文件系统。
一些较新的消息传输,尤其是 JMS 提供程序,让您可以选择 select 持久性存储,甚至允许它是远程的。有些只不过是数据库客户端上的 JMS API。尽管这些方法中的每一种都有有效的用例,但 IBM MQ 仍将重点放在终极速度和企业级可靠性上。
WAS Messaging Engine、MQTT、MQ Light、Sterling 等其他 IBM 产品的存在是为了填补其他一些需求空间。至于 MQ,除了在 z/OS 平台上,您没有其他选择持久性存储的选项,您的选项主要与耦合设施相关。