有人知道用户空间*USRSPC在停电时有多安全吗?
我使用用户空间来提供每个文件发布的最后一个编号。我使用所谓的机器代码API来防止同一个号码被两次发布。我发现由于用户空间在重新IPL之前没有保存到光盘而导致的重复。
用户空间似乎没有资格进行日志记录。或者有人知道我可以在每次发布的最后一个数字增加时记日记的方法吗?
谨致问候,Frank Marshall
对我来说,*USRSPC在存储序列号方面似乎有点过头了。正如你所发现的,它的持久性有点缺乏。A*DTARA更好,因为它没有隐藏的自动扩展逻辑。或者一个数据库SEQUENCE,它是专门为您尝试使用序列的目的而制作的。SEQUENCE实际上是在数据区域上实现的。
在quschgus API上有一个力参数。将该参数设置为"2"可强制将用户空间更改立即写入磁盘。
PGM
DCL VAR(&USRSPC) TYPE(*CHAR) LEN(20)
dcl &start *int
dcl &len *int
dcl &data *char 2000
dcl &rtndata *char 2000
dcl &force *char 1
dcl &attr *char 10
dcl &size *int
dcl &init *char 1
dcl &pubaut *char 10
dcl &desc *char 50
chgvar &usrspc 'STEVE QGPL'
chgvar &attr ' '
chgvar &size 2000
chgvar &init ' '
chgvar &pubaut '*ALL'
chgvar &desc 'user space demo'
call pgm(quscrtus) parm(&usrspc &attr &size &init &pubaut &desc )
chgvar &start 25
chgvar &len 10
RTVJOBA JOB(&DATA)
chgvar &force '2'
call quschgus parm(&usrspc &start &len &data &force )
chgvar &usrspc 'STEVE QGPL'
chgvar &start 25
chgvar &len 10
call qusrtvus parm(&usrspc &start &len &rtndata)
sndpgmmsg msg('data returned:' *cat &rtndata)
endpgm