手动剪裁 server.xml

server.xml 文件用于配置 Liberty 服务器。 您的 CICS® 区域用户 ID 需要对 server.xml 文件具有读写访问权限。

服务器配置的规则

Liberty 允许定制 server.xml。 更多信息,请参阅服务器配置

配置 HTTP 端点

如果要对应用程序进行 Web 访问,请使用所需的主机名和端口号更新 httpEndpoint 属性。

使用 CICS 区域可单独或作为共享端口打开的端口号。

必须配置 TLS 才能启用 HTTPS。 更多信息,请参阅配置机密性和完整性

必须配置 HTTPS 端口才能使用 CICS 默认网络应用程序 (cicsts:defaultApp-1.0)。

图 1。 HTTP 主机 的端点配置 端口 和 端口。 zos.example.com HTTP 9080 HTTP 9443
<httpEndpoint host="zos.example.com" httpPort="9080" httpsPort="9443"
    id="defaultHttpEndpoint"/>

更多信息,请参阅自由概述

server.xml 中引用环境变量

server.xml中,您可以访问和引用现有环境变量。 请参阅在配置文件中使用变量

可以在 server.xml 中引用的变量可以包含您在 JVM 概要文件中设置的定制环境变量。 请参阅 CICS 环境中的 JVM 选项

添加功能部件

您必须在 featureManager 元素中添加以下功能之一。

  • 必须安装 CICS 核心功能 cicsts:core-1.0 才能启动 CICS 集成模式 Liberty JVM 服务器。 cicsts:core-1.0 功能将 Liberty 服务器与 CICS 整合,并提供对 CICS 资源的访问。 cicsts:core-1.0 功能为应用程序提供了 JCICS 和 JCICSX API。
  • 必须安装 CICS 标准模式功能 cicsts:standard-1.0 才能启动 CICS 标准模式 Liberty JVM 服务器。 缺省情况下, cicsts:standard-1.0 功能部件无权访问 CICS 资源。 更多信息,请参阅 CICS 标准模式 Liberty: Java EE 全平台支持,但未与 CICS 完全集成
重要信息: 其中一个 cicsts:core-1.0cicsts:standard-1.0 功能部件必须始终安装在 Liberty JVM 服务器中。 必须重新启动 Liberty JVM 服务器才能在这些方式之间切换,而不会丢失服务。

您可以添加 CICS 支持的任何 Liberty 功能。 有关更多信息,请参阅 Liberty 功能部件

CICS 提供了几种可添加到 Liberty JVM 服务器的功能。

  • CICS 安全功能 cicsts:security-1.0 将 CICS 安全与自由框架整合在一起。 cicsts:security-1.0 当 外部安全已启用时安装( CICSSEC=YES in SIT)。 配置用户注册表以使用 cicsts:security-1.0。 更多信息,请参阅 SAF 用户注册表
  • CICS 分布式身份映射功能 cicsts:distributedIdentity-1.0 可将分布式身份映射到 SAF 用户。
  • CICS 链接功能 cicsts:link-1.0 使 CICS 能够链接 Liberty JVM 服务器中的 Java™ 应用程序。 有关更多信息,请参阅使用 @CICSProgram 注解链接 Liberty JVM 服务器中的 Java 应用程序
  • CICS JDBC 功能 cicsts:jdbc-1.0 使应用程序能够通过 API 访问 Db2JDBC API (java.sql.DriverManager, javax.sql.DataSource, 和其他类)。 有关更多信息,请参阅使用 JDBC 配置数据库连接
  • CICS 默认 Web 应用程序功能 cicsts:defaultApp-1.0 可启用验证 Liberty JVM 服务器启动的配置服务。 有关详细信息,请参阅 CICS 默认网络应用程序
  • JCICSX远程开发功能 cicsts:jcicsxServer-1.0 ,使服务器能够接收来自使用JCICSX API类的Java应用程序的远程请求。 更多信息,请参阅使用 JCICSX 进行 Java 开发
图 2。 配置自由功能
<featureManager>
    <feature>cicsts:core-1.0</feature>
    <feature>cicsts:security-1.0</feature>
    <feature>cicsts:jdbc-1.0</feature>
</featureManager>

CICS 束已部署的应用程序

如果要部署使用 CICS 束的 Liberty 应用程序,那么 server.xml 文件必须包含以下条目:
<include location="${server.config.dir}/installedApps.xml"/>
包含的文件用于定义 CICS 束已部署的应用程序。

包括其他配置文件

要维护 Liberty 服务器配置,可以将其分成多个文件。 include 元素用于在 server.xml 中包含其他配置文件。 LIBERTY_INCLUDE_XML JVM 配置文件选项用于将 include 元素自动添加到 CICS 的 server.xml 文件中。

图 3。 包括 server.xml/path/to/include/file.xml 位置的文件。
<include location="/path/to/include/file.xml" />
图 4: 包括 JVM 配置文件中 /path/to/include/file.xml 位置的文件。
LIBERTY_INCLUDE_XML=/path/to/include/file.xml

有关在 Liberty 中包含配置文件的更多信息,请参阅在配置文件中使用包含元素

有关 LIBERTY_INCLUDE_XML JVM 配置文件选项的更多信息,请参阅 CICS 环境中 JVM 的选项

捆绑包存储库 (bundle repository)

bundleRepository 元素用于共享目录中的通用 OSGi 捆绑包。
图 5. 捆绑资源库包括目录 /path/to/repository 中的所有 JAR 文件。
<bundleRepository> 
    <fileset dir="/path/to/repository" include="*.jar"/>
</bundleRepository>

