退出 XFCFRIN
在执行文件控制请求之前调用出口 XFCFRIN。
- 执行应用程序请求以处理用户文件
- 接收函数输送的请求
- 用于处理系统文件的内部 CICS® 请求。
- 特定于出口的参数
- UEPTRANID
- 4 字节事务标识的地址。
- UEPUSER
- 8 字节用户标识的地址。
- UEPTERM
- 零,或 4 字节终端标识的地址。 如果未返回地址,这可能意味着此请求已通过 IPIC 连接交付。
- UEPPROG
- 8 字节应用程序名称的地址。
- UEP_FC_FUNCTION
- 包含函数的字节的地址。 FCFR 函数派生自通过 EXEC CICS 接口提供的那些函数,其中某些请求选项 (SET , INTO 和 UPDATE) 已包含在函数值中。 例如, UEP_FC_FUN_DELETE 派生自指定了 RIDFLD 选项的 EXEC CICS DELETE ; UEP_FC_FUN_REWRITE_DELETE 派生自没有 RIDFLD 的 EXEC CICS DELETE 。 可能的值包括:
- UEP_FC_FUN_READ_INTO
- UEP_FC_FUN_READ_SET
- UEP_FC_FUN_READ_UPDATE_INTO
- UEP_FC_FUN_READ_UPDATE_SET
- UEP_FC_FUN_WRITE
- UEP_FC_FUN_REWRITE
- UEP_FC_FUN_REWRITE_DELETE
- UEP_FC_FUN_DELETE
- UEP_FC_FUN_UNLOCK
- UEP_FC_FUN_START_BROWSE
- UEP_FC_FUN_READ_NEXT_INTO
- UEP_FC_FUN_READ_NEXT_SET
- UEP_FC_FUN_READ_PREVIOUS_INTO
- UEP_FC_FUN_READ_PREVIOUS_SET
- UEP_FC_FUN_READ_NEXT_UPDATE_INTO
- UEP_FC_FUN_READ_NEXT_UPDATE_SET
- UEP_FC_FUN_READ_PREVIOUS_UPDATE_INTO
- UEP_FC_FUN_READ_PREVIOUS_UPDATE_SET
- UEP_FC_FUN_RESET_BROWSE
- UEP_FC_FUN_END_BROWSE
- UEPTSTOK
- 在任务的整个生命周期内有效的 4 字节令牌的地址。 请参阅 使用任务令牌 UEPTSTOK。
- UEP_FC_FILE_NAME
- 包含文件名的 8 字节可修改字段的地址。
- UEP_FC_BUFFER_P
- 包含由请求发起方提供的缓冲区地址的全字的地址,其中 (输出) 记录将在完成带有 INTO 选项的 READ , READ NEXT 或 READ PREV 请求时返回。
- UEP_FC_BUFFER_L
- 包含 (对于 READ , READ NEXT 和 READ PREV 请求) 要在其中读取记录的缓冲区的 LENGTH 值的全字的地址。
- UEP_FC_RECORD_P
- 下列其中一项的地址:
- 如果请求是带有 SET 选项的 READ , READ NEXT 或 READ PREV ,那么将返回一个全字,其中将返回缓冲区的地址 (输出) ,记录将放置到该地址中。 缓冲区本身由 CICS 文件控制提供,如果出口程序绕过文件控制,则由出口程序提供。
- 如果请求是 WRITE 或 REWRITE ,那么是包含要写入的记录地址的全字。
- UEP_FC_RECORD_L
- 包含 LENGTH 值 (对于 READ , WRITE , REWRITE , READ NEXT 和 READ PREV 请求) 的全字的地址。对于所有 READ , READ NEXT 或 READ PREV 请求,这是一个 输出 字段,其中记录读取的实际长度放在返回时。警告: 对于指定 INTO 的请求,请勿将 LENGTH 的值更改为大于 UEP_FC_BUFFER_L 字段指定的值。 这样做可能会导致应用程序中出现存储器覆盖。
对于 WRITE 或 REWRITE ,这是一个可选字段,如果存在,那么包含要写入的记录的长度。 如果未指定该字段,那么全字包含二进制零。 在这种情况下,要修改远程文件的记录长度,请改为使用 UEP_FC_M_RECORD_L。
另请参阅 UEP_FC_SYSID 参数的描述。
- UEP_FC_MAX_RECORD_L
- 包含 (输出) 文件最大记录长度的全字的地址。 (CICS 函数输送使用此值来更新远程文件控制表中的文件条目。)
- UEP_FC_RECORD_ID_P
- 包含 RIDFLD (记录标识) 值的地址的全字的地址。 有关记录标识何时是输入或 输出 字段的讨论,请参阅 表 1。
- UEP_FC_RECORD_ID_L
- KEYLENGTH 的半字值的地址,它是记录标识的 (可能是部分) 长度。
KEYLENGTH 是 READ , WRITE , DELETE , START BR , READ NEXT , READ PREV 和 RESET BR 请求上的可选输入参数。 如果未指定该字段,那么半字包含二进制零。 在这种情况下,要修改远程文件的密钥长度,请改为使用 UEP_FC_M_RECORD_ID_L。
另请参阅 UEP_FC_SYSID 参数的描述。
- UEP_FC_FULL_RECORD_ID_L
- 记录标识的完整长度的半字值的地址。
记录标识的完整长度在 READ NEXT 和 READ PREV 请求上作为必填 输出 字段返回。 该值由 CICS 函数输送使用。
- UEP_FC_RECORD_ID_TYPE
- 包含 RIDFLD 类型的字节的地址 (对于 READ , WRITE , DELETE , START BR , READ NEXT , READ PREV 和 RESET BR 请求)。 在输入到出口时,此参数将设置为下列其中一项:
- UEP_FC_KEY
- VSAM KSDS 或 AIX® PATH 访问
- UEP_FC_RBA
- 通过 RBA 访问 VSAM ESDS 或 KSDS
- UEP_FC_RRN
- VSAM RRDS 访问
- UEP_FC_DEBKEY
- BDAM 按键解锁 (仅 READ , DELETE , START BR 和 RESET BR 请求)
- UEP_FC_DEBREC
- BDAM 按相对记录进行的分块 (仅 READ , DELETE , START BR 和 RESET BR 请求)
- UEP_FC_XRBA
- VSAM 扩展 ESDS 访问
- UEP_FC_REQID
- 半字值 REQID 的地址 (对于 START BR , READ NEXT , READ PREV , RESET BR 和 END BR 请求)。
- UEP_FC_NUMREC
- NUMREC 的全字值的地址 (output) ,其中 (如果请求是带有 RIDFLD 的 DELETE) 返回已删除的记录数。
- UEP_FC_KEY_比较
- 包含键比较设置的字节的地址 (对于 READ , START BR 和 RESET BR 请求)。 在输入到出口时,此参数将设置为下列其中一项:
- UEP_FC_EQUAL
- 将使用 key-equal-to 比较。
- UEP_FC_GTEQ
- 将使用大于或等于键的比较。
- UEP_FC_GENERIC
- 包含 (对于 READ , DELETE , START BR 和 RESET BR 请求) 通用键设置的字节的地址。 在输入到出口时,此参数将设置为下列其中一项:
- UEP_FC_GENERIC_KEY
- 通用密钥将用于密钥搜索。
- UEP_FC_FULL_KEY
- 完整密钥将用于密钥搜索。
- UEP_FC_MASS_INSERT
- 包含 (针对 WRITE 请求) 批量插入设置的字节的地址。 在输入到出口时,此参数将设置为下列其中一项:
- UEP_FC_SEQUENTIAL_WRITE
- 记录将以顺序方式写入。
- UEP_FC_DIRECT_WRITE
- 将以直接方式写入记录。
- UEP_FC_READ_INTEGRITY
- 包含读完整性设置 (对于非更新 READ , READ NEXT 和 READ PREV 请求) 的字节的地址。 (在当前版本的 CICS中,此设置仅适用于 VSAM RLS。) 在输入到出口时,此参数将设置为下列其中一项:
- UEP_FC_CR
- 将使用一致的读完整性。
- UEP_FC_FCT_VALUE
- 读完整性根据 FILE 定义中的设置。
- UEP_FC_NRI
- 将在没有读完整性的情况下读取记录。
- UEP_FC_RR
- 将使用可重复的读完整性。
- UEP_FC_TOKEN
- 包含 TOKEN 值的全字的地址。
如果请求为 READ , READ NEXT 或带有更新的 READ PREV ,并且地址不为空,那么该区域是要在其中返回令牌的 输出 字段。
如果请求是 REWRITE ,不带 RIDFLD 的 DELETE 或 UNLOCK ,那么该区域是输入字段。
- UEP_FC_SYSID
- 要包含标识远程区域的 SYSID 的 4 字节区域的地址。 在出口的输入中,该区域包含以下任一项:
- API 调用的 SYSID 选项的值, 或
- 空白 (如果未指定 SYSID)。
要将请求重定向到其他区域,出口程序必须将目标区域的 SYSID 放置在此 输出 区域中。
如果此参数由出口程序设置,那么该请求由文件控制功能交付,而不需要对该文件的属性进行任何引用。 如果请求中未包含键长度,那么出口程序必须通过设置 UEP_FC_RECORD_ID_L 参数来建立其值。
同样,如果请求是 WRITE 或 REWRITE ,并且尚未在请求上指定记录长度,那么出口程序必须通过设置 UEP_FC_RECORD_L 参数来建立其值。
- UEP_FC_LENGTH_ERROR_CODE
- 1-byte 输出 区域的地址,其中包含在请求完成后要返回的长度错误代码。 可能的值包括:
- UEP_FC_LENGTH_OK
- UEP_FC_BUFFER_LEN_TOO_SMALL
- UEP_FC_RECORD_LEN_TOO_LARGE
- UEP_FC_BUFFER_LEN_NOT_FILE_LEN
- UEP_FC_RECORD_LEN_NOT_FILE_LEN
- UEP_FC_DUPLICATE_KEY_CODE
- 1-byte 输出 区域的地址,指示请求是否找到所提供密钥的多个记录。 可能的值包括:
- UEP_FC_DUPLICATE 键
- UEP_FC_NOT_DUPLICATE 键
- UEP_FC_ACCMETH_RETURN_CODE
- 当返回响应 UEP_FC_REASON_ACCMETH_REQUEST_ERROR 或 UEP_FC_REASON_IO_ERROR 时,将返回与访问方法相关的信息的 4 字节 输出 区域的地址。
返回的值以 EIBRCODE 的字节 2-5 为单位。
- UEP_FC_RESPONSE
- 请求完成后包含响应的 1 字节 输出 区域的地址:
- UEP_FC_RESPONSE_OK
- 处理已完成,无错误。
- UEP_FC_RESPONSE_EXCEPTION
- 处理已完成,但存在错误情况。 原因在 UEP_FC_REASON 中设置。
- UEP_FC_RESPONSE_灾难
- 发生了阻止处理完成的错误。 通常,这是由于来自 XPI 函数调用的灾难响应或来自 UEPGAA 或 UEPTSTOK 的数据损坏所致。
如果设置此响应,那么文件控制的调用者将假定已执行首次故障数据捕获。 如果您正在整理来自 XPI 请求的灾难响应,那么将已执行首次故障数据捕获; 否则,应尝试捕获足够的信息以成功诊断错误。 DFHDUDUX SYSTEM_DUMP XPI 函数可能适用于此目的。
- UEP_FC_RESPONSE_INVALID
- 使用无效参数列表调用了出口程序,指示 CICS 内部逻辑错误。 请注意,指示应用程序错误的无效参数列表应该给出 EXCEPTION 响应。
- UEP_FC_RESPONSE_PURGED
- XPI 函数调用接收到 PURGED 响应。 设置此响应相当于设置 UERCPURG 返回码,只是接受对参数列表的任何更改。
- UEP_FC_REASON
- 1-byte 输出 区域的地址,其中包含在请求完成并带有 EXCEPTION 响应之后的原因。 可能的原因是:
- UEP_FC_REASON_ACCMETH_REQUEST_ERROR
- UEP_FC_REASON_DELETE_AFTER_READ_UPDATE
- UEP_FC_REASON_DELETE_BEFORE_READ_UPDATE
- UEP_FC_REASON_DUPLICATE_READ_UPDATE
- UEP_FC_REASON_DUPLICATE_RECORD
- UEP_FC_REASON_DUPLICATE_REQID
- UEP_FC_REASON_END_OF_FILE
- UEP_FC_REASON_FILE_DISABLED
- UEP_FC_REASON_FILE_NOT_OPEN
- 找不到 UEP_FC_REASON_FILE_NOT_FOUND
- UEP_FC_REASON_FULL_KEY_不法长度
- UEP_FC_REASON_GENERIC_DELETE_NOT_KSDS
- UEP_FC_REASON_GENERIC_KEY_TOO_LONG
- UEP_FC_REASON_ILLEGAL_KEY_TYPE_CHANGE
- UEP_FC_REASON_INREASONENT_SPACE
- UEP_FC_REASON_INVALID_UPDATE_TOKEN
- UEP_FC_REASON_IO_ERROR
- UEP_FC_REASON_KEY_LENGTH_负数
- UEP_FC_REASON_KSDS_AND_XRBA
- UEP_FC_REASON_NO_VARIABLE_LENGTH
- UEP_FC_REASON_NOTAUTH
- UEP_FC_REASON_NOT_EXTENDED
- UEP_FC_REASON_READPREV_IN_GENERIC_BROWSE
- UEP_FC_REASON_RECORD_NOT_FOUND
- UEP_FC_REASON_REWRITE_BEFORE_READ_UPDATE
- UEP_FC_REASON_RIDFLD_KEY_NOT_RECORD_KEY
- UEP_FC_REASON_UNKNOWN_REQID_ENDBR
- UEP_FC_REASON_UNKNOWN_REQID_READNEXT
- UEP_FC_REASON_UNKNOWN_REQID_READPREV
- UEP_FC_REASON_UNKNOWN_REQID_RESETBR
- UEP_FC_EXIT_TOKEN
- 要传递到 XFCFROUT 的 4 字节令牌的地址。 例如,这允许您传递工作区以退出 XFCFROUT。
- UEP_FC_M_RECORD_L
- 包含修改后的记录长度字段的全字的地址。 当未在 API 调用上指定 LENGTH 字段时,可以使用此项来更改 LENGTH (仅适用于远程文件)。 如果在 API 调用上指定了 LENGTH 字段,那么要更改 LENGTH ,请改为使用 UEP_FC_RECORD_L ,因为更改 UEP_FC_M_RECORD_L 存储的地址上的值没有任何作用。
- UEP_FC_M_RECORD_ID_L
- 包含修改后的键长度字段的半字的地址。 当未在 API 调用上指定 KEYLENGTH 字段时,可以使用此项来更改 KEYLENGTH (仅适用于远程文件)。 如果指定了 KEYLENGTH 字段,那么要更改 KEYLENGTH ,请改为使用 UEP_FC_RECORD_ID_L ,因为更改 UEP_FC_M_RECORD_ID_L 存储的地址上的值没有任何作用。
- 返回码
- UERCNORM
- 继续处理。
- UERCBYP
- 绕过此请求的 CICS 处理。 如果已对函数输送的请求调用出口程序,那么允许镜像事务终止。
- UERCBYPL
- 绕过此请求的 CICS 处理。 如果已对函数输送的请求调用出口程序,那么镜像事务不得终止。
- UERCPURG
- 在 XPI 调用期间清除了任务。
- XPI 调用
- 都可以用。
- API 和 SPI 调用
- 不能使用任何值。