附录 A. 参考资料

A.1. 服务器运行时参数

应用程序服务器启动脚本在启动时可接受参数和选项。这允许服务器使用 standalone.xmldomain.xmlhost.xml 配置文件之外的其他配置启动。

其他配置可能包括用其他套接字绑定集或次级配置来启动服务器。

可用的参数列表可以在启动时使用 -h--help 选项来获取。

表 A.1. 运行时选项和参数

参数或选项操作模式描述

--admin-only

Standalone

设置服务器的运行类型为 ADMIN_ONLY。这将导致它打开管理接口并接受管理请求,但不会启动其他运行时服务或接受最终用户请求。

--admin-only

Domain

设置主机控制器的运行类型为 ADMIN_ONLY,这将导致它打开管理接口并接受管理请求,但不会启动服务器。如果这个主机控制器是域里的主控制器,它会从从主机控制器接受转入连接。

-b=<value>, -b <value>

Standalone, Domain

设置系统属性 jboss.bind.address,它用于配置公共接口的绑定地址。如果没有指定,默认值是 127.0.0.1。关于设置其他接口的绑定地址,请参考 -b<interface>=<value> 条目。

-b<interface>=<value>

Standalone, Domain

设置系统属性 jboss.bind.address.<interface> 为给定的值。例如,-bmanagement=IP_ADDRESS

--backup

Domain

保留持久性域配置的备份,即使这个主机不是域控制器。

-c=<config>, -c <config>

Standalone

要使用的服务器配置文件的名称。默认值是 standalone.xml

-c=<config>, -c <config>

Domain

要使用的服务器配置文件的名称。默认值是 domain.xml

--cached-dc

Domain

如果主机不是域控制器且无法在引导时联系域控制器,则使用域配置的本地缓存备份进行引导。

--debug [<port>]

Standalone

用可选参数指定端口来激活调试模式。只有启动脚本支持它时才能使用。

-D<name>[=<value>]

Standalone, Domain

设置系统属性。

--domain-config=<config>

Domain

要使用的服务器配置文件的名称。默认值是 domain.xml

-h, --help

Standalone, Domain

显示帮助信息并退出。

--host-config=<config>

Domain

要使用的主机配置文件的名称。默认值是 host.xml

--interprocess-hc-address=<address>

Domain

主机控制器应该侦听进程控制器通讯的地址。

--interprocess-hc-port=<port>

Domain

主机控制器应该侦听进程控制器通讯的端口。

--master-address=<address>

Domain

设置系统属性 jboss.domain.master.address 为指定的值。在默认的从主机控制器配置上,它用于配置主主机控制器的地址。

--master-port=<port>

Domain

设置系统属性 jboss.domain.master.port 为指定的值。在默认的从主机控制器配置上,它用于配置主主机控制器的原生管理通讯的端口。

--read-only-server-config=<config>

Standalone

要使用的服务器配置的名称。这与 --server-config-c 不同,原始文件不会被覆盖。

--read-only-domain-config=<config>

Domain

要使用的域配置的名称。这与 --domain-config-c 不同,初始文件永不会被覆盖。

--read-only-host-config=<config>

Domain

要使用的主机配置文件的名称。这与 --host-config 不同,初始文件永不会被覆盖。

-P=<url>, -P <url>, --properties=<url>

Standalone, Domain

从给定 URL 加载系统属性。

--pc-address=<address>

Domain

进程控制器用来侦听它所控制的进程通讯的地址。

--pc-port=<port>

Domain

进程控制器侦听它控制的进程的通讯的端口。

-S<name>[=<value>]

Standalone

设置安全属性。

-secmgr

Standalone, Domain

运行安装了安全管理者的服务器。

--server-config=<config>

Standalone

要使用的服务器配置文件的名称。默认值是 standalone.xml

-u=<value>, -u <value>

Standalone, Domain

设置系统属性 jboss.default.multicast.address,它用于配置配置文件里的 socket-binding 元素里多点传送地址。如果未指定,它的默认值是 230.0.0.4

-v, -V, --version

Standalone, Domain

显示应用程序服务版本并退出。

警告

JBoss EAP 附带的配置文件被用来处理选项的行为(如 -b-u)。如果您把配置文件修改为不再使用受这些选项控制的系统属性,那么在启动命令里添加它就不会起作用。

A.2. RPM 服务配置文件

相比 ZIP 或安装程序安装方式,JBoss EAP 的 RPM 安装包含两个额外的配置文件。服务启动脚本使用这些文件来指定JBoss EAP 启动环境。对于 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7,这些服务配置文件的位置是不同的。

表 A.2. 用于 Red Hat Enterprise Linux 6 的 RPM 配置文件

File描述

/etc/sysconfig/eap7-standalone

Red Hat Enterprise Linux 6 上的独立 JBoss EAP 服务器专有的设置。

/etc/sysconfig/eap7-domain

Red Hat Enterprise Linux 6 上作为受管域运行的 JBoss EAP 服务器专有的设置。

表 A.3. 用于 Red Hat Enterprise Linux 7 的 RPM 配置文件

File描述

/etc/opt/rh/eap7/wildfly/eap7-standalone.conf

Red Hat Enterprise Linux 7 上的独立 JBoss EAP 服务器专有的设置。

/etc/opt/rh/eap7/wildfly/eap7-domain.conf

Red Hat Enterprise Linux 7 上作为受管域运行的 JBoss EAP 服务器专有的设置。

A.3. RPM 服务配置文件属性

下表展示了 JBoss EAP RPM 服务的可用配置属性列表及其默认值。

注意

如果某个属性在 RPM 服务配置文件(如 /etc/sysconfig/eap7-standalone)和 JBoss EAP 启动配置文件(如 EAP_HOME/bin/standalone.conf)都有相同的名称,那么 JBoss EAP 启动配置文件里的值将优先使用。JAVA_HOME 就是这类属性中的一个。

表 A.4. RPM 服务配置文件属性

属性描述

JAVA_HOME

Java Runtime Environment 的安装目录。

默认值:/usr/lib/jvm/jre

JAVAPTH

Java 可执行文件的安装路径。

默认值:$JAVA_HOME/bin

WILDFLY_STARTUP_WAIT

在接收启动或重启命令后,init 脚本在确认服务器已启动成功前等待的时间(秒)。这个属性只适用于 Red Hat Enterprise Linux 6。

默认值:60

WILDFLY_SHUTDOWN_WAIT

在接收停止或重启命令时,init 脚本在等待服务器关闭前等待的时间(秒)。这个属性只适用于 Red Hat Enterprise Linux 6。

默认值:20

WILDFLY_CONSOLE_LOG

CONSOLE 日志处理程序将被重定向的文件。

对于独立服务器,默认值是 /var/opt/rh/eap7/log/wildfly/standalone/console.log;对于受管域,默认值是 /var/opt/rh/eap7/log/wildfly/domain/console.log

WILDFLY_SH

用于启动 JBoss EAP 服务器的脚本。

对于独立服务器,默认值是 /opt/rh/eap7/root/usr/share/wildfly/bin/standalone.sh;对于受管域,默认值是 /opt/rh/eap7/root/usr/share/wildfly/bin/domain.sh

WILDFLY_SERVER_CONFIG

要使用的服务器配置文件。

这个属性没有默认值。在启动时可以定义为 standalone.xmldomain.xml

WILDFLY_HOST_CONFIG

对于受管域,这个属性允许用户指定主机配置文件(如 host.xml)。它没有默认值。

WILDFLY_MODULEPATH

JBoss EAP 模块目录的路径。

默认值:/opt/rh/eap7/root/usr/share/wildfly/modules

WILDFLY_BIND

设置系统属性 jboss.bind.address,它用来配置公共接口的绑定地址。如果未指定,它的默认值是 0.0.0.0

A.4. JBoss EAP 子系统概述

下表包括了 JBoss EAP 子系统的概述信息。

表 A.5. JBoss EAP 子系统

JBoss EAP 子系统描述

batch-jberet

配置环境来运行批处理应用程序管理批处理任务

bean-validation

为验证 Java 对象数据来配置 bean 验证

datasources

创建并配置数据源,管理 JDBC 数据库驱动

deployment-scanner

配置部署扫描器来监测部署应用程序的特定位置。

ee

在 Java EE 平台中配置常规功能,如定义全局模块、启用基于描述符的属性替换、配置默认绑定。

ejb3

配置 Enterprise JavaBeans(EJBs),包括会话和 message-driven bean。

ejb3 子系统的详细信息包括在 JBoss EAP 的 Developing EJB Applications 中。

iiop-openjdk

为 JTS 事务和其它 ORB 服务(包括安全性)配置 CORBA (Common Object Request Broker Architecture)。在 JBoss EAP 6 中,这个功能包括在 jacorb 子系统中。

infinispan

为 JBoss EAP 高可用性服务配置缓存功能。

io

定义被其它子系统使用的 worker缓冲池

jaxrs

启用 JAX-RS 应用程序的部署,以及相关功能。

jca

JCA(Java EE Connector Architecture)容器和资源适配器配置常规设置。

jdr

启用用来帮助进行故障排除的诊断数据收集功能。JBoss EAP 的订阅用户在向红帽请求支持时,可以提供这些信息。

jgroups

配置协议堆栈,以及集群中的服务器间使用的通讯机制

jmx

配置 JMX(Java Management Extensions)远程访问。

jpa

管理 JPA(Java Persistence API)2.1 容器管理的需要,并允许您部署持久性单元定义、注解和描述符。

JBoss EAP 开发指南中包括了更多与 jpa 子系统相关的信息。

jsf

管理 JSF(JavaServer Faces)的实现。

jsr77

提供 JSR-77 规格中定义的 Java EE 管理功能。

logging

通过日志目录(log category)日志 handler 配置系统级和应用程序级的日志功能。

mail

通过配置 mail 服务器属性自定义 mail 传输创建一个邮件服务,在 JBoss EAP 中部署的应用程序可以通过这个服务发送邮件。

messaging-activemq

配置 JMS 目的地、连接工厂、Artemis 的其它配置,以及集成的消息厂商。在 JBoss EAP 6 中,消息功能包括在 messaging 子系统中。

为 JBoss EAP 配置消息服务中包括了更多与 messaging-activemq 子系统相关的信息。

modcluster

配置服务器方的 mod_cluster worker 节点

naming

把项绑定到全局 JNDI 命名空间,并配置远程 JNDI 接口。

picketlink-federation

配置 PicketLink 基于 SAML 的单点登录功能(SSO)。

JBoss EAP如何使用 SAML v2 设置 SSO 中包括了更多与 picketlink-federation 子系统相关的信息。

picketlink-identity-management

配置 PicketLink 身份管理服务。这个子系统不被支持。

pojo

启用部署包括被以前 JBoss EAP 版本支持的 JBoss Microcontainer 服务的应用程序。

remoting

为本地和远程服务配置入站(inbound)和出站(outbound)连接。

request-controller

安全挂起和关闭服务器进行配置。

resource-adapters

配置和维护资源适配器(resource adapter)用来使用 JCA(Java Connector Architecture)规格进行 Java EE 应用程序和 EIS(Enterprise Information System)间的通讯。

rts

不被支持的 REST-AT 的实现。

sar

启用部署包括被以前JBoss EAP 版本支持的 MBean 服务的 SAR 归档。

安全

配置应用程序安全设置。

JBoss EAP 安全架构中包括了与 security 子系统相关的详细信息。

security-manager

配置 Java Security Manager 使用的 Java 安全策略。

JBoss EAP 如何配置服务器安全包括了更多与 security-manager 子系统相关的信息。

singleton

定义单例(singleton)策略以配置单例部署的行为,或创建单例 MSC 服务的行为。

JBoss EAP 开发指南中包括了更多与 singleton 子系统相关的信息。

事务

配置事务管理器选项,如超时值、事务日志,以及是否使用 JTS(Java Transaction Service)。

undertow

配置 JBoss EAP 的 web 服务器和 servlet 容器设置。在 JBoss EAP 6 中,这个功能包括在 web 子系统中那。

webservices

为 web 服务厂商配置公布的端点地址和端点 handler 链、主机名、端口和 WSDL 地址。

JBoss EAP 开发 Web 服务应用程序中包括了更多与 webservices 子系统相关的信息。

weld

为 JBoss EAP 配置 CDI(Contexts and Dependency Injection)。

xts

为在一个事务中协调 web 服务配置设置。

A.5. Add-User 工具参数

下表描述了 add-user.shadd-user.bat(这是添加可立即验证的新用户至属性文件的工具)的可用参数。

表 A.6. Add-User 命令参数

命令行参数描述

-a

在应用程序域(realm)里创建用户。如果没有使用,默认是在管理域里创建一个用户。

-dc <value>

包含属性文件的域配置目录。如果没有使用,默认目录是 EAP_HOME/domain/configuration/

-sc <value>

包含属性文件的替代独立服务器配置目录。如果没有使用,默认目录是 EAP_HOME/standalone/configuration/

-up, --user-properties <value>

替代的用户属性文件的名称。它可以是绝对路径,也可以是和指定替代配置目录的 -sc-dc 参数联合使用的文件名称。

-g, --group <value>

分配给这个用户的一个用逗号隔开的组的列表。

-gp, --group-properties <value>

替代的组属性文件的名称。它可以是绝对路径,也可以是和指定替代配置目录的 -sc-dc 参数联合使用的文件名称。

-p, --password <value>

用户的密码。

-u, --user <value>

用户名称。有效字符是字母、数字和下列字符:,./=@\.

-r, --realm <value>

用户保护管理接口的区名。如果忽略,默认值是 ManagementRealm

-s, --silent

不带控制台输出地运行 add-user 脚本。

-e, --enable

启用用户。

-d, --disable

禁用用户。

-cw, --confirm-warning

在交互模式里自动确认警告。

-h, --help

显示 add-user 脚本的使用信息。

A.6. 管理审计日志属性

表 A.7. Logger 属性

属性描述

enabled

是否启用审计日志。

log-boot

服务器引导时是否应该为操作记录日志。

log-read-only

