第 1 章 介绍
JBoss Transaction 服务生成了几个管理性任务。它依赖于底层操作系统和基础结果的正常运行。作为管理员,你要记住下面的几件事情:
- JBoss Transaction 服务没有提供安全层。存储在 JBoss Transactions 的 object store 里的对象通常为运行创建这些对象的应用程序的用户所拥有。Object Store 和 Object Manager 机制没有强制对所有权的检查,Transaction Manager 也不会强制或检查对象的所有者权限。
- 除非调用
StateManager.destroy
方法或用程序显性地进行删除,对象库里创建的持久性对象不会消失。这表示对象库会积累垃圾(特别是开发和测试阶段),这会导致悬挂引用的问题。这就是说,持久性对象 A,可能以消极方式储存另外一个持久性对象 B 的 UID。但即使 A 仍然保留 B 的一个引用,这并不能阻止程序删除 B。当 A 被激活并试图访问 B 时就会产生运行错误。 - JBoss Transaction 服务目前没有对类结构改变时对象或数据库重配置的版本控制的支持。目前,如果你修改了持久性对象的类的定义,你需要完全负责确保 Object Store 里的现存实例转换成新的结构。JBoss Transactions 既不能检测也不能改正通过新的操作版本对旧的对象状态的引用,反之亦然。
- 对于事务服务来说,Object store 的管理至关重要。