View previous topic :: View next topic
|
Author |
Message |
sushanth bobby
Senior Member

Joined: 29 Jul 2008 Posts: 1020 Location: India
|
|
|
|
Hi,
I started with your code and improvised it a bit and on-the-way i encountered all the errors that you have been encountering and little more also. Below is the fully tested code and executed code.
I resolved the -471 with 00E7900C error by looking into the following places for the correct WLM,
* Catalogs
* -DISPLAY PROCEDURE
* SDSF --> PRE DB2D*** --> for me its DB2D, look for WLM, go into the jesjcl--> look for 'APPLENV=' and also let us know what is your NUMTCB value
All WLM Must be same.
After checking all this, still if you have a problem, check whether you are pointing to the right sub-system.
Code: |
/**** REXX **************************************/
/* DB2 ADMIN_INFO_SYSPARM STORED PROCEDURE */
/************************************************/
ADDRESS TSO "SUBCOM DSNREXX" /* HOST CMD ENV AVAILABLE */
IF RC THEN /* IF NOT, MAKE IT AVAILABLE */
DO /* ADD HOST CMD ENVIRONMENT */
S_RC = RXSUBCOM('ADD','DSNREXX','DSNREXX')
END
/* CONNECT TO DB2 SUB SYSTEM */
ADDRESS DSNREXX 'CONNECT DB2D'
IF SQLCODE <> 0 THEN
DO
CALL SQLCA
SAY RC
END
/*TRACE I */
SSID_IND = -1
SSID = LEFT(' ',4)
SAY SSID
RETCD_IND=0
RETCD=0
MSSG_IND=0
MSSG=LEFT(' ',1331,' ')
INSQLDA.SQLD = 1
INSQLDA.1.SQLTYPE = 449 /* VARCHAR */
INSQLDA.1.SQLLEN = 32000
INSQLDA.1.SQLIND = 0
INSQLDA.1.SQLDATA = ' '
PROC = 'SYSPROC.ADMIN_INFO_SYSPARM1'
ADDRESS DSNREXX 'EXECSQL CALL ' PROC,
'(:SSID :SSID_IND',
',:RETCD :RETCD_IND',
',:MSSG :MSSG_IND)'
SAY 'RETCD ='RETCD
SAY 'LENGTH = 'LENGTH(MSSG)
IF SQLCODE < 0 THEN CALL SQLCA
ELSE
DO
ADDRESS DSNREXX 'EXECSQL DESCRIBE PROCEDURE :PROC INTO :SQLDA'
SAY 'DONE WITH DESCRIBE'
DO I = 1 TO SQLDA.SQLD
SAY "SQLDA."I".SQLD ="SQLDA.SQLD";"
SAY "SQLDA."I".SQLNAME ="SQLDA.I.SQLNAME";"
SAY "SQLDA."I".SQLTYPE ="SQLDA.I.SQLTYPE";"
SAY "SQLDA."I".SQLLOCATOR ="SQLDA.I.SQLLOCATOR";"
SAY "SQLDA."I".SQLESTIMATE="SQLDA.I.SQLESTIMATE";"
END
/****************************************************************/
/* SET UP A CURSOR TO RETRIEVE THE ROWS FROM THE RESULT */
/* SET. */
/****************************************************************/
ADDRESS DSNREXX 'EXECSQL ASSOCIATE LOCATOR (:MSSG)',
'WITH PROCEDURE :PROC'
IF SQLCODE <> 0 THEN CALL SQLCA
SAY 'MSSG ='MSSG
ADDRESS DSNREXX "EXECSQL ALLOCATE C101 CURSOR FOR RESULT SET :MSSG"
IF SQLCODE <> 0 THEN CALL SQLCA
CURSOR = 'C101'
ADDRESS DSNREXX "EXECSQL DESCRIBE CURSOR :CURSOR INTO :SQLDA"
SAY 'ADEBUG SQLCODE ='SQLCODE
IF SQLCODE <> 0 THEN CALL SQLCA
DO I = 1 TO SQLDA.SQLD
SAY "SQLDA."I".SQLD ="SQLDA.SQLD";"
SAY "SQLDA."I".SQLNAME ="SQLDA.I.SQLNAME";"
SAY "SQLDA."I".SQLTYPE ="SQLDA.I.SQLTYPE";"
SAY "SQLDA."I".SQLLEN ="SQLDA.I.SQLLEN";"
SAY "SQLDA."I".SQLLOCATOR ="SQLDA.I.SQLLOCATOR";"
SAY "SQLDA."I".SQLESTIMATE="SQLDA.I.SQLESTIMATE";"
END
/****************************************************************/
/* RETRIEVE AND DISPLAY THE ROWS FROM THE RESULT SET, WHICH */
/* CONTAIN THE COMMAND OUTPUT MESSAGE TEXT. */
/****************************************************************/
I=0
DO UNTIL(SQLCODE <> 0)
ADDRESS DSNREXX 'EXECSQL FETCH C101 ',
'INTO :ROWNUM, :MACRO, :PARAMETER,',
':INSTALL_PANEL :IND_INSTALL_PANEL,',
':INSTALL_FIELD :IND_INSTALL_FIELD,',
':INSTALL_LOCATION :IND_INSTALL_LOCATION,',
':VALUE,',
':ADDITIONAL_INFO :IND_ADDITIONAL_INFO'
IF SQLCODE = 0 THEN
DO
I = I + 1
RECORD.I = SUBSTR(ROWNUM,1,3) SUBSTR(MACRO,1,8)
RECORD.I = RECORD.I SUBSTR(PARAMETER,1,32) SUBSTR(INSTALL_PANEL,1,8)
RECORD.I = RECORD.I SUBSTR(INSTALL_FIELD,1,40) SUBSTR(INSTALL_LOCATION,1,5)
RECORD.I = RECORD.I SUBSTR(STRIP(VALUE),1,40)
RECORD.I = RECORD.I SUBSTR(STRIP(ADDITIONAL_INFO),1,20)
/* SAY 'ROWNUM='ROWNUM
SAY 'MACRO ='MACRO
SAY 'PARAMETER ='PARAMETER
SAY 'INSTALL_PANEL ='INSTALL_PANEL
SAY 'INSTALL_FIELD ='INSTALL_FIELD
SAY 'INSTALL_LOCATION ='INSTALL_LOCATION
SAY 'VALUE ='VALUE
SAY 'ADDITIONAL INFO ='ADDITIONAL_INFO
SAY RECORD.I
*/END
END
RECORD.0=I
IF SQLCODE <> 0 THEN CALL SQLCA
ADDRESS DSNREXX "EXECSQL CLOSE C101"
IF SQLCODE <> 0 THEN CALL SQLCA
ADDRESS DSNREXX "EXECSQL COMMIT"
IF SQLCODE <> 0 THEN CALL SQLCA
SAY RC
END
IF SQLCODE <> 0 THEN
DO
CALL SQLCA
SAY RC
END
ADDRESS DSNREXX 'DISCONNECT'
/* WHEN DONE WITH DSNREXX, REMOVE IT */
S_RC = RXSUBCOM('DELETE','DSNREXX','DSNREXX')
"DELETE '"HXSULL.DB2.DB2D.SYS.PARM"'"
"ALLOC FI(DB2SYSP) DA('HXSULL.DB2.DB2D.SYS.PARM') MOD KEEP REUSE",
"CYL SPACE(1,1) LRECL(200) RECFM(F,B,A) DSORG(PS)"
"EXECIO * DISKW DB2SYSP (STEM RECORD. FINIS"
EXIT
SQLCA:
SAY 'SQLCODE = ' SQLCODE
SAY 'SQLSTATE = ' SQLSTATE
SAY 'SQLERRD.1 = ' SQLERRD.1
SAY 'SQLERRD.2 = ' SQLERRD.2
SAY 'SQLERRD.3 = ' SQLERRD.3
SAY 'SQLERRD.4 = ' SQLERRD.4
SAY 'SQLERRD.5 = ' SQLERRD.5
SAY 'SQLERRD.6 = ' SQLERRD.6
SAY 'SQLERRMC = ' SQLERRMC
RETURN |
I have a doubt, why is the cursor C101 is used, what attribute does it have.
Code: |
EXECSQL ALLOCATE C101 CURSOR FOR RESULT SET |
From the redbook i got to know that C1 to C100 are declared with a default attribute of WITH RETURN. What attribute does the cursor C101 have.
Thanks,
Sushanth |
|
Back to top |
|
 |