是否应该为没有修改配置的操作或任何运行时服务记录日志。

表 A.8. 日志格式器属性

属性描述

compact

如果为 true,它将在一行里产生 JSON 数据。因为仍有一些值可能会包含换行符,所以如果将整个记录放在一行里很重要,则需要把 escape-new-lineescape-control-characters 设置为 true

date-format

java.text.SimpleDateFormat 可理解的日期格式。如果 include-datefalse,这将被忽略。

date-separator

日期和格式化的日志消息的剩余部分间的分割符。如果 include-datefalse,这将被忽略。

escape-control-characters

如果为 true,它将转义所有的控制字符(十进制值大于 32 的 ASCII 条目)。例如,换行符转换为 #012。如果为 true,它将覆盖escape-new-line=false

escape-new-line

如果为 true 它,它将用八进制 ASCII 代码 #012 转义换行符。

include-date

是否在格式化的日志记录里包含日期。

表 A.9. 文件处理程序属性

属性描述

disabled-due-to-failure

这个处理程序是否由于失败的日志记录而已被禁用(只读属性)。

failure-count

在处理程序初始化后,记录日志失败的次数(只读属性)。

formatter

用于格式化日志消息的 JSON 格式器。

max-failure-count

在禁用这个日志处理程序前记录日志失败的最多次数。

路径

审计日志文件的路径。

relative-to

一个之前命名的路径或系统提供的标准路径之一的名称。如果提供了 relative-topath 属性将作为这个属性指定的相对路径处理。

表 A.10. Syslog 处理程序属性

属性描述

app-name

RFC-5424 的 6.2.5 章节定义的,添加至 syslog 记录的应用程序名称。如果未指定,它默认是产品的名称。

disabled-due-to-failure

这个处理程序是否由于失败的日志记录而已被禁用(只读属性)。

facility

RFC-5424 的 6.2.1 章节和 RFC-3164 的 4.1.1 章节所定义的用于 syslog 日志的工具。

failure-count

在处理程序初始化后,记录日志失败的次数(只读属性)。

formatter

用于格式化日志消息的 JSON 格式器。

max-failure-count

在禁用这个日志处理程序前记录日志失败的最多次数。

max-length

所允许的日志消息(包括头部)的最大长度(字节)。如果未定义,当 syslog-formatRFC3164 时,它的默认值为 1024 字节;当 syslog-formatRFC5424 时,它的默认值为 2048 字节。

protocol

用于 syslog 处理程序的协议。必须是 udptcptls 之一。

syslog-format

syslog 格式:RFC5424RFC3164

truncate

如果消息(包括头部信息)的长度(字节数)大于 max-length 的值 ,是否应该截断消息。如果为 false,消息将被分段,并用相同的头信息进行发送。

注意

Syslog 服务器的实现各有不同,所以不是所有的设置都适用于所有的 Syslog 服务器。我们已使用 rsyslog syslog 进行了测试。

这个表只列出高级别的属性。每个属性都有配置参数,一些还有子配置参数。

A.7. 接口属性

表 A.11. 接口属性和值

接口元素描述

any

指定接口的选择标准的一部分应该满足至少一个(但不需要全部)嵌套标准集。

any-address

空元素表示使用这个接口的套接字应该绑定至通配符地址。除非将 java.net.preferIPv4Stack 系统属性设置为 true,IPv6 通配符地址(::)将被使用,此时使用的的 IPv4 通配符地址是 0.0.0.0。如果套接字绑定至双栈主机上的 IPv6 anylocal 地址,它可以接受 IPv6 以及 IPv4 通讯;如果套接字绑定至 IPv4 (IPv4-mapped) anylocal 地址,那它只接受 IPv4 通讯。

inet-address

IPv6 或 IPv4 用句点分隔的 IP 地址,或是可解析为 IP 地址的主机名。

link-local-address

指定接口的选择标准的一部分是否应该是与 link-local 关联的地址。

loopback

指定接口的选择标准的一部分是否应该是 loopback 接口。

loopback-address

可能不会在主机的 loopback 接口实际配置的 loopback 地址。它与 inet-address 类型不一样,即使未找到关联 IP 地址的 NIC,给定的值都将被使用。

multicast

指定接口的选择标准的一部分是否应该支持多点传送。

nic

网络接口的名称(如 eth0、eth1、lo)。

nic-match

表示主机上可用的网络接口的常规表达式,匹配它来寻找可接受的接口。

not

指定接口的选择标准的一部分不匹配任何嵌套的标准集。

point-to-point

指定接口的选择标准的一部分是否应该是 point-to-point 接口。

public-address

指定接口的选择标准的一部分是否应该具有可公共路由的地址。

site-local-address

指定接口的选择标准的一部分是否应该是与 site-local 关联的地址。

subnet-match

网络 IP 地址,以及地址的网络前缀的位数(以斜杠格式表示,如:192.168.0.0/16)。

up

指定接口的选择标准的一部分当前是否应该上线。

virtual

指定接口的选择标准的一部分是否应该是虚拟接口。

A.8. 套接字绑定属性

表 A.12. 套接字绑定属性

属性描述

client-mappings

指定这个套接字绑定的客户映射。连接至这个套接字的客户应该使用匹配其转出接口的映射里的目的地地址。这允许使用网络地址转换的高级网络拓扑结构,或者在多个网络接口上绑定。每个映射应该以声明的顺序进行求值,第一个成功的匹配用来确定目的地。

fixed-port

端口值是否应该保持固定,即使已应用数字偏移量至套接字组里的其他套接字。

interface

套接字应该绑定的接口的名称,或者对于多点传送套接字来说,它应该侦听的接口。这应该是声明的接口中的一个。如果未定义,套接字绑定组里的 default-interface 属性将被使用。

multicast-address

套接字应该接收多点传送通讯的多点传送地址。如果未指定,套接字将不会接收多点传送。

multicast-port

套接字应该接收多点传送通讯的多点传送端口,如果配置了 'multicast-address' 则必须配置它。

name

套接字的名称。需要访问套接字配置信息的服务将用这个名称进行查找。这个属性是必需的。

port

套接字应该绑定的端口号码。请注意如果服务器对所有端口应用了端口偏移量进行增和减,这个值可被覆盖。

A.9. 默认的套接字绑定

表 A.13. 默认的套接字绑定

名称端口多点传送端口描述套接字绑定组

ajp

8009

 

Apache JServ 协议。用于 HTTP 集群和负载平衡。

standard-sockets、ha-sockets、full-sockets、full-ha-sockets

http

8080

 

部署的 Web 应用程序的默认端口。

standard-sockets、ha-sockets、full-sockets、full-ha-sockets

https

8443

 

部署的 Web 应用程序和客户间的用 SSL 加密的连接。

standard-sockets、ha-sockets、full-sockets、full-ha-sockets

iiop

3528

 

用于 JTS 事务和依赖 ORB 的服务的 CORBA 服务。

full-sockets, full-ha-sockets

iiop-ssl

3529

 

SSL 加密的 CORBA 服务。

full-sockets, full-ha-sockets

jgroups-mping

 

45700

多点传送。用于发现 HA 集群里的初始成员资格。

ha-sockets, full-ha-sockets

jgroups-tcp

7600

 

HA 集群里使用 TCP 的单播端点发现。

ha-sockets, full-ha-sockets

jgroups-tcp-fd

57600

 

用于 TCP 上的 HA 故障检测。

ha-sockets, full-ha-sockets

jgroups-udp

55200

45688

HA 集群里使用 UDP 的多点传送端点发现。

ha-sockets, full-ha-sockets

jgroups-udp-fd

54200

 

用于 UDP 上的 HA 故障检测。

ha-sockets, full-ha-sockets

management-http

9990

 

用于管理层的 HTTP 通讯。

standard-sockets、ha-sockets、full-sockets、full-ha-sockets

management-https

9993

 

用于管理层的 HTTPS 通讯。

standard-sockets、ha-sockets、full-sockets、full-ha-sockets

modcluster

 

23364

用于 JBoss EAP 和 HTTP 负载平衡器间的多点传送端口。

ha-sockets, full-ha-sockets

txn-recovery-environment

4712

 

JTA 事务恢复管理者。

standard-sockets、ha-sockets、full-sockets、full-ha-sockets

txn-status-manager

4713

 

JTA / JTS 事务管理者。

standard-sockets、ha-sockets、full-sockets、full-ha-sockets

A.10. 部署扫描器的 Marker 文件

部署扫描器使用 Marker 文件来标记 JBoss EAP 服务器实例的 deployment 目录里的应用程序的状态。 Marker 文件和部署的名称相同,其后缀表示应用程序部署的状态。

例如,成功的 test-application.war 部署会有名为 test-application.war.deployed 的 marker 文件。

下表列出了可用的 marker 文件类型及含义。

表 A.14. Marker 文件类型

文件名称后缀来源描述

.deployed

系统生成的

指示内容已被部署。如果删除这个文件,内容将被卸载。

.dodeploy

用户生成的

表示内容应该部署还是重新部署。

.failed

系统生成的

表示部署失败。Marker 文件包含和失败原因相关的信息。如果删除这个 marker 文件,内容将可以再次自动部署。

.isdeploying

系统生成的

表示部署正在进行。完成后这个 marker 文件将被删除。

.isundeploying

系统生成的

由删除 .deployed 文件触发,这表示内容正被卸载。完成后这个 marker 文件将被删除。

.pending

系统生成的

表示部署扫描器承认部署内容的需要,但目前有一个问题阻止了自动部署(例如内容正在复制)。这个 marker 文件充当全局的部署障碍,表示当这个 marker 文件存在时,扫描器不会指示服务器部署或卸载任何内容。

.skipdeploy

用户生成的

禁用应用程序的自动部署。它作为阻止展开内容的自动部署的临时方法,可以避免推送正在编辑的不完整的内容。它也可以用于压缩的内容,但扫描器会检测正在对压缩内容的修改并等待其完成。

.undeployed

系统生成的

表示内容已被卸载。删除这个 marker 文件不会影响内容的重新部署。

A.11. 部署扫描器属性

部署扫描器包含下列可配置属性。

表 A.15. 部署扫描器属性

名称Default描述

auto-deploy-exploded

false

允许展开的内容自动部署而无需 .dodeploy marker 文件。只推荐用于基本的部署场景,在开发人员或操作系统进行修改时阻止展开的应用程序部署。

auto-deploy-xml

true

允许 XML 内容自动部署而无需 .dodeploy marker 文件。

auto-deploy-zipped

true

允许压缩的内容自动部署而无需 .dodeploy marker 文件。

deployment-timeout

600

部署扫描器在取消前允许尝试部署的时间(以秒为单位)。

路径

deployments

要扫描的实际文件系统路径。它被当作绝对路径处理,除非指定了 relative-to 属性。

relative-to

jboss.server.base.dir

到一个文件系统的路径由服务器配置中的 path 设置。

runtime-failure-causes-rollback

false

部署的运行时失败是否导致部署及作为扫描操作一部分的其他所有部署(可能并不相关)的回滚。

scan-enabled

true

允许以 scan-interval 间隔在启动时自动扫描应用程序。

scan-interval

5000

应该扫描仓库的变动的时间间隔(毫秒)。小于 1 的值会导致扫描只在初始启动时进行扫描。

A.12. Root Logger 属性

表 A.16. Root Logger 属性

属性描述

filter

定义简单的过滤器类型。已弃用,转而使用 filter-spec

filter-spec

定义过滤器的表达式。下面的表达式定义了排除匹配某个模式的日志条目的过滤器:not(match("WFLY.*"))

handlers

Root Logger 使用的日志处理程序列表。

level

Root Logger 记录的日志消息的最低级别。

注意

其他处理程序会继承为 Root Logger 指定的 filter-spec。相反您必须为每个处理程序指定一个 filter-spec

A.13. 日志类别属性

表 A.17. 日志类别属性

属性描述

category

捕获的日志消息所在的日志类别。

filter

定义简单的过滤器类型。已弃用,转而使用 filter-spec

filter-spec

定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器:not(match("WFLY.*"))

handlers

和 Logger 相关联的日志处理程序列表。

level

日志类别记录的日志消息的最低级别。

use-parent-handlers

如果设置为 true,除了其他分配的处理程序,这个类别将使用 Root Logger 的日志处理程序。

A.14. 日志处理程序属性

表 A.18. 控制台日志处理程序属性

属性描述

autoflush

如果设置为 true,日志消息将被发送至处理程序接收时立即分配的文件。

enabled

如果设置为 true,处理程序被启用且正常工作。如果设置为 false,处理日志消息时处理程序将被忽略。

encoding

用于输出的字符编码模式。

filter

定义简单的过滤器类型。已弃用,转而使用 filter-spec

filter-spec

定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器:not(match("WFLY.*"))

formatter

这个日志处理程序使用的日志格式器。

level

日志处理程序记录的日志消息的最低级别。

name

日志处理程序的名称。已弃用(处理程序的地址里已包含这个名称)

named-formatter

处理程序使用的格式器的名称。

target

日志处理程序输出所在的系统输出流。对于系统错误流和标准输出流,它分别是 System.err 和 System.out。

表 A.19. 文件日志处理程序属性

属性描述

append

如果设置为 true,这个处理程序写入的所有消息都将附加到这个文件(如果存在)。如果设置为 false,每次应用服务器启动时都会创建一个新的文件。

autoflush

如果设置为 true,日志消息将被发送至处理程序接收时立即分配的文件。

enabled

如果设置为 true,处理程序被启用且正常工作。如果设置为 false,处理日志消息时处理程序将被忽略。

encoding

用于输出的字符编码模式。

file

代表这个日志处理程序输出写入的文件的对象。它有两个配置属性:relative-topath

filter

定义简单的过滤器类型。已弃用,转而使用 filter-spec

filter-spec

定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器:not(match("WFLY.*"))

formatter

这个日志处理程序使用的日志格式器。

level

日志处理程序记录的日志消息的最低级别。

name

日志处理程序的名称。已弃用(处理程序的地址里已包含这个名称)

named-formatter

处理程序使用的格式器的名称。

