如何通过C API as400锁定DATAAARA

时间:2018-10-12 18:33:41

标签: c db2 ibm-midrange db2-400

如何使用C API通过MI锁定DATAARA? lock()/ unlock()函数仅适用于用户空间对象。

QXXRTVDA()—检索数据区功能仅显示信息而没有锁定。

cmd系统(“ ALCOBJ MYDAXXX * DTAARA”);如果dataara已经从其他作业中锁定,则无需等待。

当前代码(不好)

while(  system("ALCOBJ MYDAXXX *DTAARA ") != 0) {sleep(1);}

2 个答案:

答案 0 :(得分:3)

您应该使用lock()MI函数,该函数提供在QSYSINC / MIH / LOCK中定义的wait_time参数。您可能想将QXXRTVDA()和lock()函数包装到您自己的函数中。使用unlock()进行相反操作。 针对V3R7发行的“ AS / 400 MI库参考的ILE C / C ++,SC09-2418-00”(自1996年11月以来的最新版本)中对所有MI功能进行了全面描述。 在那本书中,您会像往常一样找到有用的示例。

答案 1 :(得分:1)

您可以指定ALCOBJ的等待时间。等待时间以秒为单位。

ALCOBJ OBJ((MYDAXXX *DTAARA *EXCLRD)) WAIT(60)