为了提高性能,Message Queue 3.7 UR1 对持久性存储库格式进行了两处更改。一处是对文件存储库的更改,另一处是对 JDBC 存储库的更改。
文件存储库中保留的事务数据的格式
已经对事务状态信息(存储在 Message Queue 的基于文件的持久性存储库中)的格式进行了更改,以减少磁盘 I/O 和提高 JMS 事务性能。
Oracle JDBC 存储库
在 Message Queue 的以前版本中,适用于 Oracle 的存储库结构使用 LONG RAW 数据类型来存储消息数据。在 Oracle 8 中,Oracle 引入了 BLOB 数据类型,而不再使用 LONG RAW 类型。Message Queue 3.7 UR1 已转为使用 BLOB 数据类型,以提高性能和提供更多支持。
由于这些更改会影响存储库兼容性,因此已将 Message Queue 3.7 UR1 中文件存储库和 JDBC 存储库的版本从 350 更改为 370。
Message Queue 4.0 对 JDBC 存储库进行了一些更改,以便实现优化和支持未来的增强功能。因此,JDBC 存储库版本已提高到 400。请注意,在 4.0 版中,基于文件的持久性存储库版本仍保持为 370,因为未对此版本进行任何更改。
Message Queue 4.0 支持将持久性存储库自动转换为基于文件的持久性存储库和 JDBC 持久性存储库的最新版本。imqbrokerd 首次启动时,如果实用程序检测到早期版本的存储库,则会将存储库迁移到新格式,并留下早期的存储库。
基于文件的存储库版本 200 和 350 将迁移到 370 版本格式。
JDBC 存储库的 350 和 370 版本将被迁移到 400 版本格式。(如果需要升级 200 版本的存储库,需要先逐步升级到 3.5 或 3. 6 中间版本。)
如果需要回滚此升级,可以先卸载 Message Queue 4.0,然后重新安装以前运行的版本。由于未对存储库的早期副本进行任何更改,因此代理可以运行存储库的早期副本。