UNLOCK

释放互斥控制。

语法

UNLOCK

读取语法图跳过可视语法图UNLOCKFILE( filename)TOKEN( data-area)SYSID( 系统名称)

条件: DISABLED , FILENOTFOUND , ILLOGIC , INVREQ , IOERR , ISCINVREQ , NOTAUTH , NOTOPEN 和 SYSIDERR

NOHANDLERESPRESP2是常用选项,可添加到所有 EXEC CICS 命令中以处理错误条件。 命令语法图和选项说明中没有明确包含这些选项。 有关这些常用选项和 EXEC CICS 命令语法的信息,请参阅 EXEC CICS 命令格式和编程注意事项.

如果此命令所引用的文件是:
  • 定义为远程,该命令是通过 IPIC 连接提供到远程 CICS® 区域的功能。
  • 定义为本地 VSAM 文件, VSAM RLS 文件或耦合设施数据表。
如果此命令所引用的文件是:
  • 定义为远程,并且该命令是通过非 IPIC 连接提供的功能。
  • 定义为 NSR。
  • 定义为共享数据表或 BDAM 文件。

描述

UNLOCK 释放为响应带有 UPDATE 选项的读命令而建立的互斥控制。 如果检索到要更新的记录,然后决定您毕竟不希望更新该记录,请使用此命令。 但是,对于可恢复文件 (引用耦合设施数据表的文件除外) ,资源将保持锁定状态,直到执行 SYNCPOINT 命令或终止任务为止。 记录可以在数据集中,也可以在本地或远程系统上的 CICS 或用户维护的数据表中。

如果 UNLOCK 命令引用可恢复耦合设施数据表中的记录,那么将立即释放记录锁定,前提是该任务尚未对当前工作单元中的同一记录进行任何先前的更改 (或将其添加为新记录)。 如果对记录进行了更改,或者它是添加到表中的新记录,那么它将保持锁定状态,直到执行 SYNCPOINT 命令或终止任务为止。

如果 UNLOCK 命令没有令牌,那么会尝试将其与同时没有令牌的 UPDATE 选项的读或 WRITE MASSINSERT 操作相匹配。 如果未找到这两个值,那么将不执行任何操作并返回 NORMAL 响应。

使用此命令对 VSAM 文件终止 VSAM WRITE MASSINSERT 操作。

在浏览中更新时释放锁定

UNLOCK 命令不会释放针对为响应指定了更新选项的 READNEXTREADPREV 命令而锁定的记录的锁定。 它仅使 TOKEN 值失效,因此无法将其用于完成更新。

选项

FILE (filename)
指定要释放的文件的名称。

如果指定了 SYSID ,那么假定此文件所引用的数据集位于远程系统上,而不考虑是否对 CICS定义了该名称。 否则,将使用资源定义来确定数据集是在本地系统上还是在远程系统上。

SYSID (systemname)
指定将请求定向到的系统的名称。
TOKEN (数据区)
指定 UNLOCK 的唯一请求标识作为全字二进制值,用于将其与指定了 UPDATE 选项的先前 READ , READNEXT 或 READPREV 命令相关联。

如果对以 RLS 方式访问的文件指定带有 READNEXT UPDATE 或 READPREV UPDATE 命令返回的 TOKEN 的 UNLOCK ,那么 UNLOCK 命令会使 TOKEN 值失效,以便它无法用于完成更新。 它不会释放记录锁定。

可以交付 TOKEN 函数。 但是,如果指定 TOKEN 的请求是函数输送到不支持此关键字的 CICS 区域,那么请求将失败。

条件

84 已禁用
RESP2 值:
50
文件已禁用,因为它最初定义为已禁用,但此后未启用。

文件被 EXEC CICS SET FILECEMT SET FILE 命令禁用。

当 UNLOCK 遵循成功读取以进行更新或 VSAM WRITE MASSINSERT 时,不能发生此情况。

缺省操作: 异常终止任务。

12 个 FILENOTFOUND
RESP2 值:
1
未对 CICS 定义 FILE 选项中引用的文件名,并且未指定 SYSID。

缺省操作: 异常终止任务。

21 ILLOGIC
RESP2 值: (VSAM 和 CICS维护的数据表)
110
发生不在其他某个 CICS 响应类别中的 VSAM 错误。

请参阅 EXEC 接口块中的 EIBRCODE; 有关详细信息,请参阅 EIB 字段

缺省操作: 异常终止任务。

16 INVREQ
RESP2 值:
47
解锁包括其值无法与使用 UPDATE 选项的现有 READ 的任何令牌相匹配的令牌。
48
尝试对包含 TOKEN 关键字的请求进行函数输送。

缺省操作: 异常终止任务。

17 IOERR
RESP2 值:
120
文件控制操作期间发生 I/O 错误。 I/O 错误是 CICS 条件未涵盖的任何异常事件。

对于 VSAM 文件, IOERR 通常指示硬件错误。 EXEC 接口块中提供了更多信息; 有关详细信息,请参阅 EIB 字段

对于耦合设施数据表, IOERR 指示从耦合设施访问返回的响应不正确。

缺省操作: 异常终止任务。

54 ISCINVREQ
RESP2 值:
70
远程系统指示不符合已知条件的故障。

缺省操作: 异常终止任务。

70 NOTAUTH
RESP2 值:
101
对 FILE (filename) 执行资源安全性检查失败。

缺省操作: 异常终止任务。

19 NOTOPEN
RESP2 值:
60
由于下列其中一个原因,将返回 NOTOPEN (RESP2 60):
  • 请求的文件为 CLOSED 和 UNENABLED。 在接收到针对 OPEN ENABLED 文件的 CLOSE 请求并且该文件不再使用后,将达到 CLOSED , UNENABLED 状态。 还可以通过在 FILE 资源定义上指定 STATUS (UNENABLED) 和 OPENTIME (FIRSTREF) ,使 CLOSED , UNENABLED 成为初始状态。 (对于 BDAM 文件,使用 DFHFCT TYPE=FILE 宏的 FILSTAT 参数。)
  • 请求的文件是 OPEN ,正在由其他事务使用,但已接收到针对该文件的 CLOSE 请求。
  • 由于 SET DSNAME QUIESCED 或 IMMQUIESED 命令,对已停顿或正在停顿的数据集发出 UNLOCK 命令。
  • 请求的文件为 CLOSED 和 ENABLED ,因此 CICS 已尝试在执行请求的过程中打开该文件。 由于某种原因,此文件打开失败。 您应该检查控制台以获取说明打开文件失败原因的消息。

如果对 CLOSED , DISABLED 文件发出请求,那么不会发生此情况。 在这种情况下,将出现 DISABLED 条件。

当 UNLOCK 遵循成功的 READ for update 或 WRITE MASSINSERT 操作时,也不能发生此情况。

缺省操作: 异常终止任务。

53 个 SYSIDERR
RESP2 值:
130
SYSID 选项指定的名称既不是本地 CICS 区域,也不是由 CONNECTION 定义对 CICS 定义的远程系统。 当到远程系统的链路关闭时,也会发生 SYSIDERR。
131
对于耦合设施数据表,与耦合设施数据表服务器的连接已失败。 这可能是因为服务器本身已发生故障,或者服务器可用,但 CICS 未能连接到该服务器。
132
将对不再存在的耦合设施数据表发出 UNLOCK ,这可能是因为耦合设施发生故障,在这种情况下,耦合设施数据表服务器也会发生故障。 请参阅 定义和启动耦合设施数据表服务器区域 ,以获取有关重新启动耦合设施数据表服务器和重新装入表的信息。

缺省操作: 异常终止任务。