【发布时间】:2021-05-24 10:59:20
【问题描述】:
我一直在大型机上的 COBOL 程序中使用 z/OS 客户端 Web 启用工具包成功调用外部 REST API(非 HTTPS)。但是,我遇到了一种情况,即对同一 API 的请求失败并出现错误 HWTH-COMMUNICATION-ERROR(返回码 262)。
这是我在诊断区看到的:
- 请求失败 (HWTHRQST)
- 返回码:262(HWTH-COMMUNICATION-ERROR)
- 服务:000524288
- 原因代码:140
- 原因描述:EDC5140I 管道损坏。
我无法判断是什么导致它仅在某些情况下失败。谁能帮我理解问题可能是什么?
这是失败的执行的详细日志:
t: HWTH_OPT_VERBOSE has been set to HWTH_VERBOSE_ON
t-Entry: iconnImpl
t-Entry: initTranslationTables
t-Exit: initTranslationTables
t: Connecting to XX.XXX.XX.XXX via port 8080
t: Attempting to connect to IP address: XX.XXX.XX.XXX
t-Entry: setSocketOptions
t-Exit: setSocketOptions
t: Connection established using socket: 0
t-Entry: checkForTTLS
t: ATTLS detection OK: s=0 pol=OFF
t: Socket maps to TTLSRule: (none)
t: ATTLS is *not* in effect
t: Connected to origin server with socket: 0
t-Exit: iconnImpl
t: HWTH_OPT_VERBOSE has been set to HWTH_VERBOSE_ON
t-Entry: sendrqst
t-Entry: sendrqstImpl
t-Entry: appendRequestLine
t: No proxy is being used for the request
ÝHWTHCKST¨ (no request cookies specified)
ÝHWTHCKST¨ getCookieHeader() - No applicable cookies found
t: No applicable cookies found
t: * * * * * HTTP REQUEST HEADERS * * * * *
t-Entry: cleanseReqHdrs
t: GET /rest/validate/results.json
t: * * * * * END HTTP REQUEST HEADERS * * * * *
t-Entry: translate
t-Exit: translate
t-Entry: sendInlineRequest
t-Entry: doSend
t-Entry: ignoreSignal
t: Unable to query current action for signal: 13 error: EDC5157I. An internal error has occurred.
t: Unable to ignore signal(s)
t: Unresponsive socket (will attempt reconnect).
t-Entry: setReturnCode
t-Exit: setReturnCode
t: Unable to send HTTP message.
t-Entry: reconnect
t-Entry: idiscImpl
t: Closing socket: 0
t-Exit: idiscImpl
t-Entry: iconnImpl
t-Entry: initTranslationTables
t-Exit: initTranslationTables
这是成功执行的详细日志:
t: HWTH_OPT_VERBOSE has been set to HWTH_VERBOSE_ON
t-Entry: iconnImpl
t-Entry: initTranslationTables
t-Exit: initTranslationTables
t: Connecting to XX.XXX.XX.XXX via port 8080
t: Attempting to connect to IP address: XX.XXX.XX.XXX
t-Entry: setSocketOptions
t-Exit: setSocketOptions
t: Connection established using socket: 0
t-Entry: checkForTTLS
t: ATTLS detection OK: s=0 pol=OFF
t: Socket maps to TTLSRule: (none)
t: ATTLS is *not* in effect
t: Connected to origin server with socket: 0
t-Exit: iconnImpl
t: HWTH_OPT_VERBOSE has been set to HWTH_VERBOSE_ON
t-Entry: sendrqst
t-Entry: sendrqstImpl
t-Entry: appendRequestLine
t: No proxy is being used for the request
ÝHWTHCKST¨ (no request cookies specified)
ÝHWTHCKST¨ getCookieHeader() - No applicable cookies found
t: No applicable cookies found
t: * * * * * HTTP REQUEST HEADERS * * * * *
t-Entry: cleanseReqHdrs
t: GET /rest/validate/results.json
t: * * * * * END HTTP REQUEST HEADERS * * * * *
t-Entry: translate
t-Exit: translate
t-Entry: sendInlineRequest
t-Entry: doSend
t-Entry: ignoreSignal
t: now ignoring signal: SIGPIPE
t-Exit: ignoreSignal
t-Entry: restoreSignal
t: restoring signal: SIGPIPE
t-Exit: restoreSignal
t: send()
t: bytes sent: 384
t: total bytes: 384
t: bytes remaining: 384
t: send successful.
t-Exit: doSend
t-Exit: sendrqstImpl
t-Entry: recvresp
t-Entry: recvrespImpl
t-Entry: initReceiveVars
t: Response buffer is empty.
t-Entry: getNextResponseData
t: Now processing 1547 additional response bytes.
t-Entry: processResponseData
t-Entry: translate
t-Exit: translate
t-Entry: parseResponseHeaders
t: HTTP status = 200
t: HTTP version = HTTP/1.1
t: HTTP reason = OK
t: Header: Date =
t-Entry: headerCallback
t-Exit: headerCallback
t: Header: Content-Type = application/json
t-Entry: headerCallback
t-Exit: headerCallback
【问题讨论】:
-
我们在 E15/E35-SORT-exits 中尝试使用工具包时确实遇到了类似的问题。结合一些 IBM 文档显示,不支持在 SORT 环境中使用该工具包(我认为它确实包括使用数据集的 COBOL SORT 语句)。
标签: rest web cobol mainframe zos