16.3. 配置 jca 子系统
jca
子系统控制 Jakarta Connectors 容器和资源适配器部署的常规设置。您可以使用管理控制台或管理 CLI 配置 jca
子系统。
要配置的主要 jca
子系统元素有:
- 从管理控制台配置
jca
子系统设置 jca
子系统可以从管理控制台进入 ConfigurationSubsystems JCA 并点击 View。然后,选择适当的标签页: - 配置 - 包含缓存的连接管理器的设置、存档验证和 bean 验证。它们各自包含在各自的选项卡中。打开适当的选项卡并单击编辑链接,修改这些设置。
- Bootstrap 上下文 - 包含配置的 bootstrap 上下文列表。可以添加、删除和配置新的 bootstrap 上下文对象。必须为每个 bootstrap 上下文分配一个工作管理器。
WorkManager - 包含已配置的工作管理器的列表。可以在此处添加、移除新工作管理器及其线程池。每个工作管理器都有一个运行较短的线程池,以及可选的长时间运行线程池。
单击所选工作管理器上的线程池属性,可以配置线程池属性。
- 从管理 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 规格并启用了存档验证,则在描述问题的部署期间将显示错误消息。例如:
Severity: ERROR Section: 19.4.2 Description: A ResourceAdapter must implement a "public int hashCode()" method. Code: com.mycompany.myproject.ResourceAdapterImpl Severity: ERROR Section: 19.4.2 Description: A ResourceAdapter must implement a "public boolean equals(Object)" method. Code: com.mycompany.myproject.ResourceAdapterImpl
如果未指定存档验证,则被视为存在存档,并且 已启用
的属性默认为 true
。
Bean 验证
此设置确定是否对部署单元执行 JSR-303 中定义的 bean 验证。下表介绍了您可以为 bean 验证设置的属性:用于 bean 验证的 Jakarta 等效于 Jakarta Bean Validation。
属性 | 默认值 | 描述 |
---|---|---|
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
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 和拦截器。 |