I have written a program to try and retrieve the Current Node's Role in a
HA Cluster. I need to know if the current system is the Primary system or
a Backup System. When running the program I am receiving the following
error when executing the QcstListClusterResourceGroupIn. Can anyone tell
me what I am doing wrong as I have spent a lot of time looking at it and I
just don't see the problem.
Additional Message Information
Message ID . . . . . . : CPF3CF1 Severity . . . . . . . : 40
Message type . . . . . : Diagnostic
Date sent . . . . . . : 05/14/12 Time sent . . . . . . :
07:54:18
Message . . . . : Error code parameter not valid.
Cause . . . . . : The format of the error code parameter is not
correct.
Recovery . . . : Correct the error code parameter and try the request
again. If you do not know the correct format for the error code
parameter,
see the APIs topic collection in the Programming category in the i5/OS
Information Center,
http://www.ibm.com/systems/i/infocenter/.
The code for the program is as follows:
H/include *libl/UTILSRC,GugIHSpec
*? Create user space API
D API_CreateUserSpace...
D pr extpgm( 'QUSCRTUS' )
D SpcNamQ 20a const
D ExtAtr 10a const
D InzSiz 10i 0 const
D InzVal 1a const
D PubAut 10a const
D Text 50a Const
D Replace 10a Const Options( *NoPass )
D Error 32767a Options( *NoPass:
*VarSize )
D Domain 10a Const Options( *NoPass )
*? Delete User Space API
D API_DltUsrSpc pr extpgm( 'QUSDLTUS' )
D SpcNamQ 20a const
D Error 32767a options( *varsize )
*? Retrieve User Space API
D API_RtvUsrSpc pr extpgm( 'QUSRTVUS' )
D iSpcNamQ 20a const
D iStartPos 10i 0 const
D iDataLength 10i 0 const
D oRcvVar 32767a options( *varsize )
D ioErrorCode 32767a options( *varsize )
*? API error data structure
D dsLRGI0100 ds
D NodeId 8a
D CurrNodeRole 10i 0
D MemberStatus 10i 0
D PreferredRole 10i 0
*? Cluster Resource Group data structure
D dsCRGinfoUsrSpc...
D ds qualified
D USRSPC_Q 20a inz( '#RTVCRGLSTGUSYS ')
D EXT_ATR 1a inz( ' ' )
D USP_SIZ 10i 0 inz( 65535 )
D INZ_VAL 1a inz( x'00' )
D PUB_AUT 10a inz( '*CHANGE' )
D TXT_DSC 50a inz( 'List Cluster Resource
Group' )
D USP_RPL 10a inz( '*YES' )
D ds
D vResultsInfo 30a inz
D vResultsQue 10a overlay( vResultsInfo : 1 )
D vResultsLib 10a overlay( vResultsInfo : *next
)
D vResultsRsv 10a overlay( vResultsInfo : *next
)
D inz( *loval )
*? Stand-alone variable definitions
D vClusterName s 10a inz
D vCRGName s 10a inz( ' ' )
D vFormatName s 8a inz( 'LRGI0100' )
D vReqHandle s 16a inz
D vRtvCluVarLen s 10i 0 inz
D vRtvCluFormat s 8a inz( 'RCLI0100' )
D vUserSpace s 20a inz
D/copy QSYSINC/QRPGLESRC,QCSTCTL1
D/copy QSYSINC/QRPGLESRC,QCSTCRG3
D/copy QSYSINC/QRPGLESRC,QUSEC
/free
//? Set SQL options
exec sql set option commit = *none, alwcpydta = *optimize,
closqlcsr = *endmod, DLYPRP = *yes, datfmt = *iso, TIMFMT = *iso;
//? Delete any previous User Space for Cluster Resource Group
API_DltUsrSpc( dsCRGinfoUsrSpc : QUSEC );
//? Create User Space for Cluster Resource Group
API_CreateUserSpace( dsCRGinfoUsrSpc.USRSPC_Q
: dsCRGinfoUsrSpc.EXT_ATR : dsCRGinfoUsrSpc.USP_SIZ
: dsCRGinfoUsrSpc.INZ_VAL : dsCRGinfoUsrSpc.PUB_AUT
: dsCRGinfoUsrSpc.TXT_DSC : dsCRGinfoUsrSpc.USP_RPL
: QUSEC );
vUserSpace = dsCRGinfoUsrSpc.USRSPC_Q ;
exsr GETCRG ;
//? Retrieve the User Space for Cluster Resource Group
//? Delete any previous User Space for Cluster Resource Group
API_DltUsrSpc( dsCRGinfoUsrSpc : QUSEC );
*inlr = *on ;
return ;
/end-free
C GETCRG begsr
C clear QUSEC
C eval vRtvCluVarLen = %len(QCSI010001)
C callb QCSTRCI
C parm QCSI010001
C parm vRtvCluVarLen
C parm vRtvCluFormat
C parm QUSEC
C clear QUSEC
C eval vClusterName = QCSCN03
C callb QCSTLCRG
C parm vReqHandle
C parm vUserSpace
C parm vFormatName
C parm vClusterName
C parm vCRGName
C parm vResultsInfo
C parm QUSEC
C endsr
As an Amazon Associate we earn from qualifying purchases.