表 A.20. 定期日志处理程序属性

属性描述

append

如果设置为 true,这个处理程序写入的所有消息都将附加到这个文件(如果存在)。如果设置为 false,每次应用服务器启动时都会创建一个新的文件。

autoflush

如果设置为 true,日志消息将被发送至处理程序接收时立即分配的文件。

enabled

如果设置为 true,处理程序被启用且正常工作。如果设置为 false,处理日志消息时处理程序将被忽略。

encoding

用于输出的字符编码模式。

file

代表这个日志处理程序输出写入的文件的对象。它有两个配置属性:relative-topath

filter

定义简单的过滤器类型。已弃用,转而使用 filter-spec

filter-spec

定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器:not(match("WFLY.*"))

formatter

这个日志处理程序使用的日志格式器。

level

日志处理程序记录的日志消息的最低级别。

name

日志处理程序的名称。已弃用(处理程序的地址里已包含这个名称)

named-formatter

处理程序使用的格式器的名称。

suffix

这个字符串包含在轮换日志的后缀里。suffix 的格式是句点(.)后面跟着 SimpleDateFormat 可以解析的日期字符串。

表 A.21. Size 日志处理程序属性

属性描述

append

如果设置为 true,这个处理程序写入的所有消息都将附加到这个文件(如果存在)。如果设置为 false,每次应用服务器启动时都会创建一个新的文件。

autoflush

如果设置为 true,日志消息将被发送至处理程序接收时立即分配的文件。

enabled

如果设置为 true,处理程序被启用且正常工作。如果设置为 false,处理日志消息时处理程序将被忽略。

encoding

用于输出的字符编码模式。

file

代表这个日志处理程序输出写入的文件的对象。它有两个配置属性:relative-topath

filter

定义简单的过滤器类型。已弃用,转而使用 filter-spec

filter-spec

定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器:not(match("WFLY.*"))

formatter

这个日志处理程序使用的日志格式器。

level

日志处理程序记录的日志消息的最低级别。

max-backup-index

轮换日志文件保留的最大数目。当到达这个数目时,最旧的日志文件将被重用。默认为 1

如果使用了 suffix 属性,轮换日志文件的后缀将包含在轮换算法里。当轮换日志文件时,以 name+suffix 开始的最旧的文件将被删除,剩余的轮换日志文件的数字型后缀都会增加,而最近轮换的日志文件的后缀将是 1

name

日志处理程序的名称。已弃用(处理程序的地址里已包含这个名称)

named-formatter

处理程序使用的格式器的名称。

rotate-on-boot

如果设置为 true,新的日志文件将服务器重启时创建。默认是 false

rotate-size

日志文件在轮换前可到达的最大尺寸。数字后的单个字符表示单位:b 为字节、 k 为千字节、 m 为兆字节,而 g 为千兆字节。例如 50m 表示 50MB。

suffix

这个字符串包含在轮换日志的后缀里。suffix 的格式是句点(.)后面跟着 SimpleDateFormat 可以解析的日期字符串。

表 A.22. Periodic Size 日志处理程序属性

属性描述

append

如果设置为 true,这个处理程序写入的所有消息都将附加到这个文件(如果存在)。如果设置为 false,每次应用服务器启动时都会创建一个新的文件。

autoflush

如果设置为 true,日志消息将被发送至处理程序接收时立即分配的文件。

enabled

如果设置为 true,处理程序被启用且正常工作。如果设置为 false,处理日志消息时处理程序将被忽略。

encoding

用于输出的字符编码模式。

file

代表这个日志处理程序输出写入的文件的对象。它有两个配置属性:relative-topath

filter-spec

定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器:not(match("WFLY.*"))

formatter

这个日志处理程序使用的日志格式器。

level

日志处理程序记录的日志消息的最低级别。

max-backup-index

轮换日志文件保留的最大数目。当到达这个数目时,最旧的日志文件将被重用。默认为 1

如果使用了 suffix 属性,轮换日志文件的后缀将包含在轮换算法里。当轮换日志文件时,以 name+suffix 开始的最旧的文件将被删除,剩余的轮换日志文件的数字型后缀都会增加,而最近轮换的日志文件的后缀将是 1

name

日志处理程序的名称。已弃用(处理程序的地址里已包含这个名称)

named-formatter

处理程序使用的格式器的名称。

rotate-on-boot

如果设置为 true,新的日志文件将服务器重启时创建。默认是 false

rotate-size

日志文件在轮换前可到达的最大尺寸。数字后的单个字符表示单位:b 为字节、 k 为千字节、 m 为兆字节,而 g 为千兆字节。例如 50m 表示 50MB。

suffix

这个字符串包含在轮换日志的后缀里。suffix 的格式是句点(.)后面跟着 SimpleDateFormat 可以解析的日期字符串。

表 A.23. Syslog 处理程序属性

属性描述

app-name

当以 RFC5424 格式格式化消息时使用的应用程序名称。默认的应用程序名称是 java

enabled

如果设置为 true,处理程序被启用且正常工作。如果设置为 false,处理日志消息时处理程序将被忽略。

facility

RFC-5424 和 RFC-3164 定义的工具。

hostname

发送消息的主机的名称。例如,运行应用服务器的主机的名称。

level

日志处理程序记录的日志消息的最低级别。

port

syslog 服务器侦听的端口。

server-address

syslog 服务器的地址。

syslog-format

按照 RFC 规格格式化日志消息。

表 A.24. 自定义日志处理程序属性

属性描述

class

要使用的日志处理程序类。

enabled

如果设置为 true,处理程序被启用且正常工作。如果设置为 false,处理日志消息时处理程序将被忽略。

encoding

用于输出的字符编码模式。

filter

定义简单的过滤器类型。已弃用,转而使用 filter-spec

filter-spec

定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器:not(match("WFLY.*"))

formatter

这个日志处理程序使用的日志格式器。

level

日志处理程序记录的日志消息的最低级别。

module

日志处理程序依赖的模块。

name

日志处理程序的名称。已弃用(处理程序的地址里已包含这个名称)

named-formatter

处理程序使用的格式器的名称。

properties

用于日志处理程序的属性。

表 A.25. Async 日志处理程序属性

属性描述

enabled

如果设置为 true,处理程序被启用且正常工作。如果设置为 false,处理日志消息时处理程序将被忽略。

filter

定义简单的过滤器类型。已弃用,转而使用 filter-spec

filter-spec

定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器:not(match("WFLY.*"))

level

日志处理程序记录的日志消息的最低级别。

name

日志处理程序的名称。已弃用(处理程序的地址里已包含这个名称)

overflow-action

当超过队列长度时这个处理程序如何应对。它可以设置为 BLOCKDISCARDBLOCK 让日志应用程序等待直至队列有可用空间。这和非异步日志处理程序是相同的行为。DISCARD 允许日志处理程序继续,但会删除日志消息。

queue-length

在等待子处理程序响应时,这个处理程序保持的日志消息的最大数目。

subhandlers

这个异步处理程序将日志消息传入的日志处理程序列表。

A.15. 数据源连接 URL

表 A.26. 数据源连接 URL

数据源连接 URL

IBM DB2

jdbc:db2://SERVER_NAME:PORT/DATABASE_NAME

MariaDB

jdbc:mariadb://SERVER_NAME:PORT/DATABASE_NAME

Microsoft SQL 服务器

jdbc:sqlserver://SERVER_NAME:PORT;DatabaseName=DATABASE_NAME

MySQL

jdbc:mysql://SERVER_NAME:PORT/DATABASE_NAME

Oracle

jdbc:oracle:thin:@SERVER_NAME:PORT:ORACLE_SID

PostgreSQL

jdbc:postgresql://SERVER_NAME:PORT/DATABASE_NAME

Sybase

jdbc:sybase:Tds:SERVER_NAME:PORT/DATABASE_NAME

A.16. 数据源参数

表 A.27. 数据源参数

参数数据源类型描述

allocation-retry

Non-XA, XA

在抛出异常前分配连接应该尝试的次数。默认是 0,表示在第一次失败就抛出异常。

allocation-retry-wait-millis

Non-XA, XA

重试连接分配间等待的时间(毫秒)。默认值是 5000

allow-multiple-users

Non-XA, XA

是否有多个用户将通过 getConnection(user, password) 方法访问数据源,且这个行为是否包括内部池类型。

background-validation

Non-XA, XA

连接在后台线程还是在使用前进行检验。后台检验通常不会和 validate-on-match 一起使用,或者有冗余的检查。通过后台检验,连接可能在校验间损坏并交给客户,所以应用程序必须考虑这种可能性。

background-validation-millis

Non-XA, XA

后台校验运行的频率(毫秒)。

blocking-timeout-wait-millis

Non-XA, XA

在抛出异常前等待连接时阻塞的最长时间(毫秒)。请注意,这只有在等待连接锁时才会阻塞,而且如果创建新的连接耗费很长时间也不会抛出异常。

capacity-decrementer-class

Non-XA, XA

定义递减池连接策略的类。

capacity-decrementer-properties

Non-XA, XA

在定义递减池连接策略的类里注入的属性。

capacity-incrementer-class

Non-XA, XA

定义递增池连接策略的类。

capacity-incrementer-properties

Non-XA, XA

在定义递增池连接策略的类里注入的属性。

check-valid-connection-sql

Non-XA, XA

检查池连接有效性的 SQL 语句。当从池里获取受管连接时可以调用它。

connectable

Non-XA, XA

启用 CMR 的使用,表示本地资源可以可靠地参与 XA 事务。

connection-listener-class

Non-XA, XA

指定继承 org.jboss.jca.adapters.jdbc.spi.listener.ConnectionListener 的类。这个类侦听连接激活和钝化以在连接返回至应用程序或池之前执行操作。被指定的类必须用两个资源 JAR 和 JDBC 驱动捆绑在一个模块(Install a JDBC Driver as a Core Module)或单独的全局模块(Define Global Modules)里。

connection-listener-property

Non-XA, XA

要注入到 connection-listener-class 里指定的类的属性。注入的属性和 JavaBeans 规则兼容。例如,如果您指定名为 foo 的属性,那么连接 Listener 类需要有接受 String 参数的 setFoo 方法。

connection-properties

仅用于 Non-XA

传入 Driver.connect(url, props) 方法的任意字符串名/值对连接属性。

connection-url

仅用于 Non-XA

JDBC 驱动连接 URL。

datasource-class

仅用于 Non-XA

JDBC 数据源类的全限定名。

driver-class

仅用于 Non-XA

JDBC 驱动类的全限定名。

driver-name

Non-XA, XA

定义数据源应该使用的 JDBC 驱动。这是对应安装的驱动的名称的符号名称。如果驱动被部署为 JAR,这个名称就是部署的名称。

enabled

Non-XA, XA

是否应该启用数据源。

enlistment-trace

Non-XA, XA

是否应该记录 enlistment 跟踪信息。

exception-sorter-class-name

Non-XA, XA

提供检验异常是否应该广播错误的方法的 org.jboss.jca.adapters.jdbc.ExceptionSorter 实例。

exception-sorter-properties

Non-XA, XA

exception sorter 的属性。

flush-strategy

Non-XA, XA

指定在发生错误时如何冲刷池。有效值是:

  • FailingConnectionOnly (default)
  • IdleConnections
  • EntirePool

idle-timeout-minutes

Non-XA, XA

连接在关闭前可以空闲的最长时间(分钟)。实际的最长时间也取决于 IdleRemover 扫描时间,它是任何池的最小 idle-timeout-minutes 的二分之一。

initial-pool-size

Non-XA, XA

池应该保持的连接的初始数量。

interleaving

只适用于 XA

是否对 XA 连接启用 interleaving

jndi-name

Non-XA, XA

数据源的唯一 JNDI 名称。

jta

仅用于 Non-XA

启用 JTA 集成。

max-pool-size

Non-XA, XA

池可以保持的最大数量。

mcp

Non-XA, XA

ManagedConnectionPool 实现。例如 org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool

min-pool-size

Non-XA, XA

池可以保持的连接的最小数目。

new-connection-sql

Non-XA, XA

每当连接被添加至连接池时要执行的 SQL 语句。

no-recovery

只适用于 XA

连接池是否应该从恢复排除。

no-tx-separate-pool

只适用于 XA

是否为每个上下文创建独立的子池。某些 Oracle 数据源可能要求这样做,这可能不允许 XA 连接既用于 JTA 事务的内部又用于其外部。使用这个选项将导致您的池大小两倍于 max-pool-size,因为实际将创建两个池。

pad-xid

只适用于 XA

是否覆盖 XID。

password

Non-XA, XA

创建新连接时使用的密码。

pool-fair

Non-XA, XA

定义池是否是公平的。这个设置是在 JCA 里用于管理连接池的 Semaphore 类的一部分,它在某些不要求租借连接的顺序的情况下提供了性能优势。

pool-prefill

Non-XA, XA

是否应该预填充池。

pool-use-strict-min

Non-XA, XA

是否应该严格考虑 min-pool-size

prepared-statements-cache-size

Non-XA, XA

在 Least Recently Used (LRU) 缓存里每个连接的 prepared 语句的数量。

query-timeout

Non-XA, XA

查询超时时间(秒)。默认是不会超时。

reauth-plugin-class-name

Non-XA, XA

重新验证物理连接的重验证插件实现的全限定类名。

reauth-plugin-properties

Non-XA, XA

重验证插件的属性。

recovery-password

只适用于 XA

连接用于恢复的资源时使用的密码。

recovery-plugin-class-name

只适用于 XA

恢复插件实现的全限定类名。

recovery-plugin-properties

只适用于 XA

恢复插件的属性。

recovery-security-domain

只适用于 XA

连接用于恢复的资源时使用的安全域。

recovery-username

只适用于 XA

连接用于恢复的资源时使用的用户名。

same-rm-override

只适用于 XA

javax.transaction.xa.XAResource.isSameRM(XAResource) 类返回 true 还是 false

security-domain

Non-XA, XA

处理验证的 JAAS security-manager 的名称。这个名称对应 JAAS 登录配置的 application-policy/name 属性。

