MRIDBSET job failed by MRID204E.
Processing DD:CNTLIN:
CNTLIN not found, no SSID filtering applied.
Allocating and initializing JSON data set(s):
MRID204E Dynamic allocation failed: DSN = xxxx.xxxx.xxxx.xxxx.TST1.DSNB.JSON (RC = 08 ECDE = 1708 ICDE = 0002).
//TAILOR EXEC PGM=MRIDBTAI,COND=(8,LT),
//CNTLIN DD *,SYMBOLS=JCLONLY
Using non-SMS dataset to allocate a JSON dataset since ASC routine is used to allocate a dataset by HLQ, so &STORPARM is commented out.
Tested to set STORPARM='VOL=
Release : 2.7.2
Component : MAINFRAME RESOURCE INTELLIGENCE BASE ASSESSMENT
In MRIDBSET job, use of non-SMS managed storage, pre-allocation of the JSON is needed. However, this is not convenient method.
MRI Toolkit version 3.00.00 supports use of non-SMS managed storage in In MRIDBSET job.
This is steps to use non-SMS managed storage in In MRIDBSET job.
1.
Please go to https://mri.broadcom.com/ website and download a new MRI Toolkit version.
The MRI has been enhanced with the "Componentization" feature, which allows to select just Db2 for MRI Report component in the zip file.
Make sure, the Toolkit version is 3.00.00.
2.
Install the toolkit as before (or refer to the documentation for help).
The new diference is that we distribute a new additional library - the SAMP. So the zip file will contain the following 4 XMI binaries:
CAMRI.MRI.DB2.V030000.CNTL.XMI
CAMRI.MRI.DB2.V030000.DBRM.XMI
CAMRI.MRI.DB2.V030000.LOAD.XMI
CAMRI.MRI.DB2.V030000.SAMP.XMI
3.
Once the XMITs are RECEIVEd on the mainframe, there will be four libraries, named as:
hlq.CNTL
hlq.DBRM
hlq.LOAD
hlq.SAMP
4.
So far, the installation is identical.
Now the promised workaround to bypass the dynamic allocation:
Go into the hlq.SAMP library and edit the hlq.SAMP(MRITSCAN) member:
Add a ALLOC template step just before SCANDB2 EXEC template.
Please note various <JSONMODEL>, <JSONDD>, etc TAGs - these must be as is, otherwise the tailoring proces will not work properly.
Also, do not remove <JSONDSN> tag. The MRIDBSET will substitute it with the correct name automatically.
Also note the &STORPARM. The value will be taken from the corresponding JCL SET variable from the MRIDBSET job.
Or, this can be removed and added whatever is needed, for example UNIT, VOL=SER,...etc.
The member will look like this:
//*--------------------------------------------------------------------
//* PRE-ALLOCATE THE JSON DATA SET(S)
//*--------------------------------------------------------------------
//ALLOC EXEC PGM=IEFBR14
//<JSONMODEL>
//<JSONDD> DD DSN=<JSONDSN>,
// DISP=(MOD,CATLG,KEEP),
// UNIT=SYSALLDA,SPACE=(CYL,(2,1),RLSE),
// DCB=(RECFM=VB,LRECL=200,BLKSIZE=27998),
// &STORPARM
//</JSONMODEL>
//*
//*--------------------------------------------------------------------
//* SCAN DB2 SUBSYSTEM(S) ON LPAR TO GATHER REQUIRED INFORMATION
//*--------------------------------------------------------------------
//SCANDB2 EXEC PGM=MRIDBSCN,PARM='&HLQ,&DESC',COND=(4,LT)
//STEPLIB DD DISP=SHR,DSN=&HLQ..LOAD
//<DB2LIBS>
// DD DISP=SHR,DSN=<DB2DSN>
//</DB2LIBS>
//<JSONMODEL>
//<JSONDD> DD DISP=SHR,DSN=<JSONDSN>
//</JSONMODEL>
//SYSPRINT DD SYSOUT=*
//CNTLIN DD *,SYMBOLS=JCLONLY
//<SCANDECK>
//</SCANDECK>
/*
5.
Now, go into the hlq.CNTL(MRIDBSET) JCL and make the setup as before - the JOB card, fill the proper SET values, etc...
6.
Scroll down to the TAILOR EXEC step and delete or comment out the entire JSONMDL DD statement.
//*--------------------------------------------------------------------
//* RUN JCL TAILORING PROGRAM
//*--------------------------------------------------------------------
//TAILOR EXEC PGM=MRIDBTAI,COND=(8,LT),
// PARM='&HLQ,&DESC,&PCKG,&PLAN,&SSIDGEN,&REPLACE'
//STEPLIB DD DISP=SHR,DSN=&HLQ..LOAD
//INSTIN DD DISP=SHR,DSN=&HLQ..CNTL(MRIDBSET)
//TMPLIN DD DISP=SHR,DSN=&HLQ..SAMP
//SYSPRINT DD SYSOUT=*
//JSONMDL DD DSN=&HLQ..JSONMDL,
// UNIT=SYSALLDA,SPACE=(CYL,(2,1),RLSE),
// DCB=(RECFM=VB,LRECL=200,BLKSIZE=27998),
// &STORPARM
//JCLOUT DD DISP=SHR,DSN=&HLQ..JCL
//RPTOUT DD DISP=SHR,DSN=&HLQ..RPRTJCL
//CNTLIN DD *,SYMBOLS=JCLONLY
--PROVIDE CUSTOM LIST OF SSID ENTRIES
-- (WILDCARDS "*" AND "?" ARE SUPPORTED)
--SYNTAX: INCLUDE SSID=<SSID>
-- <OR>
-- EXCLUDE SSID=<SSID>
--INCLUDE SSID=*
//* EOF
7.
Save the changes and submit the MRIDBSET JCL.
8.
The job should end with RC = 4,
you should see a "MRID208W Unable to open DD:JSONMDL. JSON data set(s) allocation bypassed." message in the SYSPRINT, which is expected.
9.
The MRIDBSET then allocates a hlq.JCL library, which will contain all pre-tailored SCAN JCLs per each SSID, plus the multi-SSID job, the MERGE utility and DELETE JCL.
So from here, the process is identical as before.
10.
Those SCAN JCLs will then contain the ALLOC step taken from the SAMP template library and thus, the JSON step will be allocated here, before the SCAN step.