Testing an upgrade from XCOM for z/OS 11.6 to 12.0 under z/OS 2.5 and have encountered a difference in how EXIT01 works.
The STC XCOM is running as userid XCOM.
There is a RACF profile SYS6.*.
The userid USER1 has alter access and userid XCOM has read access
Attempting to send a member SYS6.XCOM.TEST.PDS(TEST1) with the XCOM USERID parameter set to USER1 and have the EXIT01 delete the member when the transfer is complete:
The exit source code is identical, i.e. the same was reassembled for both versions.
Some analysis indicates that RACF parameter ASXBSENV for both versions shows userid XCOM
XCOM Engineering advised the following:
There have been no changes to EXIT01 processing other than fixing a storage leak for failed transfers since 11.6 was first released some 12 years ago.
With SECURITY=SAF, a new ACEE is created that uses the USERID from the transfer request i.e. USER1. Once the transfer completes (prior to dispatching EXIT01) the security environment switches back to that of the STC which is userid XCOM.
It is suspected that 11.6 was not actually using userid XCOM at the time EXIT01 was dispatched. Clearly, the XCOM userid does NOT have the required permissions to update the dataset in question. The RACF messages from the 12.0 log provided confirm that userid XCOM does not have sufficient authority to update the dataset in question. Given these facts, it must fail.
If anything, this indicates that this should also not have worked under 11.6. It is not logical that this process worked under 11.6 if running under userid XCOM. So it is probable that 11.6 was not switching back to the STC's credentials before dispatching the EXIT01.
It was confirmed that 12.0 is working as expected on the test system and it was decided not to pursue why 11.6 is not working as expected on the Production system.
The path forward is to grant userid XCOM the access required to update the target dataset.