set-tx-query-timeout

Non-XA, XA

是否根据剩余时间设置查询超时直至事务超时。如果没有事务存在,将使用任何已配置的查询超时。

share-prepared-statements

Non-XA, XA

Whether JBoss EAP should cache, instead of close or terminate, the underlying physical statement when the wrapper supplied to the application is closed by application code. The default is false.

spy

Non-XA, XA

启用 JDBC 驱动上的 spy 功能。这将所有 JDBC 通讯登记至数据源。请注意,logging 子系统里的日志类别 jboss.jdbc.spy 也必须设置为日志级别 DEBUG

stale-connection-checker-class-name

Non-XA, XA

提供 isStaleConnection(SQLException) 方法的 org.jboss.jca.adapters.jdbc.StaleConnectionChecker 实例。如果这个方法返回 true,那么异常会打包在 org.jboss.jca.adapters.jdbc.StaleConnectionException 里。

stale-connection-checker-properties

Non-XA, XA

过时连接检查器属性。

statistics-enabled

Non-XA, XA

是否启用运行时统计。默认值是 false

track-statements

Non-XA, XA

当连接返回至池且连接返回至预备语句缓存时是否检查未关闭的语句。如果为 false,语句不会被跟踪。它的有效值为:

  • true:语句和结构都会被跟踪,如果未关闭则会发出警告。
  • false:既不会跟踪语句也不会跟踪结果。
  • nowarn:语句被跟踪但不会发出警告(默认)。

tracking

Non-XA, XA

是否跨事务边界跟踪事务句柄。

transaction-isolation

Non-XA, XA

java.sql.Connection 事务隔离级别。有效值是:

  • TRANSACTION_READ_UNCOMMITTED
  • TRANSACTION_READ_COMMITTED
  • TRANSACTION_REPEATABLE_READ
  • TRANSACTION_SERIALIZABLE
  • TRANSACTION_NONE

url-delimiter

Non-XA, XA

高可用性数据源的 connection-url 里的分隔符。

url-property

只适用于 XA

xa-datasource-property 里的 URL 属性。

url-selector-strategy-class-name

Non-XA, XA

实现 org.jboss.jca.adapters.jdbc.URLSelectorStrategy 的类。

use-ccm

Non-XA, XA

启用缓存的连接管理者。

use-fast-fail

Non-XA, XA

如果为 true,如果连接无效,连接分配在第一次尝试就会失败。如果为 false,会一直尝试直至池耗尽。

use-java-context

Non-XA, XA

是否将数据源绑定至全局 JNDI。

use-try-lock

Non-XA, XA

内部锁的超时时间。会试图在配置的时间(秒)之内获取锁,而不是在锁不可用时立即失败。请使用 tryLock() 而不是 lock()

user-name

Non-XA, XA

创建新连接时使用的用户名。

valid-connection-checker-class-name

Non-XA, XA

提供 SQLException.isValidConnection(Connection e) 方法来检验连接的 org.jboss.jca.adaptors.jdbc.ValidConnectionChecker 实现。异常抛出表示连接被销毁。这覆盖了 check-valid-connection-sql 参数(如果存在)。

valid-connection-checker-properties

Non-XA, XA

有效连接检查器属性

validate-on-match

Non-XA, XA

当连接工厂试图匹配受管连接时,是否执行连接检验。当客户在使用连接前必须进行校验时,它应该被使用。Validate-on-match 通常不会和 background-validation 一起使用,否则将会有冗余的检查。

wrap-xa-resource

只适用于 XA

是否将 XAResource 打包在 org.jboss.tm.XAResourceWrapper 实例里。

xa-datasource-class

只适用于 XA

javax.sql.XADataSource 实现类的全限定名。

-properties

只适用于 XA

XA 数据源属性的字符串名/值对。

xa-resource-timeout

只适用于 XA

如果非零,这个值将被传入 XAResource.setTransactionTimeout 方法。

A.17. 数据源统计

表 A.28. 核心的池统计信息

名称描述

ActiveCount

活动连接的数量。每个连接要么被应用程序使用,要么位于池里可用。

AvailableCount

池里有效连接的数量。

AverageBlockingTime

阻塞获取池的排斥锁所消耗的平均时间。这个值的单位是毫秒。

AverageCreationTime

创建连接花费的平均时间(单位为毫秒)。

AverageGetTime

获取连接平均花费的时间。

AverageUsageTime

使用连接的平均时间。

BlockingFailureCount

试图获取连接的失败次数。

CreatedCount

创建的连接数量。

DestroyedCount

销毁的连接数量。

IdleCount

当前空闲的连接数量。

InUseCount

当前使用的连接数量。

MaxCreationTime

创建连接花费的最长时间(单位为毫秒)。

MaxGetTime

获取连接花费的最长时间。

MaxPoolTime

池里连接的最长时间。

MaxUsageTime

使用连接的最长时间。

MaxUsedCount

使用的连接的最大数量。

MaxWaitCount

同一时间等待连接的请求的最大数量。

MaxWaitTime

等待池里排他锁所消耗的最长时间。

TimedOut

超时连接的数量。

TotalBlockingTime

等待池的排他锁所消耗的总共时间。这个值的单位是毫秒。

TotalCreationTime

创建连接花费的总共时间(单位为毫秒)。

TotalGetTime

获取连接花费的总共时间。

TotalPoolTime

池里连接花费的总共时间。

TotalUsageTime

使用连接花费的总共时间。

WaitCount

必须等待获取连接的请求的数量。

XACommitAverageTime

XAResource commit 调用的平均时间。

XACommitCount

XAResource commit 调用的次数。

XACommitMaxTime

XAResource commit 调用的最长时间。

XACommitTotalTime

所有 XAResource commit 调用的总共时间。

XAEndAverageTime

XAResource end 调用的平均时间。

XAEndCount

XAResource end 调用的次数。

XAEndMaxTime

XAResource end 调用的最长时间。

XAEndTotalTime

所有 XAResource end 调用的总共时间。

XAForgetAverageTime

XAResource forget 调用的平均时间。

XAForgetCount

XAResource forget 调用的次数。

XAForgetMaxTime

XAResource forget 调用的最长时间。

XAForgetTotalTime

所有 XAResource forget 调用的总共时间。

XAPrepareAverageTime

XAResource prepare 调用的平均时间。

XAPrepareCount

XAResource prepare 调用的次数。

XAPrepareMaxTime

XAResource prepare 调用的最长时间。

XAPrepareTotalTime

所有 XAResource prepare 调用的总共时间。

XARecoverAverageTime

XAResource recover 调用的平均时间。

XARecoverCount

XAResource recover 调用的次数。

XARecoverMaxTime

XAResource recover 调用的最长时间。

XARecoverTotalTime

所有 XAResource recover 调用的总共时间。

XARollbackAverageTime

XAResource rollback 调用的平均时间。

XARollbackCount

XAResource rollback 调用的次数。

XARollbackMaxTime

XAResource rollback 调用的最长时间。

XARollbackTotalTime

所有 XAResource rollback 调用的总共时间。

XAStartAverageTime

XAResource start 调用的平均时间。

XAStartCount

XAResource start 调用的次数。

XAStartMaxTime

XAResource start 调用的最长时间。

XAStartTotalTime

所有 XAResource start 调用的总共时间。

表 A.29. JDBC 统计信息

名称描述

PreparedStatementCacheAccessCount

语句缓存被访问的次数。

PreparedStatementCacheAddCount

添加至语句缓存的语句数量。

PreparedStatementCacheCurrentSize

目前缓存在语句缓存里的预备和可调用语句的数量。

PreparedStatementCacheDeleteCount

从缓存丢弃的语句数量。

PreparedStatementCacheHitCount

缓存里语句被使用的次数。

PreparedStatementCacheMissCount

语句请求无法满意缓存里的请求的次数。

A.18. 事务管理者的配置选项

表 A.30. 事务管理者的配置选项

选项描述

default-timeout

默认的事务超时时间。默认值是 300 秒。您可以在程序里为每个事务覆盖这个值。

enable-statistics

已过时。由 statistics-enabled 替代。

enable-tsm-status

是否启用事务状态管理者(Transaction Status Manager,TSM)服务,这个服务用于进程外的恢复。这个选项不被支持,因为运行进程外恢复管理者从不同的进程来联系 ActionStatusService 是不受支持的(通常是通过内存联系)。

hornetq-store-enable-async-io

已过时。由 journal-store-enable-async-io 替代。

jdbc-action-store-drop-table

JDBC 操作存储是否应该丢弃表。默认值为 false

jdbc-action-store-table-prefix

表可以使用可选的前缀在配置的 JDBC 操作存储中写事务日志。

jdbc-communication-store-drop-table

JDBC 通讯存储是否应该丢弃表。默认值为 false

jdbc-communication-store-table-prefix

表可以使用可选的前缀在配置的 JDBC 通讯存储中写事务日志。

jdbc-state-store-drop-table

JDBC 状态存储是否应该丢弃表。默认值为 false

jdbc-state-store-table-prefix

表可以使用可选的前缀在配置的 JDBC 状态存储中写事务日志。

jdbc-store-datasource

非 XA 数据源使用的 JNDI 名。数据源应该在 datasources 子系统中定义。

journal-store-enable-async-io

是否对日志库启用 AsyncIO。默认值是 false。使其生效需要重启服务器。

jts

是否使用 Java Transaction Service(JTS)事务。默认值是 false,表示只使用 JTA 事务。

node-identifier

事务管理者的节点标识符。如果没有设置这个选项,您将会在服务器启动时看到一个警告信息。下列情况下需要这个选项:

  • 对于 JTS - JTS 通讯
  • 当两个事务管理者访问共享的资源管理者
  • 当两个事务管理者访问共享的对象存储

对于每个事务管理者来说,节点标识符必须是唯一的,因为在恢复期间要求数据的完整性。节点标识符对于 JTA 也必须是唯一的,因为多个节点可能与相同的资源管理者交互或共享事务对象库。

object-store-path

事务管理者对象库存储数据的相对或绝对文件系统路径。默认是相对于 object-store-relative-to 的路径。如果 object-store-relative-to 被设置为一个空字符串,这个值将作为绝对路径对待。

object-store-relative-to

域模型里对全局路径配置的引用。默认值是 JBoss EAP 的数据目录,即 jboss.server.data.dir 属性的值。对于受管域是 EAP_HOME/domain/data/,而对于独立服务器是 EAP_HOME/standalone/data/。对象库的 object-store-path 事务管理者属性是相对于这个路径的值。如果把这个属性设置为空字符串,则 object-store-path 会被认为是一个绝对路径。

process-id-socket-binding

如果事务管理者应该使用基于套接字的进程 ID,这是套接字绑定配置的名称。如果 process-id-uuidtrue,它将是 undefined,否则必须进行设置。

process-id-socket-max-ports

事务管理者为每个事务日志创建一个唯一的标识符。系统为生成唯一的标识符提供了两个不同的机制:基于套接字的机制和基于进程标识符的机制。

在使用基于套接字的标识符时,套接字将被打开且其端口号被用于标识符。如果端口已被使用,将探测下一个端口,直至找到空闲的端口。process-id-socket-max-ports 代表事务管理器将尝试直至失败的最大套接字数量。默认值是 10

process-id-uuid

设置为 true 以使用进程标识符来为每个事务创建唯一的标识符。否则,基于套接字的机制将被使用。默认值为 true。更多信息请参考 process-id-socket-max-ports。要启用 process-id-socket-binding,请将 process-id-uuid 设置为 false

recovery-listener

事务恢复过程是否应该侦听网络套接字。默认为 false

socket-binding

recovery-listener 被设置为 true 时,指定事务定期恢复 listener 使用的套接字绑定。

statistics-enabled

是否启用统计数据功能。

status-socket-binding

指定用于事务状态管理者的套接字绑定。这个配置选项不受支持。

use-hornetq-store

已过时。由 use-journal-store 替代。

use-jdbc-store

使用 JDBC 存储写事务日志。设为 true 启用,设为 false 来使用默认的日志存储类型。

use-journal-store

对于事务日志使用 Apache ActiveMQ Artemis 日志存储机制而不是基于文件的存储。默认这是被禁用的,但它可以提高 I/O 性能。对于单独事务管理者上的 JTS 事务,我们不推荐使用它。当修改这个选项时,服务器必须使用 shutdown 命令重启以使其生效。

A.19. 资源适配器属性

下表描述了资源适配器属性。

表 A.31. 主要属性

属性描述

archive

资源适配器归档

beanvalidationgroups

需要使用的 bean 验证组。

bootstrap-context

使用的 bootstrap 上下文的唯一名称。

config-properties

自定义的配置属性。

module

资源适配器从哪个模块加载。

statistics-enabled

是否启用运行时统计数据。

transaction-support

资源适配器的事务支持级别。

wm-security

为资源适配器切换启用或禁用 wm.security。如果禁用,包括默认参数在内的所有 wm-security-* 参数都会被忽略。

wm-security-default-groups

添加到使用的 Subject 实例的默认组列表。

wm-security-default-principal

添加到使用的 Subject 实例的 principal 名。

wm-security-domain

需要使用的安全域的名称。

wm-security-mapping-groups

组映射列表。

wm-security-mapping-required

指定安全凭证是否需要一个映射。

wm-security-mapping-users

用户映射列表。

表 A.32. admin-objects Attributes

属性描述

class-name

一个管理对象的完全限定类名。

enabled

指定是否需要启用管理对象。

jndi-name

管理对象的 JNDI 名。

use-java-context

如果需要把对象绑定到全局 JNDI,把它设置为 false。

表 A.33. connection-definitions 属性

属性描述

allocation-retry

指定在抛出一个异常前,尝试分配一个连接的次数。

allocation-retry-wait-millis

重试连接分配间等待的时间(毫秒)。

background-validation

指定连接应该在一个后台线程中验证,还是在使用前进行验证。修改这个设置需要重启服务器。

background-validation-millis

后台验证运行的时间(以毫秒为单位)。修改这个值需要重启服务器。

blocking-timeout-wait-millis

