事务的客户机支持
应用程序客户机可以在特定限制内支持使用事务。
在企业应用程序客户机容器中运行的应用程序客户机可以按有关使用组件管理的事务主题中的描述来显式划分事务界线。应用程序客户机无法直接在客户机容器内执行它们启动的任何全局事务上下文中的事务工作,因为客户机容器进程是不可恢复的。
应用程序客户机可以在客户机启动的事务上下文中发出对远程对象(如企业 Bean)的请求。将在远程且可恢复的服务器进程中执行的所有事务工作调整为客户机启动的事务的一部分。在客户机启动的事务被传播到的第一个服务器进程中创建事务协调程序。
然后,客户机可以开始事务,例如,在客户机进程中直接访问 JDBC 数据源。在这种情况中,通过 JDBC 提供程序执行的任何工作都不被协调为全局事务的一部分。那些工作而会在资源管理器局部事务中运行。客户机容器进程是不可恢复的,并且它不包含可以用于获得资源管理器的事务协调程序。
客户机可以开始事务,然后调用远程应用程序组件(如企业 Bean)。在这种情况中,客户机启动的事务上下文被隐式传播到事务协调程序创建于的远程应用程序服务器。在全局事务中可以看到在可恢复应用程序服务器(或主管客户机调用的应用程序组件的其他任何应用程序服务器)上访问的任何资源管理器。
客户机应用程序组件必须知道客户机启动的事务不会协调本地访问的资源管理器。 客户机应用程序通过部署选项来确认这种情况,此部署选项允许对客户机容器中 UserTransaction 接口的访问。缺省情况下,不允许访问客户机容器中的 UserTransaction 接口。要启用应用程序客户机组件的 UserTransaction 定界,那么在客户机部署描述符中设置“允许 JTA 定界”扩展属性。有关编辑客户机部署描述符的信息,请参阅 Rational Application Developer 信息。