Two examples running PGM=IDMSDDDL. One works and the other does not. The first does a SIGNON DICT SYSTEM. - which works. The other does SIGNON DICT SYSDIRL. - which gives "*+ E DC601059 VALID USER NAME WAS NOT SPECIFIED."
Is this because IDMSDDDL defaults to DBNAME=SYSTEM when I don't specify it? Should I be able to do SIGNON DICT SYSDIRL if I give it a good ID and Password?
IDMS install and upgrade JCL is delivered like both of these examples so we would like to be able to stick with the stock JCl if possible.
//DLODDEFS EXEC PGM=IDMSDDDL,REGION=2048K,COND=(4,LT) // INCLUDE MEMBER=IDMSDDDL //DCDML DD DISP=SHR,DSN=IDMS.SYSTEM.DDLDML //DCMSG DD DISP=SHR,DSN=IDMS.SYSMSG.DDLDCMSG //DCCAT DD DISP=SHR,DSN=IDMS.CATSYS.DCCAT //DCCATL DD DISP=SHR,DSN=IDMS.CATSYS.DCCATLOD //DCCATX DD DISP=SHR,DSN=IDMS.CATSYS.DCCATX //SYSIDMS DD * DMCL=GLBLDMCL /* //SYSIPT DD * SIGNON DICTIONARY SYSTEM .
//DLODARPT EXEC PGM=IDMSDDDL,REGION=2048K,COND=(4,LT) // INCLUDE MEMBER=IDMSDDDL //DIRLDB DD DISP=SHR,DSN=IDMS.SYSDIRL.DDLDML //DCMSG DD DISP=SHR,DSN=IDMS.SYSMSG.DDLDCMSG //DCCAT DD DISP=SHR,DSN=IDMS.CATSYS.DCCAT //DCCATL DD DISP=SHR,DSN=IDMS.CATSYS.DCCATLOD //DCCATX DD DISP=SHR,DSN=IDMS.CATSYS.DCCATX //SYSIDMS DD * DMCL=GLBLDMCL /* //SYSIPT DD * SIGNON DICTIONARY SYSDIRL .
I assume you have the user secured thru external security and the job is passing the user-id of the job owner. If that is the case, I would guess that user ID is not defined in your sysdirl dictionary. If you have dynamic allocation active in your DMCL you don't need all those DD statements for the database datasets, not that they hurt, but for me they are just clutter in the job.
Here's a typical jobstep I would use to run DDDL in local mode:
// JCLLIB ORDER=(IDMS.KP7.DBA.INCLUDES) //LCLDDDL EXEC PGM=IDMSDDDL // INCLUDE MEMBER=STEPCV01 //SYSLST DD SYSOUT=* //SYSIPT DD * SIG USA RET DIC SYSTEM. DIS ALL LINE
This would pass my user-id from the job. I could change the dictionary to any any dictionary I'm defined in.
I'm not sure exactly what is in your IDMSDDDL include. Probably steplib is the main thing, but you might have a sysctl also I suppose. Looks like you are running update mode but could be local if the dictionaries are not running under a system at the moment. HTH.
That may be helpful. I have looked back and I find I can’t even get into SYSDIRL to do a DIS FIRST 900 USERS. So I can find out what users are defined. I assume If I am not a user in a dictionary I won’t be able to so SIGNON DICT <dictname>.
I’ll see if another person on my team will add me.
Another way to deal with this might be to change options is sysdirl to "security for IDD is off" - I noticed that is how our sysdirl is set since the only user defined in there is the vendor supplied "cull dba".
Options in sysdirl is what I meant. Use set options for dictionary to do so.
SYSDIRL likely has IDD security on.In most shops, I believe, SYSDIRL would hold CA supplied modules such as performance monitor reports etc.
There probably is an ID with no update authority you can use for logging into the dictionary, the SYSADMIN should know.