在抛出异常前等待连接时阻塞的最长时间(毫秒)。请注意,这只有在等待连接锁时才会阻塞,而且如果创建新的连接耗费很长时间也不会抛出异常。

capacity-decrementer-class

定义递减池连接策略的类。

capacity-decrementer-properties

注入到用于定义减少池中的连接策略的类的属性。

capacity-incrementer-class

定义递增池连接策略的类。

capacity-incrementer-properties

注入到用于定义增加池中的连接策略的类的属性。

class-name

受管连接工厂或管理对象的完全限定类名。

connectable

启用 CMR 的使用。它代表本地资源可以可靠地参与 XA 事务。

enabled

指定是否启用资源适配器。

enlistment

指定在资源适配器支持的情况下,是否使用 lazy enlistment 功能。

enlistment-trace

指定 JBoss EAP 或 IronJacamar 是否应该记录 enlistment 跟踪信息。

flush-strategy

在发生错误时如何冲刷池。有效值是:FailingConnectionOnly(默认)、 IdleConnectionsEntirePool

idle-timeout-minutes

连接在关闭前可以空闲的最长时间(分钟)。实际的最长时间也取决于 IdleRemover 扫描时间,它是任何池的最小 idle-timeout-minutes 值一半。修改这个值需要重启服务器。

initial-pool-size

池应该保持的连接的初始数量。

interleaving

指定是否对 XA 连接启用 interleaving。

jndi-name

连接工厂的 JNDI 名。

max-pool-size

池里最大的连接数。在每个子池里创建的连接都不能超过这个值。

mcp

ManagedConnectionPool 的实现。例如 org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool

min-pool-size

一个池的最少连接数量。

no-recovery

指定连接池是否应该从恢复中排除。

no-tx-separate-pool

Oracle 不希望 XA 连接既在 JTA 事务内部又在外部使用。要绕过这个问题,您可以为不同的上下文创建独立的子池。

pad-xid

指定 Xid 是否需要被填充。

pool-fair

指定池是否应该公平使用。

pool-prefill

指定池是否应该被预先填充。修改这个值需要重启服务器。

pool-use-strict-min

指定 min-pool-size 是否是严格的。

recovery-password

恢复所使用的密码。

recovery-plugin-class-name

恢复插件实现的完全限定类名。

recovery-plugin-properties

恢复插件的属性。

recovery-security-domain

用于恢复的安全域。

recovery-username

用于恢复的用户名。

same-rm-override

无条件地设置 javax.transaction.xa.XAResource.isSameRM(XAResource) 是否返回 true 或 false。

security-application

表示应用程序提供的参数(如 getConnection(user, pw))被用来区分池里的连接。

security-domain

定义用来区分池中的连接的 javax.security.auth.Subject 的安全域。

security-domain-and-application

表示应用程序提供的参数,如 getConnection(user, pw)Subject(来自于安全域),被用来区分池里的连接。

sharable

启用共享连接功能,这将允许在支持的情况下启用 lazy association 功能。

tracking

指定 IronJacamar 是否应该跟踪跨事务边界的连接句柄。

use-ccm

允许使用一个缓存的连接管理器。

use-fast-fail

如果为 true,在第一次尝试时,如果无效就使连接分配失败;如果为false,则会在尝试失败后继续尝试,直到已检查了所有可能的连接。

use-java-context

把它设置为 false 会把这个对象绑定到全局 JNDI。

validate-on-match

指定当一个连接工厂试图匹配一个受管的连接时,是否需要进行连接验证。这通常只适用于使用后台验证。

wrap-xa-resource

指定 XAResource 实例是否应该打包在一个 org.jboss.tm.XAResourceWrapper 实例中。

xa-resource-timeout

这个值(以秒为单位)传递给 XAResource.setTransactionTimeout()。它的默认值是 0

资源适配器模式可以在 EAP_HOME/docs/schema/wildfly-resource-adapters_4_0.xsd 里找到。

A.20. 资源适配器统计

表 A.34. 资源适配器统计

名称描述

ActiveCount

活动连接的数量。每个连接要么被应用程序使用,要么位于池里可用。

AvailableCount

池里有效连接的数量。

AverageBlockingTime

阻塞获取池的排斥锁所消耗的平均时间。这个值的单位是毫秒。

AverageCreationTime

创建连接花费的平均时间(单位为毫秒)。

CreatedCount

创建的连接数量。

DestroyedCount

销毁的连接数量。

InUseCount

当前使用的连接数量。

MaxCreationTime

创建连接花费的最长时间(单位为毫秒)。

MaxUsedCount

使用的连接的最大数量。

MaxWaitCount

同一时间等待连接的请求的最大数量。

MaxWaitTime

等待池里排他锁所消耗的最长时间。

TimedOut

超时连接的数量。

TotalBlockingTime

等待池的排他锁所消耗的总共时间。这个值的单位是毫秒。

TotalCreationTime

创建连接花费的总共时间(单位为毫秒)。

WaitCount

必须等待连接的请求的数量。

A.21. Undertow 子系统属性

表 A.35. undertow 属性

属性Default描述

default-security-domain

other

web 部署使用的默认安全域。

default-server

default-server

用于部署的默认服务器。

default-servlet-container

default

用于部署的默认 servlet 容器。

default-virtual-host

default-host

用于部署的默认虚拟主机。

instance-id

${jboss.node.name}

集群实例 ID。

statistics-enabled

false

是否启用统计数据

缓冲缓存属性

表 A.36. buffer-cache 属性

属性Default描述

buffer-size

1024

缓冲的大小。更小的缓冲允许更有效地利用空间。

buffers-per-region

1024

每个区的缓冲数量。

max-regions

10

区的最大数量。它控制可用于缓存的最大内存数量。

Servlet 容器属性

Servlet 容器组件具有下列结构:

servlet-container 属性

表 A.37. servlet-container 属性

属性Default描述

allow-non-standard-wrappers

false

是否可以使用没有扩展标准 Wrapper 类的请求和资源 Wrapper。

default-buffer-cache

default

用于缓存静态资源的缓冲缓存。

default-encoding

 

用于所有部署的应用程序的默认编码。

default-session-timeout

30

用于容器里部署的所有应用程序的默认会话超时时间(以分钟为单位)。

directory-listing

 

是否应该为默认的 servlet 启用目录列表。

disable-caching-for-secured-pages

true

是否设置头部来为安全页面禁用缓存。禁用它可能导致安全问题,因为敏感页面可能会被中介缓存。

eager-filter-initialization

false

是否在部署启动,而不是第一次被请求时调用过滤器的 init()。

ignore-flush

false

忽略 Servlet 输出流上的冲刷。多数情况下这些操作只会影响到性能。

max-sessions

 

在同一时刻可以处于活动状态的最大会话数量。

proactive-authentication

false

是否使用主动验证。如果为 true,出现凭证时用户将总会被验证。

session-id-length

30

生成的会话 ID 的长度。越长的会话 ID 越安全。

stack-trace-on-error

local-only

在出现错误时是否应该生成带有跟踪栈信息的错误页面。其值为 all、none 和 local-only。

use-listener-encoding

false

使用 Listener 上定义的编码

mime-mapping 属性

表 A.38. mime-mapping 属性

属性Default描述

value

 

这个映射的 MIME 类型。

welcome-file 属性

定义欢迎文件,它没有选项。

crawler-session-management 属性

为 crawler bot 配置特殊会话处理。

注意

当使用管理 CLI 管理 crawler-session-management 元素时,它在 servlet-container 元素的 settings 中可用。例如:

/subsystem=undertow/servlet-container=default/setting=crawler-session-management:add
/subsystem=undertow/servlet-container=default/setting=crawler-session-management:read-resource

表 A.39. crawler-session-management 属性

属性Default描述

session-timeout

 

crawler 所拥有会话的超时时间(以秒为单位)。

user-agents

 

用来匹配一个 crawler 的用户代理的正则表达式。

jsp 属性
注意

当使用管理 CLI 管理 jsp 元素时,它在 servlet-container 元素的 settings 中可用。例如:

/subsystem=undertow/servlet-container=default/setting=jsp:read-resource

表 A.40. jsp 属性

属性Default描述

check-interval

0

用后台线程检查 JSP 更新的间隔。

development

false

启用开放模式,它可以在运行时重载 JSP。

disabled

false

启用 JSP 容器。

display-source-fragment

true

当发生运行错误时,试图显示相应的 JSP 源码片段。

dump-smap

false

写入 SMAP 数据至文件。

error-on-use-bean-invalid-class-attribute

false

在 useBean 使用了错误的类时显示错误。

generate-strings-as-char-arrays

false

将字符串常量生成为字符数组。

java-encoding

UTF8

生成用于 Java 源码的编码。

keep-generated

true

保持生成的 Servlet。

mapped-file

true

映射至 JSP 源码。

modification-test-interval

4

两次更新测试间的最小时间间隔(秒)。

optimize-scriptlets

false

是否应该优化 JSP scriptlets 来删除字符串连接。

recompile-on-fail

false

在每次请求时重试失败的 JSP 编译。

scratch-dir

 

指定不同的工作目录。

smap

true

启用 SMAP。

source-vm

1.8

用于编译的源虚拟机级别。

tag-pooling

true

启用标签池。

target-vm

1.8

用于编译的目标虚拟机级别。

trim-spaces

false

从生成的 Servlet 里删除空格。

x-powered-by

true

启用 x-powered-by 里的 JSP 引擎的广告。

persistent-sessions 属性
注意

当使用管理 CLI 管理 persistent-sessions 元素时,它在 servlet-container 元素的 settings 中可用。例如:

/subsystem=undertow/servlet-container=default/setting=persistent-sessions:add
/subsystem=undertow/servlet-container=default/setting=persistent-sessions:read-resource

表 A.41. persistent-sessions 属性

属性Default描述

路径

 

持久性会话数据目录的路径。如果它为 null,会话将保存在内存里。

relative-to

 

这个目录相对的路径

注意

当使用管理 CLI 管理 session-cookie 元素时,它在 servlet-container 元素的 settings 中可用。例如:

/subsystem=undertow/servlet-container=default/setting=session-cookie:add
/subsystem=undertow/servlet-container=default/setting=session-cookie:read-resource

表 A.42. session-cookie Attributes

属性Default描述

comment

 

Cookie comment.

domain

 

Cookie 域。

http-only

 

cookie 是否只是 http。

max-age

 

cookie 最长有效时间。

name

 

cookie 的名称

secure

 

cookie 是否安全。

websockets 属性
注意

当使用管理 CLI 管理 websockets 元素时,它在 servlet-container 元素的 settings 中可用。例如:

/subsystem=undertow/servlet-container=default/setting=websockets:read-resource

表 A.43. websockets 属性

属性Default描述

buffer-pool

default

用于 websocket 部署的缓冲池。

dispatch-to-worker

true

回调是否应该被分发至 worker 线程。如果为 false,那么它们将运行在 IO 线程,这会更快,但必须小心,不要执行阻塞操作。

worker

default

用于 websocket 部署的 worker

过滤器属性

custom-filter 过滤器

表 A.44. custom-filter 属性

属性Default描述

class-name

 

HttpHandler 的类名。

module

 

可以从中加载类的模块的名称。

parameters

 

过滤器参数

error-page 过滤器

错误页面

表 A.45. error-page 属性

属性Default描述

code

 

错误页代码。

路径

 

错误页路径。

expression-filter 过滤器

解析 Undertow 表达式语言的过滤器。

表 A.46. expression-filter 过滤器

属性Default描述

expression

 

定义过滤器的表达式。

module

 

加载过滤器定义所使用的模块。

gzip 过滤器

定义 gzip 过滤器,它没有属性。

mod-cluster 过滤器

mod-cluster 过滤器组件具有下列结构:

表 A.47. mod-cluster 属性

属性Default描述

advertise-frequency

10000

mod-cluster 在网络里广告自己的频率(以毫秒为单位)。

advertise-path

/

注册 mod_cluster 的路径。

advertise-protocol

http

使用中的协议。

advertise-socket-binding

 

用来广告的多播组。

broken-node-timeout

60000

在断开的节点从表里删除前必须等待的时间。

cached-connections-per-thread

5

将无限期保持活动的连接数量。

connection-idle-timeout

60

连接在关闭前可以处于空闲状态的时间。如果池大小降至配置的最小值(由 cached-connections-per-thread 配置),连接将不会超时。

connections-per-thread

10

每个 IO 线程将保持在后台服务器的连接数量。

enable-http2

false

负载平衡器是否应该试图升级后台连接至 HTTP2。如果不支持 HTTP2,将使用 HTTP 或 HTTPS。

health-check-interval

10000

ping 后台节点进行“健康检查”的频率。

management-access-predicate

 

predicate 应用于转入请求,它确定是否可以执行 mod_cluster 管理命令。它在限制对源自 management-socket-binding 的请求的管理的安全性之上提供了额外的安全性。

management-socket-binding

 

mod_cluster 管理端口的套接字绑定。在使用 mod_cluster 时应该定义两个 HTTP Listener,一个共用的处理请求,另外一个绑定到内部网络来处理 mod_cluster 命令。这套接字绑定应该对应内部的 Listener,不应该公共访问。

max-request-time

-1

对后台节点的请求在被终止前可消耗的最长时间。

request-queue-size

10

如果连接池已满,在请求被以 503 错误拒绝前可以排队的请求数量。

security-key

 

用于 mod_cluster 组的安全密钥。所有的成员都必须使用相同的安全密钥。

security-realm

 

提供 SSL 配置的安全域。

use-alias

false

是否执行别名检查。

worker

default

用于发送广告通知的 XNIO 工作节点。

表 A.48. balancer 属性

属性Default描述

max-attempts

 

尝试发送请求至后台服务器的次数。

sticky-session

 

是否启用粘性会话。

sticky-session-cookie

 

会话 Cookie 的名称。

sticky-session-force

 

如果为 true,则如果请求无法路由至粘性节点,那将返回错误。否则,请求将被路由至其他节点。

sticky-session-path

 

粘性会话 Cookie 的路径。

sticky-session-remove

 

