I've written a REXX with a very specialized purpose: After doing a WHOHAS on DATASET(hlq), this REXX reads the WHOHAS listing, does a PERMIT for the same HLQ and then issues another WHOHAS so I can be sure of the result. One problem: TSS claims the PERMIT is successful, but the permission doesn't show up in the subsequent WHOHAS. I have to issue yet another WHOHAS before I can see the result.
I supposed at first that it's a timing issue, that TSS might need a second or two to let the new permission settle in, so to speak, before it could display the results in a WHOHAS. But I had the program wait as long as twelve seconds before issuing the subsequent WHOHAS, and it still doesn't show the new permission.
I conclude that some sort of refresh is called for, something that happens automatically when my REXX stops executing but is held up as long as it's still running. Sure, I can issue the command again, but the whole point of this program is for me to be lazy. (I'm going to be doing a lot of these.) Also this is a chance for me to understand better what's going on under the covers. Can anyone explain what I need to do for this program to work as envisioned?
Good day Bob,
I made your question a discussion because there may be someone out there that knows the answer but we would have to test this and probably ask SE for assistance so you need to open a case (unless someone replies to this discussion which may happen because there are plenty of people that write code and work/have worked with Top Secret that know their stuff so to speak :-). Complicated questions should be opened as discussions so the community can freely give you feedback. If you are still not getting a answer that works for you then open a case and we'll tackle it for you. I know you have already interacted with some of our extremely experienced clients and they are great and always willing to help.
Have a wonderful day!!
Thanks, Eileen; what you say makes sense.
I was a little puzzled that no one responded right away; as you say, there must be other REXXers out there who've encountered this. But today I tried a few other things to fix the problem, and my program started behaving strangely, apparently carrying out its instructions in the wrong order. I took the hint and started thinking it through very carefully, then modified the code and laughed out loud: There wasn't a problem, after all.
In case anyone's curious, the program (named ODSN) works in two different ways. First I call it:
tso odsn hlq
...and it displays a WHOHAS listing for DATASET(hlq.). I look it over and if I'm satisfied I can proceed I then call it as an Edit macro:
In that mode ODSN reads the WHOHAS listing, gets the HLQ (so I don't have to retype it), makes sure that profile-1 has ALL access to hlq, and issues a PERMIT for profile-2. Then it issues another WHOHAS listing, so I can confirm the results before manually revoking profile-1's access.
As I said, the problem appeared to be that the permission wasn't showing up in the second WHOHAS; the PERMIT was successful, but I couldn't see it until the program finished and I issued another WHOHAS manually. Appearances were deceptive, though; the real problem, apparently, is that I'm a doofus. I was still looking at the first WHOHAS listing; the new one was still waiting in the wings, so to speak.
So I'm glad you folks didn't have to research this :-).