Information
Limited support BMC provides limited support for this version of the product. As a result, BMC no longer accepts comments in this space. If you encounter problems with the product version or the space, contact BMC Support.BMC recommends upgrading to the latest version of the product. To see documentation for that version, see DASD MANAGER PLUS for DB2 13.1.

Complete sample program


The complete report program annotated in this topic is in the following figure.

Complete sample program

 /* rexx ***************************************************************/
 /*                                                                    */
 /*  SYNOPSIS                                                          */
 /*      TSSPACE - Space utilization for DB2 tablespaces               */
 /*                                                                    */
 /*  DESCRIPTION                                                       */
 /*      A report by tablespace of space allocated and number of       */
 /*      extents.                                                      */
 /*                                                                    */
 /*  USAGE NOTES                                                       */
 /*      Parms                                                         */
 /*        ssid plan tbname-prefix dbname                              */
 /*                                                                    */
 /**********************************************************************/

/* The following statement should specify the table name of the       */
 /* DASD MANAGER PLUS tablepart table                                  */

 dmtablepart = asualias('BMCASU_STABLEPART');

 title = 'DASD SPACE FOR TABLESPACE';

 /* tablepart format definition                                        */

 tpfd. = ;
 tpfd.1 =     ' @<<<<<<<<<<<<<<<<< @>>> @>>>>>>>>  @>>>';
 tpfd.2 =     ' tsobj tp.partition tp.space tp.extents';
 tpfd.3 =     ' . ';               /* end of format definition        */

 /* tablepart top of page format definition                            */

 tpfd.top.1 = ' ';
 tpfd.top.2 = ' @||||||||||||||||||||||||||||||||||| PAGE @<<<<';
 tpfd.top.3 = ' title                                rpt.page# ';
 tpfd.top.4 = ' ';
 tpfd.top.5 = ' TABLESPACE         PART     SPACE   EXT';
 tpfd.top.6 = ' ----------------- ----- ---------  ----';
 tpfd.top.7 = ' . ';               /* end of format definition        */

parse upper arg ssid plan dbnamex .; /* get input data               */

  rc = asurxsql('CONNECT' ssid plan); /* connect and open plan         */

 if (rc ¬= 0) then                   /* if connect or open plan error */
 signal caferror;                  /* go output caf error message   */

 rc = asurxrpt('INIT 60 suppress tpfd');   /* initialize report       */

 if (rc ¬= 0) then                   /* if an error                   */
 signal rpterror;                  /* go output report error msg    */

 dbnamex = translate(dbnamex, '%', '*');  /* change * to % in dbname  */
 eqorlike = '=';                      /* default to equal             */

 if (0 < pos('%', dbnamex) | ,        /* if wildcard in dbname        */
 0 < pos('_', dbnamex)) then
 eqorlike = 'LIKE';                 /* use like                     */

 /* obtain tablepart data                                              */

 rc = asurxsql('OPEN ' ,              /* open cursor                  */
 'TP CURSOR FOR SELECT    ',
 'A.DBNAME ,'              ,
 'A.TSNAME ,'              ,
 'A.PARTITION ,'           ,
 'A.SPACE , '              ,
 'A.EXTENTS   '            ,


 'WHERE A.DBNAME' eqorlike '''dbnamex'' ' ,
 '       AND TIMESTMP = (SELECT MAX(TIMESTMP) ' ,
 '          FROM ' dmtablepart 'B ',
 '          WHERE B.DBNAME = A.DBNAME ' ,
 '                AND B.TSNAME = A.TSNAME ' ,
 '                AND B.PARTITION = A.PARTITION) ' ,
 'ORDER BY DBNAME, ' ,
          '         TSNAME, ' ,
 '         PARTITION ' ,
 'FOR FETCH ONLY ');

if (rc ¬= 0) then                 /* if open failed                  */
 signal error;                   /* go output sql error message     */

 do forever                        /* loop for all tablepart rows     */
 rc = asurxsql('FETCH TP ');     /* fetch next row                  */

 if (rc ¬= 0) then               /* if fetch failed                 */
 signal sqlerror;              /* go output sql error message     */
 if (sqlcode = 100) then         /* if end of data                  */
 leave;                        /* leave forever loop              */
dbn = strip(tp.dbname, 'T');    /* remove trailing blanks          */
 tsn = strip(tp.tsname, 'T');
 tsobj = dbn'.'tsn;              /* dbname.tsname                   */
 rc = asurxrpt('WRITE tpfd');    /* output tablepart data           */
 if (rc ¬= 0) then               /* if an error                     */
 signal rpterror;              /* go output report error message  */
 end                             /* end do forever                  */

 rcx = asurxsql('CLOSE TP');       /* close cursor                    */

 signal cleanup;                   /* cleanup                         */


 /*--------------------------------------------------------------------

 rpterror - output error code and message from asurxrpt

 --------------------------------------------------------------------*/

 rpterror:

 say 'ASURXRPT return code = 'rptcode;       /* error code            */
 say rpterrm;                      /* output report error message     */
  signal cleanup;                   /* cleanup                         */

/*--------------------------------------------------------------------*/

 caferror - output caf error msg

 /*--------------------------------------------------------------------*/

 caferror:
 say 'Connect failed, rc = 'rc', cafreason = 'cafreason;
 exit 8;

/*--------------------------------------------------------------------*/

 sqlerror - output sql error codes and messages

/*--------------------------------------------------------------------*/

 sqlerror:
 say 'ASURXSQL return code = 'rc;

 if sqlcode ¬= 0 then do i = 1 to 1000 by 80
 m = substr(sqlerrm,i+1,79)
 if m = ' ' then leave
 say m
 end

 cleanup:
 rcx = asurxrpt('TERM');           /* terminate report                */
 rcx = asurxsql('DISCONNECT');     /* disconnect from db2             */
 exit rc;



 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

DASD MANAGER PLUS for DB2 12.1