mjadwani2785
New User
Joined: 28 Apr 2009 Posts: 89 Location: Noida , Dublin
|
|
|
|
Again after so many days...Today I again started working on this one...
The problem is db2vwlm proc is not able to start.. so something strike my mind and I tried to start it manually to look for error...
What I did was /s db2vwlm to look for the error in the log
and the proc started and abended..the error generated is
DSNX967I DSNX9WLM ATTEMPT TO PERFORM WLM FUNCTION IWMCONN FAILED
WITH WLM RC = 0000000C RSN = 11580C1B SSN = DB2V PROC= DB2VWLM
ASID = 0039 WLM_ENV = DB2VWLM
Does this refer to any db2 -wlm racf authority problem ? |
|
Back to top |
|
 |
Robert Sample
Global Moderator

Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
Google is your friend. Googling dsnx967i returned 116 hits, including at leat one with the 0000000C RC and 11580C18 RSN. |
|
Back to top |
|
 |
mjadwani2785
New User
Joined: 28 Apr 2009 Posts: 89 Location: Noida , Dublin
|
|
|
|
The wlm application environment defined at my side was wrong. Today I defined the new one and it worked for me.
Thanks all  |
|
Back to top |
|
 |
leela_krsna
New User
Joined: 09 Aug 2006 Posts: 3
|
|
|
|
What's the result of VARY?
"Specify an application environment that is defined and active in the active WLM policy, or update the WLM policy to contain a valid application environment name." |
|
Back to top |
|
 |
mjadwani2785
New User
Joined: 28 Apr 2009 Posts: 89 Location: Noida , Dublin
|
|
|
|
Actual problem was in the wlm application definition the subsystem type was defined as subsystem name instead of just DB2 . Took almost weeks to figure it out but finally got through.
Then from the WLM ISPF panel only activated the policies.
Its a test environment out here just doing my R&D and learning.
Thanks!! |
|
Back to top |
|
 |
|
 |
All times are GMT + 6 Hours |
|