[BUG] Assign Certificate to DCM Application
I tried to assign a certificate to an application. This i the qshell output:
dcmassign
shortname for 'QIBM_QTV_TELNET_SERVER' is 'TELNET'
shortname for 'QIBM_GLD_DIRSRV_SERVER' is 'DIRSRV'
shortname for 'QIBM_QTMS_SMTP_SERVER' is 'SMTP'
shortname for 'QIBM_QTMF_FTP_SERVER' is 'FTP'
shortname for 'QIBM_QTMM_POP_SERVER' is 'POP'
shortname for 'QIBM_QSVR_OBJC_SERVER' is 'OBJC'
Enter application ID:
FTP
Assigning to QIBM_QTMF_FTP_SERVER...
Enter certificate ID:
2022-02
The parameter [0]: Parameter value is not valid.
$
According to IBM Support this is the result of using more than 7 parameters in ServiceProgramCall. With a PTF some months ago, this limit was raised to 248 parameters but you have to submit the parameters as pointers. So if you could change for example in your DcmApiCaller: In for example method: public void callQycdUpdateCertUsage
// 1 Application ID Output Char(*) parameterList[0] = new ProgramParameter(new AS400Text(_appId.length()).toBytes(_appId));
to
// 1 Application ID Output Char(*) parameterList[0] = new ProgramParameter(new AS400Text(_appId.length()).toBytes(_appId)); parameterList[0].setParameterType(ProgramParameter.PASS_BY_REFERENCE);
and so on, it should work.
Thanks for the insight, @DeltaE0 !