搜索

16.3. 配置 jca 子系统

download PDF

jca 子系统控制 Jakarta Connectors 容器和资源适配器部署的常规设置。您可以使用管理控制台或管理 CLI 配置 jca 子系统。

要配置的主要 jca 子系统元素有:

从管理控制台配置 jca 子系统设置

jca 子系统可以从管理控制台进入 Configuration Subsystems 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 中出现的元素,因为管理模型可能会有所不同。

归档验证

这决定了是否将对部署单元执行存档验证。下表描述了您可以为归档验证设置的属性:

表 16.1. 归档验证属性
属性默认值描述

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

表 16.2. Bean 验证属性
属性默认值描述

enabled

true

指定是否启用了 bean 验证。

如果未指定 bean 验证,它将被视为存在,并且 已启用 的属性默认为 true

工作管理器

有两种工作管理器:

默认工作管理器
默认工作管理器及其线程池。
自定义工作管理器
自定义工作管理器定义及其线程池。

下表描述了您可以为工作管理器设置的属性:

表 16.3. 工作管理器属性
属性描述

name

指定工作管理器的名称。

elytron-enabled

此属性为 workmanager 启用 Elytron 安全性。

工作管理器还包含以下子元素:

表 16.4. 工作管理器子元素
子元素描述

short-running-threads

标准工作实例的线程池.每个工作管理器都有一个运行较短的线程池。

long-running-threads

Jakarta Connectors 1.7 线程池,用于设置 LONG_RUNNING 提示 的实例。每个工作管理器都可以有一个可选的长时间运行线程池。

下表描述了您可以为工作管理器线程池设置的属性。

表 16.5. 线程池属性
属性描述

allow-core-timeout

确定核心线程是否可以超时的布尔设置。默认值为 false

core-threads

内核线程池大小。这必须等于或小于最大线程池大小。

handoff-executor

在任务无法接受的情况下,将任务委派给 的执行者。如果未指定,则无法接受的任务将被静默丢弃。

keepalive-time

指定池线程在工作后应保留的时间。

max-threads

最大线程池大小。

name

指定线程池的名称。

queue-length

最大队列长度。

thread-factory

指线程工厂.

分布式工作管理器

分布式工作管理器是一个工作管理器实例,可以在另一个工作管理器实例上重新排期工作。

以下示例管理 CLI 命令配置分布式工作管理器:请注意,您必须使用提供高可用性功能的配置,如 standalone-ha.xmlstandalone-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 元素的名称相同。

下表描述了您可以为分布式工作管理器配置的属性:

表 16.6. 分布式工作管理器属性
属性描述

elytron-enabled

为工作管理器启用 Elytron 安全性。

name

分布式工作管理器的名称。

policy

该策略决定何时重新分发工作实例。允许的值有:

  • NEVER - 始终将工作实例分发到另一节点。
  • ALWAYS - 将 work 实例分发到另一节点。
  • WATERMARK - 根据当前节点可用的可用工作线程数量,将工作实例分发到另一节点。

policy-options

策略的键/值对选项列表。如果您使用 WATERMARK 策略,您可以使用 水mark 策略选项指定应该分发的可用线程数量。例如:

/subsystem=jca/distributed-workmanager=myDistWorkMgr:write-attribute(name=policy-options,value={watermark=3})

selector

选择器决定网络中哪些节点重新分发工作实例。允许的值有:

  • FIRST_AVAILABLE - 选择列表中的第一个可用节点。
  • PING_TIME - 选择 ping 时间最低的节点。
  • MAX_FREE_THREADS - 选择可用 worker 线程数最多的节点。

selector-options

选择器的键/值对选项列表。

分布式工作管理器还包含以下子元素:

表 16.7. 分布式工作管理器子元素
子元素描述

long-running-threads

设置 LONG_RUNNING 提示的工作实例的线程池。每个分布式工作管理器都可以有长时间运行的线程池。

short-running-threads

标准工作实例的线程池。每个分布式工作管理器都必须有一个运行较短的线程池。

bootstrap 上下文

这用于定义自定义 bootstrap 上下文。下表描述了您可以为 bootstrap 上下文设置的属性。

表 16.8. Bootstrap 上下文属性
属性描述

name

指定 bootstrap 上下文的名称。

WorkManager

指定用于此上下文的工作管理器的名称。

缓存的连接管理器

这可用于调试连接并支持事务中的连接的 lazy enlist,跟踪这些连接是否被应用正确使用和发布。下表描述了您可以为缓存的连接管理器设置的属性:

表 16.9. 缓存的连接管理器属性
属性默认值描述

debug

false

输出失败时的警告以明确关闭连接。

错误

false

在失败时抛出异常以明确关闭连接.

ignore-unknown-connections

false

指定不会缓存未知连接。

install

false

启用或禁用缓存的连接管理器 valve 和拦截器。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.