Работаете ли вы с REXX в системе z / OS?Если это так, вы можете генерировать уникальные числа, используя инструкцию STCKE
STORE CLOCK EXTENDED
, которая будет уникальной в течение тысяч лет при генерации в той же системе или sysplex с синхронизированными часами.
Вам нужно будет открыть ассемблер, чтобы написать внешнюю функцию REXX.
STCKE RSECT
STCKE AMODE 31
STCKE RMODE ANY
SAVE (14,12)
LR R12,R15
USING STCKE,R12
USING EFPL,R1 REXX external function parameter list
L R4,EFPLEVAL
L R4,0(R4) REXX evaluation block
USING EVALBLOCK,R4
STCKE EVALBLOCK_EVDATA Store STCKE in the function result area
MVC EVALBLOCK_EVLEN,=F'16' length of result (STCKE)
LA R15,0 RC=0
RETURN (14,12),RC=(15)
YREGS
IRXEFPL
IRXEVALB
END
И убедитесь, что вы установили numeric digits
в коде REXX, поскольку STCKF
- это 16-байтовое огромное число!
/* REXX */
numeric digits 64
do 10
raw = stcke()
hex = c2x(raw)
num = x2d(hex)
say hex num
end