如果请求没有路由至正确的主机则删除会话 Cookie。

wait-worker

 

等待可用工作节点的秒数。

load-balancing-group 属性

定义没有选项的负载平衡组。

表 A.49. node 属性

属性Default描述

aliases

 

节点别名。

cache-connections

 

无限期保持活动的连接数量。

elected

 

elected 的数量。

flush-packets

 

是否立即冲刷接收到的数据。

load

 

这个节点的当前负载。

load-balancing-group

 

这个节点所属的负载均衡组。

max-connections

 

每个 IO 线程最大的连接数量。

open-connections

 

当前打开的连接的数量。

ping

 

节点 ping。

queue-new-requests

 

如果接收到请求但没有立即可用的工作节点,是否应该进行排队。

read

 

从节点读的字节数。

request-queue-size

 

请求队列的大小。

status

 

这个节点的当前状态。

timeout

 

请求超时。

ttl

 

如果连接数量大于 cache-connections,没有请求时连接在关闭前将保持活动的时间。

uri

 

负载平衡器用来连接节点的 URI。

written

 

传输至节点的字节数。

表 A.50. context 属性

属性Default描述

requests

 

对这个上下文的请求数量。

status

 

这个上下文的状态。

request-limit 过滤器

表 A.51. request-limit 属性

属性Default描述

max-concurrent-requests

 

并发请求的最大数量。

queue-size

 

请求被拒绝前排队的请求数量。

response-header 过滤器

response-header 过滤器允许您添加自定义头部信息。

表 A.52. response-header 属性

属性Default描述

header-name

 

头名称。

header-value

 

头的值。

rewrite 过滤器

表 A.53. rewrite 属性

属性Default描述

redirect

false

是否重定向而不是重写。

target

 

定义目标的表达式。如果您重定向至固定的目标,请为值加上单引号。

Handler 属性

file 属性

表 A.54. file 属性

属性Default描述

cache-buffer-size

1024

缓冲的大小。

cache-buffers

1024

缓冲的数量。

case-sensitive

true

是否使用区分大小写的文件处理方式。请注意,只有在底层文件系统不区分大小写时,把这个值设置为 false 才有效。

directory-listing

false

是否启用列出目录功能。

follow-symlink

false

启用下面的符号链接。

路径

 

文件处理程序将充当资源所在的文件系统的路径。

safe-symlink-paths

 

对于符号链接目标安全的路径。

对静态资源使用 WebDAV

之前的 JBoss EAP 版本允许将 WebDAV 和 web 子系统一起使用(WebdavServlet)来容纳静态资源,并启用额外的 HTTP 方法以访问和操作这些文件。在 JBoss EAP 7 里,undertow 子系统提供了通过文件处理程序服务静态文件的机制。但 undertow 子系统不支持 WebDAV。如果您想在 JBoss EAP 7 里使用 WebDAV,可以编写自定义的 WebDAV servlet。

reverse-proxy 属性

reverse-proxy 处理程序组件具有下列结构:

表 A.55. reverse-proxy 属性

属性Default描述

cached-connections-per-thread

5

将无限期保持活动的连接数量。

connection-idle-timeout

60

连接在关闭前可以处于空闲状态的时间。如果池大小降至配置的最小值(如 cached-connections-per-thread),连接将不会超时。

connections-per-thread

10

每个 IO 线程将保持在后台服务器的连接数量。

max-request-time

-1

代理请求被终止前可以保持活动的最长时间。默认为无限制。

problem-server-retry

30

在试图重新连接下线的服务器前等待的时间(秒)。

request-queue-size

10

如果连接池已满,在请求被以 503 错误拒绝前可以排队的请求数量。

session-cookie-names

JSESSIONID

逗号分开的会话 Cookie 名称列表。通常它仅为 JSESSIONID。

表 A.56. host 属性

属性Default描述

instance-id

 

用来启用粘性会话的实例 ID 或 JVM 路由。

outbound-socket-binding

 

这个主机的转出套接字绑定。

路径

/

如果主机使用非根资源的可选路径。

scheme

http

使用的 scheme 类型。

security-realm

 

为到主机的连接提供 SSL 配置的安全区。

服务器属性

这服务器组件具有下列结构:

server 属性

表 A.57. server 属性

属性Default描述

default-host

default-host

服务器默认的虚拟主机。

servlet-container

default

服务器默认的 Servlet 容器。

http-listener 属性

表 A.58. http-listener 属性

属性Default描述

allow-encoded-slash

false

如果请求中包括经过编码的字符(如 %2F),是否需要对它们进行解码。

allow-equals-in-cookie-value

false

是否允许不加引号的 Cookie 值里出现非转义的等号字符。不加引号的 Cookie 值可能没有包含等号,如果有等号,值将到等号为止,后面的部分将被忽略。

always-set-keep-alive

true

是否在响应里加入 Connection: keep-alive 头部,即使规格并没有严格要求它。

buffer-pipelined-data

true

是否应该缓冲管线请求。

buffer-pool

default

Listener 的缓冲池。

certificate-forwarding

false

是否启用证书转发。如果启用,listener 将从 SSL_CLIENT_CERT 属性获取证书。只有位于代理后面才应该启用它,且应该配置代理总是设置这些头部。

decode-url

true

解析器是否用所选的字符编码(默认是 UTF-8)解码 URL 和查询参数。如果为 false,则不会进行解码。这将允许之后的处理程序将它们解码至所要的字符集。

disallowed-methods

["TRACE"]

逗号分开的不允许的 HTTP 方法列表。

enable-http2

false

是否为这个 Listener 启用 HTTP2 支持。

enabled

true

是否启用 listener。

http2-enable-push

true

是否为这个连接启用服务器推送。

http2-header-table-size

 

用于 HPACK 压缩的头部表的大小(字节)。用于压缩的内存数量将为每个连接进行分配。越大的值使用越多的内存,但可能提供越好的压缩性能。

http2-initial-window-size

 

控制客户发送数据至服务器的速度的流控制窗口的大小。

http2-max-concurrent-streams

 

在单个连接上任何时刻都保持活动的 HTTP/2 流的最大数量。

http2-max-frame-size

 

最大的 HTTP/2 帧大小。

http2-max-header-list-size

 

服务准备接受的请求头部的最大尺寸。

max-buffered-request-size

16384

缓冲请求的最大尺寸(字节)。请求通常不会被缓冲,最常见的情形是为 POST 请求执行 SSL 重新协商时,必须缓冲完整的 post 数据来执行重新协商。

max-connections

 

并发连接的最大数量

max-cookies

200

将被解析的 Cookie 的最大数量。这被用于保护 Hash 漏洞。

max-header-size

1048576

HTTP 请求头部的最大尺寸(字节)。

max-headers

200

将被解析的头部的最大数量。这被用于保护 Hash 漏洞。

max-parameters

1000

将被解析的参数的最大数量。这被用于保护 Hash 漏洞。它适用于两个查询参数和 POST 数据,但不是累积的。例如,您可以有最多参数 * 2 的总共参数。

max-post-size

10485760

将被接受的 POST 数据的最大尺寸。

no-request-timeout

 

在连接被容器关闭之前可以处于空闲状态的时间(毫秒)。

proxy-address-forwarding

false

是否启用 x-forwarded-host 和类似的头部并设置远程的 IP 地址和主机名

read-timeout

 

配置套接字读超时(毫秒)。如果超过给定的时间而没有成功读取,套接字的下一次读取将抛出 {@link ReadTimeoutException}。

receive-buffer

 

接收缓冲大小。

record-request-start-time

false

是否记录请求的开始时间,允许记录请求时间。这对性能的影响虽小但却是明显的。

redirect-socket

 

如果这个 Listener 支持非 SSL 请求,而请求通过要求 SSL 的传输接收的,Undertow 将自动重定向请求至这里指定的套接字绑定端口。

request-parse-timeout

 

解析请求所花费的最长时间(毫秒)。

resolve-peer-address

false

启用主机 DNS 查找

send-buffer

 

发送缓冲大小。

socket-binding

 

这个 Listener 的套接字绑定。

tcp-backlog

 

用指定的 backlog 配置服务器。

tcp-keep-alive

 

配置频道以依赖于实现的方式发送 TCP keep-alive 消息。

url-charset

UTF-8

URL 字符集。

worker

default

listener 的 XNIO 工作节点。

write-timeout

 

配置套接字写超时(毫秒)。如果超过给定的时间而没有成功写入,套接字的下一次写入将抛出 {@link WriteTimeoutException}。

以下属性是只读的,并只在 undertow 子系统启用了统计功能时有效:

表 A.59. http-listener 度量属性

属性Default描述

bytes-received

 

这个 Listener 已接收了字节数量。

bytes-sent

 

这个 Listener 已发送出去的字节数量。

error-count

 

这个 Listener 已发送的 500 响应的数量。

max-processing-time

 

这个 Listener 上处理请求的最长时间。

processing-time

 

这个 Listener 处理所有请求的总共时间。

request-count

 

这个 Listener 已服务的请求的数量。

https-listener 属性

表 A.60. https-listener 属性

属性Default描述

allow-encoded-slash

false

如果请求中包括经过编码的字符(如 %2F),是否需要对它们进行解码。

allow-equals-in-cookie-value

false

是否允许不加引号的 Cookie 值里出现非转义的等号字符。不加引号的 Cookie 值可能没有包含等号,如果有等号,值将到等号为止,后面的部分将被忽略。

always-set-keep-alive

true

是否在响应里加入 Connection: keep-alive 头部,即使规格并没有严格要求它。

buffer-pipelined-data

true

是否应该缓冲管线请求。

buffer-pool

default

Listener 的缓冲池。

decode-url

true

解析器是否用所选的字符编码(默认是 UTF-8)解码 URL 和查询参数。如果为 false,则不会进行解码。这将允许之后的处理程序将它们解码至所要的字符集。

disallowed-methods

["TRACE"]

逗号分开的不允许的 HTTP 方法列表。

enable-http2

false

为这个 Listener 启用 HTTP2 支持。

enable-spdy

false

为这个 Listener 启用 SPDY 支持。

enabled

true

是否启用 listener。

enabled-cipher-suites

 

配置已启用 SSL 的密码。

enabled-protocols

 

配置 SSL 协议。

http2-enable-push

true

是否为这个连接启用服务器推送。

http2-header-table-size

 

用于 HPACK 压缩的头部表的大小(字节)。用于压缩的内存数量将为每个连接进行分配。越大的值使用越多的内存,但可能提供越好的压缩性能。

http2-initial-window-size

 

控制客户发送数据至服务器的速度的流控制窗口的大小。

http2-max-concurrent-streams

 

在单个连接上任何时刻都保持活动的 HTTP/2 流的最大数量。

http2-max-frame-size

 

最大的 HTTP/2 帧大小。

http2-max-header-list-size

 

服务准备接受的请求头部的最大尺寸。

max-buffered-request-size

16384

缓冲请求的最大尺寸(字节)。请求通常不会被缓冲,最常见的情形是为 POST 请求执行 SSL 重新协商时,必须缓冲完整的 post 数据来执行重新协商。

max-connections

 

并发连接的最大数量

max-cookies

100

将被解析的 Cookie 的最大数量。这被用于保护 Hash 漏洞。

max-header-size

1048576

HTTP 请求头部的最大尺寸(字节)。

max-headers

200

将被解析的头部的最大数量。这被用于保护 Hash 漏洞。

max-parameters

1000

将被解析的参数的最大数量。这被用于保护 Hash 漏洞。它适用于两个查询参数和 POST 数据,但不是累积的。例如,您可以有最多参数 * 2 的总共参数。

max-post-size

10485760

将被接受的 POST 数据的最大尺寸。

no-request-timeout

 

在连接被容器关闭之前可以处于空闲状态的时间(毫秒)。

read-timeout

 

配置套接字读超时(毫秒)。如果超过给定的时间而没有成功读取,套接字的下一次读取将抛出 {@link ReadTimeoutException}。

receive-buffer

 

接收缓冲大小。

record-request-start-time

false

是否记录请求的开始时间,允许记录请求时间。这对性能的影响虽小但却是明显的。

request-parse-timeout

 

解析请求所花费的最长时间(毫秒)。

resolve-peer-address

false

启用主机 DNS 查找

security-realm

 

listener 的安全区。

send-buffer

 

发送缓冲大小。

socket-binding

 

Listener 的套接字绑定。

ssl-session-cache-size

 

活动的 SSL 会话的最大数量。

ssl-session-timeout

 

SSL 会话的超时时间(秒)。

tcp-backlog

 

用指定的 backlog 配置服务器。

tcp-keep-alive

 

配置频道以依赖于实现的方式发送 TCP keep-alive 消息。

url-charset

UTF-8

URL 字符集。

verify-client

NOT_REQUESTED

用于 SSL 频道的 SSL 客户验证模式。

worker

default

listener 的 XNIO 工作节点。

write-timeout

 

配置套接字写超时(毫秒)。如果超过给定的时间而没有成功写入,套接字的下一次写入将抛出 {@link WriteTimeoutException}。

以下属性是只读的,并只在 undertow 子系统启用了统计功能时有效:

表 A.61. https-listener 度量属性

属性Default描述

bytes-received

 

这个 Listener 已接收了字节数量。

bytes-sent

 

这个 Listener 已发送出去的字节数量。

error-count

 

这个 Listener 已发送的 500 响应的数量。

max-processing-time

 

这个 Listener 上处理请求的最长时间。

processing-time

 

这个 Listener 处理所有请求的总共时间。

request-count

 

这个 Listener 已服务的请求的数量。

ajp-listener 属性

表 A.62. ajp-listener 属性

属性Default描述

allow-encoded-slash

false

如果请求中包括经过编码的字符(如 %2F),是否需要对它们进行解码。

allow-equals-in-cookie-value

false

是否允许不加引号的 Cookie 值里出现非转义的等号字符。不加引号的 Cookie 值可能没有包含等号,如果有等号,值将到等号为止,后面的部分将被忽略。

always-set-keep-alive

true

是否在响应里加入 Connection: keep-alive 头部,即使规格并没有严格要求它。

