对 Node.js 应用程序进行故障诊断

如果 Node.js 应用程序存在问题,那么可以使用 CICS® 和 Node.js 提供的诊断来确定问题原因。

CICS 提供了一些统计信息,消息和跟踪,以帮助您诊断与 Node.js相关的问题。 Node.js 随附的诊断工具和接口可提供有关 Node.js 运行时和应用程序执行的更详细信息。

您可以使用免费的工具来执行 Node.js 应用程序的实时和脱机分析,例如 IBM® Health Center 或 Appmetrics。 有关更多信息,请参阅 IBM Monitoring and Diagnostic Tools-Health CenterNode Application Metrics

有关在何处查找日志文件的更多信息,请参阅 控制 NODEJSAPP 输出,日志和跟踪的位置

重要信息: 如果无法解决问题原因,请联系 IBM 支持人员。 确保提供所需信息,如 MustGather 中所列,用于报告 Node.js 问题。

有关 IBM SDK for Node.js -z /OS® 的故障排除信息,请参阅 IBM SDK for Node.js - z/OS 故障排除。

如果安装验证程序 (IVP) 无法运行

  1. 检查 MSGUSR 日志。 安装并启用 CICS 束和 NODEJSAPP 束部件时,会在此处写入 CICS 消息。
  2. 检查 SYSPRINT 日志。 处理 Node.js 概要文件时,会在此处写入 CICS 消息。
  3. 检查 WORK_DIR/APPLID/DFHJNIVP/IVPSAMPLE 目录。 Node.js 运行时和应用程序消息将写入文件 CURRENT.STDOUTCURRENT.STDERR中。 如果启用了 CICS 跟踪,那么会将其写入 CURRENT.TRACE

如果 npm 安装无法访问下载 Node.js 应用程序依赖项所需的站点

您可能会看到错误 getaddrinfo ENOTFOUND nodejs.org nodejs.org:443

  1. 检查 npm -verbose install 返回的消息中是否存在标识站点 TCP/IP 地址的错误,例如 Error: connect ETIMEDOUT 2400:cb00:2048:1::6812:5e60:443
  2. 尝试对站点使用备用 TCP/IP 地址。 要列出备用 TCP/IP IPv6 和 IPv4 地址,请使用命令 dig registry.npmjs.org -t any。 要将 npm 更改为使用 TCP/IP 地址,请先使用命令 npm adduser --registry=https://<ipaddress> ,然后重试命令 npm install
  3. 请与网络团队联系,以调查 TCP/IP 和防火墙配置。

如果 NODEJSAPP 立即禁用

如果收到消息CEE5207E The signal SIGABRT was receivedstderr中,您可能已达到 LPAR 上共享消息队列的限制。 当 Node.js 应用程序被 SIGKILL 信号终止时,可能不会取消分配共享消息队列。 为避免此情况,应确保应用程序及时终止以响应 SIGTERM 信号,有关更多信息,请参阅 开发 Node.js 应用程序

您可以使用 z/OS 控制台命令 D OMVS,L 查看共享报文队列的数量,并查找 IPCMSGNIDS。 要删除共享消息队列,请使用 ipcrm 命令;更多信息,请参阅 ipcrm - 删除消息队列、信号集或共享内存 ID

如果收到类似如下的消息
  • CEE0374C CONDITION=CEE3561S TOKEN=00030DE9 59C3C5C5 00000000_00000001 WHILE RUNNING PROGRAM static-initial在 CICS 作业日志中,
  • CEE3501S The module libnode.so was not foundstderr中,
  • DFHSJ1313 E CICSUSER CNJL NODEJSAPP CICSJSON was disabled because an unsupported version of IBM SDK for Node.js - z/OS was used支持级别 MSGUSR
检查是否使用了 CICS 中支持的最低 Node.js 级别。 Node.js 运行时的路径由 Node.js 概要文件中的 NODE_HOME 选项指定。