如何使用C API通过MI锁定DATAARA? lock()/ unlock()函数仅适用于用户空间对象。
QXXRTVDA()—检索数据区功能仅显示信息而没有锁定。
cmd系统(“ ALCOBJ MYDAXXX * DTAARA”);如果dataara已经从其他作业中锁定,则无需等待。
当前代码(不好)
while( system("ALCOBJ MYDAXXX *DTAARA ") != 0) {sleep(1);}
答案 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)