buffer-pipelined-data

true

是否缓冲管线请求(pipelined request)。

buffer-pool

default

AJP Listener 的缓冲池。

decode-url

true

如果为 true,解析器将用所选的字符编码(默认是 UTF-8)解码 URL 和查询参数。如果为 false,则不会进行解码。这将允许之后的处理程序将它们解码至所要的字符集。

disallowed-methods

["TRACE"]

逗号分开的不允许的 HTTP 方法列表。

enabled

true

是否启用 listener。

max-ajp-packet-size

 

支持的 AJP 数据包的最大尺寸。如果它被修改,在负载平衡器和后台服务器上都应增大。

max-buffered-request-size

16384

缓冲请求的最大尺寸(字节)。请求通常不会被缓冲,最常见的情形是为 POST 请求执行 SSL 重新协商时,必须缓冲完整的 post 数据来执行重新协商。

max-connections

 

并发连接的最大数量

max-cookies

200

将被解析的 Cookie 的最大数量。这被用于保护 Hash 漏洞。

max-header-size

1048576

HTTP 请求头部的最大尺寸(字节)。

max-headers

200

将被解析的头部的最大数量。这被用于保护 Hash 漏洞。

max-parameters

100

将被解析的参数的最大数量。这被用于保护 Hash 漏洞。它适用于两个查询参数和 POST 数据,但不是累积的。例如,您可以有最多参数 * 2 的总共参数。

max-post-size

10485760

将被接受的 POST 数据的最大尺寸

no-request-timeout

 

在连接被容器关闭之前可以处于空闲状态的时间(毫秒)。

read-timeout

 

配置套接字读超时(毫秒)。如果超过给定的时间而没有成功读取,套接字的下一次读取将抛出 {@link ReadTimeoutException}。

receive-buffer

 

接收缓冲大小。

record-request-start-time

false

是否记录请求的开始时间,允许记录请求时间。这对性能的影响虽小但却是明显的。

redirect-socket

 

如果这个 Listener 支持非 SSL 请求,而请求通过要求 SSL 的传输接收的,Undertow 将自动重定向请求至这里指定的套接字绑定端口。

request-parse-timeout

 

解析请求所花费的最长时间(毫秒)。

resolve-peer-address

false

启用主机 DNS 查找

scheme

 

listener 的模式,它可以是 HTTP 或 HTTPS。在默认情况下,这个模式将从转入的 AJP 请求里获取。

send-buffer

 

发送缓冲大小。

socket-binding

 

AJP Listener 的套接字绑定。

tcp-backlog

 

用指定的 backlog 配置服务器。

tcp-keep-alive

 

配置频道以依赖于实现的方式发送 TCP keep-alive 消息。

url-charset

UTF-8

URL 字符集。

worker

default

listener 的 XNIO 工作节点。

write-timeout

 

配置套接字写超时(毫秒)。如果超过给定的时间而没有成功写入,套接字的下一次写入将抛出 {@link WriteTimeoutException}。

以下属性是只读的,并只在 undertow 子系统启用了统计功能时有效:

表 A.63. ajp-listener 度量属性

属性Default描述

bytes-received

 

这个 Listener 已接收了字节数量。

bytes-sent

 

这个 Listener 已发送出去的字节数量。

error-count

 

这个 Listener 已发送的 500 响应的数量。

max-processing-time

 

这个 Listener 上处理请求的最长时间。

processing-time

 

这个 Listener 处理所有请求的总共时间。

request-count

 

这个 Listener 已服务的请求的数量。

host 属性

表 A.64. host 属性

属性Default描述

alias

 

用逗号分开的主机列表。

default-response-code

404

如果设置,这将是在请求的上下文不存在时送回的响应代码。

default-web-module

ROOT.war

默认的 Web 模块。

disable-console-redirect

false

如果为 true,不会为这个主机启用控制台重定向。

filter-ref 属性

表 A.65. filter-ref 属性

属性Default描述

predicate

 

Predicate 提供根据交换进行 true/false 决定的简单途径。许多处理程序都要求有条件地进行应用,而 Predicate 则提供了指定条件的通用途径。

priority

1

定义过滤器顺序,它应该为 1 或更大的数字。较大的数字会比相同上下文里的内容较早地包含在处理程序链里。

access-log 属性
注意

当使用管理 CLI 管理 access-log 元素时,它在 host 元素的 settings 中可用。例如:

/subsystem=undertow/server=default-server/host=default-host/setting=access-log:add
/subsystem=undertow/server=default-server/host=default-host/setting=access-log:read-resource

表 A.66. access-log 属性

属性Default描述

directory

${jboss.server.log.dir}

保存日志的目录。

extended

false

日志是否使用扩展的日志文件格式。

pattern

common

访问日志模式。

predicate

 

确定是否应该记录请求的 Predicate。

prefix

access_log

日志文件名称的前缀。

relative-to

 

这个目录相对的路径

rotate

true

是否每天轮换访问日志。

suffix

.log

日志文件名称的后缀。

use-server-log

false

日志是否应该写入到服务器日志,而不是单独的文件。

worker

default

用于日志的工作节点的名称。

single-sign-on 属性
注意

当使用管理 CLI 管理 single-sign-on 元素时,它在 host 元素的 settings 中可用。例如:

/subsystem=undertow/server=default-server/host=default-host/setting=single-sign-on:add
/subsystem=undertow/server=default-server/host=default-host/setting=single-sign-on:read-resource
重要

虽然从应用程序的角度来看,分布式的单点登录和之前的 JBoss EAP 里的版本没什么不同,在 JBoss EAP 7 里,验证信息的缓存和分布的处理是不同的。对于 JBoss EAP 7,当运行 HA 配置集时,每个主机默认都有自己的 infinispan 缓存,用以保存相关的会话的 SSO Cookie 信息。这个缓存基于 Web 缓存容器的默认缓存。JBoss EAP 也将处理所有主机的单独缓存之间的信息传播。

表 A.67. single-sign-on 属性

属性Default描述

cookie-name

JSESSIONIDSSO

cookie 的名称

domain

 

将被使用的 Cookie 域。

http-only

false

设置 Cookie httpOnly 属性。

路径

/

Cookie 路径。

secure

false

设置 Cookie 安全属性。

location 属性

表 A.68. location 属性

属性Default描述

handler

 

这个位置的默认处理程序。

A.22. HTTP 方法的默认行为

和之前的 JBoss EAP 版本里的 web 子系统相比,JBoss EAP 7.0 里的 undertow 子系统具有不同的 HTTP 方法的默认行为。下表列出了 JBoss EAP 7.0 里的默认行为。

表 A.69. HTTP 方法的默认行为

HTTP 方法JSPServlet静态的 HTML

GET

OK

取决于它的实现

OK

POST

OK

取决于它的实现

NOT_ALLOWED

HEAD

OK

取决于它的实现

OK

PUT

NOT_ALLOWED

取决于它的实现

NOT_ALLOWED

TRACE

NOT_ALLOWED

NOT_ALLOWED

NOT_ALLOWED

DELETE

NOT_ALLOWED

取决于它的实现

NOT_ALLOWED

OPTIONS

NOT_ALLOWED

取决于它的实现

OK

A.23. IO 子系统属性

表 A.70. worker 属性

属性Default描述

io-threads

 

要使用的 IO 线程的数量

stack-size

0

栈的大小

task-keepalive

60

任务的 Keep-alive 时间

task-max-threads

 

任务的最大线程数量

表 A.71. buffer-pool 属性

属性Default描述

buffer-size

 

缓冲的大小

buffers-per-slice

 

每个 slice 有多少个缓冲

direct-buffers

 

缓冲池是否使用直接缓冲

A.24. Remoting 子系统属性

表 A.72. remoting 属性

属性Default描述

worker-read-threads

1

为远程工作节点创建的读线程数量

worker-task-core-threads

4

用于远程工作节点任务线程池的核心线程的数量。

worker-task-keepalive

60

保持非核心远程工作节点任务线程活动的时间(毫秒)。

worker-task-limit

16384

在拒绝前允许远程工作节点任务的最大数量。

worker-task-max-threads

16

用于远程工作节点任务线程池的线程的最大数量。

worker-write-threads

1

为远程工作节点创建的写线程数量

重要

remoting 元素的上述属性已被启用。现在应该配置这些属性使用 io 子系统。

表 A.73. 端点属性

属性Default描述

auth-realm

 

如果没有指定验证 CallbackHandler 时使用的验证区。

authentication-retries

3

指定关闭连接前允许客户重试验证的次数。

authorize-id

 

SASL 验证 ID。它被用作如果没有指定验证 CallbackHandler 时使用的验证用户名,所选的 SASL 机制要求用户名。

buffer-region-size

 

分配的缓冲区的大小。

heartbeat-interval

2147483647

用于连接 Heartbeat 的间隔(毫秒)。如果在这段时间内,这个连接在转出方向是空闲的,Ping 消息将被发送,这将触发一个相应的回复信息。

max-inbound-channels

40

频道上并发的转入消息的最大数量。

max-inbound-message-size

9223372036854775807

允许的转入消息的最大尺寸。超过这个尺寸的消息在读取端和写入端都将抛出异常。

max-inbound-messages

80

连接支持的转入频道的最大数量。

max-outbound-channels

40

频道上并发的转出消息的最大数量。

max-outbound-message-size

9223372036854775807

发送的转出消息的最大尺寸。大于这个值的消息不会被传送,试图这样做会在写入端抛出异常。

max-outbound-messages

65535

连接支持的转出频道的最大数量。

receive-buffer-size

8192

这个端点将通过连接接受的最大缓冲的尺寸。

receive-window-size

131072

连接频道的接收方向的最大窗口大小(字节)。

sasl-protocol

remoting

创建 SaslServer 或 SaslClient 的地方,可用来覆盖默认指定的协议 remoting

send-buffer-size

8192

这个端点将通过连接传输的最大缓冲的尺寸。

server-name

 

连接的服务器端在初始 greeting 时将它的名称传给客户,默认这个名称将从连接的本地地址自动发现,或者它可以用这个属性进行覆盖。

transmit-window-size

131072

连接频道的传输方向的最大窗口大小(字节)。

worker

default

要使用的工作节点

注意

当使用管理 CLI 来更新 endpoint 元素时,它位于 remoting 元素下的 configuration,例如:/subsystem=remoting/configuration=endpoint/

连接器属性

连接器组件具有下列结构:

表 A.74. 连接器属性

属性Default描述

authentication-provider

 

authentication-provider 元素包含用于转入连接的验证提供者的名称。

sasl-protocol

remote

传入用于验证的 SASL 机制的协议。

security-realm

 

用于这个连接器的验证的相关安全区。

server-name

 

在初始消息交换里发送的、用于基于 SASL 验证的服务器名称。

socket-binding

 

套接字绑定附属的名称。

表 A.75. property 属性

属性Default描述

value

 

属性的值。

Security 属性

security 组件允许您配置连接器的安全性,但不包含直接的配置属性。它可以用嵌套组件进行配置,如 sasl

表 A.76. sasl 属性

属性Default描述

include-mechanisms

 

可选的嵌套 include-mechanisms 元素包含一个允许的 SASL 机制名称的白名单。这个列表里没有出现的机制将不被允许。

qop

 

可选的嵌套 qop 元素包含一个降序排列的 quality-of-protection 值的列表。

reuse-session

false

可选的嵌套 reuse-session 布尔型元素指定服务器是否应该尝试重用之前验证的会话信息。这个机制可能不支持这样的重用,而其他因素也可能会阻止它。

server-auth

false

可选的嵌套 server-auth 布尔型元素指定服务器是否应该验证客户。不是所有的机制都支持这个设置。

strength

 

可选的嵌套"strength"元素包含一个降序排列的密码强度值的列表。

sasl-policy 属性

sasl-policy 组件允许您指定可选的策略以缩小可用的机制集合,但它不包含直接的配置属性。它可以用嵌套组件进行配置,如 policy

表 A.77. policy 属性

属性Default描述

forward-secrecy

true

可选的嵌套 forward-secrecy 元素包含一个布尔值,它指定是否要求实现在会话间转发秘密的机制。转发秘密意味着插入某个会话不会自动提供插入以后的会话的信息。

no-active

true

可选的嵌套 no-active 元素包含一个布尔值,它指定是否允许易受主动(非目录)攻击的机制。false 为允许,而 true 为拒绝。

no-anonymous

true

可选的嵌套 no-anonymous 元素包含一个布尔值,它指定是否允许接受匿名登录的机制。false 为允许,而 true 为拒绝。

no-dictionary

true

可选的嵌套 no-dictionary 元素包含一个布尔值,它指定是否允许易受被动目录攻击的机制。false 为允许,而 true 为拒绝。

no-plain-text

true

可选的嵌套 no-plain-text 元素包含一个布尔值,它指定是否允许易受简单被动攻击(如 PLAIN)的机制。false 为允许,而 true 为拒绝。

pass-credentials

true

可选的嵌套 pass-credentials 元素包含一个布尔值,它指定是否要求传递客户凭证的机制。

HTTP 连接器属性

http-connector 组件具有下列结构:

表 A.78. http-connector 属性

属性Default描述

authentication-provider

 

authentication-provider 元素包含用于转入连接的验证提供者的名称。

connector-ref

 

undertow 子系统中连接到的连接器名称。

sasl-protocol

remote

传入用于验证的 SASL 机制的协议。

security-realm

 

用于这个连接器的验证的相关安全区。

server-name

 

在初始消息交换里发送的、用于基于 SASL 验证的服务器名称。

出站连接属性

outbound-connection 组件具有下列结构:

表 A.79. outbound-connection 属性

属性Default描述

uri

 

出站连接的连接 URL。

表 A.80. property 属性

属性Default描述

value

 

属性的值。

注意

上面的 property 属性和将在连接创建过程中使用的 XNIO 选项相关。

远程出站连接

remote-outbound-connection 组件具有下列结构:

表 A.81. remote-outbound-connection 属性

属性Default描述

outbound-socket-binding-ref

 

