使用样本作业 EQARMTSU 进行定制

您需要在 z/OS® UNIX 中创建目录,并将样本配置文件从安装目录复制到这些目录中,以便进行定制。 提供了样本作业 EQAW.SEQASAMP(EQARMTSU) 以帮助您完成这些任务。

遵循 EQARMTSU 成员中的指示信息并提交作业以定制安装。 该作业执行以下任务:
  • 创建 /etc/debug/* 并使用样本配置文件对其进行填充。
  • 创建 /var/debug/* 作为运行服务所需的工作目录。
  • 为文件和目录设置适当的 z/OS UNIX 文件权限。
样本作业将 eqarmtd.enveqahcc.env 样本文件复制到 /etc/debug 。 在 /etc/debug 下编辑这些文件,并对其进行定制以与您的系统环境匹配:
eqarmtd.env
用于控制的环境变量,例如:
  • 要用于服务的内部和外部端口。
  • SSL 加密的安全密钥库文件应存放在何处? 您可以使用位于 /etc/debug 目录中的 调试概要文件服务 中的样本密钥库文件。
  • 是否允许无头代码覆盖收集, 以及每秒允许的请求数和并发请求数 代码覆盖服务
以下环境变量可用于 远程调试服务:
java_dir = "java_directory"
64 位 Java SDK 的主目录。 例如: java_dir="/usr/lpp/java/J17.0_64"
port_internal = "port_number"
服务侦听来自本地 z/OS 机器的内部调试后端连接的端口号。 如果需要对 local host -localhost 连接进行加密,请使用 AT- TLS 来保护此端口。
此端口是必需的。
allow_unsecured_remote_connections = "true "
允许内部端口号也侦听来自远程调试客户机的不安全入局请求。
取消注释此行以允许在 port_internal上侦听不安全的远程连接。
port_external = "port_number"
服务侦听来自远程调试客户机的入局请求的端口号。
AT- TLS 可用于保护此端口的安全。 此选项与 port_external_secure互斥。
必须指定 port_externalport_external_secure,但不能同时指定两者。
port_external_secure = "port_number"
服务侦听来自远程调试客户机的安全入局请求的端口号。 此端口由 Java 加密。 请勿使用 AT- TLS 来保护此端口的安全。
必须指定 port_externalport_external_secure,但不能同时指定两者。
port_external_secure 指定 TLS 时,必须同时指定其密钥库和密码的值。
keystoreFile="keystore_file"
存储远程调试服务( TLS )服务器证书的密钥库文件的全限定路径。 该密钥库还可以包含自签名或内部签名 CA 证书,当远程调试服务向调试配置文件服务发出身份验证调用时,这些证书应被信任。
keystorePass="password"
用于从密钥库文件访问服务器证书的密码。
keystorePassFile ="keystore_password_file "
使用 z/OS 调试器密码文件生成工具生成的加密密钥库密码文件的路径名称。 有关此工具的详细信息,请参阅为远程调试服务生成安全的密钥库密码
注:
  • 请仅指定 keystorePasskeystorePassFile。 如果两个变量都指定了,远程调试服务将使用密钥库密码文件中定义的加密密码。
  • 建议使用 keystorePassFile 建议使用 keystorePass ,以防止以明文形式存储密码。
basic Auth="true"
允许用户使用基本认证(用户名+密码)进行连接。
bearer Auth="true"
允许用户使用承载器/令牌验证(JWT,包括 MFA)进行连接。
debugProfileServiceBaseURI="https://localhost:8143/api/v1"
调试配置文件服务实例的 URL ,用于验证启用无记名/令牌认证时使用的JWT令牌。 如果调试配置文件服务使用自签名证书或内部签名 CA,则应将这些证书放在远程调试服务使用的密钥库中,以表明它们是可信的(见keystoreFile
ADDITIONAL_CMDLINE_OPTS=" $ADDITIONAL_CMDLINE_OPTS -sessionTimeout=15 -sessionTimeoutAction=DISCONNECT "
可以强制执行超时规则来控制空闲或挂起的调试会话:
  • -sessionTimeout=<timeout 几分钟内>
  • -sessionTimeoutAction=<TERMINATE|TERMINATE_ABEND|DISCONNECT>
  • TERMINATE 将结束调试会话并终止应用程序。
  • TERMINATE_ABEND 将导致应用程序异常终止。
  • “DISCONNECT”将运行该应用程序直至完成。
OPENJ9_JAVA_OPTIONS= “ JVM 的其他选项
可以通过 OPENJ9_JAVA_OPTIONS 环境变量向 JVM 传递其他Java选项。
注意: 默认情况下,Java 11 及更高版本将使用最多 25% 的可用系统内存,该值可通过 -Xmx 选项进一步限制。
您可以对以下参数进行注释或取消注释:
  • 服务和调试连接的诊断跟踪:
    eqarmtd_logdir="$EQARMTD_WRK_DIR/logs"
    trace=true
  • 远程调试服务应用程序和调试连接的低级别跟踪:
    detailedTraceOptions="$EQARMTD_CFG_DIR/trace.options"
    detailedTrace=true
  • 创建文件或目录时使用的 umask 格式的文件许可权
    umask="u+rwx,go=rx"
  • 无外设代码覆盖和代码覆盖服务选项:
    headless_cc=true
    headless_cc_config=SharedServiceFiles/samples/eqahcc.env
    ccs_maxRequestsPerSec=25
    ccs_maxConcurRequests=20
    ccs_blockIPAccess=true
    headless_cc=true
    允许RDS以与无头代码覆盖范围收集器相同的方式收集代码覆盖范围。
    headless_cc_config=SharedServiceFiles/samples/eqahcc.env
    表示无头代码覆盖收集器启动选项的位置。
    ccs_maxRequestsPerSec=25
    如果无头采集器选项包括启动代码覆盖服务,该选项将配置 CCS 每秒支持的最大请求数。
    ccs_maxConcurRequests=20
    如果无头采集器选项包括启动代码覆盖服务,该选项将配置 CCS 支持的最大并发请求数。
    ccs_blockIPAccess=true
    表示 CCS 是否阻止通过 IP 地址(与名称)的访问。
eqahcc.env
用于控制的环境变量,例如:
  • 是否启动 代码覆盖服务。 要启动 代码覆盖服务,请为其配置端口。 代码覆盖率服务会自动使用与远程调试服务相同的密钥库信息来加密 SSL。

    代码覆盖服务 为用户提供了一种更简单的方法来访问他们生成的代码覆盖结果,并且不需要在文件和目录级别授予访问权。

  • 存储代码覆盖结果的位置。 缺省情况下,结果将输出到 $HOME/CC/user_ID,其中 $HOME 是运行 远程调试服务的用户的主目录。 您可以指定与 $HOME/CC/不同的根位置。 确保代码覆盖用户知道此目录的路径以访问结果,并具有以下权限:
    • 对父目录的最低读访问权,用于读取其用户标识子目录 root_location/user_ID,其中 root_location 是下列其中一项:
      • eqahcc.env 中指定的 output 属性的值
      • $HOME/CC,其中 $HOME 是运行 远程调试服务 的用户的主目录
      子目录和其中的结果将继承父目录的许可权。 您可以通过组或公共许可权添加用户访问权。 如果用户使用 代码覆盖服务访问结果,那么不需要执行此操作。
    • 有足够的权限更改 z/OS UNIX 文件的所有权。 远程调试服务 将子目录和代码覆盖结果的所有者更改为用户标识。 当用户没有权限时,仍可以创建结果,但用户只能根据文件许可权来管理任何结果。 如果用户使用 代码覆盖服务访问结果,那么不需要执行此操作。
  • 是否仅支持来自本地主机的连接。
有关无外设代码覆盖选项的更多详细信息,请参阅 启动和停止无外设代码覆盖守护程序 远程调试服务中不支持用于无外设代码覆盖的所有选项。 eqahcc.env 文件提供了所有受支持的选项。

您可以多次运行样本作业 EQARMTSU 。 如果配置目录中存在文件,那么将先为现有文件创建备份,然后再复制新的文件。