DB2 - L

 View Only
Expand all | Collapse all

10 Byte RBA Conversion and DEFINE NO

  • 1.  10 Byte RBA Conversion and DEFINE NO

    Posted Nov 04, 2022 10:30 AM
    I have a question that I am finding it difficult to answer via the documentation.

    Say I have several tablespaces that were built with DEFINE NO many years ago. They are needed for the application to work but data is never put into those tables. This means they are defined as RBA_FORMAT U in the catalog. Now, on Db2 12, say for whatever reason data actually gets put into that table, requiring it to define the underlying data sets. My expectation is that Db2 will define the pages with the 10-byte RBA in the header, but I don't see that explicitly documented anywhere. Can anybody confirm that my expectation is what will actually happen?

    Thanks,
    Craig S. Mullins
    Mullins Consulting, Inc.
    http://www.mullinsconsulting.com


    ------------------------------
    CraigMullinsMullins Consulting, Inc.
    ------------------------------


  • 2.  RE: 10 Byte RBA Conversion and DEFINE NO

    Posted Nov 04, 2022 11:00 AM
    Hi Craig,

    Re-reading my notes on the original my conversion strategy from 6-byte to 10-byte RBA/LRSN, and reviewing the (now) deprecated zparms as of Db2 12., the new default is:

    UTILITY_OBJECT_CONVERSION=NOBASIC: The LOAD, REBUILD INDEX, or REORG utilities always convert the target object in the 6-byte RBA or LRSN format to the extended 10-byte format.

    I don't have a way to test this, but I would expect the table to remain in 6-byte RBA format until the next LOAD or REORG is run. which would then convert the RBA to 10-bytes for both TS and IX.

    A simple test might be to run a LOAD REPLACE with SYSREC as DD DUMMY and confirm the RBA is now 10-byte format ?

    HTH
    Jack

    ------------------------------
    Jack Campbell
    Saxon Consulting, Inc.
    ------------------------------



  • 3.  RE: 10 Byte RBA Conversion and DEFINE NO
    Best Answer

    Posted Nov 04, 2022 11:03 AM
    Howzit Craig?

    I seem to recall a John Campbell presentation at IDUG Australia a few years ago where that very question came up. As I recall, your assumption is correct, when the dataset is subsequently allocated it is defined with a 10-byte RBA. The takeaway was that you only had to convert existing tablespaces with a 6-byte RBA.

    Cheers
    Bruce





  • 4.  RE: 10 Byte RBA Conversion and DEFINE NO

    Posted Nov 05, 2022 01:12 AM
    HI Craig, Good day, 
    I also believe, for the define no tablespaces, when ultimately the dataset is defined,  it becomes a 10-byte only. 
    I seem to have done this for one of my clients, but not so sure where the notes are, need to go back to my docs.

    About whether it is documented, not sure, we need to ask IBM only :)

    Regards
    Eswar

    ------------------------------
    Eswar PrasadChandrasekaranA
    ------------------------------



  • 5.  RE: 10 Byte RBA Conversion and DEFINE NO

    Posted Nov 05, 2022 09:17 AM
    Hi Craig,

    that is indeed what will happen.
    On the materialization from an Insert in Db2 12 you will get the extended RBA_FORMAT = 'E', 10-byte RBA/LRSN.
    This is what we got when we last looked at this.
    I would expect a utility action resulting in an VSAM to be created to have the same affect.

    I just had a quick check and our zparm UTILITY_OBJECT_CONVERION is set to NOBASIC.
    We are at v12.

    Regards, 
    Dhiren Chaudhary

    ------------------------------
    Dhiren Chaudhary
    ------------------------------



  • 6.  RE: 10 Byte RBA Conversion and DEFINE NO

    Posted Nov 05, 2022 12:04 PM
    Good coincidence... I will be testing this on Monday... all part of my Deprecated work...

    Roy Boxwell 


    SOFTWARE ENGINEERING GmbH and SEGUS Inc.
    -Product Development-
     


    IBM Champion 2022


    Vagedesstrasse 19
    40479 Dusseldorf/Germany
    Tel. +49 (0)211 96149-675
    Fax +49 (0)211 96149-32
    Email: 
    R.Boxwell@seg.de
    Web  http://www.seg.de

    Link zur Datenschutzerklärung


    Software Engineering GmbH
    Amtsgericht Düsseldorf, HRB 37894
    Geschäftsführung: Gerhard Schubert, Ulf Heinrich






  • 7.  RE: 10 Byte RBA Conversion and DEFINE NO

    Posted Nov 07, 2022 04:21 AM
    Hi Craig 
    we were also checking this and when objects without datasets are populated any RBA6 objects will automatically use extended RBA (and the TABLEPART column RBA_FORMAT will be set to E). 
    Unfortunately BRF objects without datasets won't use RRF until after a REORG – presumably IBM will identify a solution before withdrawing support for BRF.
    Regards, Roland

    ------------------------------
    RolandOwenUBS
    ------------------------------



  • 8.  RE: 10 Byte RBA Conversion and DEFINE NO

    Posted Nov 07, 2022 09:35 AM
    Many thanks to the folks who replied to this question. I am glad that my assumption has proven to be the case and that DEFINE NO tablespaces will have the 10-byte RBA when/if they get created on Db2 V12 and later.

    Cheers!
    Craig S. Mullins
    Mullins Consulting, Inc.
    http://www.mullinsconsulting.com


  • 9.  RE: 10 Byte RBA Conversion and DEFINE NO

    Posted Nov 07, 2022 05:28 AM
    Here's my start position:

    SELECT SPACE, FORMAT, RBA_FORMAT
    FROM SYSIBM.SYSTABLEPART TP
    WHERE 1 = 1
    AND TP.DBNAME = 'ROYTESTD'
    AND TP.TSNAME = 'ROYTESTS'
    ;
    ---------+---------+---------+--------
    SPACE FORMAT RBA_FORMAT
    ---------+---------+---------+--------
    -1
    DSNE610I NUMBER OF ROWS DISPLAYED IS 1

    After one INSERT:

    SELECT SPACE, FORMAT, RBA_FORMAT
    FROM SYSIBM.SYSTABLEPART TP
    WHERE 1 = 1
    AND TP.DBNAME = 'ROYTESTD'
    AND TP.TSNAME = 'ROYTESTS'
    ;
    ---------+---------+---------+--------
    SPACE FORMAT RBA_FORMAT
    ---------+---------+---------+--------
    0 E
    DSNE610I NUMBER OF ROWS DISPLAYED IS 1

    FORMAT is still Blank. So a quick REORG:

    SELECT SPACE, FORMAT, RBA_FORMAT
    FROM SYSIBM.SYSTABLEPART TP
    WHERE 1 = 1
    AND TP.DBNAME = 'ROYTESTD'
    AND TP.TSNAME = 'ROYTESTS'
    ;
    ---------+---------+---------+--------
    SPACE FORMAT RBA_FORMAT
    ---------+---------+---------+--------
    720 R E
    DSNE610I NUMBER OF ROWS DISPLAYED IS 1

    Tra la! So the first insert, also for super super old Db2 V8 created DEFINE NO spaces, does indeed externalize to "E" for extended 10 Byte RBAs and, as others have commented, the format is still Basic but a REORG sorts that one out to RRF as well!

    Roy Boxwell

    SOFTWARE ENGINEERING GmbH and SEGUS Inc.
    -Product Development-



    Vagedesstrasse 19
    40479 Dusseldorf/Germany
    Tel. +49 (0)211 96149-675
    Fax +49 (0)211 96149-32
    Email: R.Boxwell@seg.de
    Web http://www.seg.de
    Link zur Datenschutzerklärung

    Software Engineering GmbH
    Amtsgericht Düsseldorf, HRB 37894
    Geschäftsführung: Gerhard Schubert, Ulf Heinrich




  • 10.  RE: 10 Byte RBA Conversion and DEFINE NO

    Posted Nov 07, 2022 09:36 AM
    Great stuff Roy!

    Thanks,
    Craig

    ------------------------------
    CraigMullinsMullins Consulting, Inc.
    ------------------------------