用来确定连接的目的地址和端口的 outbound-socket-binding 的名称。

protocol

http-remoting

用于远程连接的协议。默认是 http-remoting

security-realm

 

对用于获取密码和 SSL 配置的安全区的引用。

username

 

对远程服务器进行验证时使用的用户名。

本地出站连接属性

local-outbound-connection 组件具有下列结构:

表 A.82. local-outbound-connection 属性

属性Default描述

outbound-socket-binding-ref

 

用来确定连接的目的地址和端口的 outbound-socket-binding 的名称。

A.25. Apache HTTP Server 的 mod_cluster 指令

mod_cluster 连接器是一个基于 Apache HTTP Server 的负载平衡器。它使用一个通讯频道来转发来自 Apache HTTP Server 的请求至一系列应用服务器节点中的一个。下列指令可以用来配置 mod_cluster。

注意

使用 ProxyPass 指令是没有必要的,因为 mod_cluster 会自动配置必须转发至 Apache HTTP Server 的 URL。

表 A.83. mod_cluster 指令

指令描述

CreateBalancers

定义在 Apache HTTP Server VirtualHost 里如何创建平衡器。它允许这样的指令:ProxyPass /balancer://mycluster1/

  • 0:创在 Apache HTTP Server 里定义的所有虚拟主机
  • 1:不创建平衡器(要求至少一个 ProxyPassProxyMatch 来定义平衡器名称)
  • 2:只创建主要的服务器(默认)

UseAlias

点击对应服务器名称的别名。

  • 0:忽略别名(默认)
  • 1:检查别名

LBstatusRecalTime

负载平衡逻辑重新计算节点状态的时间间隔(秒)。

默认值:5 秒

WaitBeforeRemove

已删除的节点被 HTTPD 遗忘之前的时间(秒)。

默认:10 秒

ProxyPassMatch/ProxyPass

ProxyPassMatch 和 ProxyPass 都是 mod_proxy 的指令,当使用 ! (而不是 back-end URL) 时,它阻止路径里的 reverse-proxy。它可以允许 Apache HTTP Server 提供静态内容。例如,ProxyPassMatch ^(/.*\.gif)$ !,这个例子允许 Apache HTTP Server 直接提供 .gif 文件。

 

如果所有其他的节点都已下线,mod_cluster 逻辑里的 hot-standby 节点是所有请求都去往的最后的应急节点。这和 mod_proxy 里的 hot-standby 逻辑类似。

要配置 hot-standby 节点,请用 simple-load-provider 替换 modcluster 子系统里的 dynamic-load-provider(将 factor 设置为 0),例如:

<subsystem xmlns="urn:jboss:domain:modcluster:2.0">
  <mod-cluster-config advertise-socket="modcluster" connector="ajp">
    <dynamic-load-provider>
      <load-metric type="cpu"/>
    </dynamic-load-provider>
    <simple-load-provider factor="0"/>
  </mod-cluster-config>
</subsystem>

mod_cluster-manager 控制台里,节点显示为 OK 状态和 Load: 0

例如,有三个节点:

  • Node A, Load: 10
  • Node B, Load: 10
  • Node C, Load: 0

负载将在节点 A 和 B 间进行平衡。如果两者都不可用,那么节点 C 将承担负载。

mod_manager

除了另有说明,mod_manager 指令的上下文总是 VirtualHost。server config 上下文暗示指令必须位于 VirtualHost 配置的外面。否则将显示错误信息且 Apache HTTP Server 不会启动。

表 A.84. mod_manager 指令

指令描述

EnableMCPMReceive

允许 VirtualHost 从节点接收 MCPM。在 Apache HTTP Server 配置里包含 EnableMCPMReceive 以允许 mod_cluster 正常运行。将其保存在 VirtualHost 里您配置广告的地方。

 

MemManagerFile

mod_manager 用来存储配置、生成用于共享内存或锁定文件的密钥的基础名称。它必须是一个绝对路径名称,目录根据需要来创建。我们推荐将这些文件放入本地磁盘而不是 NFS 共享位置。

$server_root/logs/

Maxcontext

mod_cluster 支持的最大上下文数量

默认值:100

Maxnode

mod_cluster. Context: server config 支持的最大节点数量

默认值:20

Maxhost

mod_cluster 支持的最大主机(别名)数量。它也包含平衡器的最大数量。

默认值:20

Maxsessionid

提供 mod_cluster-manager 处理程序里活动会话数量的活动 sessionid 的数量。当 mod_cluster 在 5 分钟内没有从会话接收任何信息时,会话就是非活动的。这个字段仅用于演示和调试目的。

0:逻辑未激活。

MaxMCMPMaxMessSize

来自其他 Max 指令的 MCMP 消息的最大尺寸

从其他 Max 指令计算的最小值:1024

ManagerBalancerName

当 JBoss EAP 实例没有提供平衡器名称时使用的平衡器名称。

mycluster

PersistSlots

告诉 mod_slotmem 将节点、编码和上下文持久化至文件里。

Off

CheckNonce

当使用 mod_cluster-manager 处理程序时切换 nonce 的检查。

on/off 默认:on - 已检查 Nonce

AllowDisplay

切换 mod_cluster-manager 主页上的其他显示。

on/off 默认:off - 只显示版本

AllowCmd

允许使用 mod_cluster-manager URL 的命令。

on/off 默认:on - 允许的命令

ReduceDisplay

减少 mod_cluster-manager 主页上显示的信息,从而可以显示更多的节点。

on/off 默认:off - 显示完整信息

SetHandler mod_cluster-manager

显示 mod_cluster 从集群获得的节点信息。这些信息包含普通信息以及活动会话的计数。

<Location /mod_cluster-manager>
  SetHandler mod_cluster-manager
  Require ip 127.0.0.1
</Location>

on/off 默认:off

注意

当访问 httpd.conf 里定义的位置时:

  • Transferred:对应发送至后台服务器的 POST 数据。
  • Connected:对应当 mod_cluster 状态页面被请求时已处理的请求数量。
  • Num_sessions:对应 mod_cluster 报告为活动(过去 5 分钟内有请求)的会话数量。当 Maxsessionid 为 0 时,这个字段不会出现。它仅用于演示和调试目的。

A.26. ModCluster 子系统属性

modcluster 子系统具有以下结构:

表 A.85. mod-cluster-config 配置选项

属性Default描述

advertise

true

是否使用 Advertise 逻辑。

advertise-security-key

 

包含用于 Advertise 逻辑的安全密钥的字符串。

advertise-socket

 

用于 Advertise 套接字的套接字绑定的名称。

auto-enable-contexts

true

即使 mod_cluster_manager (httpd) 里禁用也启用上下文。

balancer

 

平衡器的名称。

connector

 

mod_cluster 反向代理将连接的 Undertow listener 的名称。

excluded-contexts

 

mod_cluster 应该忽略的上下文列表,它是用逗号隔开的格式化字符串。

flush-packets

false

启用/禁用 HTTPD 里的数据包冲刷。

flush-wait

-1

冲刷 HTTPD 里的数据包前等待的时间。最大值是 2,147,483,647

load-balancing-group

 

loadBalancingGroup 的名称。

max-attempts

1

处理幂等请求(idempotent request)的最多尝试次数。允许的值介于 -12,147,483,647 之间。

node-timeout

-1

节点的代理连接的超时时间(秒)。允许的值介于 -12,147,483,647 之间。

ping

10

等待对 ping 的 pong 回复的时间(秒)。

proxies

 

mod_cluster 用 socket-binding-group 里定义的 outbound-socket-binding 注册的代理的列表。

proxy-list

 

代理的列表。格式为用逗号隔开的字符串(hostname:port)。

注意

proxy-list 属性已被弃用,转而使用 proxies 属性(对 outbound-socket-binding 引用的列表)。

proxy-url

/

MCMP 请求的基础 URL。

session-draining-strategy

DEFAULT

卸载 Web 应用程序时的会话消耗策略。

simple-load-provider

 

简单的负载提供者。允许的值介于 02,147,483,647 之间。

smax

-1

HTTPD 里的软空闲连接计数的最大值。允许的值介于 -12,147,483,647 之间。

socket-timeout

20

等待 HTTPD 响应 MCMP 消息的超时时间。允许的值介于 12,147,483,647 之间。

status-interval

10

STATUS 消息从应用范围器发送至反向代理花费的时间(秒)。允许的值介于 12,147,483,647 之间。

sticky-session

true

对请求使用粘性会话。

sticky-session-force

false

不要用会话信息对请求进行失效切换。

sticky-session-remove

false

在失效切换时删除会话信息。

stop-context-timeout

10

等待上下文处理待定请求的最长时间。允许的值介于 12,147,483,647 之间。

ttl

-1

空闲连接超过 smax 的存活时间(秒)。允许的值介于 -12,147,483,647 之间。

worker-timeout

-1

HTTPD 里等待可用工作节点处理请求的超时时间。允许的值介于 -12,147,483,647 之间。

表 A.86. dynamic-load-provider 配置选项

属性Default描述

decay

2

延迟。

history

9

历史。

表 A.87. custom-load-metric 属性选项

属性Default描述

capacity

1.0

度量的容量。

class

 

自定义度量的类名。

property

 

度量的属性。

weight

1

度量的权重。

表 A.88. load-metric 属性选项

属性Default描述

capacity

1.0

度量的容量。

property

 

度量的属性。

type

 

度量的类型。

weight

1

度量的权重。

表 A.89. ssl 属性选项

属性Default描述

ca-certificate-file

 

证书机构。

ca-revocation-url

 

证书认证机构的撤销列表。

certificate-key-file

${user.home}/.keystore

证书的密钥文件。

cipher-suite

 

允许的密码套件。

key-alias

 

密钥别名。

password

changeit

密码。

protocol

TLS

已启用的 SSL 协议。

A.27. mod_jk 工作节点属性

workers.properties 文件定义 mod_jk 传入客户请求的工作节点的行为。workers.properties 文件定义不同的应用服务器所在的位置,以及如何在它们之间进行负载平衡。

属性的常用结构是 worker.WORKER_NAME.DIRECTIVEWORKER_NAME 是必须匹配 JBoss EAP undertow 子系统里配置的 instance-id 的唯一名称。DIRECTIVE 是应用至工作节点的设置。

用于 Apache mod_jk 负载平衡器的配置引用

模板指定默认的 per-load-balancer 设置。您可以在 load-balancer 设置里覆盖这个模板。

表 A.90. 全局属性

属性描述

worker.list

用逗号隔开的将被 mod_jk 使用的工作节点列表。

表 A.91. 强制的指令

属性描述

type

工作节点的类型。默认类型是 ajp13。其他可能的值还有 ajp14lbstatus。关于这些指令的更多信息,请参考 https://tomcat.apache.org/connectors-doc/reference/workers.html 上的《Apache Tomcat Connectors Reference》。

表 A.92. 负载平衡指令

属性描述

balance_workers

指定负载平衡器必须管理的工作节点。您可以对相同的负载平衡器多次使用这个指令。它由一个用逗号隔开的工作节点名称列表组成。

sticky_session

指定来自相同会话的请求是否总被路由至相同的工作节点。默认值是 1,表示启用粘性会话。要禁用粘性会话,请将其设置为 0。通常应该启用粘性会话,除非所有的请求都是完全无状态的。

表 A.93. 连接指令

属性描述

host

后台服务器的主机名或 IP 地址。后台服务器必须支持 ajp 协议栈。默认值是 localhost

port

后台服务器实例侦听定义的协议请求的端口。默认值是 8009,这是 AJP13 工作节点的默认侦听端口。AJP14 工作节点的默认值是 8011

ping_mode

检测连接的网络状态依据的条件。检测使用空的 AJP13 数据包进行 CPing,期待 CPong 响应。使用指令标记组合来指定条件。这些标记不是用逗号或其他任何空格隔开的。ping_mode 可以是 C、P、I 和 A 的任意组合。

  • C - Connect。在连接服务器后探测一次连接。用 connect_timeout 指定超时时间。否则将使用 ping_timeout。
  • P - Prepost。在发送每个请求至服务器前探测连接。用 prepost_timeout 指令指定超时时间。否则将使用 ping_timeout。
  • I - Interval。 按 connection_ping_interval 指定的时间间隔探测连接,否则将使用 ping_timeout。
  • A - 全部。C、P、I 的快捷方式,它表示使用所有的连接探测。

ping_timeout, connect_timeout, prepost_timeout, connection_ping_interval

上面的连接探测设置的超时时间。单位为毫秒,ping_timeout 的默认值是 10000。

lbfactor

指定单独的后台服务器实例的负载平衡因子。为功能越强的服务器赋予越多的负载是很有用的。要赋予某个工作节点 3 倍于默认的负载,请将其设置为 3: worker.my_worker.lbfactor=3

下面的例子演示了用两个侦听端口 8009 工作节点(node1node2)间的粘性会话进行负载平衡。

workers.properties 文件示例

# Define list of workers that will be used for mapping requests
worker.list=loadbalancer,status

# Define Node1
# modify the host as your host IP or DNS name.
worker.node1.port=8009
worker.node1.host=node1.mydomain.com
worker.node1.type=ajp13
worker.node1.ping_mode=A
worker.node1.lbfactor=1

# Define Node2
# modify the host as your host IP or DNS name.
worker.node2.port=8009
worker.node2.host= node2.mydomain.com
worker.node2.type=ajp13
worker.node2.ping_mode=A
worker.node2.lbfactor=1

# Load-balancing behavior
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2
worker.loadbalancer.sticky_session=1

# Status worker for managing load balancer
worker.status.type=status

关于 Apache mod_jk 的进一步配置超出了本文档的范畴,您可以在Apache 文档里找到它们。

A.28. 安全管理者子系统属性

security-manager 子系统自身没有可配置属性,但它有一个带有可配置属性的子资源:deployment-permissions=default

表 A.94. 默认的配置选项

属性Default描述

maximum-permissions

 

赋予部署或 JAR 的最大权限集。

minimum-permissions

 

赋予部署或 JAR 的最小权限集。





Revised on 2018-01-12 05:20:26 EST