16.3. 配置 jca 子系统
				jca 子系统控制 Jakarta Connectors 容器和资源适配器部署的常规设置。您可以使用管理控制台或管理 CLI 配置 jca 子系统。
			
				要配置的主要 jca 子系统元素有:
			
- 从管理控制台配置 jca子系统设置
- jca子系统可以从管理控制台进入 Configuration- Subsystems - JCA 并点击 View。然后,选择适当的标签页: - 配置 - 包含缓存的连接管理器的设置、存档验证和 bean 验证。它们各自包含在各自的选项卡中。打开适当的选项卡并单击 编辑 链接,修改这些设置。
- Bootstrap 上下文 - 包含配置的 bootstrap 上下文列表。可以添加、删除和配置新的 bootstrap 上下文对象。必须为每个 bootstrap 上下文分配一个工作管理器。
- Work Manager - 包含已配置的工作管理器的列表。可以在此处添加、移除新工作管理器及其线程池。每个工作管理器都有一个运行较短的线程池,以及可选的长时间运行线程池。 - 单击所选工作管理器上的线程池属性,可以配置 线程池 属性。 
 
- 从管理 CLI 配置 jca子系统设置
- 
							jca子系统可以从管理 CLI 从/subsystem=jca地址进行配置。在受管域中,您必须在命令前加上/profile=PROFILE_NAME。
					以下部分中表中的属性名称列在管理模型中时,例如使用管理 CLI 时。请参阅位于 EAP_HOME/docs/schema/wildfly-jca_5_0.xsd 的架构定义文件,以查看 XML 中出现的元素,因为管理模型可能会有所不同。
				
归档验证
这决定了是否将对部署单元执行存档验证。下表描述了您可以为归档验证设置的属性:
| 属性 | 默认值 | 描述 | 
|---|---|---|
| enabled | true | 指定是否启用归档验证。 | 
| fail-on-error | true | 指定归档验证错误报告是否失败。 | 
| fail-on-warn | false | 指定存档验证警告报告是否失败。 | 
如果存档没有正确实施 Jakarta Connectors 规格并启用了存档验证,则在描述问题的部署期间将显示错误消息。例如:
				如果未指定存档验证,则被视为存在存档,并且 已启用 的属性默认为 true。
			
Bean 验证
此设置确定是否执行了 bean 验证。有关规范的信息,请参阅 Jakarta Bean Validation 规范。下表介绍了您可以为 bean 验证设置的属性:
| 属性 | 默认值 | 描述 | 
|---|---|---|
| enabled | true | 指定是否启用了 bean 验证。 | 
				如果未指定 bean 验证,它将被视为存在,并且 已启用 的属性默认为 true。
			
工作管理器
有两种工作管理器:
- 默认工作管理器
- 默认工作管理器及其线程池。
- 自定义工作管理器
- 自定义工作管理器定义及其线程池。
下表描述了您可以为工作管理器设置的属性:
| 属性 | 描述 | 
|---|---|
| name | 指定工作管理器的名称。 | 
| elytron-enabled | 
								此属性为  | 
工作管理器还包含以下子元素:
| 子元素 | 描述 | 
|---|---|
| short-running-threads | 标准工作实例的线程池.每个工作管理器都有一个运行较短的线程池。 | 
| long-running-threads | 
								Jakarta Connectors 1.7 线程池,用于设置  | 
下表描述了您可以为工作管理器线程池设置的属性。
| 属性 | 描述 | 
|---|---|
| allow-core-timeout | 
								确定核心线程是否可以超时的布尔设置。默认值为  | 
| core-threads | 内核线程池大小。这必须等于或小于最大线程池大小。 | 
| handoff-executor | 在任务无法接受的情况下,将任务委派给 的执行者。如果未指定,则无法接受的任务将被静默丢弃。 | 
| keepalive-time | 指定池线程在工作后应保留的时间。 | 
| max-threads | 最大线程池大小。 | 
| name | 指定线程池的名称。 | 
| queue-length | 最大队列长度。 | 
| thread-factory | 指线程工厂. | 
分布式工作管理器
分布式工作管理器是一个工作管理器实例,可以在另一个工作管理器实例上重新排期工作。
				以下示例管理 CLI 命令配置分布式工作管理器:请注意,您必须使用提供高可用性功能的配置,如 standalone-ha.xml 或 standalone-full-ha.xml 配置文件(用于单机服务器)。
			
示例:配置分布式工作管理器
batch /subsystem=jca/distributed-workmanager=myDistWorkMgr:add(name=myDistWorkMgr) /subsystem=jca/distributed-workmanager=myDistWorkMgr/short-running-threads=myDistWorkMgr:add(queue-length=10,max-threads=10) /subsystem=jca/bootstrap-context=myCustomContext:add(name=myCustomContext,workmanager=myDistWorkMgr) run-batch
batch
/subsystem=jca/distributed-workmanager=myDistWorkMgr:add(name=myDistWorkMgr)
/subsystem=jca/distributed-workmanager=myDistWorkMgr/short-running-threads=myDistWorkMgr:add(queue-length=10,max-threads=10)
/subsystem=jca/bootstrap-context=myCustomContext:add(name=myCustomContext,workmanager=myDistWorkMgr)
run-batch
					short-running-threads 元素的名称必须与 distributed-workmanager 元素的名称相同。
				
下表描述了您可以为分布式工作管理器配置的属性:
| 属性 | 描述 | 
|---|---|
| elytron-enabled | 为工作管理器启用 Elytron 安全性。 | 
| name | 分布式工作管理器的名称。 | 
| policy | 该策略决定何时重新分发工作实例。允许的值有: 
 | 
| policy-options | 
								策略的键/值对选项列表。如果您使用  /subsystem=jca/distributed-workmanager=myDistWorkMgr:write-attribute(name=policy-options,value={watermark=3}) | 
| selector | 选择器决定网络中哪些节点重新分发工作实例。允许的值有: 
 | 
| selector-options | 选择器的键/值对选项列表。 | 
分布式工作管理器还包含以下子元素:
| 子元素 | 描述 | 
|---|---|
| long-running-threads | 
								设置  | 
| short-running-threads | 标准工作实例的线程池。每个分布式工作管理器都必须有一个运行较短的线程池。 | 
bootstrap 上下文
这用于定义自定义 bootstrap 上下文。下表描述了您可以为 bootstrap 上下文设置的属性。
| 属性 | 描述 | 
|---|---|
| name | 指定 bootstrap 上下文的名称。 | 
| WorkManager | 指定用于此上下文的工作管理器的名称。 | 
缓存的连接管理器
这可用于调试连接并支持事务中的连接的 lazy enlist,跟踪这些连接是否被应用正确使用和发布。下表描述了您可以为缓存的连接管理器设置的属性:
| 属性 | 默认值 | 描述 | 
|---|---|---|
| debug | false | 输出失败时的警告以明确关闭连接。 | 
| 错误 | false | 在失败时抛出异常以明确关闭连接. | 
| ignore-unknown-connections | false | 指定不会缓存未知连接。 | 
| install | false | 启用或禁用缓存的连接管理器 valve 和拦截器。 |