全局或共享库

library 元素用于在网络应用程序之间共享通用 JAR 文件。 全局库与 Liberty 服务器上的所有网络应用程序共享 JAR 文件。 共享库被添加到依赖于 JAR 文件的应用程序的类路径中。

图 6. 一个全局库,包含 /path/to/library 目录中的所有 JAR 文件。
<library id="global">
    <fileset dir="/path/to/library" include="*.jar"/>
</library>

EBA 中的 OSGi 应用程序必须使用 bundle 资源库,不能访问库中的 JAR 文件。 有关详细信息,请参阅为所有 Enterprise Java 应用程序提供全局库共享库

Liberty 服务器应用程序和配置更新监视

Liberty 会扫描 server.xml 文件及其包含的文件,以查找更新。 默认情况下,它每 500 毫秒轮询一次文件更改。 要更改该值,请配置 config 元素并设置 monitorInterval 属性。 CICS server.xml 模板和自动配置处理将 monitorInterval 设置为 5 秒。

applicationMonitor 元素配置 Liberty 如何监控应用程序的更新。 CICS server.xml 模板和自动配置处理会禁用应用程序监控。

applicationMonitor 元素还配置了如何处理投递申请。 要停止处理插入式申请,请将 dropinsEnabled 属性设为 false

图 7. 用于配置和应用监控的配置。 配置文件每 5 秒轮询更新一次,禁用应用程序监控,禁用插入式应用程序。
<config monitorInterval="5s" updateTrigger="polled"/>
<applicationMonitor updateTrigger="disabled" dropinsEnabled="false"/>

更多信息,请参阅控制动态更新

JTA 事务日志

使用 Java 事务 API (JTA) 时, Liberty 事务管理器会将其可恢复日志文件存储在 zFS 归档系统中。 事务日志的缺省位置为 ${WLP_USER_DIR}/tranlog/。 可以通过向 server.xml添加 transaction 元素来覆盖此位置。

图 8. 将 JTA 事务日志目录设置为 /u/cics/CICSPRD/DFHWLP/tranlog 的配置。
<transaction transactionLogDirectory="/u/cics/CICSPRD/DFHWLP/tranlog/"/>

CICS 缺省 Web 应用程序

CICS 默认 Web 应用程序是一个配置服务,用于验证 Liberty JVM 服务器的启动。 要使应用程序可用,请确保在 JVM 配置文件中将 JVM 配置文件选项 com.ibm.cics.jvmserver.wlp.defaultapp 设置为 true

或者,从 JVM 配置文件中移除该属性,并将 cicsts:defaultApp-1.0 功能直接添加到 server.xml

需要一个 HTTPS 端口。 调用 URL https://server:httpsPort/com.ibm.cics.wlp.defaultapp/ 运行应用程序。

图 9. CICS 默认网络应用配置
<server>
    <featureManager>
        <feature>cicsts:code-1.0</feature>
        <feature>cicsts:defaultApp-1.0</feature>
    </featureManager>

    <httpEndpoint httpPort="9080" httpsPort="9443" host="zos.example.com" />
</server>

SAF 用户注册表

定义 SAF 注册表以使用 CICS 安全功能,除非你将分布式身份映射到 SAF 用户。

图 10. 自由 SAF 登记册
<safRegistry enableFailover="false" id="saf" />

有关详细信息,请参阅配置 Liberty 以使用 SAF 用户注册表

CICS JTA 集成

如果 Liberty 使用 XA 事务,那么缺省情况下, CICS 工作单元将成为 XA 事务的下级。 您可以通过设置 JVM 概要文件选项 com.ibm.cics.jvmserver.wlp.jta.integration=false来选择退出 CICS 与 JTA 的此自动集成。 或者,您可以直接在 server.xml中手动设置 cicsts_jta 元素。

图 11. 配置禁用 CICS 与 JTA 的事务集成
<cicsts_jta integration="false"/>

修改轻量级第三方认证 (LTPA) 支持

缺省情况下,当为 Liberty 服务器启用安全性时,将配置 LTPA。 LTPA 使 Web 用户能够在不同应用程序或服务器之间复用其已登录的凭证,并且令牌由 Liberty 服务器拥有的密钥进行签名。

在安全部署方案中,修改 LTPA 密钥文件的缺省密码以保护服务器安全性。 您还可以修改令牌的到期时间间隔,并更改缺省文件位置。 必须修改文件位置以在多个 Liberty 服务器之间共享密钥。

配置 CDI bean 扫描

使用上下文和依赖注入(CDI)的应用程序会在启动时扫描 CDI Bean。 在所有应用程序(包括不使用 CDI 的应用程序)上扫描 CDI Bean 会增加启动时间。

CICS server.xml 模板将 Liberty 配置为不扫描应用程序的 CDI Bean,除非它们被定义为显式 Bean 存档。 通过使用 .jar 文件 META-INF 目录下的 beans.xml 文件或 .war 文件 WEB-INF 目录下的 文件,可定义显式 bean 存档。 beans.xml 文件可以是空的,也可以包含 CDI 规范定义的 XML 内容。

图 12. beans.xml CDI 的文件内容 4.0
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="https://jakarta.ee/xml/ns/jakartaee"
    xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
    version="4.0"
    bean-discovery-mode="annotated">
</beans>

cdi 元素用于配置 Liberty 中 CDI 的行为。

图 13. 配置在不包含 beans.xml 文件的应用程序中停止扫描 CDI Bean。
<cdi enableImplicitBeanArchives="false"/>

有关详细信息,请参阅管理上下文和自由上的依赖注入应用程序