<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7160906895981316435</id><updated>2012-02-16T22:30:40.217+05:30</updated><category term='DB2 Subsytem Access'/><category term='DISPLAY THREAD'/><category term='DSN_FUNCTION_TABLE'/><category term='IEC161I'/><category term='Performance'/><category term='failure of REORG'/><category term='Sign-on Processing'/><category term='EXPLAIN'/><category term='/FORCE DBM1'/><category term='REPAIR DBD DIAGNOSE'/><category term='/MODIFY DSN1IRLM'/><category term='DSNTEJ6Z'/><category term='accidentally dropped table'/><category term='IPLINFO'/><category term='DSNJU004'/><category term='/FORCE MSTR'/><category term='LOCATE TABLESPACE'/><category term='TSO DSN'/><category term='DSNESPRR'/><category term='TCPIP'/><category term='ACCESSTYPE'/><category term='APPLENV=DSN1PRCH'/><category term='RDS Sort'/><category term='/C MSTR'/><category term='CHECK DATA'/><category term='DB2 10'/><category term='DSNRLST01'/><category term='Not Operational'/><category term='00C200E1'/><category term='REPAIR DBD'/><category term='DSN1COPY'/><category term='TSLOCKMODE'/><category term='Index Screening'/><category term='Copy production statistics to test env'/><category term='CCSID'/><category term='DB2 Not Operational'/><category term='down DB2 forcefully'/><category term='FDBA623 CAF error 00F30034 - Plan name unauthorized'/><category term='SPUFI'/><category term='VERIFY'/><category term='DCS'/><category term='ZOS'/><category term='Use Protection'/><category term='REPAIR DBD TEST'/><category term='REPAIR VERSIONS'/><category term='-DIS PROCEDURE'/><category term='PERMIT'/><category term='NOAUXCHKP'/><category term='Hrecall'/><category term='NOCOPYPEND'/><category term='-STA'/><category term='FDBA623 CAF error 00F30034'/><category term='DIAGNOSE'/><category term='EXPLAIN PLAN_TABLE'/><category term='IPL'/><category term='MAINFRAME'/><category term='Broken Hash Chanins'/><category term='DSN_STATEMNT_TABLE'/><category term='equivalent KEY'/><category term='QBLOCK_TYPE'/><category term='/%WLMRECOV DSN1PRCH'/><category term='D VOL'/><category term='/C DBM1'/><category term='Mismatch SPUFI TERMINAL'/><category term='MATCHCOLS'/><category term='WHEN_OPTIMIZE'/><category term='Calculating size of Database or Table'/><category term='DB2 directory and Catalog'/><category term='Equal Unique Index'/><category term='SYSADM'/><category term='NODUMP'/><category term='REASON 00C200E1'/><category term='RACF'/><category term='PSID'/><category term='DB'/><category term='DB2'/><category term='STOSPACE'/><category term='PROCSU'/><category term='Connection Processing'/><category term='00F30034'/><category term='DSNWZP'/><category term='DBA'/><category term='DSNJU003'/><category term='INDEXONLY'/><category term='DSNE345I'/><category term='DSNESP06'/><category term='CATALOG'/><category term='PLAN_TABLE'/><category term='SIL0'/><category term='REPAIR'/><category term='MVS zOS version'/><category term='Termination of REORG'/><category term='APF'/><category term='CPU Parallelism'/><category term='JOIN_TYPE'/><category term='RID'/><category term='Resource Limit Specification Table'/><category term='PAGES'/><category term='STOGROUP'/><category term='DSNR'/><category term='SYSSTOGROUP'/><category term='/F SLS0'/><category term='DSNTESC'/><category term='REBUILD INDEX'/><category term='Long running'/><category term='NOCHECKPEND'/><category term='REORG'/><category term='-STOP'/><category term='One-Fetch'/><category term='IN-list index scan'/><category term='REPLACE'/><category term='DSN1CHKR'/><category term='X&apos;00E40002&apos; ABEND'/><category term='DB2 version display -DIS GROUP'/><category term='Modelling your production system'/><category term='Stage 2'/><category term='+DIS THD(*)'/><category term='FDBA623'/><category term='SYSXLAT'/><category term='TABLE_TYPE'/><category term='&quot;DSNE106E PLAN DSNESPCS NOT AUTHORIZED FOR SUBSYSTEM&quot;'/><category term='DEFER YES'/><category term='TABLE_ENCODE'/><category term='DB2 DBA'/><category term='NORBDPEND'/><category term='COST_CATEGORY'/><category term='zPARM'/><category term='THREAD'/><category term='PGSOBD'/><category term='Dynamic SQL performance'/><category term='CONDITIONAL RESTART'/><category term='Tapes Rack'/><category term='&apos;Tape backup File not found&apos;'/><category term='DSNZPARM'/><category term='DBID'/><category term='Space Calculation'/><category term='what is new in DB2  10'/><category term='DSNE106E'/><category term='Broken Links'/><category term='Sysplex'/><category term='EXIT Routines'/><category term='DB2 X'/><category term='BSDS'/><category term='AUTH'/><category term='/D WLM'/><category term='MAINFRAME SERVER'/><category term='DUMP'/><category term='PROCMS'/><category term='S04E'/><category term='DSNESPCS'/><category term='HPGOBID'/><category term='QUERY COST'/><category term='Plan name unauthorized'/><category term='Backup Failure'/><category term='OBID'/><category term='DSN8ED7'/><category term='CREATE INDEX'/><category term='DSNR class'/><category term='METHOD'/><category term='predicates'/><category term='PAGE_RANGE'/><category term='Matching Index-scan'/><category term='RECOVER pending status'/><category term='DELETE'/><category term='SEGSIZE'/><category term='REPAIR OBJECT'/><category term='PRIMARY_ACCESSTYPE'/><category term='/F DSN1IRLM'/><category term='ACCESS_DEGREE'/><category term='TABLESPACE DESIGN'/><category term='DSNTIJUZ'/><category term='DSN1PRNT'/><category term='Stage 1'/><title type='text'>DB2 DBA</title><subtitle type='html'>This Blog is dedicated to DB2 DBAs on mainframe Platform</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-332373132248981922</id><published>2010-12-25T17:05:00.000+05:30</published><updated>2010-12-25T17:05:41.191+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='RECOVER pending status'/><category scheme='http://www.blogger.com/atom/ns#' term='REORG'/><category scheme='http://www.blogger.com/atom/ns#' term='failure of REORG'/><category scheme='http://www.blogger.com/atom/ns#' term='Termination of REORG'/><title type='text'>Termination of REORG TABLESPACE</title><content type='html'>Hello my blog readers...&lt;br /&gt;&lt;br /&gt;It is truely a concern when the REORG of the table terminated. Here is one of the most important facts regarding Reorg failure and termination&amp;nbsp;which I have collected from IBM manual and shared with you for your benefit.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can terminate the REORG TABLESPACE utility.&lt;br /&gt;&lt;br /&gt;If you terminate REORG TABLESPACE with the TERM UTILITY command during the UNLOAD phase, objects have not yet been changed, and you can rerun the job.&lt;br /&gt;&lt;br /&gt;If you terminate REORG TABLESPACE with the TERM UTILITY command during the RELOAD phase, the behavior depends on the SHRLEVEL option: &lt;br /&gt;&lt;br /&gt;•For SHRLEVEL NONE, the data records are not erased. The table space and indexes remain in RECOVER-pending status. After you recover the table space, rerun the REORG job.&lt;br /&gt;&lt;br /&gt;•For SHRLEVEL REFERENCE or CHANGE, the data records are reloaded into shadow objects, so the original objects have not been affected by REORG. You can rerun the job.&lt;br /&gt;&lt;br /&gt;If you terminate REORG with the TERM UTILITY command during the SORT, BUILD, or LOG phases, the behavior depends on the SHRLEVEL option: &lt;br /&gt;&lt;br /&gt;•For SHRLEVEL NONE, the indexes that are not yet built remain in RECOVER-pending status. You can run REORG with the SORTDATA option, or you can run REBUILD INDEX to rebuild those indexes.&lt;br /&gt;&lt;br /&gt;•For SHRLEVEL REFERENCE or CHANGE, the records are reloaded into shadow objects, so the original objects have not been affected by REORG. You can rerun the job.&lt;br /&gt;&lt;br /&gt;If you terminate a stopped REORG utility with the TERM UTILITY command during the SWITCH phase, the following conditions apply: &lt;br /&gt;&lt;br /&gt;•All data sets that were renamed to their shadow counterparts are renamed to their original names, so that the objects remain in their original state, and you can rerun the job.&lt;br /&gt;&lt;br /&gt;•If a problem occurs in renaming the data sets to the original names, the objects remain in RECOVER-pending status, and you cannot rerun the job.&lt;br /&gt;&lt;br /&gt;If the SWITCH phase does not complete, the image copy that REORG created is not available for use by the RECOVER utility. If you terminate an active REORG utility during the SWITCH phase with the TERM UTILITY command, during the rename process, the renaming occurs, and the SWITCH phase completes. The image copy that REORG created is available for use by the RECOVER utility.&lt;br /&gt;&lt;br /&gt;The REORG-pending status is not reset until the UTILTERM execution phase. If the REORG utility abnormally terminates or is terminated, the objects remain in REORG-pending status and RECOVER-pending status, depending on the phase in which the failure occurred.&lt;br /&gt;&lt;br /&gt;The following table lists the restrictive states that REORG TABLESPACE sets according to the phase in which the utility terminated.&lt;br /&gt;&lt;br /&gt;Table 1. Restrictive states that REORG TABLESPACE sets. Phase Effect on restrictive status &lt;br /&gt;&lt;br /&gt;UNLOAD No effect. &lt;br /&gt;&lt;br /&gt;RELOAD SHRLEVEL NONE: &lt;br /&gt;&lt;br /&gt;•Places table space in RECOVER-pending status at the beginning of the phase and resets the status at the end of the phase.&lt;br /&gt;&lt;br /&gt;•Places indexes in RECOVER-pending status.&lt;br /&gt;&lt;br /&gt;•Places the table space in COPY-pending status. If COPYDDN is specified and SORTKEYS is ignored, the COPY-pending status is reset at the end of the phase. SORTKEYS is ignored for several catalog and directory table spaces&lt;br /&gt;&lt;br /&gt;SHRLEVEL REFERENCE or CHANGE has no effect.&lt;br /&gt;&lt;br /&gt;SORT No effect. &lt;br /&gt;&lt;br /&gt;BUILD SHRLEVEL NONE resets RECOVER-pending status for indexes and, if the utility job includes both COPYDDN and SORTKEYS, resets COPY-pending status for table spaces at the end of the phase. SHRLEVEL REFERENCE or CHANGE has no effect. &lt;br /&gt;&lt;br /&gt;SORTBLD No effect during the sort portion of the SORTBLD phase. During the build portion of the SORTBLD phase, the effect is the same as for the BUILD phase. &lt;br /&gt;&lt;br /&gt;LOG No effect. &lt;br /&gt;&lt;br /&gt;SWITCH No effect. Under certain conditions, if TERM UTILITY is issued, it must complete successfully; otherwise, objects might be placed in RECOVER-pending status. &lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;u&gt;Recovering a failed REORG job&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you terminate REORG SHRLEVEL NONE in the RELOAD phase, all SYSLGRNX records associated with the reorganization are deleted. Use the RECOVER TABLESPACE utility to recover to the current point in time. This action recovers the table space to its state before the failed reorganization.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: magenta;"&gt;Example 1:&lt;/span&gt;&lt;/strong&gt; Recovering a table space. The following control statement specifies that the RECOVER utility is to recover table space DSN8D81A.DSN8S81D to the current point in time. &lt;br /&gt;&lt;br /&gt;RECOVER TABLESPACE DSN8D81A.DSN8S81D&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers.. and Merry Christmas!!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM Certified DB2 DBA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-332373132248981922?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/332373132248981922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=332373132248981922' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/332373132248981922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/332373132248981922'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2010/12/termination-of-reorg-tablespace.html' title='Termination of REORG TABLESPACE'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-4287498575955695987</id><published>2010-09-19T19:48:00.001+05:30</published><updated>2010-09-19T19:49:46.265+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='EXIT Routines'/><category scheme='http://www.blogger.com/atom/ns#' term='Use Protection'/><category scheme='http://www.blogger.com/atom/ns#' term='Sign-on Processing'/><category scheme='http://www.blogger.com/atom/ns#' term='AUTH'/><category scheme='http://www.blogger.com/atom/ns#' term='Connection Processing'/><category scheme='http://www.blogger.com/atom/ns#' term='DSNZPARM'/><title type='text'>DB2 EXIT Routines</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;Here is one topic for you in controlling access to DB2 Subsystems:&lt;br /&gt;&lt;br /&gt;There are two very important IBM supplied default Exit routines.&lt;br /&gt;&lt;br /&gt;DB2 provides 2 exit points for authorization routines:&lt;br /&gt;&lt;br /&gt;1) Connection Processing - DSN3@ATH&lt;br /&gt;&lt;br /&gt;2) Sign-on Processing - DSN3@SGN&lt;br /&gt;&lt;br /&gt;DB2 also provides a third exit point - DSNX@XAC which gives you the flexibility to furnish your own access control routines or use RACF (or equivalent) to perform system authorization checking.&lt;br /&gt;&lt;br /&gt;DB2 passes 3 possible functions while invoking authorization routine&lt;br /&gt;&lt;br /&gt;a) Initialization - DB2 Startup&lt;br /&gt;b) Authorization check&lt;br /&gt;c) Termination - DB2 Shutdown&lt;br /&gt;&lt;br /&gt;There are certain situations where Exit routines may not be called&lt;br /&gt;&lt;br /&gt;1) If the user is a Install SYSADM or Install SYSOPR&lt;br /&gt;2) Grant statement is executed&lt;br /&gt;3) If&amp;nbsp;previous invocation indicated the routine should not be called again&lt;br /&gt;4) DB2 security has been disabled (AUTH (DSNZPARM) - Use Protection is set to NO &amp;nbsp;or in DSNTIPP panel)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers...&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-4287498575955695987?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/4287498575955695987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=4287498575955695987' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/4287498575955695987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/4287498575955695987'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2010/09/exit-routines.html' title='DB2 EXIT Routines'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-4061541576127296736</id><published>2010-08-08T13:33:00.000+05:30</published><updated>2010-08-08T13:33:01.077+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='00C200E1'/><category scheme='http://www.blogger.com/atom/ns#' term='Backup Failure'/><category scheme='http://www.blogger.com/atom/ns#' term='REASON 00C200E1'/><category scheme='http://www.blogger.com/atom/ns#' term='IEC161I'/><title type='text'>Backup Failed with REASON 00C200E1</title><content type='html'>Hello All,&lt;br /&gt;&lt;br /&gt;Here is another classic example of backup failure with&amp;nbsp;REASON 00C200E1.&lt;br /&gt;&lt;br /&gt;You will get below message:&lt;br /&gt;&lt;br /&gt;DSNUGUTC - OUTPUT START FOR UTILITY, UTILID = DSQDBCTL&lt;br /&gt;DSNUGUTC - &amp;nbsp;COPY TABLESPACE DSQDBCTL.DSQTSCT1 COPYDDN DSQTSCT1&lt;br /&gt;DSNUGBAC - RESOURCE UNAVAILABLE&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;REASON 00C200E1&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TYPE 00000220&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NAME QMF220.DSNDBC.DSQDBCTL.DSQTSCT1.I0001.A001&lt;br /&gt;DSNUGBAC - UTILITY DATA BASE SERVICES MEMORY EXECUTION ABENDED, REASON=X'00E4010A'&lt;br /&gt;&lt;br /&gt;If you do a QW for the above reason code, then you see&lt;br /&gt;&lt;br /&gt;00C200E1&lt;br /&gt;&amp;nbsp;&amp;nbsp;Explanation: &amp;nbsp;The buffer manager (BM) subcomponent of DB2 is unable to&lt;br /&gt;&amp;nbsp;&amp;nbsp;open a data set that is required to be accessed by the requesting&lt;br /&gt;&amp;nbsp;&amp;nbsp;function. An error was returned by the media manager CONNECT function,&lt;br /&gt;&amp;nbsp;&amp;nbsp;which was invoked to open a VSAM data set. DB2 message DSNB204I was issued&lt;br /&gt;&amp;nbsp;&amp;nbsp;to inform the operator of the error condition. This reason code and the&lt;br /&gt;&amp;nbsp;&amp;nbsp;data set name are recorded in the cursor table (CT) and made available to&lt;br /&gt;&amp;nbsp;&amp;nbsp;the user in the SQLCA or in messages.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;This abend reason code is issued by the following CSECT: DSNB1OST&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;System Action: &amp;nbsp;A 'resource not available' code is returned to the user.&lt;br /&gt;&amp;nbsp;&amp;nbsp;Abend status is recorded in SYS1.LOGREC.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Operator Response: &amp;nbsp;Notify the system programmer.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;System Programmer Response: &amp;nbsp;Refer to system message IEC161I and DB2&lt;br /&gt;&amp;nbsp;&amp;nbsp;message DSNB204I for assistance in determining the cause of the error.&lt;br /&gt;&amp;nbsp;&amp;nbsp;Correct the situation, and notify the user to invoke the application&lt;br /&gt;&lt;br /&gt;As you see, you need to search for&amp;nbsp;IEC161I.&lt;br /&gt;2 places you can able to see this, one is System LOG another place is DSN1DBM1.&lt;br /&gt;&lt;br /&gt;It is logical to see in DBM1 as it manages buffer and the error says "he buffer manager (BM) subcomponent of DB2 is unable to&amp;nbsp;open a data set"&lt;br /&gt;&lt;br /&gt;After you look into the DBM1 started task, you may find following error messages:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ICH408I USER(SYS00 &amp;nbsp; ) GROUP(SYS1 &amp;nbsp; &amp;nbsp;) NAME(STC &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) &amp;nbsp;093&lt;br /&gt;&amp;nbsp;&amp;nbsp;QMF220.DSNDBC.DSQDBCTL.DSQTSCT1.I0001.A001 CL(DATASET ) VOL(DSN101)&lt;br /&gt;&amp;nbsp;&amp;nbsp;RESOURCE NOT PROTECTED&lt;br /&gt;&amp;nbsp;&amp;nbsp;ACCESS INTENT(UPDATE ) &amp;nbsp;ACCESS ALLOWED(NONE &amp;nbsp; )&lt;br /&gt;IEC161I 040(056,006,IGG0CLFT)-002,DSN1DBM1,DSN1DBM1,SYS30435,,, &amp;nbsp;094&lt;br /&gt;IEC161I QMF220.DSNDBC.DSQDBCTL.DSQTSCT1.I0001.A001&lt;br /&gt;&lt;br /&gt;Now it is confirmed that it is not a DB2 issue at all rather than RACF issue.&lt;br /&gt;&lt;br /&gt;As you get the clue, you can contact the mainframe System admin/RACF admin to resolve the issue and rerun the job.&lt;br /&gt;&lt;br /&gt;Cheers...&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-4061541576127296736?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/4061541576127296736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=4061541576127296736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/4061541576127296736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/4061541576127296736'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2010/08/backup-failed-with-reason-00c200e1.html' title='Backup Failed with REASON 00C200E1'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-5686331460871455069</id><published>2010-07-24T21:18:00.000+05:30</published><updated>2010-07-24T21:18:01.932+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='REPLACE'/><category scheme='http://www.blogger.com/atom/ns#' term='NOAUXCHKP'/><category scheme='http://www.blogger.com/atom/ns#' term='DELETE'/><category scheme='http://www.blogger.com/atom/ns#' term='LOCATE TABLESPACE'/><category scheme='http://www.blogger.com/atom/ns#' term='NOCOPYPEND'/><category scheme='http://www.blogger.com/atom/ns#' term='NORBDPEND'/><category scheme='http://www.blogger.com/atom/ns#' term='DUMP'/><category scheme='http://www.blogger.com/atom/ns#' term='NOCHECKPEND'/><category scheme='http://www.blogger.com/atom/ns#' term='REPAIR DBD TEST'/><category scheme='http://www.blogger.com/atom/ns#' term='REPAIR'/><category scheme='http://www.blogger.com/atom/ns#' term='REPAIR OBJECT'/><category scheme='http://www.blogger.com/atom/ns#' term='REPAIR DBD DIAGNOSE'/><category scheme='http://www.blogger.com/atom/ns#' term='VERIFY'/><category scheme='http://www.blogger.com/atom/ns#' term='REPAIR VERSIONS'/><category scheme='http://www.blogger.com/atom/ns#' term='REPAIR DBD'/><category scheme='http://www.blogger.com/atom/ns#' term='DIAGNOSE'/><title type='text'>Know the power of REPAIR utility in DB2</title><content type='html'>Hello my blog readers...&lt;br /&gt;&lt;br /&gt;In this blog, I am going to explain how you can utilize REPAIR utility the most.&lt;br /&gt;&lt;br /&gt;Everybody know&amp;nbsp;REPAIR utility is popularly used for resetting the pending states of Index and Tablespaces.&lt;br /&gt;&lt;br /&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=d0bbf5-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=159059942X&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example 1:&lt;/b&gt;&amp;nbsp;&lt;br /&gt;Everybody know&amp;nbsp;REPAIR utility is popularly used for resetting the pending states of Index and Tablespaces.&lt;br /&gt;&lt;br /&gt;//STEP3 &amp;nbsp; &amp;nbsp;EXEC DSNUPROC,UID='SSTRR', &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UTPROC='',SYSTEM='DSN2' &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;//SYSIN &amp;nbsp; &amp;nbsp;DD * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;REPAIR OBJECT&lt;/b&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;SET INDEX (ALL) TABLESPACE DTSG10.SSTRR NORBDPEND &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;SET TABLESPACE DBTEST1.STEST PART 1 NOAUXCHKP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;SET TABLESPACE&amp;nbsp;DBTEST1.STEST&amp;nbsp;PART 4 NOCHECKPEND &lt;br /&gt;/*&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example 2:&lt;/b&gt;&lt;br /&gt;Suppose you want to delete a row corresponding to a ROWID mentioned in the referential violation constraint.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;REPAIR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;LOCATE TABLESPACE&lt;/b&gt; DTSG10.TS1 RID (X'0000000503')&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;b&gt;DELETE&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=d0bbf5-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=1583470727&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Example 3:&lt;/b&gt;&lt;br /&gt;Replacing damaged data and verifying replacement.&lt;br /&gt;&lt;br /&gt;* Repair the specified page of table space DTSG10.STEST1, as indicated by the LOCATE clause.&lt;br /&gt;* Verify that, at the specified offset (50), the damaged data (0A00) is found, as indicated by the VERIFY clause.&lt;br /&gt;* Replace the damaged data with the desired data (0D11), as indicated by the REPLACE clause.&lt;br /&gt;* Initiate a dump beginning at offset 50, for 4 bytes, as indicated by the DUMP clause. You can use the generated dump to verify the replacement.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;//STEP1 &amp;nbsp; &amp;nbsp;EXEC &amp;nbsp;DSNUPROC,UID='IUIQU1UH',UTPROC='',SYSTEM='DSN'&lt;/div&gt;&lt;div&gt;//SYSIN DD *&lt;/div&gt;&lt;div&gt;REPAIR OBJECT&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;LOCATE TABLESPACE DSN8D81A.DSN8S81D PAGE X'02'&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;b&gt;VERIFY&lt;/b&gt; OFFSET 50 DATA X'0A00'&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;b&gt;REPLACE&lt;/b&gt; OFFSET 50 DATA X'0D11'&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;b&gt;DUMP&lt;/b&gt; OFFSET 50 LENGTH 4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Example 4:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Reporting whether catalog and directory DBDs differ. The following control statement specifies that REPAIR is to compare the DBD for DTSG10 in the catalog with the DBD for DTSG10 in the directory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;REPAIR DBD TEST DATABASE DTSG10&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=d0bbf5-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=1583470743&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Example 5:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Reporting differences between catalog and directory DBDs. The following control statement specifies that the REPAIR utility is to report information about the inconsistencies between the catalog and directory DBDs for DTSG10. Run this job after you run a REPAIR job with the TEST option (as shown in example 4), and the condition code is not 0. In this example, SYSREC is the output data set, as indicated by the OUTDDN option.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;REPAIR DBD DIAGNOSE DATABASE DSN8D2AP OUTDDN SYSREC&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Example 6:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Repairing a table space with an orphan row. After running DSN1CHKR on table space SYSDBASE, assume that you receive the following message:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;DSN1812I ORPHAN ID = 20 ID ENTRY = 0190 FOUND IN&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PAGE = 0000000024&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From a DSN1PRNT of page X'0000000024' and X'0000002541', you identify that RID X'0000002420' has a forward pointer of X'0000002521'.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Repair the table space by taking the following actions:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Submit the following control statement, which specifies that REPAIR is to set the orphan's backward pointer to zeros:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;REPAIR OBJECT LOG YES&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; LOCATE TABLESPACE DSNDB06.SYSDBASE RID X'0000002420'&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VERIFY OFFSET X'0A' DATA X'0000002422'&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;REPLACE OFFSET X'0A' DATA X'0000000000'&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Setting the pointer to zeros prevents the next step from updating link pointers while deleting the orphan. Updating the link pointers can cause DB2 to abnormally terminate if the orphan's pointers are incorrect.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Submit the following control statement, which deletes the orphan:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;REPAIR OBJECT LOG YES&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; LOCATE TABLESPACE DSNDB06.SYSDBASE RID X'00002420'&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VERIFY OFFSET X'06' DATA X'00002521'&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DELETE&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=d0bbf5-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B00154JDAI&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Example 7:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Updating version information. The control statement specifies that REPAIR is to update the version information in the catalog and directory for table spaces STEST1, STEST2, and STEST3.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;REPAIR VERSIONS example control statement&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;//STEP1 &amp;nbsp; &amp;nbsp;EXEC DSNUPROC,UID='JUKQU3AS.REPAIR',TIME=1440, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UTPROC='', &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SYSTEM='SSTR',DB2LEV=DB2A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;//SYSIN &amp;nbsp; &amp;nbsp;DD * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;REPAIR VERSIONS TABLESPACE DTSG10.STEST1&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;REPAIR VERSIONS TABLESPACE&amp;nbsp;DTSG10.STEST1&amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;REPAIR VERSIONS TABLESPACE&amp;nbsp;DTSG10.STEST1&amp;nbsp;3 &amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So arm the knowledge of REPAIR Utility and set for the adventure.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cheers..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Prakash C Singh.&lt;/div&gt;&lt;div&gt;IBM Certified DB2 DBA&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-5686331460871455069?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/5686331460871455069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=5686331460871455069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/5686331460871455069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/5686331460871455069'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2010/07/know-power-of-repair-utility-in-db2.html' title='Know the power of REPAIR utility in DB2'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-2829927690310218211</id><published>2010-07-05T16:53:00.001+05:30</published><updated>2010-07-05T16:57:31.223+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='equivalent KEY'/><category scheme='http://www.blogger.com/atom/ns#' term='CHECK DATA'/><category scheme='http://www.blogger.com/atom/ns#' term='DSN1PRNT'/><category scheme='http://www.blogger.com/atom/ns#' term='RID'/><title type='text'>How to display the key corresponding to RID Value</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;When you run CHECK DATA utility to verify the violating the RI constraints, you may come across the following error message:&lt;br /&gt;&lt;br /&gt;DSNUKERK - ROW (&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;RID=X'0000000202'&lt;/b&gt;&lt;/span&gt;) HAS NO PARENT FOR TSG10.TES3.CTES3A&lt;br /&gt;&lt;br /&gt;Here the hexadecimal value&amp;nbsp;X'0000000202' is the Row Identifier of the key of the child table which violates the RI constraint&amp;nbsp;CTES3A.&lt;br /&gt;&lt;br /&gt;If someone tell you to find out the record corresponding key to the RID value, then you can follow this approach.&lt;br /&gt;&lt;br /&gt;There is one stand alone utility DSN1PRNT by the help of which you can print the VSAM file data.&lt;br /&gt;&lt;br /&gt;RID value is always associated with the index of the table.&lt;br /&gt;&lt;br /&gt;Hence by searching the RID value in underlying index dataset( for example&amp;nbsp;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;DSN2.DSNDBD.DTSG10.X1TES300.I0001.A001)&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;of violating child table, we can get hold of the key.&lt;br /&gt;&lt;br /&gt;Here is the sample JCL: Note: always search hexadecimal value in two double quotes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//TSG10P JOB ,&lt;br /&gt;// CLASS=L,MSGCLASS=O,NOTIFY=TSG10,MSGLEVEL=(1,1)&lt;br /&gt;//****************************************************************&lt;br /&gt;//*&lt;br /&gt;//* JCL TO PRINT HEXADECIMAL DUMP OF DB2 IMAGE COPY&lt;br /&gt;//*&lt;br /&gt;//****************************************************************&lt;br /&gt;//*&lt;br /&gt;//STEP1 &amp;nbsp; &amp;nbsp;EXEC PGM=DSN1PRNT,&lt;br /&gt;// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PARM='FORMAT,VALUE(&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;''0000000202''&lt;/span&gt;&lt;/b&gt;)'&lt;br /&gt;//SYSUT1 &amp;nbsp; DD DSN=&lt;b&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;DSN2.DSNDBD.DTSG10.X1TES300.I0001.A001&lt;/span&gt;&lt;/b&gt;,DISP=SHR &lt;br /&gt;//SYSPRINT DD SYSOUT=*&lt;br /&gt;//*&lt;br /&gt;&lt;br /&gt;The subset of the output looks like below:&lt;br /&gt;===&lt;br /&gt;UNIQUE KEYS FOLLOW:&lt;br /&gt;KEY ENTRY: &amp;nbsp;IPKMAP(XI)='0038'X&lt;br /&gt;KEY:&lt;br /&gt;8001&lt;br /&gt;RID:&lt;br /&gt;0000000201&lt;br /&gt;KEY ENTRY: &amp;nbsp;IPKMAP(XI)='003F'X&lt;br /&gt;KEY:&lt;br /&gt;8002&lt;br /&gt;RID:&lt;br /&gt;4&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;000000202&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;KEY ENTRY: &amp;nbsp;IPKMAP(XI)='0046'X&lt;br /&gt;KEY:&lt;br /&gt;8005&lt;br /&gt;RID:&lt;br /&gt;4000000203&lt;br /&gt;&lt;br /&gt;DSN1994I DSN1PRNT COMPLETED SUCCESSFULLY, &amp;nbsp;00000005 PAGES PROCESSED&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;&lt;br /&gt;1) To find out the violating rows you can create the exception table and track those and at the same time you can bring the table to RW mode from Check pending status.&lt;br /&gt;&lt;br /&gt;2) Or you can use the REPAIR utility for DUMP/DELETE the violating rows By LOCATE TABLESPACE command.&lt;br /&gt;&lt;br /&gt;So do not be&amp;nbsp;afraid&amp;nbsp;of seeing the RID hex values, just play with it by the available utilities&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers...&lt;br /&gt;Prakash C Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-2829927690310218211?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/2829927690310218211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=2829927690310218211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/2829927690310218211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/2829927690310218211'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2010/07/how-to-display-key-corresponding-to-rid.html' title='How to display the key corresponding to RID Value'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-1890534247530642366</id><published>2010-04-18T10:56:00.000+05:30</published><updated>2010-04-18T10:56:38.708+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='what is new in DB2  10'/><category scheme='http://www.blogger.com/atom/ns#' term='DB2 X'/><category scheme='http://www.blogger.com/atom/ns#' term='DB2 10'/><title type='text'>Get ready for DB2 X</title><content type='html'>Hey...now-a-days &lt;i&gt;SPEED&lt;/i&gt; is the new buzz around the world.&lt;br /&gt;&lt;br /&gt;So DB2 for z/OS leads the race in RDBMS&amp;nbsp;category&amp;nbsp;with&amp;nbsp;announcement of beta version of DB2 10 or DB2 X on 9th, February 2010.&lt;br /&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=d0bbf5-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B002C7481G&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here are some major points in &lt;b&gt;DB2 X for z/OS&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1) This version gives you the best CPU reductions for&amp;nbsp;transactions and batches (i.e. saving more money)&lt;br /&gt;&lt;br /&gt;2) Second major benefit is Scalability (Enhanced query parallelism)&lt;br /&gt;&lt;br /&gt;3) More on demand enhancement improves availability (more online changes for Data&amp;nbsp;definitions, utilities and Subsystem)&lt;br /&gt;&lt;br /&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=d0bbf5-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B0015T963C&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;&lt;br /&gt;4) DBAs will be happy to&amp;nbsp;find improved database performance, scalability, and availability&lt;br /&gt;&lt;br /&gt;5) Reduced memory management, &amp;nbsp;so growth is much simpler (10 times more users by avoiding memory constraints)&lt;br /&gt;&lt;br /&gt;6) To support regulatory compliance, DBA to get more flexible security (More granularity)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=d0bbf5-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B002WYJFFS&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;&lt;br /&gt;7)&amp;nbsp;Warehousing continues to evolve, with key trends matching System z and DB2 for&amp;nbsp;z/OS strengths of performance, scalability, reliability, stability, availability, resilience, and security (On the fly Data compression)&lt;br /&gt;&lt;br /&gt;8)&amp;nbsp;SQL, pureXML, and web services extend usability and application portability for this platform&lt;br /&gt;&lt;br /&gt;9) More concurrency for Catalog, Utilities and SQL&lt;br /&gt;&lt;br /&gt;10) Improved productivity for Database admin, System admin and application programmers&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers...&lt;br /&gt;Prakash C Singh&lt;br /&gt;IBM Certified Database Administrator&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-1890534247530642366?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/1890534247530642366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=1890534247530642366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/1890534247530642366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/1890534247530642366'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2010/04/get-ready-for-db2-x.html' title='Get ready for DB2 X'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-6864352646111195841</id><published>2010-03-29T22:26:00.000+05:30</published><updated>2010-03-29T22:26:02.808+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Modelling your production system'/><category scheme='http://www.blogger.com/atom/ns#' term='Copy production statistics to test env'/><title type='text'>Modelling your production system</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=d0bbf5-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B0015T963C&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Hello Blog readers,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Most of the times it is a real challenge to refresh data from production environment to test env with limited time and resources. But it is very important to know the future access path to be produced in production env while testing in development environment. This is basically needed to know the future performance problem associated due to access path chosen by the Optimizer.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Here is the extract of the DB2 administration guide which will guide you how to generate the exact access path in test system with respect to production system.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SELECT DISTINCT 'UPDATE SYSIBM.SYSTABLESPACE SET NACTIVEF='&lt;br /&gt;CONCAT STRIP(CHAR(NACTIVEF))&lt;br /&gt;CONCAT',NACTIVE='CONCAT STRIP(CHAR(NACTIVE))&lt;br /&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=d0bbf5-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B002Y27P6O&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;CONCAT ' WHERE NAME=''' CONCAT TS.NAME&lt;br /&gt;CONCAT ''' AND DBNAME ='''CONCAT TS.DBNAME CONCAT''';'&lt;br /&gt;FROM SYSIBM.SYSTABLESPACE TS, SYSIBM.SYSTABLES TBL&lt;br /&gt;WHERE TS.NAME = TSNAME&lt;br /&gt;AND TBL.CREATOR IN (table creator_list)&lt;br /&gt;AND TBL.NAME IN (table_list)&lt;br /&gt;AND (NACTIVEF &amp;gt;=0 OR NACTIVE &amp;gt;=0);&lt;br /&gt;&lt;br /&gt;==&lt;br /&gt;SELECT 'UPDATE SYSIBM.SYSTABLES SET CARDF='&lt;br /&gt;CONCAT STRIP(CHAR(CARDF))&lt;br /&gt;CONCAT',NPAGES='CONCAT STRIP(CHAR(NPAGES))&lt;br /&gt;CONCAT',PCTROWCOMP='CONCAT STRIP(CHAR(PCTROWCOMP))&lt;br /&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=d0bbf5-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B002M3SOC4&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;CONCAT ' WHERE NAME='''CONCAT NAME&lt;br /&gt;CONCAT ''' AND CREATOR ='''CONCAT CREATOR CONCAT''';'&lt;br /&gt;FROM SYSIBM.SYSTABLES WHERE&lt;br /&gt;CREATOR IN (creator_list)&lt;br /&gt;AND NAME IN (table_list)&lt;br /&gt;AND CARDF &amp;gt;= 0;&lt;br /&gt;==&lt;br /&gt;SELECT 'UPDATE SYSIBM.SYSINDEXES SET FIRSTKEYCARDF='&lt;br /&gt;CONCAT STRIP(CHAR(FIRSTKEYCARDF))&lt;br /&gt;CONCAT ',FULLKEYCARDF='CONCAT STRIP(CHAR(FULLKEYCARDF))&lt;br /&gt;CONCAT',NLEAF='CONCAT STRIP(CHAR(NLEAF))&lt;br /&gt;CONCAT',NLEVELS='CONCAT STRIP(CHAR(NLEVELS))&lt;br /&gt;CONCAT',CLUSTERRATIO='CONCAT STRIP(CHAR(CLUSTERRATIO))&lt;br /&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=d0bbf5-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0307463575&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;CONCAT',CLUSTERRATIOF='CONCAT STRIP(CHAR(CLUSTERRATIOF))&lt;br /&gt;CONCAT' WHERE NAME='''CONCAT NAME&lt;br /&gt;CONCAT ''' AND CREATOR ='''CONCAT CREATOR CONCAT''';'&lt;br /&gt;FROM SYSIBM.SYSINDEXES&lt;br /&gt;WHERE TBCREATOR IN (creator_list)&lt;br /&gt;AND TBNAME IN (table_list)&lt;br /&gt;AND FULLKEYCARDF &amp;gt;= 0;&lt;br /&gt;==&lt;br /&gt;SELECT 'UPDATE SYSIBM.SYSCOLUMNS SET COLCARDF='&lt;br /&gt;CONCAT STRIP(CHAR(COLCARDF))&lt;br /&gt;CONCAT',HIGH2KEY= X''' CONCAT HEX(HIGH2KEY)&lt;br /&gt;CONCAT''',LOW2KEY= X''' CONCAT HEX(LOW2KEY)&lt;br /&gt;CONCAT''' WHERE TBNAME=''' CONCAT TBNAME CONCAT ''' AND &lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=d0bbf5-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B002WYJFG2&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;COLNO='&lt;br /&gt;CONCAT STRIP(CHAR(COLNO))&lt;br /&gt;CONCAT ' AND TBCREATOR =''' CONCAT TBCREATOR CONCAT''';'&lt;br /&gt;FROM SYSIBM.SYSCOLUMNS&lt;br /&gt;WHERE TBCREATOR IN (creator_list)&lt;br /&gt;AND TBNAME IN (table_list)&lt;br /&gt;AND COLCARDF &amp;gt;= 0;&lt;br /&gt;&lt;br /&gt;SYSTABSTATS and SYSCOLDIST require deletes and inserts.&lt;br /&gt;Delete statistics from SYSTABSTATS on the test subsystem for the specified tables&lt;br /&gt;by using the following statement:&lt;br /&gt;DELETE FROM (TEST_SUBSYSTEM).SYSTABSTATS&lt;br /&gt;WHERE OWNER IN (creator_list)&lt;br /&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=d0bbf5-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B002VPE1AW&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;AND NAME IN (table_list);&lt;br /&gt;&lt;br /&gt;Use INSERT statements to repopulate SYSTABSTATS with production statistics that&lt;br /&gt;are generated from the following statement:&lt;br /&gt;&lt;br /&gt;SELECT 'INSERT INTO SYSIBM.SYSTABSTATS'&lt;br /&gt;CONCAT '(CARD,NPAGES,PCTPAGES,NACTIVE,PCTROWCOMP'&lt;br /&gt;CONCAT ',STATSTIME,IBMREQD,DBNAME,TSNAME,PARTITION'&lt;br /&gt;CONCAT ',OWNER,NAME,CARDF) VALUES('&lt;br /&gt;CONCAT STRIP(CHAR(CARD)) CONCAT ' ,'&lt;br /&gt;CONCAT STRIP(CHAR(NPAGES)) CONCAT ' ,'&lt;br /&gt;CONCAT STRIP(CHAR(PCTPAGES)) CONCAT ' ,'&lt;br /&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=d0bbf5-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B001OQCV5G&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;CONCAT STRIP(CHAR(NACTIVE)) CONCAT ' ,'&lt;br /&gt;CONCAT STRIP(CHAR(PCTROWCOMP)) CONCAT ' ,'&lt;br /&gt;CONCAT '''' CONCAT CHAR(STATSTIME) CONCAT ''' ,'&lt;br /&gt;CONCAT '''' CONCAT IBMREQD CONCAT ''' ,'&lt;br /&gt;CONCAT '''' CONCAT STRIP(DBNAME) CONCAT ''' ,'&lt;br /&gt;CONCAT '''' CONCAT STRIP(TSNAME) CONCAT ''' ,'&lt;br /&gt;CONCAT STRIP(CHAR(PARTITION)) CONCAT ' ,'&lt;br /&gt;CONCAT '''' CONCAT STRIP(OWNER) CONCAT ''' ,'&lt;br /&gt;CONCAT '''' CONCAT STRIP(NAME) CONCAT ''' ,'&lt;br /&gt;CONCAT STRIP(CHAR(CARDF)) CONCAT ');'&lt;br /&gt;FROM SYSIBM.SYSTABSTATS&lt;br /&gt;WHERE OWNER IN (creator_list)&lt;br /&gt;AND NAME IN (table_list);&lt;br /&gt;&lt;br /&gt;==&lt;br /&gt;Delete statistics from SYSCOLDIST on the test subsystem for the specified tables&lt;br /&gt;by using the following statement:&lt;br /&gt;DELETE FROM (TEST_SUBSYSTEM).SYSCOLDIST&lt;br /&gt;WHERE TBOWNER IN (creator_list)&lt;br /&gt;AND TBNAME IN (table_list);&lt;br /&gt;&lt;br /&gt;Use INSERT statements to repopulate SYSCOLDIST with production statistics that&lt;br /&gt;are generated from the following statement:&lt;br /&gt;&lt;br /&gt;SELECT 'INSERT INTO SYSIBM.SYSCOLDIST '&lt;br /&gt;CONCAT '(FREQUENCY,STATSTIME,IBMREQD,TBOWNER'&lt;br /&gt;CONCAT ',TBNAME,NAME,COLVALUE,TYPE,CARDF,COLGROUPCOLNO'&lt;br /&gt;CONCAT ',NUMCOLUMNS,FREQUENCYF) VALUES( '&lt;br /&gt;CONCAT STRIP(CHAR(FREQUENCY)) CONCAT ' ,'&lt;br /&gt;CONCAT '''' CONCAT CHAR(STATSTIME) CONCAT ''' ,'&lt;br /&gt;CONCAT '''' CONCAT IBMREQD CONCAT ''' ,'&lt;br /&gt;CONCAT '''' CONCAT STRIP(TBOWNER) CONCAT ''' ,'&lt;br /&gt;CONCAT '''' CONCAT STRIP(TBNAME) CONCAT ''','&lt;br /&gt;CONCAT '''' CONCAT STRIP(NAME) CONCAT ''' ,'&lt;br /&gt;CONCAT 'X''' CONCAT STRIP(HEX(COLVALUE)) CONCAT ''' ,'&lt;br /&gt;CONCAT '''' CONCAT TYPE CONCAT ''' ,'&lt;br /&gt;CONCAT STRIP(CHAR(CARDF)) CONCAT ' ,'&lt;br /&gt;CONCAT 'X'''CONCAT STRIP(HEX(COLGROUPCOLNO)) CONCAT ''' ,'&lt;br /&gt;CONCAT CHAR(NUMCOLUMNS) CONCAT ' ,'&lt;br /&gt;CONCAT STRIP(CHAR(FREQUENCYF)) CONCAT ');'&lt;br /&gt;FROM SYSIBM.SYSCOLDIST&lt;br /&gt;WHERE TBOWNER IN (creator_list)&lt;br /&gt;AND TBNAME IN (table_list);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note about SPUFI:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If you use SPUFI to execute the preceding SQL statements, you might need to&amp;nbsp;increase the default maximum character column width to avoid truncation.&lt;/li&gt;&lt;li&gt;Asterisks (*) appear in the examples to avoid having the semicolon interpreted as the end of the SQL statement. Edit the result to change the asterisk to a semicolon.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Access path differences from test to production: When you bind applications on the&lt;br /&gt;test system with production statistics, access paths should be similar but still may&lt;br /&gt;be different to what you see when the same query is bound on your production&lt;br /&gt;system.&lt;br /&gt;&lt;br /&gt;The access paths from test to production could be different for the&amp;nbsp;following possible reasons:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The processor models are different.&lt;/li&gt;&lt;li&gt;The number of processors are different. (Differences in the number of processors&amp;nbsp;can affect the degree of parallelism that is obtained.)&lt;/li&gt;&lt;li&gt;The buffer pool sizes are different.&lt;/li&gt;&lt;li&gt;The RID pool sizes are different.&lt;/li&gt;&lt;li&gt;Data in SYSIBM.SYSCOLDIST is mismatched. (This mismatch occurs only if&amp;nbsp;some of the previously mentioned steps mentioned are not followed exactly).&lt;/li&gt;&lt;li&gt;The service levels are different.&lt;/li&gt;&lt;li&gt;The values of optimization subsystem parameters, such as STARJOIN,&amp;nbsp;NPGTHRSH, and PARAMDEG (MAX DEGREE on installation panel DSNTIP8)&amp;nbsp;are different.&lt;/li&gt;&lt;li&gt;v The use of techniques such as optimization hints and volatile tables are different.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Tools to help: If your production system is accessible from your test system, you&lt;br /&gt;can use DB2 PM EXPLAIN on your test system to request EXPLAIN information&lt;br /&gt;from your production system. This request can reduce the need to simulate a&lt;br /&gt;production system by updating the catalog.&lt;br /&gt;&lt;br /&gt;You can also use the DB2 Visual Explain feature to display the current&lt;br /&gt;PLAN_TABLE output or the graphed access paths for statements within any&lt;br /&gt;particular subsystem from your workstation environment. For example, if you have&lt;br /&gt;your test system on one subsystem and your production system on another&lt;br /&gt;subsystem, you can visually compare the PLAN_TABLE outputs or access paths&lt;br /&gt;simultaneously with some window or view manipulation. You can then access the&lt;br /&gt;catalog statistics for certain referenced objects of an access path from either of the&lt;br /&gt;displayed PLAN_TABLEs or access path graphs.&lt;br /&gt;&lt;br /&gt;Cheers...&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-6864352646111195841?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/6864352646111195841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=6864352646111195841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/6864352646111195841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/6864352646111195841'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2010/03/modelling-your-production-system.html' title='Modelling your production system'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-2506749204957647453</id><published>2010-02-21T11:29:00.000+05:30</published><updated>2010-02-21T11:29:18.326+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FDBA623 CAF error 00F30034'/><category scheme='http://www.blogger.com/atom/ns#' term='FDBA623'/><category scheme='http://www.blogger.com/atom/ns#' term='FDBA623 CAF error 00F30034 - Plan name unauthorized'/><category scheme='http://www.blogger.com/atom/ns#' term='00F30034'/><category scheme='http://www.blogger.com/atom/ns#' term='Plan name unauthorized'/><title type='text'>Fileaid for DB2 Setup Error - FDBA623 CAF error 00F30034</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;There are certain times after installation of Fileaid for DB2, users get this kind of error.&lt;br /&gt;&lt;br /&gt;"FDBA623 CAF error 00F30034 - Plan name unauthorized."&lt;br /&gt;&lt;br /&gt;Normally as part of installation/upgrade of Fileaid for DB2, DBA does the bind of the new plan.&lt;br /&gt;&lt;br /&gt;As a security measure, DB2 does not allow the users to allow the access to the plan unless Execute privilege is granted to it explicitly.&lt;br /&gt;&lt;br /&gt;Hence if the DBA forgets to grant Execute privilege, the uses will get the message like&amp;nbsp;"FDBA623 CAF error 00F30034 - Plan name unauthorized." when one tries to connect to fileaid for DB2.&lt;br /&gt;&lt;br /&gt;As a best practice for DBA, it is recommended that as soon as the bind finishes, he should give the require privileges to the users.&lt;br /&gt;&lt;br /&gt;In this Example Granting Execute privilege for plan&amp;nbsp;FDPN610 and&amp;nbsp;FDOM610 to Public could have avoided the error message mentioned in subject line.&lt;br /&gt;&lt;br /&gt;Cheers..&lt;br /&gt;Prakash C Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-2506749204957647453?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/2506749204957647453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=2506749204957647453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/2506749204957647453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/2506749204957647453'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2010/02/fileaid-for-db2-setup-error-fdba623-caf.html' title='Fileaid for DB2 Setup Error - FDBA623 CAF error 00F30034'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-5389412232974392374</id><published>2010-02-07T21:25:00.000+05:30</published><updated>2010-02-07T21:27:41.708+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Not Operational'/><category scheme='http://www.blogger.com/atom/ns#' term='DB2 version display -DIS GROUP'/><category scheme='http://www.blogger.com/atom/ns#' term='+DIS THD(*)'/><category scheme='http://www.blogger.com/atom/ns#' term='DB2 Not Operational'/><category scheme='http://www.blogger.com/atom/ns#' term='DISPLAY THREAD'/><title type='text'>Display current threads when you get DB2 Not Operational message</title><content type='html'>Hi Friends,&lt;br /&gt;&lt;br /&gt;Here is one typical problem you usually get when you tried to Stop DB2 subsystem. You just fired the command to stop the DB2 subsystem, but DB2 is not coming down.&lt;br /&gt;&lt;br /&gt;After having a thought...you may assume there are certain active dedicated threads from a started task (DB2 related application or any job). The interesting fact is when you try to DISPLAY Threads through DB2&amp;nbsp;Panels to execute DB2 commands, it &amp;nbsp;will give you a Message like DB2 Not Operational&amp;nbsp;for the Subsystem.&lt;br /&gt;&lt;br /&gt;Here is the trick:&lt;br /&gt;If you know the Character for DB2 subsystem (You can get it from Zparms), you can fire the Display command from console.&lt;br /&gt;&lt;br /&gt;For example in spool you can type&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif;"&gt;&lt;h1 class="ha" style="background: inherit; border-right: inherit; color: black; font-family: arial, sans-serif; font-size: 16px; margin-bottom: 5px; margin-left: 10px; margin-right: 5px; margin-top: 12px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="hP" id=":7r" style="padding-right: 10px;"&gt;/+DIS THD(*)&lt;/span&gt;&lt;/h1&gt;&lt;div&gt;Here '+' is the character for the Subsystem.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now you can close the started task or kill the job to proceed further.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Regards,&lt;/div&gt;&lt;div&gt;Prakash Singh&lt;/div&gt;&lt;div&gt;IBM Certified DB2 DBA&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-5389412232974392374?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/5389412232974392374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=5389412232974392374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/5389412232974392374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/5389412232974392374'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2010/02/display-current-threads-when-you-get.html' title='Display current threads when you get DB2 Not Operational message'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-8568770106670826349</id><published>2009-10-27T11:55:00.000+05:30</published><updated>2009-11-08T11:39:53.085+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='DSN1COPY'/><category scheme='http://www.blogger.com/atom/ns#' term='&apos;Tape backup File not found&apos;'/><title type='text'>Tape backup File not found for DSN1COPY job</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;Here is one of the common problems that many of you might have faced.&lt;br /&gt;&lt;br /&gt;Problem: One of your development guys ask to restore the table to a old backup image. Now you got the tape file name from the SYSIBM.SYSCOPY, but when you put this file name in 3.4, you are not able to find the file. This is just a JCL problem rather than a Database problem.&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;&lt;br /&gt;You can still use this file (like in job for DSN1COPY), if it is not overwritten by any other job. You cannot find this file as this might have uncatalogued by the policy you have in your system. You can use this file by providing additional information in JCL DD statement.&lt;br /&gt;&lt;br /&gt;The additional information are:&lt;br /&gt;1) Unit info&lt;br /&gt;2) VOLUME Serial Number&lt;br /&gt;3) File sequence number i.e LEBEL parameter&lt;br /&gt;&lt;br /&gt;Now get your job done!!!&lt;br /&gt;&lt;br /&gt;Cheers!!&lt;br /&gt;Prakash C Singh&lt;br /&gt;IBM Certified Database Administrator&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-8568770106670826349?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/8568770106670826349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=8568770106670826349' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8568770106670826349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8568770106670826349'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2009/10/tape-backup-file-not-found-for-dsn1copy.html' title='Tape backup File not found for DSN1COPY job'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-8235224548023118151</id><published>2009-09-12T17:36:00.000+05:30</published><updated>2009-09-12T17:36:10.007+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPUFI'/><category scheme='http://www.blogger.com/atom/ns#' term='DSNE106E'/><category scheme='http://www.blogger.com/atom/ns#' term='DSNESPRR'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;DSNE106E PLAN DSNESPCS NOT AUTHORIZED FOR SUBSYSTEM&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='DSNESPCS'/><title type='text'>DSNE106E PLAN DSNESPCS NOT AUTHORIZED FOR SUBSYSTEM</title><content type='html'>&lt;div&gt;Hello My Blog readers....&lt;br /&gt;&lt;br /&gt;Here is another classic problem and it's solution for you...&lt;br /&gt;&lt;br /&gt;What to do when many people are getting the error message like "DSNE106E PLAN DSNESPCS NOT AUTHORIZED FOR SUBSYSTEM DSNA AND AUTH ID TSK10"&lt;/div&gt;&lt;br /&gt;Here you go..&lt;br /&gt;&lt;br /&gt;Spufi uses 2 plans for execution of SQL statements on demand.&lt;br /&gt;One is DSNESPRR and other one is DSNESPCS.&lt;br /&gt;DSNESPRR plan uses Repeatable read where as DSNESPCS uses Cursor stability isolation level.&lt;br /&gt;&lt;br /&gt;DSNESPRR plan is the default for Spufi.&lt;br /&gt;&lt;br /&gt;RR isolation is highest in restriction level and provides least concurrency. This may a disaster in production environment if someone accesses the table thru DSNESPRR in spufi and went for a break without coming out from the output panel. This may lock the Table.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Solution:&lt;/b&gt;&lt;br /&gt;1) Never allow people to use RR isolation level in Spufi. (this is the Best Practice)&lt;br /&gt;2) Rebind DSNESPRR with an isolation level of CS, thereby eliminating the chance that people will use spufi with RR&lt;br /&gt;3) FREE DSNESPRR plan so that nobody will access this plan.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note: &lt;/b&gt;To Resolve the authorization problem mentioned at the begining of the blog.&lt;br /&gt;&lt;br /&gt;Always grant EXECUTE on DSNESPCS to PUBLIC.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers..&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-8235224548023118151?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/8235224548023118151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=8235224548023118151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8235224548023118151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8235224548023118151'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2009/09/dsne106e-plan-dsnespcs-not-authorized.html' title='DSNE106E PLAN DSNESPCS NOT AUTHORIZED FOR SUBSYSTEM'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-6243434093428800611</id><published>2009-08-29T19:47:00.000+05:30</published><updated>2009-08-29T20:13:45.339+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='DSNR'/><category scheme='http://www.blogger.com/atom/ns#' term='PERMIT'/><category scheme='http://www.blogger.com/atom/ns#' term='DB2 Subsytem Access'/><category scheme='http://www.blogger.com/atom/ns#' term='DSNR class'/><category scheme='http://www.blogger.com/atom/ns#' term='RACF'/><title type='text'>Permission Required for DB2 Subsystem</title><content type='html'>All of us must have known that we require different level of access for different objects in the database. But did you think what is the access required to connect to a DB2 subsystem. What I am saying here is; you need to have permission to connect to a DB2 subsystem first and then you need second level of privileges to access different objects in the database.&lt;br /&gt;&lt;br /&gt;Here all that are happening when an ID is tried to access any table.&lt;br /&gt;1) RACF verifies whether this ID is authorized for DB2 resources.&lt;br /&gt;2) There is a resource class for DB2 called DSNR which is contained in the RACF descriptor table.&lt;br /&gt;3) There should be a profile defined as a member of class DSNR.&lt;br /&gt;4) The ID or the group contains this ID should be included in the profile.&lt;br /&gt;5) If the ID is included, then the thread is connected to DB2 Subsystem&lt;br /&gt;6) Once connected to DB2, it checks in catalog tables to verify the intended access.&lt;br /&gt;&lt;br /&gt;Following commands can be executed by RACF admin to let the user run batch jobs:&lt;br /&gt;PERMIT DSN1.BATCH CLASS(DSNR) ID(TSG10) ACCESS(READ)&lt;br /&gt;For taking away the access:&lt;br /&gt;PERMIT DSN1.BATCH CLASS(DSNR) ID(TSG10) ACCESS(NONE)&lt;br /&gt;&lt;br /&gt;This can be done through RACF pannels too...&lt;br /&gt;&lt;br /&gt;Cheers...&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-6243434093428800611?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/6243434093428800611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=6243434093428800611' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/6243434093428800611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/6243434093428800611'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2009/08/permission-required-for-db2-subsystem.html' title='Permission Required for DB2 Subsystem'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-3887232876086405923</id><published>2009-07-21T10:38:00.000+05:30</published><updated>2009-07-21T12:00:23.378+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='DEFER YES'/><category scheme='http://www.blogger.com/atom/ns#' term='RDS Sort'/><category scheme='http://www.blogger.com/atom/ns#' term='REBUILD INDEX'/><category scheme='http://www.blogger.com/atom/ns#' term='CREATE INDEX'/><title type='text'>Creating New Index on BIG Table</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;As always Prakash promised to back with the solutions with respect to practical scenario.&lt;br /&gt;Here is another one for you.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Task:&lt;/strong&gt; You are asked to create an Index in an existing table which is very huge.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Problem:&lt;/strong&gt; You might face this issue. When you fired this SQL through batch spufi, it will run for minutes and at last it will abend with -904 return code saying 4K page is not available.&lt;br /&gt;Investigation: You will find many messages in DSN?MSTR and DSN?DBM1 whcih says the temporary tablespace DSNDB07.&lt;temp_tablespace_name&gt; unable to extend itself as it might reached it's limit of 2GB.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution:&lt;/strong&gt; There are some fact you must know while creating index in a big table.&lt;br /&gt;When you are creating the index, by default it will try to build the index instantly. &lt;strong&gt;CREATE INDEX&lt;/strong&gt; statement uses &lt;strong&gt;RDS Sort&lt;/strong&gt; to sort the keys. RDS Sort is very efficient for smaller tables. But when there is a huge table you must defer the creation of index by specifying &lt;strong&gt;DEFER YES&lt;/strong&gt; in CREATE INDEX statement so that index for the table is registered in the DB2 catalog but the new index is in Rebuild pending status giving warning while creation of index.&lt;br /&gt;&lt;strong&gt;REBUILD INDEX&lt;/strong&gt; uses the the &lt;strong&gt;EXTERNAL SORT&lt;/strong&gt; which outperforms the RDS Sort if the table size is significant. Even the performance of REBUILD INDEX is improved with parallel partition key extract and parallel index build.&lt;br /&gt;&lt;br /&gt;By deferring the index creation and rebuilding the index, your index creation is over in few minutes and you will not get any extend failure message in MSTR started task.&lt;br /&gt;&lt;br /&gt;Cheers..&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-3887232876086405923?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/3887232876086405923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=3887232876086405923' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/3887232876086405923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/3887232876086405923'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2009/07/creating-new-index-on-big-table.html' title='Creating New Index on BIG Table'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-8232164927667300349</id><published>2009-07-14T18:56:00.000+05:30</published><updated>2009-07-14T20:32:35.931+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Broken Hash Chanins'/><category scheme='http://www.blogger.com/atom/ns#' term='DB2 directory and Catalog'/><category scheme='http://www.blogger.com/atom/ns#' term='Broken Links'/><category scheme='http://www.blogger.com/atom/ns#' term='DSN1CHKR'/><title type='text'>Understanding DSN1CHKR Utility</title><content type='html'>Hello Everybody!!&lt;br /&gt;&lt;br /&gt;Sometimes it is worth to verify the intigrity of DB2 directory and Catalog table spaces. DSN1CHKR utility is designed for this.&lt;br /&gt;This utility checks the specified tablespace for&lt;br /&gt;&lt;br /&gt;1) Broken Links&lt;br /&gt;2) Broken Hash Chanins&lt;br /&gt;3) Orphan records&lt;br /&gt;&lt;br /&gt;This is a service aid and a diagonistic tool which executes outside the control of DB2.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Restriction:&lt;/strong&gt;&lt;br /&gt;You should not DSN1CHKR in a tablspace while it is active under DB2. Tablespace should be in STOPPED status before running this utility.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Privilege Required:&lt;/strong&gt;&lt;br /&gt;RACF auth required on the specified tablespace. No other privileges required to run this utility&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Recommendation:&lt;/strong&gt;&lt;br /&gt;Copy the stopped tablespace into a similar VSAM dataset with DB2 naming convention and then run the utility on the copy.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Never run this utility on following tablespaces:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;DSNDB06.SYSCOPY&lt;br /&gt;DSNDB06.SYSDDF&lt;br /&gt;DSNDB06.SYSGPAUT&lt;br /&gt;DSNDB06.SYSPKAGE&lt;br /&gt;DSNDB06.SYSSTATS&lt;br /&gt;DSNDB06.SYSSTR&lt;br /&gt;DSNDB06.SYSUSER&lt;br /&gt;DSNDB01.SCT02&lt;br /&gt;DSNDB01.SPT01&lt;br /&gt;DSNDB01.SYSLGRNX&lt;br /&gt;DSNDB01.SYSUTILX&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sample Job Step:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//**********************************************************************000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//****************  CHECKS CATALOG LINK &amp;amp; HASH CHAINS  *****************000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//**********************************************************************000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//DH000701 EXEC &lt;strong&gt;PGM=DSN1CHKR&lt;/strong&gt;,PARM='FORMAT'                              000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEPLIB  DD DSN=SYS1.DSN1.SDSNLOAD,DISP=SHR                           000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSPRINT DD SYSOUT=(2,,CRTL)                                          000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSUT1   DD DSN=DSN1.DSNDBC.DSNDB01.DBD01.I0001.A001,DISP=SHR         000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//**********************************************************************000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//****************  CHECKS CATALOG LINK &amp;amp; HASH CHAINS  *****************001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//**********************************************************************001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//DH000702 EXEC &lt;strong&gt;PGM=DSN1CHKR&lt;/strong&gt;,PARM='FORMAT'                              001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEPLIB  DD DSN=SYS1.DSN1.SDSNLOAD,DISP=SHR                           001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSPRINT DD SYSOUT=(2,,CRTL)                                          001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSUT1   DD DSN=DSN1.DSNDBC.DSNDB06.SYSDBASE.I0001.A001,DISP=SHR      001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//**********************************************************************001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//****************  CHECKS CATALOG LINK &amp;amp; HASH CHAINS  *****************001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//**********************************************************************001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//DH000703 EXEC &lt;strong&gt;PGM=DSN1CHKR&lt;/strong&gt;,PARM='FORMAT'                              001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEPLIB  DD DSN=SYS1.DSN1.SDSNLOAD,DISP=SHR                           002&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSPRINT DD SYSOUT=(2,,CRTL)                                          002&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSUT1   DD DSN=DSN1.DSNDBC.DSNDB06.SYSDBAUT.I0001.A001,DISP=SHR      002&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//**********************************************************************002&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//****************  CHECKS CATALOG LINK &amp;amp; HASH CHAINS  *****************002&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//**********************************************************************002&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//DH000704 EXEC &lt;strong&gt;PGM=DSN1CHKR&lt;/strong&gt;,PARM='FORMAT'                              002&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEPLIB  DD DSN=SYS1.DSN1.SDSNLOAD,DISP=SHR                           002&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSPRINT DD SYSOUT=(2,,CRTL)                                          002&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSUT1   DD DSN=DSN1.DSNDBC.DSNDB06.SYSGROUP.I0001.A001,DISP=SHR      002&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//**********************************************************************003&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//****************  CHECKS CATALOG LINK &amp;amp; HASH CHAINS  *****************003&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//**********************************************************************003&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//DH000705 EXEC &lt;strong&gt;PGM=DSN1CHKR&lt;/strong&gt;,PARM='FORMAT'                              003&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEPLIB  DD DSN=SYS1.DSN1.SDSNLOAD,DISP=SHR                           003&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSPRINT DD SYSOUT=(2,,CRTL)                                          003&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSUT1   DD DSN=DSN1.DSNDBC.DSNDB06.SYSPLAN.I0001.A001,DISP=SHR       003&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//**********************************************************************003&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//****************  CHECKS CATALOG LINK &amp;amp; HASH CHAINS  *****************003&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//**********************************************************************003&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//DH000706 EXEC &lt;strong&gt;PGM=DSN1CHKR&lt;/strong&gt;,PARM='FORMAT'                              004&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEPLIB  DD DSN=SYS1.DSN1.SDSNLOAD,DISP=SHR                           004&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSPRINT DD SYSOUT=(2,,CRTL)                                          004&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSUT1   DD DSN=DSN1.DSNDBC.DSNDB06.SYSVIEWS.I0001.A001,DISP=SHR      004&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//*&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;strong&gt;This is what IBM specified for the Sample JCL:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//YOUR JOBCARD&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//*&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//JOBCAT DD DSNAME=DSNCAT1.USER.CATALOG,DISP=SHR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEP1 EXEC PGM=IDCAMS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//********************************************************************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//* ALLOCATE A TEMPORARY DATA SET FOR SYSDBASE *&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//********************************************************************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSPRINT DD SYSOUT=A&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSUDUMP DD SYSOUT=A&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSIN DD *&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;DELETE -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;(TESTCAT.DSNDBC.TEMPDB.TMPDBASE.I0001.A001) -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;CATALOG(DSNCAT)DEFINE CLUSTER -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;( NAME(TESTCAT.DSNDBC.TEMPDB.TMPDBASE.I0001.A001) -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;NONINDEXED -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;REUSE -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;CONTROLINTERVALSIZE(4096) -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;VOLUMES(XTRA02) -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;RECORDS(783 783) -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;RECORDSIZE(4089 4089) -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;SHAREOPTIONS(3 3) ) -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;DATA -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;( NAME(TESTCAT.DSNDBD.TEMPDB.TMPDBASE.I0001.A001)) -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;CATALOG(DSNCAT)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEP2 EXEC PGM=IKJEFT01,DYNAMNBR=20&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//********************************************************************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//* STOP DSNDB06.SYSDBASE *&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//********************************************************************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEPLIB DD DSN=prefix.SDSNLOAD,DISP=SHR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSTSPRT DD SYSOUT=A&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSPRINT DD SYSOUT=A&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;/&lt;/span&gt;&lt;span style="font-size:78%;"&gt;/SYSTSIN DD *&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;DSN SYSTEM(V61A)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;-STOP DB(DSNDB06) SPACENAM(SYSDBASE)END&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEP3 EXEC PGM=DSN1COPY,PARM=(CHECK)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//********************************************************************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//* CHECKSYSDBASE AND RUN DSN1COPY *&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//********************************************************************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEPLIB DD DSN=prefix.SDSNLOAD,DISP=SHR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSPRINT DD SYSOUT=A&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSUT1 DD DSN=DSNCAT.DSNDBC.DSNDB06.SYSDBASE.I0001.A001,DISP=SHR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSUT2 DD DSN=TESTCAT.DSNDBC.TEMPDB.TMPDBASE.I0001.A001,DISP=SHR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;/*&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:100%;"&gt;Example 2:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt; To Run DSN1CHKR on an actual table space. STEP1 stopsdatabase DSNDB06 with the STOP DATABASE command. STEP2 runsDSN1CHKR on the target table space; its output is identical to the output inExample 1. STEP3 restarts the database with the START DATABASE command.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEP4 EXEC PGM=IKJEFT01,DYNAMNBR=20&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//********************************************************************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//* START DSNDB06.SYSDBASE *&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//********************************************************************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEPLIB DD DSN=prefix.SDSNLOAD,DISP=SHR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSTSPRT DD SYSOUT=A//SYSPRINT DD SYSOUT=A&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSTSIN DD *DSN SYSTEM(V61A)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;-START DB(DSNDB06) SPACENAM(SYSDBASE)END&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEP5 EXEC PGM=DSN1CHKR,PARM='MAP=RID(00000201,06,00000B01,06)',&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;// COND=(4,LT)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//********************************************************************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//* CHECKLINK S OF SYSDBASE *&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//********************************************************************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//STEPLIB DD DSN=prefix.SDSNLOAD,DISP=SHR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSPRINT DD SYSOUT=A&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//SYSUT1 DD DSN=TESTCAT.DSNDBC.TEMPDB.TMPDBASE.I0001.A001,DISP=SHR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;Thanks for reading this blog&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;Cheers&lt;br /&gt;&lt;em&gt;Prakash C. Singh&lt;/em&gt;&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-8232164927667300349?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/8232164927667300349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=8232164927667300349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8232164927667300349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8232164927667300349'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2009/07/understanding-dsn1chkr-utility.html' title='Understanding DSN1CHKR Utility'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-3918123734253187647</id><published>2009-07-09T20:01:00.000+05:30</published><updated>2009-07-09T20:49:44.598+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SYSSTOGROUP'/><category scheme='http://www.blogger.com/atom/ns#' term='STOGROUP'/><category scheme='http://www.blogger.com/atom/ns#' term='Space Calculation'/><category scheme='http://www.blogger.com/atom/ns#' term='Calculating size of Database or Table'/><category scheme='http://www.blogger.com/atom/ns#' term='STOSPACE'/><title type='text'>Calculating size of Database or Table in DB2 for z/OS</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;Sometimes people around you ask simple question:&lt;br /&gt;What is the size of a particular database or a particular table?&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;How will you calculate??? &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Option 1:&lt;/strong&gt; Get the total number of rows multiplied by row length.. What if you have variable columns...&lt;br /&gt;&lt;strong&gt;Option 2:&lt;/strong&gt; Get the total number of pages allocated for individual tables and multiply by 4K. What if there are large number of tables in a databases??&lt;br /&gt;&lt;strong&gt;Option 3:&lt;/strong&gt; List the underlying VSAM dataset of tablespace and indexspace. Get the Hi Used RBA and Low Used RBA and calculate the difference. Same Constrains as avove option.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Here you go ... &lt;/strong&gt;&lt;br /&gt;IBM provided a stand alone alone utility which will calculate the space for you within minutes.&lt;br /&gt;The Utility name is &lt;strong&gt;STOSPACE&lt;/strong&gt;. All you need to give the input is the Storage Group of the underlying dataset of spacific table or index. This will update the catalogue tables of DB2 regarding space information from where you can get by firing simple Select query.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Authorization required:&lt;/strong&gt;&lt;br /&gt;STOSPACE privilege SYSCTRL or SYSADM authority&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;This JCL step should be like:&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;//*---------------------------------------------------------------------&lt;br /&gt;//* STOSPACE UTILITY TO UPDATE INFORMATION IN DSN1 CATALOG&lt;br /&gt;//*---------------------------------------------------------------------&lt;br /&gt;//DH011510 &lt;strong&gt;EXEC DSNUPROC&lt;/strong&gt;,SYSTEM=DSN1,UID='TSG11510',UTPROC=''&lt;br /&gt;//*&lt;br /&gt;//SYSPRINT DD SYSOUT=*&lt;br /&gt;//DSNUPROC.SYSIN DD *&lt;br /&gt;&lt;strong&gt;STOSPACE STOGROUP (GDSN1)&lt;/strong&gt;&lt;br /&gt;//*&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;After Executing the utility, you may get following &lt;strong&gt;messages in SYSPRINT&lt;/strong&gt;&lt;br /&gt;Information you get in SYSPRINT&lt;br /&gt;&lt;span style="font-size:78%;"&gt;DSNU000I DSNUGUTC - OUTPUT START FOR UTILITY, UTILID = DH011510&lt;br /&gt;DSNU050I DSNUGUTC - STOSPACE STOGROUP(GDSN1)&lt;br /&gt;DSNU640I - DSNUGSPC - DATA SET= 0 OF TABLESPACE= SPRODDET IN DATABASE= DISSUES2 HAS BEEN MIGRATED BY HSM&lt;br /&gt;DSNU010I DSNUGBAC - UTILITY EXECUTION COMPLETE, HIGHEST RETURN CODE=0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;After successful execution of STOSPACE utility you can query the catalogue tables as below and add the tablespace and index's space value to calculate the size of a database.&lt;br /&gt;&lt;strong&gt;Calculating all index space in a database:&lt;/strong&gt;&lt;br /&gt;SELECT DBNAME, SUM(SPACE)&lt;br /&gt;FROM SYSIBM.SYSTABLESPACE&lt;br /&gt;WHERE DBNAME = 'DTSG10'&lt;br /&gt;GROUP BY DBNAME;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Calculating all index space in a database:&lt;/strong&gt;&lt;br /&gt;SELECT DBNAME, SUM(SPACE)&lt;br /&gt;FROM SYSIBM.SYSINDEXES&lt;br /&gt;WHERE DBNAME = 'DTSG10'&lt;br /&gt;GROUP BY DBNAME;&lt;br /&gt;&lt;br /&gt;You can query &lt;strong&gt;SYSIBM.SYSSTOGROUP&lt;/strong&gt; to findout total space in KB aquired by a particular storage group.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;More about STOSPACE Utility:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;STOSPACE output&lt;/strong&gt; stored in columns as mentioned below:&lt;br /&gt;&lt;br /&gt;The output from STOSPACE consists of updated values in the columns and tables in the following list. In each case, an amount of space is given in &lt;strong&gt;kilobytes (KB).&lt;/strong&gt;&lt;br /&gt;SPACE - in &lt;strong&gt;SYSIBM.SYSINDEXES&lt;/strong&gt; shows the amount of space that is allocated to indexes. If the index is not defined using STOGROUP, or if STOSPACE has not been executed, the value is zero.&lt;br /&gt;&lt;br /&gt;SPACE - in &lt;strong&gt;SYSIBM.SYSTABLESPACE&lt;/strong&gt; shows the amount of space that is allocated to table spaces. If the table space is not defined using STOGROUP, or if STOSPACE has not been executed, the value is zero.&lt;br /&gt;&lt;br /&gt;SPACE - in &lt;strong&gt;SYSIBM.SYSINDEXPART&lt;/strong&gt; shows the amount of space that is allocated to index partitions. If the partition is not defined using STOGROUP, or if STOSPACE has not been executed, the value is zero.&lt;br /&gt;&lt;br /&gt;SPACE - in &lt;strong&gt;SYSIBM.SYSTABLEPART&lt;/strong&gt; shows the amount of space that is allocated to table partitions. If the partition is not defined using STOGROUP, or if STOSPACE has not been executed, the value is zero.&lt;br /&gt;&lt;br /&gt;SPACE - in &lt;strong&gt;SYSIBM.SYSSTOGROUP&lt;/strong&gt; shows the amount of space that is allocated to storage groups. &lt;strong&gt;STATSTIME&lt;/strong&gt; in SYSIBM.SYSSTOGROUP shows the timestamp for the time at which STOSPACE was last executed.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; If the value is too large to fit in the SPACE column, the SPACEF column is updated.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Concurrency and compatibility for STOSPACE:&lt;/strong&gt;&lt;br /&gt;STOSPACE does not set a utility restrictive state on the target object.&lt;br /&gt;STOSPACE can run concurrently with any utility on the same target object. However, because STOSPACE updates the catalog, concurrent STOSPACE utility jobs or other concurrent applications that update the catalog might cause timeouts and deadlocks.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Terminating or restarting STOSPACE:&lt;/strong&gt;&lt;br /&gt;You can terminate a STOSPACE utility job with the TERM UTILITY command if you have submitted the job or have SYSOPR, SYSCTRL, or SYSADM authority.&lt;br /&gt;You can restart a STOSPACE utility job, but it starts from the beginning again.&lt;br /&gt;&lt;br /&gt;Cheers...&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-3918123734253187647?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/3918123734253187647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=3918123734253187647' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/3918123734253187647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/3918123734253187647'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2009/07/calculating-size-of-database-or-table.html' title='Calculating size of Database or Table in DB2 for z/OS'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-3981199860245411646</id><published>2009-06-28T14:33:00.000+05:30</published><updated>2009-06-28T16:28:14.882+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Equal Unique Index'/><category scheme='http://www.blogger.com/atom/ns#' term='Stage 2'/><category scheme='http://www.blogger.com/atom/ns#' term='predicates'/><category scheme='http://www.blogger.com/atom/ns#' term='Stage 1'/><category scheme='http://www.blogger.com/atom/ns#' term='IN-list index scan'/><category scheme='http://www.blogger.com/atom/ns#' term='Index Screening'/><category scheme='http://www.blogger.com/atom/ns#' term='One-Fetch'/><category scheme='http://www.blogger.com/atom/ns#' term='Dynamic SQL performance'/><category scheme='http://www.blogger.com/atom/ns#' term='INDEXONLY'/><category scheme='http://www.blogger.com/atom/ns#' term='Matching Index-scan'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU Parallelism'/><category scheme='http://www.blogger.com/atom/ns#' term='Sysplex'/><category scheme='http://www.blogger.com/atom/ns#' term='MATCHCOLS'/><title type='text'>Performance Consideration of SQL and Index for DB2 on z/OS</title><content type='html'>Hi,&lt;br /&gt;Here is Prakash Back ... This is with interesting one which is related to Performance which is one of my favorite topic. This post is also has the link with my previous post as well related to Explain the SQL statements.&lt;br /&gt;Here are some eye openers:&lt;br /&gt;1) &lt;strong&gt;Matching Index scan&lt;/strong&gt;: &lt;strong&gt;(MATCHCOLS &gt; 0)&lt;/strong&gt;&lt;br /&gt;This comes into picture when our predicates match either leading index key columns or all of them hence give us the filtering criteria for specific index and data pages. If it is able to filter high number of records, then this type of access path is efficient.&lt;br /&gt;&lt;br /&gt;There are &lt;strong&gt;3&lt;/strong&gt; types of &lt;strong&gt;predicates&lt;/strong&gt;:&lt;br /&gt;1. &lt;strong&gt;Index Predicates&lt;/strong&gt;&lt;br /&gt;a. &lt;strong&gt;Matching predicates&lt;/strong&gt;&lt;br /&gt;b. &lt;strong&gt;Index screening predicates&lt;/strong&gt;&lt;br /&gt;2. &lt;strong&gt;Stage 1 predicates&lt;/strong&gt; - this applied first to filter out most of the records enhancing query performance&lt;br /&gt;3. &lt;strong&gt;Stage 2 predicates&lt;/strong&gt; - This is applied to the rows returned from stage 1 predicates&lt;br /&gt;&lt;br /&gt;From DB2 point of view a. first all equal predicates/ IS NULL, b. Then all Range Predicates/ IS NOT NULL c. then at last all other predicates are applied to the SQL Query.&lt;br /&gt;&lt;strong&gt;Therefore developer should code most rstrictive predicates first.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Index Screening:&lt;/strong&gt;&lt;br /&gt;This predicates are specified on index-key columns but are not part of matching columns. In other words, they are not leading columns of the index. They used to search the index first before going to the data pages.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Nonmatching Index Scan: (ACCESSTYPE = I and MATCHCOLS = 0)&lt;/strong&gt;&lt;br /&gt;No matching columns are in index, hence all the index keys must be examined.&lt;br /&gt;Sometimes it provides an efficient access path if the path is index only and index is smaller than the tablespace.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;IN-list index scan: (ACCESSTYPE = N)&lt;/strong&gt;&lt;br /&gt;This is a special case of matching index scan. This is equivalent to matching equal predicate.&lt;br /&gt;Exception:noncorrelated IN Subquery or in MX access or list prefetch.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Multiple-index access: (ACCESSTYPE is M, MX, MI, MU)&lt;/strong&gt;&lt;br /&gt;Multiple index access is table access by more than one index.&lt;br /&gt;RID lists are constructed for each if the index and final list is retrieved after AND/OR operation. This type of access is extention to List Prefetch.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;One-Fetch access: (ACCESSTYPE = I1)&lt;/strong&gt;&lt;br /&gt;This is required to retrive only 1 row. For example Max/Min column function. Most efficient access path.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Index Only Access: (INDEXONLY = Y)&lt;/strong&gt;&lt;br /&gt;If all the information in a query is available in index itself, it only access the index.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Equal Unique Index (MATCHCOLS = Number of Index Columns)&lt;/strong&gt;&lt;br /&gt;This guarantees the excat 1 row retrieval. This is next most efficient access path to One-Fetch access.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Other Considerations:&lt;/strong&gt;&lt;br /&gt;Avoiding Sort:&lt;br /&gt;1) DISTINCT sort can be avoided by by using Unque index&lt;br /&gt;2) ORDER BY, GROUP BY sort can be avoided by ordering index by ASC/DESC order&lt;br /&gt;3) OPTIMIZE FOR n ROWS can eliminate most expensive sort with ordered index&lt;br /&gt;&lt;br /&gt;Below information are spefically for Dynamic SQL:&lt;br /&gt;Dynamic SQL performance is key to many applications.&lt;br /&gt;&lt;br /&gt;Few things that can be considered are:&lt;br /&gt;1) Reorganize DB2 Catalogue&lt;br /&gt;2) Reorganize and Runstat the application tablr and index space&lt;br /&gt;3) Use dynamic statement caching&lt;br /&gt;4) SET CURRENT DEGREE = 'ANY' for parallelism&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Query Parallelism:&lt;/strong&gt;&lt;br /&gt;This is less than 1% additional CPU overhead for long running queries and less than 10% for short running queries.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;I/O and CPU Parallelism: (PARALLELISM_MODE = I or O)&lt;/strong&gt;&lt;br /&gt;The preffered method is CPU parallelism. It can be decided at both Bind time (DEGREE = ANY) and Runtime. If it is not chosen at Bind time, it can be chosen at runtime. Even if it is chosen at bind time, it may not be used at Runtime. It all depends on the current environment when the query will run.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Queries best suited for Parallelism:&lt;/strong&gt;&lt;br /&gt;1. Long running, read only queries&lt;br /&gt;2. Tablespace scan&lt;br /&gt;3. Joins&lt;br /&gt;4. Nested loops&lt;br /&gt;5. Merge scans&lt;br /&gt;6. Hybrid Join&lt;br /&gt;7. Sorts&lt;br /&gt;8. Aggregate functions&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Prallelism should not considered for:&lt;/strong&gt;&lt;br /&gt;1. Queries that materialized views&lt;br /&gt;2. Queries using direct row access&lt;br /&gt;3. Queries that perform materialization because of nested table expressions&lt;br /&gt;4. Queries performing a merge-scan join of more than one column&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sysplex Parallelism not to be considered:&lt;/strong&gt;&lt;br /&gt;1) Queries with list prefetch and multiple index access&lt;br /&gt;2) Queries accessing LOB data&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Other Considerations:&lt;/strong&gt;&lt;br /&gt;1) Can not be considered if system is already CPU constrained&lt;br /&gt;2) Can not be used when a CURSOR is defined WITH HOLD.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sysplex Query Parallelism: (PARALLELISM_MODE = X)&lt;/strong&gt;&lt;br /&gt;1. Complex query to run across multiple members in a data sharing group of multi tasking env&lt;br /&gt;2. Best used with ISOLATION level UR to avoid excess lock propagation&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The information gives some eye sight regarding Performace.&lt;br /&gt;&lt;br /&gt;See all you in my next blog .. Till then happy tunning...&lt;br /&gt;&lt;br /&gt;Cheers....&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM certified DB2 DBA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-3981199860245411646?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/3981199860245411646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=3981199860245411646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/3981199860245411646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/3981199860245411646'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2009/06/performance-consideration-of-sql-and.html' title='Performance Consideration of SQL and Index for DB2 on z/OS'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-4553725180489191577</id><published>2009-04-25T20:04:00.000+05:30</published><updated>2009-04-25T20:22:35.601+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><category scheme='http://www.blogger.com/atom/ns#' term='PLAN_TABLE'/><category scheme='http://www.blogger.com/atom/ns#' term='EXPLAIN PLAN_TABLE'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><category scheme='http://www.blogger.com/atom/ns#' term='DSN_STATEMNT_TABLE'/><title type='text'>How to EXPLAIN your SQL query</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;In continuation of my discussion regarding Plan and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;DSN&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;STATEMNT&lt;/span&gt; table, I am now &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;giving&lt;/span&gt; you the code &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;thru&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;which&lt;/span&gt; you can EXPLAIN your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SQL&lt;/span&gt; statements and find the parameters populated in both of the tables mentioned above. This will help you in your analysis of performance regarding &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;SQL&lt;/span&gt; you are going to run.&lt;br /&gt;&lt;br /&gt;Consideration:&lt;br /&gt;1) You should have all the objects (&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;Referenced&lt;/span&gt; in your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SQL&lt;/span&gt;) created in the same &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;env&lt;/span&gt; where you will Explain the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;SQL&lt;/span&gt;.&lt;br /&gt;2) You tables must be &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;runstated&lt;/span&gt; before running Explain&lt;br /&gt;3) You can &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;replace&lt;/span&gt; host variables with any Char/Int Literals in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;SQL&lt;/span&gt; statements.&lt;br /&gt;4) Make sure your &lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;PLAN_TABLE and &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;DSN&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;STATEMNT&lt;/span&gt;_TABLE present in the same &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Env&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Here is one example of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;SQL&lt;/span&gt; code regarding How to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_18"&gt;Explain&lt;/span&gt; your query.&lt;br /&gt;DELETE FROM PLAN_TABLE WHERE &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;QUERYNO&lt;/span&gt; = 99999;&lt;br /&gt;COMMIT;&lt;br /&gt;&lt;br /&gt;EXPLAIN PLAN SET &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;QUERYNO&lt;/span&gt; = 99999 FOR&lt;br /&gt;&lt;br /&gt;SELECT B.STORE_NO, B.STOCK_ITEM, B.DELIVERY_DATE&lt;br /&gt;FROM V1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;FOGH&lt;/span&gt;01 B&lt;br /&gt;&lt;br /&gt;WHERE DELIVERY_DATE = (SELECT MAX(DELIVERY_DATE)&lt;br /&gt;   FROM V1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;FOGH&lt;/span&gt;01 A&lt;br /&gt;   WHERE A.STORE_NO = B.STORE_NO&lt;br /&gt;   AND A.STOCK_ITEM = B.STOCK_ITEM&lt;br /&gt;   AND A.QTY_TYPE  ='7'&lt;br /&gt;   AND   A.DELIVERY_DATE &lt;= CURRENT DATE)&lt;br /&gt;   AND  B.QTY_TYPE  ='7';&lt;br /&gt;&lt;br /&gt;SELECT * FROM PLAN_TABLE&lt;br /&gt;WHERE &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;QUERYNO&lt;/span&gt;  = 99999&lt;br /&gt;ORDER BY TIMESTAMP,&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;QUERYNO&lt;/span&gt;,&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;QBLOCKNO&lt;/span&gt;,&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;PLANNO&lt;/span&gt;,&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;MIXOPSEQ&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;SELECT * FROM &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;DSN&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;STATEMNT&lt;/span&gt;_TABLE&lt;br /&gt;WHERE &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;QUERYNO&lt;/span&gt; = 99999;&lt;br /&gt;========&lt;br /&gt;&lt;br /&gt;I have Added the Select statement so that immediately you can view the result. You can run this statement in Batch as well as Online (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;Spufi&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;I have already discussed some important columns of PLAN_TABLE and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;DSN&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;STATEMNT&lt;/span&gt;_TABLE. So Enjoy while analysing the values you got for these 2 tables.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;Prakash&lt;/span&gt; C Singh&lt;br /&gt;IBM Certified DB2 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;DBA&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-4553725180489191577?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/4553725180489191577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=4553725180489191577' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/4553725180489191577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/4553725180489191577'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2009/04/how-to-explain-your-sql-query.html' title='How to EXPLAIN your SQL query'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-6734010072125891557</id><published>2009-03-15T22:35:00.000+05:30</published><updated>2009-03-17T22:33:29.498+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='QUERY COST'/><category scheme='http://www.blogger.com/atom/ns#' term='PROCSU'/><category scheme='http://www.blogger.com/atom/ns#' term='COST_CATEGORY'/><category scheme='http://www.blogger.com/atom/ns#' term='PROCMS'/><category scheme='http://www.blogger.com/atom/ns#' term='EXPLAIN'/><category scheme='http://www.blogger.com/atom/ns#' term='DSN_STATEMNT_TABLE'/><title type='text'>How to read DSN_STATEMNT_TABLE</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;While analyzing the SQL queries, it is really worth to calculate the cost of the query. This cost is populated into DSN_STATEMNT_TABLE by the explain SQL statement.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here are some important column info&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1) QUERYNO:A no. identifying the statement being explained.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) STMT_TYPE:&lt;br /&gt;&lt;p&gt;SELECT - Select&lt;/p&gt;&lt;p&gt;INSERT - Insert&lt;/p&gt;&lt;p&gt;UPDATE - Update&lt;/p&gt;&lt;p&gt;DELETE - Delete&lt;/p&gt;&lt;p&gt;SELUPD - Select with FOR UPDATE OF&lt;/p&gt;&lt;p&gt;DELCUR - DELETE WHERE CURRENT OF CURSOR&lt;/p&gt;&lt;p&gt;UPDCUR - UPDATE WHERE CURRENT OF CURSOR&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;3) COST_CATEGORY:&lt;br /&gt;&lt;br /&gt;A - DB2 has enough information to calculate cost without using default values&lt;br /&gt;&lt;br /&gt;B - DB2 forced to use default values. See REASON column why DB2 choose default values&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4) PROCMS:The estimated processor cost in milliseconds for SQL statements. This is the most important column to look at while analyzing the SQL query&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5) PROCSU:The estimated processor cost in Service Units for SQL statements. This is also worth to look at.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6) REASON:Gives the reason why it is in cost category B.&lt;br /&gt;&lt;br /&gt;Having ClauseHost Variables - Also Parameter Markers or Special Registers&lt;br /&gt;&lt;br /&gt;REFERENTIAL CONSTRAINTS - CASCADE and SET NULL exist for DELETE statement&lt;br /&gt;&lt;br /&gt;TABLE CARDINALITY - Cardinality statistics missing&lt;br /&gt;&lt;br /&gt;UDF TRIGGERS - defined on target table of INSERT, UPDATE or DELETE statement&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers...&lt;br /&gt;&lt;br /&gt;Prakash C Singh&lt;br /&gt;&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-6734010072125891557?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/6734010072125891557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=6734010072125891557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/6734010072125891557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/6734010072125891557'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2009/03/how-to-read-dsnstatemnttable.html' title='How to read DSN_STATEMNT_TABLE'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-8560880113038403857</id><published>2009-03-15T16:23:00.000+05:30</published><updated>2009-03-16T12:26:15.677+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ACCESSTYPE'/><category scheme='http://www.blogger.com/atom/ns#' term='TABLE_ENCODE'/><category scheme='http://www.blogger.com/atom/ns#' term='EXPLAIN'/><category scheme='http://www.blogger.com/atom/ns#' term='METHOD'/><category scheme='http://www.blogger.com/atom/ns#' term='INDEXONLY'/><category scheme='http://www.blogger.com/atom/ns#' term='PAGE_RANGE'/><category scheme='http://www.blogger.com/atom/ns#' term='PRIMARY_ACCESSTYPE'/><category scheme='http://www.blogger.com/atom/ns#' term='TSLOCKMODE'/><category scheme='http://www.blogger.com/atom/ns#' term='QBLOCK_TYPE'/><category scheme='http://www.blogger.com/atom/ns#' term='ACCESS_DEGREE'/><category scheme='http://www.blogger.com/atom/ns#' term='PLAN_TABLE'/><category scheme='http://www.blogger.com/atom/ns#' term='WHEN_OPTIMIZE'/><category scheme='http://www.blogger.com/atom/ns#' term='TABLE_TYPE'/><category scheme='http://www.blogger.com/atom/ns#' term='JOIN_TYPE'/><title type='text'>How to read PLAN_TABLE after EXPLAIN</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;Here are some information you should be looking at various columns of the PLAN_TABLE. This will help you analysing the SQL queries and it's various attributes.&lt;br /&gt;&lt;br /&gt;1) QUERYNO: A number identifying the statement being explained.&lt;br /&gt;&lt;br /&gt;2) METHOD:&lt;br /&gt;0 - First table accessed, continuation of previous table accessed or not used&lt;br /&gt;1 - Nested Loop Join&lt;br /&gt;2 - Merge Scan Join&lt;br /&gt;3 - Sorts required by ORDER BY, GROUP BY, SELECT DISTINCT, uNION&lt;br /&gt;4 - Hybrid Join&lt;br /&gt;&lt;br /&gt;3) ACCESSTYPE:&lt;br /&gt;I - By an Index&lt;br /&gt;I1 - One fetch Index Scan&lt;br /&gt;M - Multiple index scan&lt;br /&gt;MX - By Index mentioned in ACCESSNAME&lt;br /&gt;MI - Intersection of Multiple indexes&lt;br /&gt;MU - Union of multiple indexes&lt;br /&gt;N - Index scan when matching predicated in IN keyword&lt;br /&gt;R - Tablespace scan&lt;br /&gt;RW - Work file scan of a materialized user defined table funtion&lt;br /&gt;T - By a spare index - Star join work files&lt;br /&gt;V - By buffers for an INSERT statement within a SELECT&lt;br /&gt;Blank - NA&lt;br /&gt;&lt;br /&gt;4) INDEXONLY:&lt;br /&gt;Whether access to an Index alone is enough to carry out the step&lt;br /&gt;&lt;br /&gt;5) TSLOCKMODE:&lt;br /&gt;IS - Intent Share Lock&lt;br /&gt;IX - Intent Exclusive lock&lt;br /&gt;S - Share Lock&lt;br /&gt;U - Update Lock&lt;br /&gt;X - Exclusive Lock&lt;br /&gt;SIX - Share with Intent Exclusive lock&lt;br /&gt;N - UR Isolation: No Lock&lt;br /&gt;NS - For CS, RS, RR an S Lock&lt;br /&gt;NIS - For CS, RS, RR an IS Lock&lt;br /&gt;NSS - For CS, RS an IS Lock and for RR an S Lock&lt;br /&gt;SS - For UR, CS, RS an IS Lock and for RR an S Lock&lt;br /&gt;&lt;br /&gt;6) PREFETCH:&lt;br /&gt;S - Pure Sequential&lt;br /&gt;L - thru a page List&lt;br /&gt;D - Optimizer expects  dynamic prefetch&lt;br /&gt;Blank - Unknown at bind time or NA&lt;br /&gt;&lt;br /&gt;7)ACCESS_DEGREE:&lt;br /&gt;Number of Parallel tasks or operations activated by a Query&lt;br /&gt;0 - if there is a host variable&lt;br /&gt;&lt;br /&gt;8) PARALLELISM_MODE:&lt;br /&gt;I - Query I/O parallelism&lt;br /&gt;C - Query CP parallelism&lt;br /&gt;X - Sysplex query parallelism&lt;br /&gt;&lt;br /&gt;9) PAGE_RANGE:&lt;br /&gt;Whether the table qualifies for page-range(scan only the partitions those are needed)&lt;br /&gt;Y - Yes&lt;br /&gt;Blank - No&lt;br /&gt;&lt;br /&gt;10) JOIN_TYPE:&lt;br /&gt;F - Full Outer Join&lt;br /&gt;L - Left Outer Join&lt;br /&gt;S - Star Join&lt;br /&gt;Blank - Inner Join or No join&lt;br /&gt;Note: Right Outer Join always converted to Left Outer Join&lt;br /&gt;&lt;br /&gt;11) WHEN_OPTIMIZE:&lt;br /&gt;Blank: At bind time, using a default filter factor for any host variables, parameter markers or special registers&lt;br /&gt;B - Above facts + Bind option REOPT (ALWAYS) or REOPT (ONCE) must be specified.&lt;br /&gt;R - At Runtime, using input variables, parameter markers or special registers. Bind option REOPT (ALWAYS) or REOPT (ONCE) must be specified.&lt;br /&gt;&lt;br /&gt;12) QBLOCK_TYPE:&lt;br /&gt;SELECT - Select&lt;br /&gt;INSERT - Insert&lt;br /&gt;UPDATE - Update&lt;br /&gt;DELETE - Delete&lt;br /&gt;SELUPD - Select with FOR UPDATE  OF&lt;br /&gt;DELCUR - DELETE WHERE CURRENT OF CURSOR&lt;br /&gt;UPDCUR - UPDATE WHERE CURRENT OF CURSOR&lt;br /&gt;CORSUB - Correlated Subquery&lt;br /&gt;NCOSUB - NonCorrelated Subquery&lt;br /&gt;TABLEX - Table Expression&lt;br /&gt;TRIGGER - WHEN caluse on CREATE TRIGGER&lt;br /&gt;UNION - Union&lt;br /&gt;UNIONA - Union All&lt;br /&gt;&lt;br /&gt;13) PRIMRY-ACCESSTYPE:&lt;br /&gt;D - Direct Row access&lt;br /&gt;Blank - No Direct Row access&lt;br /&gt;&lt;br /&gt;14) TABLE_TYPE:&lt;br /&gt;B - Buffers for an INSERT stament within a SELECT&lt;br /&gt;C - Common Table Expression&lt;br /&gt;F - Table Function&lt;br /&gt;M - Materialized Qery Table&lt;br /&gt;Q - Temp intermediate table(Not Materialized), name of the viewor nested table expression, Contains a UNION ALL where materialization was vertual not actual.&lt;br /&gt;RB - Recursive Common Table Expression&lt;br /&gt;T - Table&lt;br /&gt;W - Work file (Materialized)&lt;br /&gt;&lt;br /&gt;15) TABLE_ENCODE:&lt;br /&gt;A - ASCII&lt;br /&gt;E - EBCDIC&lt;br /&gt;U - Unicode&lt;br /&gt;M - when multiple CCSID is in one table&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We will be discussing more on these on my post regarding Performance.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Prakash C Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-8560880113038403857?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/8560880113038403857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=8560880113038403857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8560880113038403857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8560880113038403857'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2009/03/how-to-read-plantable-after-explain.html' title='How to read PLAN_TABLE after EXPLAIN'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-7676246117560293586</id><published>2009-03-08T12:48:00.000+05:30</published><updated>2009-03-08T13:05:46.810+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='DSN_FUNCTION_TABLE'/><category scheme='http://www.blogger.com/atom/ns#' term='DSNTESC'/><category scheme='http://www.blogger.com/atom/ns#' term='EXPLAIN PLAN_TABLE'/><category scheme='http://www.blogger.com/atom/ns#' term='DSN_STATEMNT_TABLE'/><title type='text'>EXPLAIN Tables (PLAN_TABLE ,DSN_STATEMNT_TABLE, DSN_FUNCTION_TABLE)</title><content type='html'>Just mangaed to get some time to post this information.&lt;br /&gt;&lt;br /&gt;This is helpful while creating Explain tables to anayse a badly performing query.&lt;br /&gt;&lt;br /&gt;I am currently working on DB2 V7 product.&lt;br /&gt;&lt;br /&gt;There is one member in the installation library of DB2 production where you will extract the defination of EXPLAIN tables (&lt;span style="font-weight: bold;"&gt;PLAN_TABLE ,DSN_STATEMNT_TABLE, DSN_FUNCTION_TABLE&lt;/span&gt;). Also you can see the defination of the Optimizer hint tables too.&lt;br /&gt;&lt;br /&gt;Here is the member you should look for &lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;D710.DSN1.&lt;span style="font-weight: bold;"&gt;SDSNSAMP(DSNTESC)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For the benefit of many I am putting the defination of these tables here&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;CREATE TABLE SCHEMANM.&lt;span style="font-weight: bold;"&gt;PLAN_TABLE&lt;/span&gt;                 &lt;br /&gt;     ( "QUERYNO"            INTEGER      NOT NULL,&lt;br /&gt;       "QBLOCKNO"           SMALLINT     NOT NULL,&lt;br /&gt;       "APPLNAME"           CHAR(8)      NOT NULL,&lt;br /&gt;       "PROGNAME"           CHAR(8)      NOT NULL,&lt;br /&gt;       "PLANNO"             SMALLINT     NOT NULL,&lt;br /&gt;       "METHOD"             SMALLINT     NOT NULL,&lt;br /&gt;       "CREATOR"            CHAR(8)      NOT NULL,&lt;br /&gt;       "TNAME"              CHAR(18)     NOT NULL,&lt;br /&gt;       "TABNO"              SMALLINT     NOT NULL,&lt;br /&gt;       "ACCESSTYPE"         CHAR(2)      NOT NULL,&lt;br /&gt;       "MATCHCOLS"          SMALLINT     NOT NULL,&lt;br /&gt;       "ACCESSCREATOR"      CHAR(8)      NOT NULL,&lt;br /&gt;       "ACCESSNAME"         CHAR(18)     NOT NULL,&lt;br /&gt;       "INDEXONLY"          CHAR(1)      NOT NULL,&lt;br /&gt;       "SORTN_UNIQ"         CHAR(1)      NOT NULL,&lt;br /&gt;       "SORTN_JOIN"         CHAR(1)      NOT NULL,&lt;br /&gt;       "SORTN_ORDERBY"      CHAR(1)      NOT NULL,&lt;br /&gt;       "SORTN_GROUPBY"      CHAR(1)      NOT NULL,&lt;br /&gt;       "SORTC_UNIQ"         CHAR(1)      NOT NULL,&lt;br /&gt;       "SORTC_JOIN"         CHAR(1)      NOT NULL,          &lt;br /&gt;       "SORTC_ORDERBY"      CHAR(1)      NOT NULL,          &lt;br /&gt;       "SORTC_GROUPBY"      CHAR(1)      NOT NULL,          &lt;br /&gt;       "TSLOCKMODE"         CHAR(3)      NOT NULL,           &lt;br /&gt;       "TIMESTAMP"          CHAR(16)     NOT NULL,          &lt;br /&gt;       "REMARKS"            VARCHAR(254) NOT NULL,          &lt;br /&gt;       "PREFETCH"           CHAR(1)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "COLUMN_FN_EVAL"     CHAR(1)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "MIXOPSEQ"           SMALLINT     NOT NULL WITH DEFAULT,&lt;br /&gt;       "VERSION"            VARCHAR(64)  NOT NULL WITH DEFAULT,&lt;br /&gt;       "COLLID"             CHAR(18)     NOT NULL WITH DEFAULT,&lt;br /&gt;       "ACCESS_DEGREE"      SMALLINT,                        &lt;br /&gt;       "ACCESS_PGROUP_ID"   SMALLINT,                       &lt;br /&gt;       "JOIN_DEGREE"        SMALLINT,                       &lt;br /&gt;       "JOIN_PGROUP_ID"     SMALLINT,                       &lt;br /&gt;       "SORTC_PGROUP_ID"    SMALLINT,                       &lt;br /&gt;       "SORTN_PGROUP_ID"    SMALLINT,                       &lt;br /&gt;       "PARALLELISM_MODE"   CHAR(1),                        &lt;br /&gt;       "MERGE_JOIN_COLS"    SMALLINT,                        &lt;br /&gt;       "CORRELATION_NAME"   CHAR(18),                       &lt;br /&gt;       "PAGE_RANGE"         CHAR(1)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "JOIN_TYPE"          CHAR(1)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "GROUP_MEMBER"       CHAR(8)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "IBM_SERVICE_DATA"   VARCHAR(254) NOT NULL WITH DEFAULT,&lt;br /&gt;       "WHEN_OPTIMIZE"      CHAR(1)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "QBLOCK_TYPE"        CHAR(6)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "BIND_TIME"          TIMESTAMP    NOT NULL WITH DEFAULT,&lt;br /&gt;       "OPTHINT"            CHAR(8)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "HINT_USED"          CHAR(8)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "PRIMARY_ACCESSTYPE" CHAR(1)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "PARENT_QBLOCKNO"    SMALLINT     NOT NULL WITH DEFAULT,&lt;br /&gt;       "TABLE_TYPE"         CHAR(1)                         &lt;br /&gt;     )                                                      &lt;br /&gt;   IN DBNAME.TABLESPC                                      &lt;br /&gt;CCSID EBCDIC;    &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CREATES THE V7.1 SAMPLE DSN_FUNCTION_TABLE&lt;br /&gt;&lt;br /&gt;CREATE TABLE SCHEMANM.&lt;span style="font-weight: bold;"&gt;DSN_FUNCTION_TABLE &lt;/span&gt;                     &lt;br /&gt;     ( "QUERYNO"            INTEGER      NOT NULL WITH DEFAULT,&lt;br /&gt;       "QBLOCKNO"           INTEGER      NOT NULL WITH DEFAULT,&lt;br /&gt;       "APPLNAME"           CHAR(8)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "PROGNAME"           CHAR(8)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "COLLID"             CHAR(18)     NOT NULL WITH DEFAULT,&lt;br /&gt;       "GROUP_MEMBER"       CHAR(8)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "EXPLAIN_TIME"       TIMESTAMP    NOT NULL WITH DEFAULT,&lt;br /&gt;       "SCHEMA_NAME"        CHAR(8)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "FUNCTION_NAME"      CHAR(18)     NOT NULL WITH DEFAULT,&lt;br /&gt;       "SPEC_FUNC_NAME"     CHAR(18)     NOT NULL WITH DEFAULT,&lt;br /&gt;       "FUNCTION_TYPE"      CHAR(2)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "VIEW_CREATOR"       CHAR(8)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "VIEW_NAME"          CHAR(18)     NOT NULL WITH DEFAULT,&lt;br /&gt;       "PATH"               VARCHAR(254) NOT NULL WITH DEFAULT,&lt;br /&gt;       "FUNCTION_TEXT"      VARCHAR(254) NOT NULL WITH DEFAULT&lt;br /&gt;     )                                                      &lt;br /&gt;   IN DBNAME.TABLESPC                                    &lt;br /&gt;CCSID EBCDIC;    &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CREATES THE V7.1 SAMPLE DSN_STATEMNT_TABLE&lt;br /&gt;&lt;br /&gt;CREATE TABLE &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;SCHEMANM&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;.&lt;span style="font-weight: bold;"&gt;DSN_STATEMNT_TABLE&lt;/span&gt;                       &lt;br /&gt;     ( "QUERYNO"            INTEGER      NOT NULL WITH DEFAULT,&lt;br /&gt;       "APPLNAME"           CHAR(8)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "PROGNAME"           CHAR(8)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "COLLID"             CHAR(18)     NOT NULL WITH DEFAULT,&lt;br /&gt;       "GROUP_MEMBER"       CHAR(8)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "EXPLAIN_TIME"       TIMESTAMP    NOT NULL WITH DEFAULT,&lt;br /&gt;       "STMT_TYPE"          CHAR(6)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "COST_CATEGORY"      CHAR(1)      NOT NULL WITH DEFAULT,&lt;br /&gt;       "PROCMS"             INTEGER      NOT NULL WITH DEFAULT,&lt;br /&gt;       "PROCSU"             INTEGER      NOT NULL WITH DEFAULT,&lt;br /&gt;       "REASON"             VARCHAR(254) NOT NULL WITH DEFAULT&lt;br /&gt;     )                                                       &lt;br /&gt;   IN &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;DBNAME.TABLESPC&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;                                      &lt;br /&gt;CCSID EBCDIC;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We will discuss more on this in my next post.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Prakash C Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-7676246117560293586?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/7676246117560293586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=7676246117560293586' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/7676246117560293586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/7676246117560293586'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2009/03/explain-tables-plantable.html' title='EXPLAIN Tables (PLAN_TABLE ,DSN_STATEMNT_TABLE, DSN_FUNCTION_TABLE)'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-5969704416448125228</id><published>2008-12-23T11:48:00.000+05:30</published><updated>2009-03-16T12:29:17.552+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='DSN8ED7'/><category scheme='http://www.blogger.com/atom/ns#' term='zPARM'/><category scheme='http://www.blogger.com/atom/ns#' term='DSNWZP'/><category scheme='http://www.blogger.com/atom/ns#' term='DSNTIJUZ'/><category scheme='http://www.blogger.com/atom/ns#' term='DSNTEJ6Z'/><title type='text'>Printing zPARMs of DB2 using IBM-supplied stored procedure DSNWZP</title><content type='html'>There are times where it is needed to check the Zparm values of DB2. It required to verify the change(before and after) you have made or just to check the existing values.&lt;br /&gt;&lt;br /&gt;If you have any tool, then you can easily verify it. One more place is there to look at these values is &lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;D710.SDSNSAMP(DSNTIJUZ). &lt;span style="font-family:georgia;"&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;This job actually sets the parameter values. you can get the latest info if the member is used in Edit mode while submitting this job last time.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Otherwise you need to configure a IBM supplied Stored procedure "&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;DSNWZP" for this.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;You can find this in SDSNSAMP:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;    &lt;p  style="font-family:georgia;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;The new job DSNTEJ6Z prepare and invoke the sample program DSN8ED7 which is a sample caller of the stored procedure DSNWZP, a DB2 provided stored procedure that returns the current settings of your DB2 subsystem parameters.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;DSN8ED7 formats the results from DSNWZP in a report format and prints it.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p  style="font-family:georgia;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;Please note that before running DSN8ED7 the stored procedure DSNWZP must exist on your DB2 subsystem. Installation job DSNTIJSG creates and binds the DB2 provided stored procedure DSNWZP.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;Calling &lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;DSNWZP strored procedure from ReXX.&lt;br /&gt;===================================&lt;br /&gt;Here is the sample code I got from a very good post at IDUG. After execution of this rexx it will open a target dataset to show the zPARM values automatically in a formatted manner.&lt;br /&gt;/******************************  REXX  ********************************/&lt;br /&gt;/**                                                                   */&lt;br /&gt;/**     EXEC : DISPZPRM                                               */&lt;br /&gt;/*I  PURPOSE : REXX TO CALL THE DSNWZP STORED PROCEDURE AND PARSE     */&lt;br /&gt;/*I            THE OUTPUT FIELD INTO A READABLE FILE.  THROW YOU      */&lt;br /&gt;/*I            INTO EDIT OF THE OUPUT DATASET SO YOU CAN FIND / SORT  */&lt;br /&gt;/*I            OR DO WHATEVER YOU WANT.                               */&lt;br /&gt;/**                                                                   */&lt;br /&gt;/**********************************************************************/&lt;br /&gt;ARG SSID                                                              &lt;br /&gt;IF SSID = '' THEN SSID = 'DSN2'                                       &lt;br /&gt;PROCNAME = 'DSNWZP '                                                  &lt;br /&gt;STATUS = MSG('OFF')                                                   &lt;br /&gt;ADDRESS TSO                                                           &lt;br /&gt;"FREE DDNAME(RPTOUT)"                                                 &lt;br /&gt;CALL LISTDSI ( ZPARM.TXT DIRECTORY NORECALL )                         &lt;br /&gt;IF SYSREASON = 9  THEN "HDELETE ZPARM.TXT WAIT "                      &lt;br /&gt;ELSE "DELETE ZPARM.TXT "                                              &lt;br /&gt;"ALLOC FI(RPTOUT) DA(ZPARM.TXT)                           &lt;br /&gt;        NEW LRECL(500) SP(5 2) CYL RECFM(F B) DSORG(PS) "&lt;br /&gt;"FREE DDNAME(RPTOUT)"                                     &lt;br /&gt;ADDRESS TSO "SUBCOM DSNREXX"                              &lt;br /&gt;IF RC = 1                                                 &lt;br /&gt;THEN S_RC = RXSUBCOM('ADD','DSNREXX','DSNREXX')           &lt;br /&gt;ADDRESS DSNREXX "CONNECT " SSID                           &lt;br /&gt;IF SQLCODE &lt;&gt; 0                                           &lt;br /&gt;THEN CALL SQLERROR                                        &lt;br /&gt;                                                         &lt;br /&gt;/* SET UP SQLDA FOR CALL TO DSNWZP */                     &lt;br /&gt;                                                         &lt;br /&gt;INSQLDA.SQLD = 1                                          &lt;br /&gt;INSQLDA.1.SQLTYPE = 449        /* VARCHAR */              &lt;br /&gt;INSQLDA.1.SQLLEN  = 32000                                 &lt;br /&gt;INSQLDA.1.SQLIND  = 0                                     &lt;br /&gt;INSQLDA.1.SQLDATA = ' '                                   &lt;br /&gt;                                                         &lt;br /&gt;/* CALL PROCEDURE DSNWZP */                               &lt;br /&gt;                                                          &lt;br /&gt;ADDRESS DSNREXX                                           &lt;br /&gt;"EXECSQL CALL :PROCNAME USING DESCRIPTOR :INSQLDA  "      &lt;br /&gt;                                                          &lt;br /&gt;IF SQLCODE = 0 THEN DO                                    &lt;br /&gt;                                                          &lt;br /&gt;    ADDRESS ISPEXEC                                       &lt;br /&gt;    "LMINIT  DATAID(DATAIDX) DATASET(ZPARM.TXT) ENQ(MOD) "&lt;br /&gt;    "LMOPEN  DATAID("DATAIDX") OPTION(OUTPUT) "           &lt;br /&gt;                                                          &lt;br /&gt;    RESULT = INSQLDA.1.SQLDATA                            &lt;br /&gt;    PARMCOUNT = 1                                         &lt;br /&gt;    I = POS(X2C(404025),RESULT)                           &lt;br /&gt;    DO WHILE ( I &lt;&gt; 0)                                    &lt;br /&gt;      RESULT = SUBSTR(RESULT,4)                           &lt;br /&gt;      NI = POS(X2C(404025),RESULT)                        &lt;br /&gt;      IF NI = 0 THEN NI = LENGTH(RESULT) + 1              &lt;br /&gt;      ZPARM.PARMCOUNT = SUBSTR(RESULT,1,NI-1)             &lt;br /&gt;      ZPARM.0 = PARMCOUNT                                 &lt;br /&gt;     RESULT = SUBSTR(RESULT,NI)                    &lt;br /&gt;     I = POS(X2C(404025),RESULT)                   &lt;br /&gt;   END                                             &lt;br /&gt;                                                   &lt;br /&gt;   DO I = 1 TO ZPARM.0                             &lt;br /&gt;     RECVAL = ZPARM.I                              &lt;br /&gt;     CALL PRCS_LINE                                &lt;br /&gt;     ADDRESS ISPEXEC                               &lt;br /&gt;     "LMPUT   DATAID("DATAIDX") MODE(INVAR)        &lt;br /&gt;                     DATALOC(RECVAL) DATALEN(500) "&lt;br /&gt;   END                                             &lt;br /&gt;   ADDRESS ISPEXEC                                 &lt;br /&gt;   "LMCLOSE DATAID("DATAIDX")"                     &lt;br /&gt;   "EDIT DATAID("DATAIDX")"                        &lt;br /&gt;   "LMFREE  DATAID("DATAIDX")"                     &lt;br /&gt;   ADDRESS TSO                                     &lt;br /&gt;   "DELETE ZPARM.TXT "                             &lt;br /&gt;END                                                 &lt;br /&gt;ELSE DO                                             &lt;br /&gt;  SAY 'UNEXPECTED SQLCODE ON CALL TO DSNWZP '                        &lt;br /&gt;  SAY 'SQL CODE = ' SQLCODE                                          &lt;br /&gt;END                                                                  &lt;br /&gt;RETURN 0                                                             &lt;br /&gt;                                                                     &lt;br /&gt;/*  TAKE THE VALUE AND SPACE IT OUT AND REARRANGE IT FOR DISPLAY     */&lt;br /&gt;/*  IF YOU DO NOT LIKE THE ORDER SIMPLY CHANGE THE LAST LINE         */&lt;br /&gt;PRCS_LINE:                                                           &lt;br /&gt;  ORECVAL = RECVAL                                                   &lt;br /&gt;  L = POS('/',RECVAL)                                                &lt;br /&gt;  W1 = SUBSTR(LEFT(RECVAL,L-1),1,9)                                  &lt;br /&gt;  WR = SUBSTR(RECVAL,L+1)                                            &lt;br /&gt;  L = POS('/',WR)                                                    &lt;br /&gt;  W2 = SUBSTR(LEFT(WR,L-1),1,9)                                      &lt;br /&gt;  WR = SUBSTR(WR,L+1)                                                &lt;br /&gt;  L = POS('/',WR)                                                    &lt;br /&gt;  W3 = SUBSTR(LEFT(WR,L-1),1,25)                                     &lt;br /&gt;  WR = SUBSTR(WR,L+1)                                                &lt;br /&gt;  L = POS('/',WR)                                                    &lt;br /&gt;  W4 = SUBSTR(LEFT(WR,L-1),1,9)                                      &lt;br /&gt;   WR = SUBSTR(WR,L+1)                                                &lt;br /&gt;   L = POS('/',WR)                                                    &lt;br /&gt;   W5 = SUBSTR(LEFT(WR,L-1),1,9)                                      &lt;br /&gt;   WR = SUBSTR(WR,L+1)                                                &lt;br /&gt;  L = POS('/',WR)                                                     &lt;br /&gt;  W6 = SUBSTR(LEFT(WR,L-1),1,40)                                      &lt;br /&gt;  WR = SUBSTR(WR,L+1,32)                                              &lt;br /&gt;  RECVAL = W3||WR||W6||W4||W5||W2||W1                                 &lt;br /&gt;RETURN                                                                &lt;br /&gt;/*-------------------------------------------------------------------*/&lt;br /&gt;SQLERROR: PROCEDURE EXPOSE SQLCODE SQLERRP SQLERRMC SQLERRD. SQLWARN. ,&lt;br /&gt;                           SQLSTATE                                   &lt;br /&gt;/*-------------------------------------------------------------------*/&lt;br /&gt;SAY "SQLCODE  = " SQLCODE                                             &lt;br /&gt;SAY "SQLSTATE = " SQLSTATE                                            &lt;br /&gt;SAY "SQLERRP  = " SQLERRP                                             &lt;br /&gt;SAY "SQLERRMC = " SQLERRMC                                            &lt;br /&gt;SAY "SQLERRD  = " SQLERRD.1",",                                       &lt;br /&gt;                 SQLERRD.2",",                                        &lt;br /&gt;                 SQLERRD.3",",                                        &lt;br /&gt;                SQLERRD.4",",                                       &lt;br /&gt;                SQLERRD.5",",                                       &lt;br /&gt;                SQLERRD.6                                           &lt;br /&gt;SAY "SQLWARN  = " SQLWARN.0",",                                      &lt;br /&gt;                SQLWARN.1",",                                       &lt;br /&gt;                SQLWARN.2",",                                       &lt;br /&gt;                SQLWARN.3",",                                       &lt;br /&gt;                SQLWARN.4",",                                       &lt;br /&gt;                SQLWARN.5",",                                       &lt;br /&gt;                SQLWARN.6",",                                       &lt;br /&gt;                SQLWARN.7",",                                       &lt;br /&gt;                SQLWARN.8",",                                       &lt;br /&gt;                SQLWARN.9",",                                       &lt;br /&gt;                SQLWARN.10                                          &lt;br /&gt;                                                                    &lt;br /&gt;EXIT 12                                                              &lt;br /&gt;RETURN                                                               &lt;br /&gt;/*-------------------------------------------------------------------*/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Cheers...&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-5969704416448125228?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/5969704416448125228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=5969704416448125228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/5969704416448125228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/5969704416448125228'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/12/printing-zparms-of-db2-using-ibm.html' title='Printing zPARMs of DB2 using IBM-supplied stored procedure DSNWZP'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-8874391057737617934</id><published>2008-12-19T11:27:00.000+05:30</published><updated>2009-03-16T12:30:33.956+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='PSID'/><category scheme='http://www.blogger.com/atom/ns#' term='OBID'/><category scheme='http://www.blogger.com/atom/ns#' term='accidentally dropped table'/><category scheme='http://www.blogger.com/atom/ns#' term='HPGOBID'/><category scheme='http://www.blogger.com/atom/ns#' term='PGSOBD'/><category scheme='http://www.blogger.com/atom/ns#' term='DSN1PRNT'/><category scheme='http://www.blogger.com/atom/ns#' term='DBID'/><title type='text'>How to recover accidentally dropped Table by Getting DBID, PSID, OBID from table backup with help of DSN1PRNT</title><content type='html'>You can act as recovery expert: Read on...&lt;br /&gt;&lt;br /&gt;Case: Suppose you have dropped a table &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;accidentally&lt;/span&gt;. As soon as the table dropped all information regarding this table will be dropped from DB2 catalog. If you have &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;DDL&lt;/span&gt; you can create the table but you can't load the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;previously&lt;/span&gt; taken image copies to new table as &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;DBID&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PSID&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;OBID&lt;/span&gt; will definitely mismatch.&lt;br /&gt;&lt;br /&gt;Here is the procedure to follow in case of such scenario.&lt;br /&gt;&lt;br /&gt;For the data set that contains the dropped table, run &lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;DSN&lt;/span&gt;1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;PRNT&lt;/span&gt;&lt;/span&gt; with the &lt;span style="color: rgb(51, 51, 255);"&gt;FORMAT&lt;/span&gt; and &lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;NODATA&lt;/span&gt;&lt;/span&gt; options.&lt;br /&gt;Record the &lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;HPGOBID&lt;/span&gt;&lt;/span&gt; field in the header page and the &lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;PGSOBD&lt;/span&gt;&lt;/span&gt; field from the data records in the data pages.&lt;br /&gt;For the auxiliary table of a LOB table space, record the &lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;HPGROID&lt;/span&gt;&lt;/span&gt; field in the header page instead of the &lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;PGSOBD&lt;/span&gt;&lt;/span&gt; field in the data pages.&lt;br /&gt;&lt;br /&gt;Field &lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;HPGOBID&lt;/span&gt;&lt;/span&gt; is 4 bytes long and contains the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;DBID&lt;/span&gt; in the first 2 bytes and the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;PSID&lt;/span&gt; in the last 2 bytes.&lt;br /&gt;&lt;br /&gt;Field &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;HPGROID&lt;/span&gt; (for LOB table spaces) contains the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;OBID&lt;/span&gt; of the table.&lt;br /&gt;A LOB table space can contain only one table.&lt;br /&gt;&lt;br /&gt;Field&lt;span style="color: rgb(153, 0, 0);"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;PGSOBD&lt;/span&gt;&lt;/span&gt; (for non-LOB table spaces) is 2 bytes long and contains the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;OBID&lt;/span&gt; of the table.&lt;br /&gt;If your table space contains more than one table, check for all &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;OBIDs&lt;/span&gt;. By searching for all different &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;PGSOBD&lt;/span&gt; fields. You need to specify all &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;OBIDs&lt;/span&gt; from the data set as input for the&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;DSN&lt;/span&gt;1COPY utility.&lt;br /&gt;&lt;br /&gt;Convert the hex values in the identifier fields to decimal so that they can be used as input for the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;DSN&lt;/span&gt;1COPY utility.&lt;br /&gt;&lt;br /&gt;Run the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;DSN&lt;/span&gt;1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;PRNT&lt;/span&gt; utility with the &lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;PARM&lt;/span&gt;=(FORMAT, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;NODATA&lt;/span&gt;)&lt;/span&gt; option on all data sets that might contain user table spaces.&lt;br /&gt;&lt;br /&gt;The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;NODATA&lt;/span&gt; option suppresses all row data, which reduces the output volume that you receive.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Print(0)&lt;/span&gt; &lt;/span&gt;is the header page which contains the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;PSID&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;DBID&lt;/span&gt;.&lt;br /&gt;Most probably you need to print &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_32"&gt;at least&lt;/span&gt; 3 pages i.e. PRINT(0,2) to get &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;OBID&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;TSG&lt;/span&gt;10&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;PNT&lt;/span&gt; JOB ,'&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;DSN&lt;/span&gt;1COPY ',NOTIFY=&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;TSG&lt;/span&gt;10,CLASS=S,&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;MSGCLASS&lt;/span&gt;=O,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//         &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;MSGLEVEL&lt;/span&gt;=(1,1),&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;COND&lt;/span&gt;=(7,LT)                      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//*                                                        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//*=========================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//* DISPLAY      FOR &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;TABLESPACE&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;SIHCY&lt;/span&gt;                      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//*=========================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;DISPAGE&lt;/span&gt; EXEC &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;PGM&lt;/span&gt;=&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);font-family:courier new;" &gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;DSN&lt;/span&gt;1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;PRNT&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;,                               &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//          &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;PARM&lt;/span&gt;='&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0);font-family:courier new;" &gt;PRINT(0,2),FORMAT,&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;NODATA&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;'                 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;SYSUT&lt;/span&gt;1    DD DSN=CF1M.DHGDG.DCMORGU1.SIHCY.F001.G7449V00,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//          &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_50"&gt;DISP&lt;/span&gt;=OLD                                        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;SYSUT&lt;/span&gt;2    DD DUMMY                                       &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_52"&gt;SYSPRINT&lt;/span&gt;  DD &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_53"&gt;SYSOUT&lt;/span&gt;=*                                    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_54"&gt;SYSUDUMP&lt;/span&gt;  DD &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_55"&gt;SYSOUT&lt;/span&gt;=* &lt;/span&gt;                                                                    &lt;br /&gt;&lt;br /&gt;From &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_56"&gt;SYSPRINT&lt;/span&gt; we can get&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_57"&gt;HPGOBID&lt;/span&gt;='018F0099'X&lt;/span&gt;&lt;br /&gt;First 2 bytes gives us x'018F' which is equal to decimal 399 which is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_58"&gt;DBID&lt;/span&gt;.&lt;br /&gt;Last 2 bytes gives us x'0099' which is equal to decimal 153 which is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_59"&gt;PSID&lt;/span&gt;.&lt;br /&gt;You can only find the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_60"&gt;OBID&lt;/span&gt; which refers to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_61"&gt;PGSOBD&lt;/span&gt; in subsequent pages&lt;br /&gt;if more than one tables are there.&lt;br /&gt;Here we can see &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_62"&gt;PGSOBD&lt;/span&gt;='009&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_63"&gt;A'X&lt;/span&gt; which is decimal equivalent as 154.&lt;br /&gt;&lt;br /&gt;I am pasting the first 3 pages of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_64"&gt;DSN&lt;/span&gt;1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_65"&gt;PRNT&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_66"&gt;SYSPRINT&lt;/span&gt; output&lt;br /&gt;at last section of the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_67"&gt;blog&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Note: This information can be also obtained by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_68"&gt;DSN&lt;/span&gt;1COPY utility with&lt;br /&gt;print option. But this is not recommended.&lt;br /&gt;&lt;br /&gt;After getting all the information you can restore the same data&lt;br /&gt;to the target &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_69"&gt;tablespace&lt;/span&gt; by mapping to the respective IDs..&lt;br /&gt;Please see my other blog "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_70"&gt;DSN&lt;/span&gt;1COPY" to more how to map these ids.&lt;br /&gt;&lt;br /&gt;You can code your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_71"&gt;DSN&lt;/span&gt;1COPY as below:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//*=========================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//* IBM &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_72"&gt;DSN&lt;/span&gt;1COPY FOR &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_73"&gt;TABLESPACE&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_74"&gt;SIHCY&lt;/span&gt;                      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//*=========================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_75"&gt;SIHCY&lt;/span&gt; EXEC &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_76"&gt;PGM&lt;/span&gt;=&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_77"&gt;DSN&lt;/span&gt;1COPY,                                 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//          &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_78"&gt;PARM&lt;/span&gt;='&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_79"&gt;FULLCOPY&lt;/span&gt;,&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_80"&gt;OBIDXLAT&lt;/span&gt;,RESET'                 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_81"&gt;SYSUT&lt;/span&gt;1    DD DSN=CF1M.DHGDG.DCMORGU1.SIHCY.F001.G7451V00,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//          &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_82"&gt;DISP&lt;/span&gt;=OLD                                       &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_83"&gt;SYSUT&lt;/span&gt;2    DD DSN=DSN2.DSNDBD.DSPS02.SIHCY.I0001.A001,    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//          &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_84"&gt;DISP&lt;/span&gt;=OLD                                       &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_85"&gt;SYSPRINT&lt;/span&gt;  DD &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_86"&gt;SYSOUT&lt;/span&gt;=*                                    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_87"&gt;SYSXLAT&lt;/span&gt;   DD *                                           &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;399,475    -- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_88"&gt;DBID&lt;/span&gt; info                                                 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;153,734    -- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_89"&gt;PSID&lt;/span&gt; info                                           &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;154,4493   -- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_90"&gt;OBID&lt;/span&gt; info&lt;/span&gt;&lt;br /&gt;/*&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Note: As a prevention measure, every table in production should be defined with "RESTRICT ON DROP" clause.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*******************************************&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_91"&gt;SYSPRINT&lt;/span&gt; output from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_92"&gt;DSN&lt;/span&gt;1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_93"&gt;PRNT&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;*******************************************&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ***********************************************************************************************************************************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_94"&gt;DSN&lt;/span&gt;1999I START OF &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_95"&gt;DSN&lt;/span&gt;1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_96"&gt;PRNT&lt;/span&gt; FOR JOB &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_97"&gt;TSG&lt;/span&gt;10&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_98"&gt;PN&lt;/span&gt;1 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_99"&gt;DISPAGE&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_100"&gt;DSN&lt;/span&gt;1998I INPUT  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_101"&gt;DSNAME&lt;/span&gt; = CF1M.DHGDG.DCMORGU1.SIHCY.F001.G7449V00     , SEQ&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_102"&gt;DSN&lt;/span&gt;1989I &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_103"&gt;DSN&lt;/span&gt;1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_104"&gt;PRNT&lt;/span&gt; IS PROCESSED WITH THE FOLLOWING OPTIONS:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           4K/NO &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_105"&gt;IMAGECOPY&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_106"&gt;NUMPARTS&lt;/span&gt; =   0/   FORMAT/NO EXPAND/NO &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_107"&gt;SWONLY&lt;/span&gt;/   PRINT/NO VALUE/     /   /&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_108"&gt;PIECESIZ&lt;/span&gt;=    /&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_109"&gt;NODATA&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_110"&gt;DSSIZE&lt;/span&gt;=&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; PAGE: # 00000000 ----------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; HEADER PAGE:  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_111"&gt;PGCOMB&lt;/span&gt;='10'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_112"&gt;PGLOGRBA&lt;/span&gt;='0B0BF46E3539'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_113"&gt;PGNUM&lt;/span&gt;='00000000'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_114"&gt;PGFLAGS&lt;/span&gt;='38'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_115"&gt;HPGOBID&lt;/span&gt;='018F0099'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_116"&gt;HPGHPREF&lt;/span&gt;='0000092&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_117"&gt;D'X&lt;/span&gt;  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_118"&gt;HPGCATRL&lt;/span&gt;='00'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_119"&gt;HPGREL&lt;/span&gt;='D2'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_120"&gt;HPGZLD&lt;/span&gt;='00'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_121"&gt;HPGTORBA&lt;/span&gt;='000000000000'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_122"&gt;HPGTSTMP&lt;/span&gt;='00010101000000000000'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_123"&gt;HPGSSNM&lt;/span&gt;='&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_124"&gt;DSN&lt;/span&gt;1'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_125"&gt;HPGFOID&lt;/span&gt;='0098'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_126"&gt;HPGPGSZ&lt;/span&gt;='1000'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_127"&gt;HPGSGSZ&lt;/span&gt;='0040'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_128"&gt;HPGPARTN&lt;/span&gt;='0000'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_129"&gt;HPGZ&lt;/span&gt;3&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_130"&gt;PNO&lt;/span&gt;='000000'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_131"&gt;HPGZNUMP&lt;/span&gt;='00'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_132"&gt;HPGTBLC&lt;/span&gt;='0001'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_133"&gt;HPGROID&lt;/span&gt;='009&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_134"&gt;A'X&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_135"&gt;HPGZ&lt;/span&gt;4&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_136"&gt;PNO&lt;/span&gt;='00000000'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_137"&gt;HPGMAXL&lt;/span&gt;='018&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_138"&gt;D'X&lt;/span&gt;  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_139"&gt;HPGNUMCO&lt;/span&gt;='001&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_140"&gt;C'X&lt;/span&gt;  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_141"&gt;HPGFLAGS&lt;/span&gt;='0000'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_142"&gt;HPGCONTM&lt;/span&gt;='20081206185850843175'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_143"&gt;HPGSGNAM&lt;/span&gt;='&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_144"&gt;GDSN&lt;/span&gt;1   '  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_145"&gt;HPGVCATN&lt;/span&gt;='&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_146"&gt;DSN&lt;/span&gt;1    '&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_147"&gt;HPGRBRBA&lt;/span&gt;='0B0&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_148"&gt;BCA&lt;/span&gt;98C7D0'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_149"&gt;HPGLEVEL&lt;/span&gt;='0B0&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_150"&gt;BCA&lt;/span&gt;98C7D0'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_151"&gt;HPGPLEVL&lt;/span&gt;='0B087E0E732&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_152"&gt;E'X&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_153"&gt;HPGCLRSN&lt;/span&gt;='0B0BF46E3539'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_154"&gt;HPGSCCSI&lt;/span&gt;='0000'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_155"&gt;HPGDCCSI&lt;/span&gt;='0000'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_156"&gt;HPGMCCSI&lt;/span&gt;='0000'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_157"&gt;HPGFLAG&lt;/span&gt;2='00'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_158"&gt;HPGEPOCH&lt;/span&gt;='0031'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_159"&gt;HPGCATV&lt;/span&gt;='00'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_160"&gt;FOEND&lt;/span&gt;='N'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; PAGE: # 00000001 ----------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEGMENTED &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_161"&gt;SPACEMAP&lt;/span&gt; PAGE:  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_162"&gt;PGCOMB&lt;/span&gt;='00'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_163"&gt;PGLOGRBA&lt;/span&gt;='0B0&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_164"&gt;BCA&lt;/span&gt;98B972'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_165"&gt;PGNUM&lt;/span&gt;='00000001'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_166"&gt;PGFLAGS&lt;/span&gt;='30'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                           &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_167"&gt;SEGNUM&lt;/span&gt;='0056'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_168"&gt;SEGFREE&lt;/span&gt;='0031'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_169"&gt;SEGENT&lt;/span&gt;='0026'X  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_170"&gt;SEGSIZE&lt;/span&gt;='0040'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                           &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_171"&gt;SEGLENT&lt;/span&gt;='0000092&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_172"&gt;B'X&lt;/span&gt;  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_173"&gt;FOEND&lt;/span&gt;='E'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; FIRST PART OF SEGMENTED SPACE MAP:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_174"&gt;SEG&lt;/span&gt; 0001   00000002009AC0 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_175"&gt;SEG&lt;/span&gt; 0002   00000003009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_176"&gt;SEG&lt;/span&gt; 0003   00000004009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_177"&gt;SEG&lt;/span&gt; 0004   00000005009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_178"&gt;SEG&lt;/span&gt; 0005   00000006009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_179"&gt;SEG&lt;/span&gt; 0006   00000007009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_180"&gt;SEG&lt;/span&gt; 0007   00000008009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_181"&gt;SEG&lt;/span&gt; 0008   00000009009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_182"&gt;SEG&lt;/span&gt; 0009   0000000A009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_183"&gt;SEG&lt;/span&gt; 000A   0000000B009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_184"&gt;SEG&lt;/span&gt; 000B   0000000C009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_185"&gt;SEG&lt;/span&gt; 000C   0000000D009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_186"&gt;SEG&lt;/span&gt; 000D   0000000E009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_187"&gt;SEG&lt;/span&gt; 000E   0000000F009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_188"&gt;SEG&lt;/span&gt; 000F   00000010009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_189"&gt;SEG&lt;/span&gt; 0010   00000011009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0011   00000012009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0012   00000013009A80 33333333333333333333333333333333333333333333F3333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0013   00000014009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0014   00000015009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0015   00000016009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0016   00000017009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0017   00000018009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0018   00000019009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0019   0000001A009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 001A   0000001B009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 001B   0000001C009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 001C   0000001D009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 001D   0000001E009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1SEG 001E   0000001F009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 001F   00000020009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0020   00000021009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0021   00000022009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0022   00000023009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0023   00000024009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0024   00000025009A80 3333333333333333333333333333333333333333333333333333333333333333&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SEG 0025   00000000009A80 3333333333333333333333333333333333333333333000000000000000000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SECOND PART OF SEGMENTED SPACE MAP:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RELPG  00       20       40       60       80       A0       C0       E0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 0000   00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RELPG  00       20       40       60       80       A0       C0       E0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 0001   00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RELPG  00       20       40       60       80       A0       C0       E0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 0002   00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RELPG  00       20       40       60       80       A0       C0       E0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 0003   00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RELPG  00       20       40       60       80       A0       C0       E0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 0004   00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RELPG  00       20       40       60       80       A0       C0       E0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 0005   00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RELPG  00       20       40       60       80       A0       C0       E0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 0006   00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RELPG  00       20       40       60       80       A0       C0       E0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 0007   00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RELPG  00       20       40       60       80       A0       C0       E0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 0008   00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RELPG  00       20       40       60       80       A0       C0       E0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 0009   00000000 00000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; PAGE: # 00000002 ----------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; DATA PAGE:  PGCOMB='00'X  PGLOGRBA='000000000000'X  PGNUM='00000002'X  PGFLAGS='00'X  PGFREE=429&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;             PGFREE='01AD'X  PGFREEP=3647  PGFREEP='0E3F'X  PGHOLE1='0000'X  PGMAXID='09'X  PGNANCH=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; PGTAIL:  PGIDFREE='00'X  PGEND='E'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ID-MAP FOLLOWS:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 01  0014 01A7 033A 04CD 0660 07F3 0986 0B19&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 09  0CAC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RECORD:  XOFFSET='0014'X  PGSFLAGS='00'X  PGSLTH=403  PGSLTH='0193'X  PGSOBD='009A'X  PGSBID='01'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RECORD:  XOFFSET='01A7'X  PGSFLAGS='00'X  PGSLTH=403  PGSLTH='0193'X  PGSOBD='009A'X  PGSBID='02'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RECORD:  XOFFSET='033A'X  PGSFLAGS='00'X  PGSLTH=403  PGSLTH='0193'X  PGSOBD='009A'X  PGSBID='03'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RECORD:  XOFFSET='04CD'X  PGSFLAGS='00'X  PGSLTH=403  PGSLTH='0193'X  PGSOBD='009A'X  PGSBID='04'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RECORD:  XOFFSET='0660'X  PGSFLAGS='00'X  PGSLTH=403  PGSLTH='0193'X  PGSOBD='009A'X  PGSBID='05'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RECORD:  XOFFSET='07F3'X  PGSFLAGS='00'X  PGSLTH=403  PGSLTH='0193'X  PGSOBD='009A'X  PGSBID='06'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1RECORD:  XOFFSET='0986'X  PGSFLAGS='00'X  PGSLTH=403  PGSLTH='0193'X  PGSOBD='009A'X  PGSBID='07'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RECORD:  XOFFSET='0B19'X  PGSFLAGS='00'X  PGSLTH=403  PGSLTH='0193'X  PGSOBD='009A'X  PGSBID='08'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RECORD:  XOFFSET='0CAC'X  PGSFLAGS='00'X  PGSLTH=403  PGSLTH='0193'X  PGSOBD='009A'X  PGSBID='09'X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;0DSN1994I DSN1PRNT COMPLETED SUCCESSFULLY,  00000003 PAGES PROCESSED&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Cheers...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Prakash C. Singh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;IBM Certified DB2 DBA&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-8874391057737617934?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/8874391057737617934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=8874391057737617934' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8874391057737617934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8874391057737617934'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/12/how-to-recover-accidentally-dropped.html' title='How to recover accidentally dropped Table by Getting DBID, PSID, OBID from table backup with help of DSN1PRNT'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-3283953784416956946</id><published>2008-12-14T11:54:00.000+05:30</published><updated>2009-03-16T12:31:07.085+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SYSXLAT'/><category scheme='http://www.blogger.com/atom/ns#' term='DSN1COPY'/><category scheme='http://www.blogger.com/atom/ns#' term='OBID'/><title type='text'>DSN1COPY info and object id(OBIDs) translation</title><content type='html'>DSN1COPY is useful for retsoring from same/other DB2 subsystem.&lt;br /&gt;&lt;br /&gt;DSN1COPY is a very useful utility which helps you copy:&lt;br /&gt;1) DSN1copy sequential datasets to DB2 VSAM datasets&lt;br /&gt;2) DB2 VSAM datasets to sequential datasets&lt;br /&gt;3) DB2 image copy datasets to DB2 VSAM datasets&lt;br /&gt;4) DSN1copy sequential datasets to other sequential datasets&lt;br /&gt;5) DB2 VSAM datasets to other DB2 VSAM datasets&lt;br /&gt;&lt;br /&gt;This also provides other facilities:&lt;br /&gt;1) Print hexadecimal dumps of DB2 data sets and databases&lt;br /&gt;2) Check the validity of data or index pages, including dictionary pages for compressed data&lt;br /&gt;3) Transalte database object identifiers (OBIDs) to enable moving datasts between different systems.&lt;br /&gt;&lt;br /&gt;This utility is also compatible with LOB tablespaces. You can specify LOB keyword and omit the SEGMENT and INLCOPY keywords.&lt;br /&gt;&lt;br /&gt;Here are the complete job which will help you to invoke this utility. The actual DSN1COPY step perfroms the copy from the image copy dataset to the target VSAM DB2 dataset.&lt;br /&gt;&lt;br /&gt;//TSG10Y  JOB ,'RF-DSALAGGK',NOTIFY=TSG10,CLASS=L,MSGCLASS=O,&lt;br /&gt;//         MSGLEVEL=(1,1),COND=(7,LT)&lt;br /&gt;//*==============================================================&lt;br /&gt;//LOADDUMM EXEC PGM=DSNUTILB,REGION=2M,&lt;br /&gt;//         PARM='DSN2,TSG10LD,'                             &lt;br /&gt;//STEPLIB  DD DSN=SYS1.DSN2.SDSNLOAD,DISP=SHR                &lt;br /&gt;//*==============================================================&lt;br /&gt;//*        PARM='DSN2,TSG10LD,RESTART'  USE FOR RESTART     &lt;br /&gt;//*==============================================================&lt;br /&gt;//SYSPRINT DD   SYSOUT=*                                     &lt;br /&gt;//UTPRINT  DD   SYSOUT=*                                    &lt;br /&gt;//SYSUDUMP DD   SYSOUT=*                                    &lt;br /&gt;//SORTWK01 DD DSN=TSG10.SORTWK01,                           &lt;br /&gt;//         DISP=(,DELETE),                                   &lt;br /&gt;//         SPACE=(CYL,(5,5),,,ROUND),                       &lt;br /&gt;//         UNIT=SYSDA                                       &lt;br /&gt;//SORTWK02 DD DSN=TSG10.SORTWK02,                           &lt;br /&gt;//         DISP=(,DELETE),                                  &lt;br /&gt;//         SPACE=(CYL,(5,5),,,ROUND),                       &lt;br /&gt;//         UNIT=SYSDA            &lt;br /&gt;//SORTWK03 DD DSN=TSG10.SORTWK03,&lt;br /&gt;//         DISP=(,DELETE),       &lt;br /&gt;//         SPACE=(CYL,(5,5),,,ROUND),&lt;br /&gt;//         UNIT=SYSDA            &lt;br /&gt;//SORTWK04 DD DSN=TSG10.SORTWK04,&lt;br /&gt;//         DISP=(,DELETE),       &lt;br /&gt;//         SPACE=(CYL,(5,5),,,ROUND),&lt;br /&gt;//         UNIT=SYSDA            &lt;br /&gt;//SPSSW DD DUMMY                  &lt;br /&gt;//SYSUT1   DD DSN=TSG10.SYSUT1,  &lt;br /&gt;//         DISP=(,DELETE),       &lt;br /&gt;//         SPACE=(CYL,(5,5),,,ROUND),&lt;br /&gt;//         UNIT=SYSDA            &lt;br /&gt;//SYSMAP   DD DSN=TSG10.SYSMAP,  &lt;br /&gt;//         DISP=(,DELETE),       &lt;br /&gt;//         SPACE=(CYL,(5,5),,,ROUND),&lt;br /&gt;//         UNIT=SYSDA            &lt;br /&gt;//SYSERR   DD DSN=TSG10.SYSERR,  &lt;br /&gt;//         DISP=(,DELETE),       &lt;br /&gt;//         SPACE=(CYL,(5,5),,,ROUND),&lt;br /&gt;//         UNIT=SYSDA            &lt;br /&gt;//SORTOUT DD DSN=TSG10.SORTOUT,         &lt;br /&gt;//        DISP=(,DELETE),               &lt;br /&gt;//        SPACE=(CYL,(5,5),,,ROUND),    &lt;br /&gt;//        UNIT=SYSDA                    &lt;br /&gt;//SYSIN DD *                            &lt;br /&gt;LOAD DATA INDDN SPSSW REPLACE LOG NO  &lt;br /&gt;INTO TABLE SPU11.T1PSSW               &lt;br /&gt;REPAIR OBJECT                         &lt;br /&gt;SET TABLESPACE DSALAGGK.SPSSW NOCOPYPEND&lt;br /&gt;//*==========================================&lt;br /&gt;//* STOP TARGET DB2 TABLESPACES         &lt;br /&gt;//*==========================================&lt;br /&gt;//STOP     EXEC PGM=IKJEFT01,DYNAMNBR=20&lt;br /&gt;//STEPLIB  DD DSN=SYS1.DSN2.SDSNLOAD,DISP=SHR&lt;br /&gt;//SYSTSPRT DD SYSOUT=*                  &lt;br /&gt;//SYSPRINT DD SYSOUT=*                  &lt;br /&gt;//SYSTSIN  DD *                         &lt;br /&gt;DSN SYSTEM(DSN2) RETRY(4)             &lt;br /&gt;-STOP DATABASE(DSALAGGK) SPACENAM(SPSSW)&lt;br /&gt;//* IBM DSN1COPY FOR TABLESPACE SPSSW   &lt;br /&gt;//*==========================================&lt;br /&gt;//SPSSW EXEC PGM=DSN1COPY,              &lt;br /&gt;//          PARM='FULLCOPY,NUMPARTS(14),OBIDXLAT,RESET'&lt;br /&gt;//SYSUT1    DD DSN=DR1W.DHGDG.DSALAGG1.SPSSW.F001.G2754V00,&lt;br /&gt;//          LABEL=(1,SL),VOL=(,RETAIN),               &lt;br /&gt;//          DISP=OLD                                  &lt;br /&gt;//SYSUT2    DD DSN=DSN2.DSNDBD.DSALAGGK.SPSSW.I0001.A001,&lt;br /&gt;//          DISP=OLD                                  &lt;br /&gt;//SYSPRINT  DD SYSOUT=*                               &lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;//SYSXLAT   DD *  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;423,1069 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;37,12       &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold;"&gt;38,22                                                                                                            &lt;/span&gt;                                                   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;//*==&lt;/span&gt;======================================================&lt;br /&gt;//* START TARGET DB2 TABLESPACES                      &lt;br /&gt;//*========================================================&lt;br /&gt;//START    EXEC PGM=IKJEFT01,DYNAMNBR=20              &lt;br /&gt;//STEPLIB  DD DSN=SYS1.DSN2.SDSNLOAD,DISP=SHR         &lt;br /&gt;//SYSTSPRT DD SYSOUT=*                                &lt;br /&gt;//SYSPRINT DD SYSOUT=*                                &lt;br /&gt;//SYSTSIN  DD *                                       &lt;br /&gt;DSN SYSTEM(DSN2) RETRY(4)                           &lt;br /&gt;-START DATABASE(DSALAGGK) SPACENAM(SPSSW) ACCESS(FORCE)&lt;br /&gt;//*========================================================&lt;br /&gt;//* REBUILD THE INDEXES                                 &lt;br /&gt;//*==========================================================&lt;br /&gt;//RECINDX  EXEC PROC=PL0002,REGN=20M,RESTART=RESTART(BYPASS),&lt;br /&gt;//         SUBSYS=DSN2,COND=(4,LT)                      &lt;br /&gt;//PL000201.ST02MSG DD SYSOUT=U                          &lt;br /&gt;//PL000201.SL02MSG DD SYSOUT=U                          &lt;br /&gt;//PL000201.SYSIN DD *                                    &lt;br /&gt;REBUILD INDEX (ALL) TABLESPACE DSALAGGK.SPSSW        &lt;br /&gt;ALLMSGS                                              &lt;br /&gt;ESTIMATED-KEYS 99999999                              &lt;br /&gt;MAXTASKS 2                                            &lt;br /&gt;SORTNUM 4                                            &lt;br /&gt;SORTDEVT SYSDA                                       &lt;br /&gt;SPACE-DEFN YES                                       &lt;br /&gt;STARTUP-ACCESS FORCE                                 &lt;br /&gt;//*==========================================================&lt;br /&gt;//* RUNSTATS TARGET ENVIRONMENT                         &lt;br /&gt;//*==========================================================&lt;br /&gt;//RUNSTATS EXEC PGM=DSNUTILB,REGION=2M,COND=(4,LT),     &lt;br /&gt;//         PARM='DSN2,DSALAGGK,'                        &lt;br /&gt;//STEPLIB  DD DSN=SYS1.DSN2.SDSNLOAD,DISP=SHR           &lt;br /&gt;//*==========================================================&lt;br /&gt;//*        PARM='DSN2,DSALAGGK,RESTART'  USE FOR RESTART    &lt;br /&gt;//*==============================================================&lt;br /&gt;//SYSPRINT DD  SYSOUT=*                                     &lt;br /&gt;//UTPRINT  DD  SYSOUT=*                                     &lt;br /&gt;//SYSUDUMP DD  SYSOUT=*                                      &lt;br /&gt;//SYSIN    DD  *                                            &lt;br /&gt;RUNSTATS TABLESPACE DSALAGGK.SPSSW INDEX(ALL) SHRLEVEL REFERENCE&lt;br /&gt;/*&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;//SYSXLAT   DD *&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;423,1069 &lt;/span&gt;     DBID PROD,TEST OF TABLESPACE&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;37,12&lt;/span&gt;             PSID PROD,TEST OF TABLESPACE&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold;"&gt;38,22&lt;/span&gt;&lt;/span&gt;             OBID PROD, TEST OF TABLE&lt;br /&gt;SELECT DBID FROM SYSIBM.SYSTABLESPACE&lt;br /&gt;WHERE NAME = 'XXXXX' AND&lt;br /&gt;DBNAME = 'XXXXXXXX';&lt;br /&gt;SELECT PSID FROM SYSIBM.SYSTABLESPACE&lt;br /&gt;WHERE NAME = 'XXXXX' AND&lt;br /&gt;DBNAME = 'XXXXXXXX';&lt;br /&gt;SELECT OBID FROM SYSIBM.SYSTABLES&lt;br /&gt;WHERE NAME = 'XXXXX' AND&lt;br /&gt;DBNAME = 'XXXXXXXX';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;Note: This utility will not work well if you have more than one table in a single tablespace.&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers...&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-3283953784416956946?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/3283953784416956946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=3283953784416956946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/3283953784416956946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/3283953784416956946'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/12/dsn1copy-info-and-object-idobids.html' title='DSN1COPY info and object id(OBIDs) translation'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-4747776183973384536</id><published>2008-12-11T12:03:00.000+05:30</published><updated>2009-03-16T12:32:32.013+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='TABLESPACE DESIGN'/><category scheme='http://www.blogger.com/atom/ns#' term='PAGES'/><category scheme='http://www.blogger.com/atom/ns#' term='SEGSIZE'/><title type='text'>TABLESPACE design and SEGSIZE consideration</title><content type='html'>While designing the tablespace, Segment size is an important parameter to consider. Here are IBM recommendations for such calculation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;NO OF PAGES               SEGSIZE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-----------.....          -------&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt; = 28       ............4 TO    28&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;28 TO 128         .........32&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt; = 128                      ...........64&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;How to determine that when will you cosider which type of tablespace.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;NO OF PAGES         ....TABLESPACE DESIGN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-----------        ----------------------&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt; 100,000 .....CONSIDER PARTITIONING&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt; 10,000                     ......ONE TABLE SEGMENTED TABLESPACE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;Greater than  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;128  TO Less than 10,000&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;MULTIPLE-TABLE SEGMENTED TABLESPACES&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;(But I think one table in one tablspace is best design for maintenance purpose)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Less than 128 ............MULTIPLE-TABLE SEGMENTED TABLESPACES&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;(But I think one table in one tablspace is best design for maintenance purpose)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers...&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-4747776183973384536?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/4747776183973384536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=4747776183973384536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/4747776183973384536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/4747776183973384536'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/12/tablespace-design-and-segsize.html' title='TABLESPACE design and SEGSIZE consideration'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-5943217665239369075</id><published>2008-12-09T11:55:00.000+05:30</published><updated>2009-03-16T12:39:40.724+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='NODUMP'/><category scheme='http://www.blogger.com/atom/ns#' term='/MODIFY DSN1IRLM'/><category scheme='http://www.blogger.com/atom/ns#' term='/C MSTR'/><category scheme='http://www.blogger.com/atom/ns#' term='/FORCE DBM1'/><category scheme='http://www.blogger.com/atom/ns#' term='down DB2 forcefully'/><category scheme='http://www.blogger.com/atom/ns#' term='/C DBM1'/><category scheme='http://www.blogger.com/atom/ns#' term='/FORCE MSTR'/><category scheme='http://www.blogger.com/atom/ns#' term='/F DSN1IRLM'/><title type='text'>How to bring down DB2 forcefully</title><content type='html'>At times there are some held threads which prevents DB2 subsystem down for maintenance purpose. We can follow these if we require:&lt;br /&gt;&lt;br /&gt;These are some console commands which can be tried:&lt;br /&gt;&lt;br /&gt;/MODIFY DSN1IRLM,ABEND,NODUMP &lt;br /&gt;&lt;br /&gt;OR&lt;br /&gt;/F DSN1IRLM,ABEND  &lt;br /&gt;         &lt;br /&gt;&lt;br /&gt;THEN IF NECESSARY&lt;br /&gt;&lt;br /&gt;/C DBM1&lt;br /&gt;&lt;br /&gt;/FORCE DBM1   (LAST RESORT)&lt;br /&gt;&lt;br /&gt;OR&lt;br /&gt;&lt;br /&gt;/C MSTR&lt;br /&gt;&lt;br /&gt;/FORCE MSTR   (LAST RESORT)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;WON'T START?      IPL !!!!!!!!!!!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers..&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-5943217665239369075?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/5943217665239369075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=5943217665239369075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/5943217665239369075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/5943217665239369075'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/12/how-to-bring-down-db2-forcefully.html' title='How to bring down DB2 forcefully'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-8504870883843708609</id><published>2008-12-08T13:39:00.000+05:30</published><updated>2009-03-16T12:41:00.295+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='APPLENV=DSN1PRCH'/><category scheme='http://www.blogger.com/atom/ns#' term='/D WLM'/><category scheme='http://www.blogger.com/atom/ns#' term='-DIS PROCEDURE'/><category scheme='http://www.blogger.com/atom/ns#' term='-STA'/><category scheme='http://www.blogger.com/atom/ns#' term='/%WLMRECOV DSN1PRCH'/><category scheme='http://www.blogger.com/atom/ns#' term='-STOP'/><title type='text'>Know More about WLM Stored Procedure</title><content type='html'>&lt;span style="font-family:courier new;"&gt;1) HOW TO KNOW THAT WLM IS AVAILABLE OR NOT?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;IN S OF&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;SPOOL COMMAND:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/D WLM,APPLENV=DSN1PRCH&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OR&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/%WLMDISP DSN1PRCH     - IF YOU EXECUTE THIS COMMAND, THEN LOOK AT ULOG.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2) HOW TO RECOVER IF IT IS IN DIFF STATE OTHER THAN AVAILABLE STATE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;WE CAN RECOVER THE DSN1PRCH STARTED TASK BY EXECUTING:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/%WLMRECOV DSN1PRCH&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OR&lt;br /&gt;&lt;br /&gt;IF WE NEED TO REFRESH THE WLM ENV: THIS COMMAND NEED TO BE EXECUTED &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONNECT TO DSN1 USER TSGDBP1 THEN SOR TERMINAL.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CALL SYSPROC.WLM_REFRESH('DSN1PRCH','DSN1',?,?)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TO DISPLAY THE STATUS OF THE PROCEDURE YOU CAN ISSUE A DB2:-&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-DIS PROCEDURE(DB2CONN.ABG529P)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Simillarly You can stop and start the Stored Procedure by&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-STA PROCEDURE(DB2CONN.ABG529P)&lt;br /&gt;&lt;br /&gt;-STOP &lt;span style="font-family:courier new;"&gt;PROCEDURE(DB2CONN.ABG529P.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers..&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-8504870883843708609?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/8504870883843708609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=8504870883843708609' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8504870883843708609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8504870883843708609'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/12/know-more-about-wlm-stored-procedure.html' title='Know More about WLM Stored Procedure'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-1167223539463919263</id><published>2008-11-29T16:31:00.000+05:30</published><updated>2009-03-16T12:45:31.567+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB'/><category scheme='http://www.blogger.com/atom/ns#' term='MAINFRAME SERVER'/><category scheme='http://www.blogger.com/atom/ns#' term='TCPIP'/><category scheme='http://www.blogger.com/atom/ns#' term='DCS'/><category scheme='http://www.blogger.com/atom/ns#' term='CATALOG'/><title type='text'>Catalog mainframe server/subsystem/database</title><content type='html'>&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Many a times we need to catalogue the mainframe DB2 to be accessed from Command Line Processor.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;Here are the syntax through which you can catalog the mainframe db2 subsystem.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;CATALOG TCPIP NODE ZOS1 REMOTE MAINFRAME SERVER 800 OSTYPE MVS&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;CATALOG DB DSN1 AS DSN1 AT NODE ZOS1 AUTHENTICATION SERVER&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;CATALOG DCS DB DSN1 AS DB2DSN1&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;After this you can logon by providing userid and password:&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;db2 connect to dsn1 user USR01 using password01&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;Cheers..&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;Prakash&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;IBM Certified DB2 DBA&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-1167223539463919263?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/1167223539463919263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=1167223539463919263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/1167223539463919263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/1167223539463919263'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/11/catalog-mainframe-serversubsystemdataba.html' title='Catalog mainframe server/subsystem/database'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-1579728035783487473</id><published>2008-11-27T11:21:00.000+05:30</published><updated>2009-09-08T10:43:06.940+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CCSID'/><category scheme='http://www.blogger.com/atom/ns#' term='DSNE345I'/><category scheme='http://www.blogger.com/atom/ns#' term='DSNESP06'/><category scheme='http://www.blogger.com/atom/ns#' term='Mismatch SPUFI TERMINAL'/><title type='text'>CCSID Mismatch after applying PTF for DB2 V7 to V8 migration</title><content type='html'>To begin with the DB2 migration from V7 to v8, we need to apply PTFs. After applying V7 PTF, we got the following error which accessing SPUFI.&lt;br /&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;DSNESP06&lt;br /&gt;DSNE345I WARNING: DB2 DATA CORRUPTION CAN RESULT&lt;br /&gt;FROM THIS SPUFI SESSION BECAUSE THE&lt;br /&gt;CCSID USED BY THE TERMINAL IS NOT THE&lt;br /&gt;SAME AS THE CCSID USED BY SPUFI &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;- TERMINAL CCSID:&lt;br /&gt;- SPUFI CCSID: 500&lt;br /&gt;NOTIFY THE DB2 SYSTEM ADMINISTRATOR.&lt;br /&gt;PRESS: ENTER to continue END to return&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;To get rid of the problem, we have changed one default as below:After getting the first screen, press enter. You will see:Enter the following to control your SPUFI session:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;1 SQL TERMINATOR .. ===&gt; ; (SQL Statement Terminator)&lt;br /&gt;2 ISOLATION LEVEL ===&gt; CS (RR=Repeatable Read, CS=Cursor Stability)&lt;br /&gt;3 MAX SELECT LINES ===&gt; 30000 (Maximum number of lines to be returned from a SELECT)&lt;br /&gt;4 ALLOW SQL WARNINGS===&gt; NO (Continue fetching after sqlwarning)&lt;br /&gt;5 CHANGE PLAN NAMES ===&gt; yes (Change the plan names used by SPUFI) Output data set characteristics:&lt;br /&gt;6 RECORD LENGTH ... ===&gt; 4092 (LRECL=Logical record length)&lt;br /&gt;7 BLOCK SIZE ...... ===&gt; 4096 (Size of one block)&lt;br /&gt;8 RECORD FORMAT ... ===&gt; VB (RECFM=F, FB, FBA, V, VB, or VBA)&lt;br /&gt;9 DEVICE TYPE ..... ===&gt; SYSDA (Must be DASD unit name) Output format characteristics:&lt;br /&gt;10 MAX NUMERIC FIELD ===&gt; 33 (Maximum width for numeric fields)&lt;br /&gt;11 MAX CHAR FIELD .. ===&gt; 80 (Maximum width for character fields)&lt;br /&gt;12 COLUMN HEADING .. ===&gt; NAMES (NAMES, LABELS, ANY or BOTH)&lt;br /&gt;PRESS: ENTER to process END to exit&lt;br /&gt;HELP for more information'&lt;br /&gt;&lt;/span&gt;Change the default from “NO” to “YES” for point 5 of plan names Then you will arrive at:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;CURRENT SPUFI DEFAULTS - PANEL 2 SSID: DSNX ===&gt; Enter the following to control your SPUFI session:&lt;br /&gt;1 CS ISOLATION PLAN ===&gt; DSNESPCS (Name of plan for CS isolation level)&lt;br /&gt;2 RR ISOLATION PLAN ===&gt; DSNESPRR (Name of plan for RR isolation level) Indicate warning message status:&lt;br /&gt;3 BLANK CCSID WARNING ===&gt; no (Show warning if terminal CCSID is blank)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;As from the first screen, it is confirmed that terminal CCSID is coming as blank. This is the most simple solution to avoid this. Root cause: Prior to V7, Spufi CCSID comparision was not incorporated, but when you install the PTF, the SPUFI is enabled to compare it. That’s why you will get this. But all the problem is not clear until we apply the same PTFs on our prod LPAR.&lt;br /&gt;&lt;br /&gt;Now I am going to explain, if the terminal CCSID is not Blank, how to solve the problem.The error screen is as below:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;DSNESP06&lt;br /&gt;DSNE345I WARNING: DB2 DATA CORRUPTION CAN RESULT&lt;br /&gt;FROM THIS SPUFI SESSION BECAUSE THE&lt;br /&gt;CCSID USED BY THE TERMINAL IS NOT THE&lt;br /&gt;SAME AS THE CCSID USED BY SPUFI &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;- TERMINAL CCSID: 37&lt;br /&gt;- SPUFI CCSID: 500&lt;br /&gt;NOTIFY THE DB2 SYSTEM ADMINISTRATOR.&lt;br /&gt;PRESS: ENTER to continue END to return&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;As per IBM recommendation we need to bind 2 additional packages and 2 plans to get rid of this:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;BIND PACKAGE (SPCS0037)&lt;br /&gt;ACTION (REPLACE)&lt;br /&gt;MEMBER (DSNESM68) LIBRARY ('D710.SDSNDBRM')&lt;br /&gt;OWNER (TSGDSN3)&lt;br /&gt;QUALIFIER (TSGDSN3)&lt;br /&gt;SQLERROR (NOPACKAGE)&lt;br /&gt;VALIDATE (RUN)&lt;br /&gt;ISOLATION (CS)&lt;br /&gt;CURRENTDATA (YES)&lt;br /&gt;KEEPDYNAMIC (NO)&lt;br /&gt;NOREOPT (VARS)&lt;br /&gt;DEGREE (1)&lt;br /&gt;DBPROTOCOL (DRDA) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;ENCODING (37)&lt;br /&gt;EXPLAIN (NO); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;&lt;br /&gt;BIND PACKAGE (SPRR0037)&lt;br /&gt;ACTION (REPLACE)&lt;br /&gt;MEMBER (DSNESM68) LIBRARY ('D710.SDSNDBRM')&lt;br /&gt;OWNER (TSGDSN3)&lt;br /&gt;QUALIFIER (TSGDSN3)&lt;br /&gt;SQLERROR (NOPACKAGE)&lt;br /&gt;VALIDATE (RUN)&lt;br /&gt;ISOLATION (RR)&lt;br /&gt;CURRENTDATA (YES)&lt;br /&gt;KEEPDYNAMIC (NO)&lt;br /&gt;NOREOPT (VARS)&lt;br /&gt;DEGREE (1)&lt;br /&gt;DBPROTOCOL (DRDA) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;ENCODING (37)&lt;br /&gt;EXPLAIN (NO);&lt;br /&gt;&lt;br /&gt;BIND PLAN (SPCS0037)&lt;br /&gt;OWNER (TSGDSN3)&lt;br /&gt;QUALIFIER(TSGDSN3)&lt;br /&gt;ACTION (REPLACE)&lt;br /&gt;RETAIN&lt;br /&gt;PKLIST (SPCS0037.DSNESM68 )&lt;br /&gt;VALIDATE (RUN)&lt;br /&gt;ISOLATION (CS)&lt;br /&gt;ACQUIRE (USE)&lt;br /&gt;RELEASE (COMMIT)&lt;br /&gt;NODEFER (PREPARE)&lt;br /&gt;DBPROTOCOL (PRIVATE)&lt;br /&gt;CACHESIZE (256)&lt;br /&gt;CURRENTDATA (YES)&lt;br /&gt;DISCONNECT (EXPLICIT)&lt;br /&gt;SQLRULES (DB2)&lt;br /&gt;DEGREE (1)&lt;br /&gt;NOREOPT (VARS)&lt;br /&gt;KEEPDYNAMIC (NO) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;ENCODING (37)&lt;br /&gt;EXPLAIN (NO);&lt;br /&gt;&lt;br /&gt;BIND PLAN (SPRR0037)&lt;br /&gt;OWNER (TSGDSN3)&lt;br /&gt;QUALIFIER(TSGDSN3)&lt;br /&gt;ACTION (REPLACE)&lt;br /&gt;RETAIN&lt;br /&gt;PKLIST (SPRR0037.DSNESM68 )&lt;br /&gt;VALIDATE (RUN)&lt;br /&gt;ISOLATION (RR)&lt;br /&gt;ACQUIRE (USE)&lt;br /&gt;RELEASE (COMMIT)&lt;br /&gt;NODEFER (PREPARE)&lt;br /&gt;DBPROTOCOL (PRIVATE)&lt;br /&gt;CACHESIZE (256)&lt;br /&gt;CURRENTDATA (YES)&lt;br /&gt;DISCONNECT (EXPLICIT)&lt;br /&gt;SQLRULES (DB2)&lt;br /&gt;DEGREE (1)&lt;br /&gt;NOREOPT (VARS)&lt;br /&gt;KEEPDYNAMIC (NO)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;ENCODING (37)&lt;br /&gt;EXPLAIN (NO);&lt;br /&gt;&lt;/span&gt;After Bind and getting the first screen and pressing enter there, you will get the screen as before.You go to modify as before: change CHANGE PLAN NAMES from NO to YES In the following screen, you need to change the default DB2 supplied Plan name as below:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;CURRENT SPUFI DEFAULTS - PANEL 2 SSID: DSNX&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;===&gt; Enter the following to control your SPUFI session:&lt;br /&gt;1 CS ISOLATION PLAN ===&gt; &lt;span style="COLOR: rgb(51,51,255)"&gt;SPCS0037&lt;/span&gt; (Name of plan for CS isolation level)&lt;br /&gt;2 RR ISOLATION PLAN ===&gt; &lt;span style="COLOR: rgb(51,51,255)"&gt;SPRR0037&lt;/span&gt; (Name of plan for RR isolation level) Indicate warning message status:&lt;br /&gt;3 BLANK CCSID WARNING ===&gt; no (Show warning if terminal CCSID is blank)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Here are other info that may be necessary while in New Function mode:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;************************************************************* &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;*** Further instructions for DB2 Version 8 customers *** ************************************************************* &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;In V8 new-function mode only, plans for SPUFI require an additional package for the DSNTIAP DBRM. Thus, if your DB2 is now running in V8 new-function mode, you also need to use a command like the following to bind&lt;br /&gt;DSNTIAP DBRM under CCSID 1047:&lt;br /&gt;BIND PACKAGE(TIAP1047) MEMBER(DSNTIAP) -&lt;br /&gt;ACTION(REPLACE) ISOLATION(CS) ENCODING(1047) -&lt;br /&gt;LIBRARY('prefix.SDSNDBRM') and then include the TIAP1047 collection id when you BIND the plans for SPUFI:&lt;br /&gt;BIND PLAN(SPCS1047) -&lt;br /&gt;PKLIST(SPCS1047.DSNESM68, -&lt;br /&gt;TIAP1047.DSNTIAP) -&lt;br /&gt;ISOLATION(CS) ENCODING(1047) ACTION(REPLACE) ...&lt;br /&gt;BIND PLAN(SPRR1047) -&lt;br /&gt;PKLIST(SPRR1047.DSNESM68, -&lt;br /&gt;TIAP1047.DSNTIAP) -&lt;br /&gt;ISOLATION(RR) ENCODING(1047) ACTION(REPLACE)&lt;br /&gt;If your DB2 is currently running in V8 compatibility mode or in enabling-new-function mode, you need to bind DSNTIAP as indicated above after DB2 enters new-function mode.&lt;br /&gt;&lt;br /&gt;2. After you have created the new packages and plans, grant access on them to the target user group.&lt;br /&gt;&lt;br /&gt;3. Instruct the users to display the CURRENT SPUFI DEFAULTS panel (DSNESP02) and specify YES in the CHANGE PLAN NAMES field. When they do this, SPUFI displays CURRENT SPUFI DEFAULTS - PANEL 2 (DSNESP07). Instruct users to specify SPCS1047 for CS ISOLATION PLAN and SPRR1047 for RR ISOLATION PLAN. These users can now update SPUFI without receiving the DSNE345Imessage&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Cheers....&lt;br /&gt;Prakash Singh&lt;br /&gt;IBM Certified Database Administrator (DB2 on Mainframe)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-1579728035783487473?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/1579728035783487473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=1579728035783487473' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/1579728035783487473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/1579728035783487473'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/11/ccsid-mismatch-after-applying-ptf-for.html' title='CCSID Mismatch after applying PTF for DB2 V7 to V8 migration'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-904376307923967219</id><published>2008-11-22T11:48:00.000+05:30</published><updated>2009-03-16T12:47:31.346+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tapes Rack'/><category scheme='http://www.blogger.com/atom/ns#' term='SIL0'/><category scheme='http://www.blogger.com/atom/ns#' term='D VOL'/><category scheme='http://www.blogger.com/atom/ns#' term='/F SLS0'/><title type='text'>Knowing Tapes are still on Rack SIL0 command</title><content type='html'>While refreshing from production to test we need backup tape of production.&lt;br /&gt;How do you confirm that it is still on the rack or already valuted out:&lt;br /&gt;Here is the command you need to fire on console:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;/F SLS0,D VOL 800165&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;800165 is the volume number of the tape which you require.&lt;br /&gt;the output is like:&lt;br /&gt;RESPONSE=MVS1      SLS0600I VOLUME 800165 ; 00:00:04:02:23, &lt;span style="color: rgb(51, 51, 255);"&gt;UNSELECTED&lt;/span&gt;,RESPONSE=SCRATCH     &lt;br /&gt;                                             &lt;br /&gt;Which means it is in the rack.&lt;br /&gt;&lt;br /&gt;If you get any out like:Here I have searched for volume 100165&lt;br /&gt;&lt;br /&gt;RESPONSE=MVS1      SLS0603I VOLUME(S) 100165 &lt;span style="color: rgb(51, 51, 255);"&gt;NOT IN ACS&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;which means it is not in the rack.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's a proactive thing which we can follow to prevent any failure which is resulting from using tapes in current job.&lt;br /&gt;&lt;br /&gt;Cheers...&lt;br /&gt;Prakash&lt;br /&gt;IBM Certified DB2 DBA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-904376307923967219?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/904376307923967219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=904376307923967219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/904376307923967219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/904376307923967219'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/11/knowing-tapes-are-still-on-rack-sil0.html' title='Knowing Tapes are still on Rack SIL0 command'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-2972747274076998225</id><published>2008-11-21T12:03:00.000+05:30</published><updated>2009-03-16T12:46:02.994+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVS zOS version'/><category scheme='http://www.blogger.com/atom/ns#' term='IPLINFO'/><category scheme='http://www.blogger.com/atom/ns#' term='IPL'/><title type='text'>To know the z/OS version and last IPL info</title><content type='html'>As a DBA, sometimes we need to check the oprating system version for compatability of some of the DB2 related software while installation and upgrade.&lt;br /&gt;&lt;br /&gt;To find this there is spool/console command:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;/D IPLINFO &lt;/span&gt;&lt;/p&gt;&lt;p&gt;The output is like below:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;RESPONSE=MVS1 &lt;/p&gt;IEE254I 05.39.50 IPLINFO DISPLAY 651&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;SYSTEM IPLED AT 18.36.54 ON 10/25/2008 &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;RELEASE z/OS 01.07.00 LICENSE = z/OS &lt;/span&gt;&lt;/p&gt;&lt;p&gt;USED LOAD00 IN SYS1.IPLPARM ON 8326 &lt;/p&gt;&lt;p&gt;ARCHLVL = 2 MTLSHARE = N &lt;/p&gt;&lt;p&gt;IEASYM LIST = 00 &lt;/p&gt;&lt;p&gt;IEASYS LIST = 00 &lt;/p&gt;&lt;p&gt;IODF DEVICE 8326 &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;Cheers..&lt;br /&gt;Prakash&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-2972747274076998225?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/2972747274076998225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=2972747274076998225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/2972747274076998225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/2972747274076998225'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/11/to-know-zos-version-and-last-ipl-info.html' title='To know the z/OS version and last IPL info'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-394693192295218503</id><published>2008-11-20T11:53:00.000+05:30</published><updated>2008-11-20T12:29:54.466+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2 version display -DIS GROUP'/><title type='text'>DB2 Version and other info</title><content type='html'>How do you know the current DB2 version?&lt;br /&gt;or&lt;br /&gt;How will you confirm which phase(while migrating from V7 to V8 - Compatibility mode, Enable New Function mode and New Function mode) of migration currently going on for your DB2?&lt;br /&gt;&lt;br /&gt;There is a simple command which can display all these information.&lt;br /&gt;Go to command option of the DB2 and execute below command&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;-DIS GROUP&lt;/span&gt;&lt;br /&gt;The output will be like:&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;DSN7100I + DSN7GCMD,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;*** BEGIN DISPLAY OF GROUP(........) GROUP LEVEL(...), &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;                                      GROUP ATTACH NAME(....),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DB2        DB2           SYSTEM                 IRLM,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;MEMBER ID SUBSYS CMDPREF STATUS LVL NAME SUBSYS IRLMPROC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-------- --- ---- -------- -------- --- -------- ---- --------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;........ 0 DSN2   +       ACTIVE 710 MVS1   TRLM DSN2TRLM&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;*** END DISPLAY OF GROUP(........),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DSN9022I + DSN7GCMD 'DISPLAY GROUP ' NORMAL COMPLETION,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Cheers..&lt;br /&gt;&lt;br /&gt;Prakash&lt;br /&gt;IBM Certified DB2 Administrator&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-394693192295218503?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/394693192295218503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=394693192295218503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/394693192295218503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/394693192295218503'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/11/db2-version-and-other-info.html' title='DB2 Version and other info'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-8241090117085629533</id><published>2008-11-16T12:39:00.000+05:30</published><updated>2009-03-16T12:49:29.933+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='DSNJU004'/><category scheme='http://www.blogger.com/atom/ns#' term='DSNJU003'/><category scheme='http://www.blogger.com/atom/ns#' term='BSDS'/><category scheme='http://www.blogger.com/atom/ns#' term='CONDITIONAL RESTART'/><title type='text'>Conditional Restart DB2 DSNJU003</title><content type='html'>This is a very intresting problem we had some times back.&lt;br /&gt;In Test sub-system, suddenly DB2 crashed, when we tried to make it UP, it was tried to read the archive logs indefintely.&lt;br /&gt;After investigation, we found that one of the user has inserted 100 of millions of rows in a very huge table causing 100s of logs filled up leading to DB2 crash.&lt;br /&gt;&lt;br /&gt;After another round of investigation we found that DB2 was trying to recover to a RBA which is not recorded in BSDS. We knew that DB2 will definitely abend after trying to read many archive logs.&lt;br /&gt;&lt;br /&gt;Then we think of conditional restart for this by modifying the BSDS.&lt;br /&gt;To do this we need to shutdown the DB2.&lt;br /&gt;&lt;br /&gt;Before modifying the BSDS. Create a personal VSAM BSDS to copy one of the BSDS into it as a backup. Here is the BSDS VSAM defination.&lt;br /&gt;&lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;//TSG10BDS JOB (ACCT),'CFTUTIL',CLASS=O&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;//DSNTIC  PROC                          &lt;wbr&gt;                              &lt;wbr&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;//* ******************************&lt;wbr&gt;******************************&lt;wbr&gt;***** */&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;//* DIRECTORY/CATALOG AMS INVOCATION INSTREAM JCL PROCEDURE           */&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;//* ******************************&lt;wbr&gt;******************************&lt;wbr&gt;***** */&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;//DSNTIC  EXEC PGM=IDCAMS,COND=(2,LT)        &lt;wbr&gt;                           &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;//SYSPRINT DD SYSOUT=*                      &lt;wbr&gt;                            &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;//SYSUDUMP DD SYSOUT=*                      &lt;wbr&gt;                            &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;//DSNTIC  PEND                          &lt;wbr&gt;                              &lt;wbr&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;//DSNTDBL EXEC DSNTIC                        &lt;wbr&gt;                           &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;//SYSIN    DD  *                                                  &lt;wbr&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;   DEFINE CLUSTER                       &lt;wbr&gt;      -                         &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;         ( NAME(DSN3.BSDS01.COPY)        &lt;wbr&gt;       -                       &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;           VOLUMES(DSN366)               &lt;wbr&gt;     -                         &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;           REUSE                         &lt;wbr&gt;     -                         &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;           SHAREOPTIONS(2 3) )                -                         &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;      DATA                          &lt;wbr&gt;          -                         &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;         ( NAME(DSN3.BSDS01.COPY.DATA)   &lt;wbr&gt;       -                       &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;           RECORDS(180 20)                    -                         &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;           RECORDSIZE(4089 4089)              -                         &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;           CONTROLINTERVALSIZE(4096)     &lt;wbr&gt;     -                         &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;           FREESPACE(0 20)                    -          &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;           KEYS(4 0) )                        -          &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;      INDEX                         &lt;wbr&gt;          -          &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;         ( NAME(DSN3.BSDS01.COPY.INDEX)  &lt;wbr&gt;       -        &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;           RECORDS(5 5)                       -          &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10;"&gt;           CONTROLINTERVALSIZE(1024) )   CATALOG(DSN3)   &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:courier new;"&gt;====&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Then we did run the following JCL after finding a suitable RBA (this should be multiple of 4K, otherwise DSNJ003 will not update the BSDS and give you the error:&lt;br /&gt;&lt;br /&gt;//TSGDSN3A JOB ,&lt;br /&gt;// CLASS=L,MSGCLASS=O,NOTIFY=TSGDSN3,MSGLEVEL=(1,1)&lt;br /&gt;//CONREST  EXEC PGM=&lt;span style="color: rgb(153, 0, 0);"&gt;DSNJU003&lt;/span&gt;&lt;br /&gt;//SYSPRINT  DD SYSOUT=*&lt;br /&gt;//SYSUT1    DD DSN=DSN3.BSDS01,DISP=SHR&lt;br /&gt;//SYSIN     DD *&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;CRESTART  CREATE,ENDRBA=006A7F46D000,FORWARD=NO,BACKOUT=NO&lt;/span&gt;&lt;br /&gt;/*&lt;br /&gt;&lt;br /&gt;As we have 2 BSDS in place we have copied the same info to other BSDS also. we tried to update the info in BSDS02. but while starting DB2 it gave us synchronisation error. so always update one BSDS and Repro the same into other BSDS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//TSG10 JOB   1111,'BSDS REC',CLASS=A,MSGCLASS=O&lt;br /&gt;//*&lt;br /&gt;//*      ****************************************************&lt;br /&gt;//*      *                                                &lt;br /&gt;//*      * ***** DB2 MUST BE DOWN WHEN THIS JOB IS RUN. *****&lt;br /&gt;//*      *                                                &lt;br /&gt;//* REPRO BSDS01 TO BSDS02&lt;br /&gt;//*&lt;br /&gt;//STEP02      EXEC  PGM=IDCAMS&lt;br /&gt;//SYSPRINT    DD    SYSOUT=O&lt;br /&gt;//IFILE1      DD    DSN=DSN3.BSDS01,&lt;br /&gt;//            DISP=SHR&lt;br /&gt;//OFILE1      DD    DSN=DSN3.BSDS02,&lt;br /&gt;//            DISP=SHR&lt;br /&gt;//SYSIN       DD    *&lt;br /&gt;REPRO  INFILE (IFILE1) -      &lt;br /&gt;                OUTFILE(OFILE1) -      &lt;br /&gt;                 REUSE&lt;br /&gt;/*&lt;br /&gt;&lt;br /&gt;To see the content of DSBS we printed it by:&lt;br /&gt;//TSG10PRN    JOB   1111,'BSDS REC',CLASS=L,MSGCLASS=O&lt;br /&gt;//*&lt;br /&gt;//*      **************************************************&lt;br /&gt;//*      *                                              &lt;br /&gt;//*      * ***** DB2 MUST BE DOWN WHEN THIS JOB IS RUN. ***&lt;br /&gt;//*      *                                              &lt;br /&gt;//*      **************************************************&lt;br /&gt;//*&lt;br /&gt;//* PRINT THE UPDATED BSDS&lt;br /&gt;//*&lt;br /&gt;//PRNTBSDS    EXEC  PGM=&lt;span style="color: rgb(51, 51, 255);"&gt;DSNJU004&lt;/span&gt;&lt;br /&gt;//SYSPRINT    DD    SYSOUT=*&lt;br /&gt;//SYSUT1      DD    DSN=DSN3.BSDS01,DISP=SHR&lt;br /&gt;//*&lt;br /&gt;&lt;br /&gt;Then when we started the subsystem, it started successfully pretty quick:&lt;br /&gt;by giving below message:&lt;br /&gt;STC03816  DSNR014I  ! EXCLUDED RURE TABLE  056          T  CON-ID    CORR-ID     AUTHID    PLAN   S     URID     DAY   TIME       &lt;br /&gt;- -------- ------------ -------- -------- - ------------ --- --------       &lt;br /&gt;B BATCH    DVF26CV      DVF26    DSNTEP2  A 006762C6D8C1 221 09:15:50  STC03816 *15 DSNJ245I  ! CONDITIONAL RESTART RECORD INDICATES TRUNCATION AT RBA  006A7F46D000.&lt;br /&gt;REPLY Y TO CONTINUE, N TO                    CANCEL&lt;br /&gt;DSN3MSTR STC03816&lt;br /&gt;&lt;br /&gt;Then everything seems right for this test subsystem...&lt;br /&gt;Cheers...&lt;br /&gt;Prakash&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-8241090117085629533?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/8241090117085629533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=8241090117085629533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8241090117085629533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8241090117085629533'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/11/conditional-restart-db2.html' title='Conditional Restart DB2 DSNJU003'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-8502525501596563837</id><published>2008-11-15T20:35:00.000+05:30</published><updated>2009-03-16T12:50:07.045+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Resource Limit Specification Table'/><category scheme='http://www.blogger.com/atom/ns#' term='DSNRLST01'/><title type='text'>Resource Limit Specification Table DSNRLST01</title><content type='html'>&lt;p&gt;There might be some userid/Plan which used to submit the very high cost sqls those used to take many hours CPU time. &lt;/p&gt;&lt;p&gt;To restrict these for running indefinite time, mainframe is having governor kind of stuff called resource limit specification table &lt;span style="color: rgb(0, 102, 0);"&gt;DSNRLST01&lt;/span&gt;. you need add record for culprit userid/plan to avoid this kind of scenario.&lt;/p&gt;&lt;p&gt;Cheers..&lt;/p&gt;&lt;p&gt;Prakash&lt;/p&gt;&lt;p&gt;IBM Certified DB2 DBA&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-8502525501596563837?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/8502525501596563837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=8502525501596563837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8502525501596563837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8502525501596563837'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/11/resource-limit-specification-table.html' title='Resource Limit Specification Table DSNRLST01'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-5463378807341929043</id><published>2008-11-14T11:15:00.000+05:30</published><updated>2009-03-16T12:50:40.940+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='APF'/><category scheme='http://www.blogger.com/atom/ns#' term='S04E'/><category scheme='http://www.blogger.com/atom/ns#' term='X&apos;00E40002&apos; ABEND'/><title type='text'>DSNUTILB - UTILITY BATCH MEMORY EXECUTION ABENDED, REASON=X'00E40002'</title><content type='html'>We got a call from development team that they are getting &lt;span style="color: rgb(0, 102, 0);"&gt;ABEND S04E&lt;/span&gt; while running DSNUTILB. When I looked in the reson code.. it is REASON=&lt;span style="color: rgb(0, 102, 0);"&gt;X'00E40002'&lt;/span&gt;.&lt;br /&gt;The complete error message is "DSNU016I DSNUTILB - UTILITY BATCH MEMORY EXECUTION ABENDED, REASON=X'00E40002'"&lt;br /&gt;Initial investigation shows the tablespace is not accessable enven if all the index and tablespace is in RW status. When I try to execute a query like "Select count(*) from T1FHHD; it excuted fine. But when I tried to run a query like: "Select * from T1FHHD fetch first 1 row only". It gave me below message in DSN2MSTR&lt;br /&gt;STC00720 DSNI014I + DSNIRNXT DATA IN USE DURING ABEND 219 REASON 00C90101&lt;br /&gt;ERQUAL 53CB&lt;br /&gt;TYPE 00000302&lt;br /&gt;NAME DSPS02 .SFHHD .&lt;span style="color: rgb(0, 102, 0);"&gt;X'00000002'&lt;/span&gt;&lt;br /&gt;CONNECTION-ID=TSO&lt;br /&gt;CORRELATION-ID=TSGDBT1&lt;br /&gt;LUW-ID=*&lt;br /&gt;STC00720 DSNI014I + DSNIRNXT DATA IN USE DURING ABEND 220 REASON 00C90101&lt;br /&gt;ERQUAL 53CB&lt;br /&gt;TYPE 00000302&lt;br /&gt;NAME DSPS02 .SFHHD .&lt;span style="color: rgb(0, 102, 0);"&gt;X'00000001' &lt;/span&gt;&lt;br /&gt;CONNECTION-ID=TSO&lt;br /&gt;CORRELATION-ID=TSGDBT1&lt;br /&gt;LUW-ID=*&lt;br /&gt;From this we can determine that there is a data corruption in page 1 and 2 of the tablespace. Since it is test system, we dopped/recreated and refreshed the data from production and told the development team to rerun the job.&lt;br /&gt;&lt;br /&gt;Again they came back with same error.&lt;br /&gt;Now my focus directed to the &lt;span style="color: rgb(0, 102, 0);"&gt;APF authentication&lt;/span&gt; Library as the reson code tells: 00E40002&lt;br /&gt;Explanation: The caller of the database services portion of the utilitywas in the wrong protect key.&lt;br /&gt;If a JOBLIB or STEPLIB is being used in the batch utility job, check thatall application program libraries included in the concatenation are authorized.&lt;br /&gt;Check that the batch utility program DSNUTILB was included in the MVS program properties table during the installation of DB2. The entry for DSNUTILB in the MVS program properties table was provided by MVS.&lt;br /&gt;The steplib coded for the step as below:&lt;br /&gt;STEPLIB DD DSN=TSYS.STEST.BATCH.LOADLIB,DISP=SHR&lt;br /&gt;DD DSN=SYS1.DSN2.SDSNLOAD,DISP=SHR&lt;br /&gt;DD DSN=SYS1.SDSNLOAD,DISP=SHR&lt;br /&gt;&lt;br /&gt;When I looked into SYS1.PARMLIB(PROG00), I could not find TSYS.STEST.BATCH.LOADLIB in it. So this Library is not APF authorised. If one of the concatenated pds is not authorized, then whole steplib will not be authorized.&lt;br /&gt;&lt;br /&gt;There are 2 options for this:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Option 1:&lt;/span&gt;&lt;br /&gt;To modify SYS1.PARMLIB(PROG00)&lt;br /&gt;by putting this line:APF ADD DSNAME(TSYS.STEST.BATCH.LOADLIB) VOLUME(SSD001) -- code appropriate volume.&lt;br /&gt;After that you need to refresh the parmlib by giving spool command /set prog=00&lt;br /&gt;you can have a look at SYS1.PARMLIB(SCHED00)&lt;br /&gt;PPT PGMNAME(DSNUTILB) /* DB2 UTILITY */ CANCEL /* CAN BE CANCELLED */&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;KEY(7)&lt;/span&gt; /* PROTECTION KEY */&lt;br /&gt;NOPRIV /* NOT PRIVILEGED */&lt;br /&gt;SWAP /* SWAPPABLE */&lt;br /&gt;DSI /* DATA SET INTEGRITY */&lt;br /&gt;PASS /* NO PASSWORD BYPASS */&lt;br /&gt;NOSYST /* SYSTEM TASK , NOT TIMED */&lt;br /&gt;AFF(NONE) /* NO PROCESSOR AFFINITY */&lt;br /&gt;&lt;br /&gt;This is to verify whether we have KEY(7) which otherwise will give protect key issue. Check this SYS1.IPLPARM(LOAD00) whether you are looking into correct parm: This will look like below:You will definitly find "PARMLIB SYS1.PARMLIB" as first occurence.&lt;br /&gt;IODF 40 MVS1 PROD 00&lt;br /&gt;NUCLEUS 1&lt;br /&gt;NUCLST 00&lt;br /&gt;SYSCAT MVSC70133CCATALOG.ICFM.VMVSC70&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;PARMLIB SYS1.PARMLIB&lt;/span&gt;&lt;br /&gt;PARMLIB CPAC.PARMLIB&lt;br /&gt;PARMLIB SYS1.IBM.PARMLIB&lt;br /&gt;IEASYM 00&lt;br /&gt;SYSPLEX SOMPLEXP&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Option 2:&lt;/span&gt;&lt;br /&gt;We can remove the TSYS.STEST.BATCH.LOADLIB from the STEPLIB as it does not include load of IBM supplied utility DSNUTILB.So that we will not get the true APF authorization error with 00E40002.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Conclusion:&lt;/span&gt;&lt;br /&gt;Option 2 is better one as it does not require intervention of system programmer and pretty quick to achieve.&lt;br /&gt;&lt;br /&gt;Cheers...&lt;br /&gt;Prakash&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-5463378807341929043?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/5463378807341929043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=5463378807341929043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/5463378807341929043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/5463378807341929043'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/11/dsnutilb-utility-batch-memory-execution.html' title='DSNUTILB - UTILITY BATCH MEMORY EXECUTION ABENDED, REASON=X&apos;00E40002&apos;'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-8055755085592944083</id><published>2008-11-13T12:33:00.000+05:30</published><updated>2009-03-16T12:51:08.641+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hrecall'/><category scheme='http://www.blogger.com/atom/ns#' term='Long running'/><title type='text'>Job seems not executing for longer period of time</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Hi,&lt;br /&gt;&lt;strong&gt;Sometimes after submitting the database refresh job, you find that, this job is not getting CPU and idle for many times..&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;One of the reason may be.. the underlying VSAM datasets of the target tablespaces/indexspaces are migrated due to not being accessed for long time. DB2 will try to HRECALL the required datasets. In the same time you can recall the datasets so that your job will have the datasets and move forward.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Cheers..&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Prakash&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;IBM Certified DB2 DBA&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-8055755085592944083?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/8055755085592944083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=8055755085592944083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8055755085592944083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/8055755085592944083'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/11/job-seems-not-executing-for-longer.html' title='Job seems not executing for longer period of time'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-3517193695167494609</id><published>2008-11-11T09:25:00.000+05:30</published><updated>2009-03-16T12:51:38.686+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><category scheme='http://www.blogger.com/atom/ns#' term='DBA'/><category scheme='http://www.blogger.com/atom/ns#' term='SYSADM'/><title type='text'>How to Revoke SYSADM previlege without cascading effect</title><content type='html'>&lt;span class="postbody"&gt;Installation system admin have given SYSADM authority to a userid (USR10). Through that userid, the user created many objects, had bind  many packages and given many privileges.&lt;br /&gt;Now when &lt;/span&gt;&lt;span class="postbody"&gt;Installation system admin&lt;/span&gt;&lt;span class="postbody"&gt; tried to revoke the &lt;b style="color: rgb(255, 163, 79);"&gt;SYSADM&lt;/b&gt; auth from that user, the mainframe screen seems to be hanged and locked for hours. Even the subsystem might be crashed.&lt;br /&gt;&lt;br /&gt;How to Approach this problem..&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="postbody"&gt;We made the Userid(USR10) as Installation &lt;b style="color: rgb(255, 163, 79);"&gt;SYSADM&lt;/b&gt; id through one job which make the change in Z-Parm of DB2 subsystem.&lt;br /&gt;Here is the member:&lt;br /&gt;D710.DSN4.SDSNSAMP(&lt;span style="font-weight: bold;"&gt;DSNTIJUZ&lt;/span&gt;)    -- second qualifier is the subsystem name.&lt;br /&gt;and parameters are&lt;br /&gt;&lt;b style="color: rgb(255, 163, 79);"&gt;SYSADM&lt;/b&gt;=USR10,     -- put userid over here from which you want to revoke the &lt;b style="color: rgb(255, 163, 79);"&gt;SYSADM&lt;/b&gt; auth.       &lt;br /&gt;SYSADM2=USR10,&lt;br /&gt;&lt;br /&gt;you need to stop/start the subsystem to make it effect. After that Shoot the REVOKE statement. This will be executed in a second. After this do not forgot to change the SYSADM to it's initial value.&lt;br /&gt;&lt;br /&gt;Catch is When you revoke SYSADM from a installation sysadm, you won't have cascading effect.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Prakash&lt;br /&gt;IBM Certified DB2 DBA&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-3517193695167494609?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/3517193695167494609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=3517193695167494609' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/3517193695167494609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/3517193695167494609'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/11/how-to-revoke-sysadm-previlege-without.html' title='How to Revoke SYSADM previlege without cascading effect'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-5990946536724175960</id><published>2008-11-10T11:26:00.000+05:30</published><updated>2009-03-16T12:53:03.439+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='TSO DSN'/><category scheme='http://www.blogger.com/atom/ns#' term='THREAD'/><category scheme='http://www.blogger.com/atom/ns#' term='DB2 DBA'/><title type='text'>Access the commands of DB2 from command line prompt</title><content type='html'>Do you know, we can access the commands of DB2 from command line prompt.&lt;br /&gt;&lt;br /&gt;Just type following command on command line of Mainframe:&lt;br /&gt;&lt;br /&gt;TSO DSN S(subsystem_Name) then press enter.&lt;br /&gt;&lt;br /&gt;After that you will a DSN prompt at page below.&lt;br /&gt;You can type commands like:&lt;br /&gt;-DIS THREAD(*)&lt;br /&gt;&lt;br /&gt;and when you want to exit just type END&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Prakash&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-5990946536724175960?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/5990946536724175960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=5990946536724175960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/5990946536724175960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/5990946536724175960'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/11/access-commands-of-db2-from-command.html' title='Access the commands of DB2 from command line prompt'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7160906895981316435.post-1605977164880699765</id><published>2008-11-09T13:26:00.000+05:30</published><updated>2009-03-16T12:53:59.433+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZOS'/><category scheme='http://www.blogger.com/atom/ns#' term='MAINFRAME'/><category scheme='http://www.blogger.com/atom/ns#' term='DB2 DBA'/><title type='text'>DB2 DBA Z/OS</title><content type='html'>I am creating this blog exclusively for DB2 Database Administrators on mainframe platform. The idea is to share my knowledge that I gained during my practical work experience till date.&lt;br /&gt;&lt;br /&gt;I will share some interesting facts and real time problem scenario with solution.&lt;br /&gt;&lt;br /&gt;Your suggestions and comments are always welcome.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Happy Blogging.&lt;br /&gt;&lt;br /&gt;Prakash C. Singh&lt;br /&gt;IBM Certified DB2 DBA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7160906895981316435-1605977164880699765?l=db2dbazos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db2dbazos.blogspot.com/feeds/1605977164880699765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7160906895981316435&amp;postID=1605977164880699765' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/1605977164880699765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7160906895981316435/posts/default/1605977164880699765'/><link rel='alternate' type='text/html' href='http://db2dbazos.blogspot.com/2008/11/db2-dba-zos.html' title='DB2 DBA Z/OS'/><author><name>Prakash</name><uri>http://www.blogger.com/profile/03616038107185300246</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_I1_lNaGqeLM/SRaQiXzpMeI/AAAAAAAACrc/-v3yzriBGVk/S220/p12.jpg'/></author><thr:total>3</thr:total></entry></feed>
