线程标识功能允许您在初次获取连接时,将线程标识指定为连接的所有者。此功能只适用于那些支持通过线程身份确定连接所有权的
Java™ Platform, Enterprise Edition (Java EE) 连接器体系结构 (JCA) 资源适配器和 Relational Resource Adapter (RRA) 包装的 Java 数据库连接 (JDBC) 提供程序。
关于此任务
在本文中,术语线程标识是指 Java EE 标识(如 RunAs 标识),与操作系统线程标识相对。有关更多信息,请参阅“同步
Java 线程标识和操作系统线程标识”和“了解已启用的连接管理器 RunAs 标识与操作系统安全性”主题。
执行以下步骤为连接工厂,或用支持的 JCA 资源适配器和 JDBC 提供程序创建的 JDBC 提供程序数据源启用线程标识功能:
过程
- 为应用程序资源定义 resauth=Container。有关详细信息,请参阅“连接线程标识”主题。
- 确保 JCA 资源适配器或 JDBC 提供程序支持线程标识功能。
查看受支持的资源适配器、数据源提供程序以及下列支持级别:REQUIRED、ALLOWED 和 NOTALLOWED。有关支持线程标识和线程安全性的 JCA 资源适配器进程和 JDBC 提供程序进程的表,请参阅“连接线程标识”主题。
如果适配器或提供程序未列出,那么缺省情况下线程标识支持是 NOTALLOWED。
- 如果您本地地配置连接器,设置容器管理的认证别名为 NULL。
当本地地配置连接器时,资源适配器确定线程标识支持的级别为 ALLOWED。如果允许线程标识支持,并且您指定容器管理的认证别名为 NULL,连接器使用当前线程标识作为创建的每个连接的所有者。
当资源适配器或 JDBC 提供程序确定线程标识支持的级别为 REQUIRED 时,忽略容器管理的认证别名的任何规范。在这种情况下,总是应用线程标识支持。
- 请确定当Java 2 安全性是一个因素时的连接器行为。有关更多信息,请参阅“线程标识支持的安全性状态”一文。
如果希望与连接相关联的线程标识是该线程标识,那么必须启用Java 2 安全性。在 JDBC 提供程序支持线程标识功能并且需要将线程推送到执行的
z/OS® 线程的情况下,您必须将服务器已启用的连接管理器 RunAs 标识属性设置为 true。
注意:使用 Bean 管理的持久性 (BMP) Bean,如果您在预调用或调用后方法处理期间在 ejbLoad() 或 ejbStore() 函数下获取一个连接,那么您的线程标识支持不会成为 RunAs 标识,这是因为此处理期间容器在服务器标识下运行的。有关更多信息,请参阅“委派”主题。使用 BMP Bean 而不是使用线程标识,指定容器管理的别名来将用户和连接相关联。