IMS Catalog_Combined - IMS RUG March 2013 Columbus

296 views
231 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
296
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Prior to the implementation of the IMS catalog, metadata about all of the data contained in an IMS database is not defined within the DBD, only segment key fields and search fields are defined. To understand the data in a particular segment, the COBOL COPYBOOK or the PL/I INCLUDE must be reviewed. Sometimes, even the application code must be investigated to truly understand the database data.
  • The IMS catalog contains information about IMS program resources, database resources that an IMS system controls, and relevant application metadata that an IMS application controls. This will include all program and database-related information defined to the IMS database system including databases, fields, segments, data types, etc., Changes made to any of these resources such as when you create, alter, or delete any IMS resource information will be reflected in the catalog. The only way to update the IMS catalog is through integrated IMS processes: - Catalog Populate Utility- PSBGEN- DBDGEN- ACBGEN- Dynamic Database Change – Database Alterdatabase definitions, program specificationsAny changes to COPYBOOK or INCLUDE members will require DBDGEN and ACBGEN processes.As part of IMS’s growth strategy, the IMS catalog is a key component which will play an important role in: - Simplification- Integration
  • Optional DBRC usage is provided for ease of catalog database management across test systems.The IMS Catalog Database is the only HALDB database for which DBRC is optional - it does not have to be defined in the RECONS. IMS can manage the allocation/creation of catalog database data sets.User must define the HALDB structure in the RECONs or in a definitional data set. The user must define recovery related options in the RECONs.
  • Source code for the catalog DBD and related PSBs are provided.Load modules for the catalog DBD and related PSBs are also provided. Users must generate the corresponding ACBLIB members for the PSBs before enabling, populating and using the IMS catalog.Catalog database management is required Review/adjust database buffer pool definitionsPerform routine management and maintenance on the Catalog database Image Copy, Pointer Checker, Reorg, etc…Catalog database will need to be REORG’dIf Catalog database is defined to the RECONs HALDB OLR non-disruptive reorganization is supportedIf Catalog database is not defined to the RECONs HALDB OLR can’t be supported and a reorg utility must be employedExisting recovery procedures that are used today for Image copy, recovery, backout utilities etc… can be used with the IMS Catalog Database. But, without DBRC enabled, Catalog database recovery is limited and the procedure will be similar to that used for a non-registered, full function database. DBA management of the Catalog database is required. Users will need to verify that properly sized buffers exist in or are added to the IMS DB bufferpool definitions in the DFSVSAMP and DFSVSMxx PROCLIB members. The database can also become disorganized and need reorganization. HALDB OLR (Online Reorganization) allows non-disruptive reorganization for the Catalog database. But if the Catalog database has not been defined in the RECONs, a batch reorganization utility must be used.
  • SAMPLE JCL and Control Cards Copy the DBDs and PSBs for the IMS catalog from the IMS.SDFSRESL data set to the IMS.DBDLIB and IMS.PSBLIB data sets. The catalog DBDs are called DFSCD000 and DFSCX000. The PSBs are called DFSCPL00, DFSCP000, and DFSCP001, DFSCP002, DFSCP003. Run the ACB Maintenance utility to generate the ACBs for the IMS catalog. Activate the ACB library that contains the IMS catalog ACBs.
  • STORCLAS=xxxxxxxx Storage class for automatically generated, SMS-managed catalog data sets. Required for SMS-managed catalog data sets. DATACLAS=xxxxxxxx Data class for automatically generated, SMS-managed catalog data sets. MGMTCLAS=xxxxxxxx Management class for automatically generated, SMS-managed catalog data sets. IXVOLSER=xxxxxx Volume serial number for all primary and secondary catalog indexes. Important: This parameter is required when the catalog data sets are not managed by SMS. SMSVOLCT=nn Number of volumes created by the Catalog Populate utility for use by SMS-managed data sets. The valid range for this value is 1-20. The default is 1. SPACEALLOC=(PRIMARY=nnnn SECONDARY=nnnn) This value is a percentage that is added to the IMS-computed size of the primary and secondary catalog data sets. The default for the primary dataset is 500% and the default for the secondary data set is 50%.
  • RETENTION= This optional statement specifies the retention schedule for metadata in the IMS catalog. By default, the IMS catalog stores 2 versions of DBD and PSB metadata that is currently being used in the IMS system. If a previous version exists in the database, it is replaced when a newer version is created. Specify different values to maintain multiple versions of IMS catalog metadata. MAX=nnn Specifies the maximum number of versions of the catalog metadata to store in the IMS catalog. When the number of versions exceeds this value, the oldest version (based on the ACBGEN timestamp) is removed in favor of the newest version. This value is a decimal value from 1 to 255. The default is 2. PERIOD=nnn Specifies the retention period of metadata in the IMS catalog in days. When the age of a version of the catalog metadata exceeds this value, it is removed from the IMS catalog the next time a new version of the catalog metadata is added. This parameter does not automatically delete all versions of the catalog metadata that are older than the specified retention period. It makes them available for removal only when new versions of the same DBD or PSB are added to the IMS catalog. This value is a decimal from 0 to 999. Specifying 0 (the default) disables this feature.
  • Define the HALDB master and partitions of the IMS catalog. This information must be defined either to DBRC or with the Catalog Partition Definition Data Set utility (DFS3UCD0) for IMS systems that do not use DBRC. The IMS™ catalog is a HALDB (high availability large database) database, a partitioned, IMS full-function database type. Prior to loading records into an IMS catalog, you must define the partitions to IMS. The HALDB partition definitions for the IMS catalog are typically registered in the RECON data set by DBRC. DBRC provides support for database recovery, data sharing, automatically generating JCL control statements, log and data set management, and other database tasks. The IMS catalog, however, does not have to be registered with DBRC. You can define the IMS catalog database partitions with the IMS catalog partition definition utility (DFS3UCD0) instead of using DBRC. The DFS3UCD0 utility stores the catalog partition information in the catalog partition definition data set. This option is not available for other HALDBs. When the IMS catalog partition definition data set is used, the IMS catalog is not registered with DBRC. The database protection support provided by DBRC, including backup and recovery support, is unavailable to the IMS catalog when a IMS catalog partition definition data set is used. The HALDB Partition Data Set Initialization utility (DFSUPNT0) is not compatible with an unregistered catalog database. The Catalog Populate utility (DFS3PU000) provides analogous support for registered and unregistered catalog databases. The IMS catalog database does not support a HALDB Partition Selection exit routine (DFSPSE00). The catalog database uses the high-key selection method exclusively.
  • The DBRC utility can be used to define the Catalog database structure to the RECONs.If alias prefix names were defined in the DFSDFxxx member, those alias named catalog databases must be defined.
  • If you choose not to use DBRC for the Catalog database, you will have to use the Catalog Partition Definition Data Set Utility, DFS3UCD0, to build/populate a Catalog Partition Definition data set with the HALDB database structure information – HALDB, PART, DSN Prefix, KEY info. DFSHDBSC is the DDNAME for the Catalog Partition Definition data set.
  • You might need to define multiple alias name databases as UNREGCATLG.
  • You can create a Dynamic Allocation member for the Catalog Partition Definition data set. DFSHDBSC is the DDNAME used for the Catalog Partition Definition data set.
  • Use the IMS Catalog Populate utility , DFS3PU00), to load or insert records into the IMS catalog database data sets. The DFS3PU00 utility creates the catalog records from the ACB members in one or more ACB libraries and, depending on your database types, the associated DBD and PSB members in DBD libraries and PSB libraries. The records contain metadata for your application programs and databases. The utility can run in a DL/I region or, if updating an existing IMS catalog, can run in a BMP region.The DFS3PU00 utility requires access to the following data sets: The IMS.PROCLIB data set that contains the DFSDFxxx member that enables the IMS catalog and defines the alias name of the IMS catalogOne or more IMS.ACBLIB data setsIf the IMS Catalog supports logically related databases, the IMS.DBDLIB data setIf the IMS Catalog supports GSAM databases, the IMS.DBDLIB data set and the IMS.PSBLIB data setIf any of the database data sets do not exist, the DFS3PU00 utility creates them automatically: > The DFSCD000 database data sets which are: The primary index data setThe indirect list data set (ILDS)Four data set group data sets for the segments of the IMS catalog > The DFSCX000 secondary index data setThe DFS3PU00 utility calculates the size of the database data sets based on both the size of the ACB library and the expansion percentages that you can specify in the DFSDFxxx PROCLIB member.The DFSDFxxx member is also where you specify the volume serial number for the VSAM key-sequenced data sets or the SMS storage class, data class, and management class for all data sets
  • The DFS3PU00 utility loads the IMS catalog by using the IMS-provided PSB DFSCPL00, which includes a PCB defined with PROCOPT=L. //UPDTCAT EXEC PGM=DFS3PU00,// PARM=(DLI,DFS3PU00,DFSCPL00,,,,,,,,,,,Y,N,,,,,,,,,,,,’DFSDF=001’)Running the DFS3PU00 utility with the PSB DFSCPL00 deletes any existing recordsin the IMS catalog!
  • You can generate ACB members and populate the IMS catalog in a single step by using the ACB Generation and Catalog Populate utility (DFS3UACB).The DFS3UACB utility can be used to initially load the IMS catalog or to add records to an existing IMS catalog. When the DFS3UACB utility populates the IMS catalog, the utility stores the ACB members in the IMS.ACBLIB data set and internally calls the IMS Catalog Populate utility (DFS3PU00) to load or update the records in the IMS catalog in the same unit of work (UOW).For the ACB generation phase of the utility execution, the operation requirements are the same as those of the ACB Maintenance utility.It is recommended that you use the Catalog Populate Utility for the initial load of the IMS catalog. If you are starting with a good ACBLIB, there is no reason to reGEN all of the ACBs before populating the catalog with metadata.
  • Use the IMS Catalog Populate utility, DFS3PU00, to load or insert records into the IMS catalog database data sets. The DFS3PU00 utility creates the catalog records from the ACB members in one or more ACB libraries and, depending on your database types, the associated DBD and PSB members in DBD libraries and PSB libraries. The records contain metadata for your application programs and databases. The utility can run in a DL/I region or, if updating an existing IMS catalog, can run in a BMP region.The amount of space that the utility allocates for the data sets is based on the ACB library members and the values specified on SPACEALLOC parameter in the catalog section of the DFSDFxxx PROCLIB member.The output of the DFS3PU00 utility includes a report that contains statistics about the record segments that are loaded into the IMS catalog. The report includes information about the number and types of segments, as well as an estimate of the amount of DASD storage that each data set group of the IMS catalog will require. If you need to know how much DASD storage the IMS catalog data sets will use before they are created, you can run the DFS3PU00 utility without populating the IMS catalog to generate only the statistics report. As an alternative to running the DFS3PU00 utility, you can populate the IMS catalog by using the ACB Generation and Catalog Populate utility (DFS3UACB). The DFS3UACB utility generates the ACB libraries for your applications and databases and then populates the IMS catalog, both in the same job step.When the IMS catalog is registered with DBRC, you are required to create an image copy of the IMS catalog after an initial load of the IMS catalog. When the IMS catalog is not registered with DBRC, IMS cannot require an image copy after an initial load; however, if an image copy is not created after an initial load, the only way to recover the catalog is to reload it.
  • Use the ACB Generation and Catalog Populate utility (DFS3UACB) to generate ACB members in an IMS.ACBLIB data set and create the corresponding metadata records in the IMS™ Catalog in a single job step. Populating the IMS catalog in the same job step as the generation of the ACB members ensures that the proper ACB library is used to populate the IMS catalog. If you do not need to generate the ACB library members and populate the IMS catalog in the same job step, you can run the ACB maintenance utility and then the IMS Catalog Populate utility (DFS3PU00) in separate jobs or job steps.The DFS3UACB utility can populate the catalog in load mode or in update mode. When load mode is used, any existing records in the IMS catalog are discarded.If you are updating an existing IMS catalog, consider creating an image copy of the IMS catalog data sets. If the IMS catalog is registered with DBRC, you can use the DBRC command GENJCL.IC to backup the catalog. If you have defined the IMS catalog in an IMS Catalog partition definition data set, you must use standard image copy JCL.
  • SSA processing is enhanced. Instead of requiring a field name in a qualification statement, it will instead be possible to provide the position and length of the field. This will allow non-DBD defined fields to be included in segment search arguments when accessing HDAM, HIDAM, PHDAM, PHIDAM, DEDB. Command Code “O” is not supported for FP Secondary Index DBs and will return an “SD” status code if used.To qualify an SSA, you must specify the field position. The field position is either a field, the sequence field of a virtual child or a position and a length. A qualified SSA describes the segment occurrence that you want to access. This description is called a qualification statement and has three parts. The following table shows the structure of a qualified SSA.The field position and the field value are connected by a relational operator which tells IMS how you want the two compared. The field value contains the data that you want IMS to use as the comparative value. When the field position specifies a field name then the field value must be the same length as the field specified by field name. When command code “O” is specified the field name can be replaced with a position and length. When the field position specifies a position and then the field value must be the same length as the length specified in the qualification. The position and length apply to the physical segment layout.
  • IMS can only search on fields that are defined in the DBD – sequence/key or search fields. As a result, the Universal Drivers cannot support an SQL predicate containing columns that are not defined in a DBD. The following is an example exception message users may receive upon issuing a SQL query containing columns not defined by a DBD: java.sql.SQLException: com.ibm.ims.drda.base.DrdaException: com.ibm.ims.dli.SSAConversionException: An error occurred converting the SSA for segment <segmentName>: com.ibm.ims.dli.SSAQualificationConversionException: The field <fieldName> in database segment <segmentName> is not a searchable field.IMS has been enhanced to allow a search based on offset and length. This removes the requirement that fields need to be defined in the DBD. The Universal drivers have been enhanced to allow SQL predicates containing columns that are not defined in the DBD by internally converting to an offset and length.
  • IMS Catalog_Combined - IMS RUG March 2013 Columbus

    1. 1. Spring 2013 COIUG and SeMIUG Meetings Introducing the IMS Catalog: Open Access to IMS DB Metadata Nancy Stein IBM IMS Advanced Technical Skills ngstein@us.ibm.com Information Management © 2013 IBM Corporation
    2. 2. Acknowledgements and Disclaimers: Availability. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to verify the completeness and accuracy of the information contained in this presentation, it is provided AS-IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this presentation is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. © Copyright IBM Corporation 2013. All rights reserved. – U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. IBM, the IBM logo, ibm.com, System z, zEC12, z196, z10EC, zBX, zIIP, zAAP, ICF, SAP, SoftwareXcel, zOS, IMS, InfoSphere, DB2, CICS, RACF and WebSphere, are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™), these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml Other company, product, or service names may be trademarks or service marks of others.2 © 2011 IBM Corporation
    3. 3. Agenda • IMS Metadata • Local File Metadata vs. IMS Catalog Metadata • IMS Catalog Database • Enablement and Implementation of the IMS Catalog • Application Programming with the Catalog3 © 2011 IBM Corporation
    4. 4. What is Metadata? “Data about Data” that describes your company‟s information from multiple perspectives.  Business Metadata – Business rules, definitions, terminology, glossaries, algorithms and lineage using business language – Audience: Business users  Technical Metadata – Defines info for databases, applications, and programs • segments & fields / tables & columns • DBD and application defined fields • data types, attributes, redefines, mappings, arrays – Audience: APPL, BI & ETL developers, data profilers / modelers  Operational Metadata – Information about application runtime • Frequency, record counts, component by component analysis and other statistics – Audience: Operations, management and business users4 © 2011 IBM Corporation
    5. 5. IMS Metadata • Databases partially defined in the IMS DBD • Only key/searchable fields needed by applications • Remaining segment data is not defined • Remaining database segment definition is within Applications • COBOL COPYBOOKs and PL/I INCLUDEs map all the segment data • Applications can have different mappings for one segment IMS User maintained COBOL/PLI PSBLIB ACBLIB DBDLIB source DL/I model utility PSB DBD Java classes source source IMS Metadata5 © 2011 IBM Corporation
    6. 6. Types of IMS Technical Metadata and Storage Method  DB – PSB/DBD resources • Database structure definitions • Physical database definitions • Segment definitions • Field definitions – Application IMS HALDB • Data types Catalog • Application defined fields Database • Encodings • Redefines • User defined types • Structures  TM – MODBLKS resources Repository VSAM • Program definitions Primary • Transaction definitions Repository – MFS FORMAT resources ??? Secondary Repository – Application ??? RDDSs Spare • Input/output message definitions RDDSs BSAM RDDSs6 © 2011 IBM Corporation
    7. 7. How can an IMS Catalog help ?  Provides a trusted, online source for database, program and relevant application metadata – IMS catalog metadata stored in an IMS HALDB database  Enables scalable and flexible IMS Open Database solutions – Removes the need for local metadata on each client platform • Metadata is maintained in the IMS catalog for use by Java applications – Opens up metadata discovery and exchange for IMS Open Database and the IMS Enterprise Suite Explorer for Development – Enables IMS integration with IBM tools • QMF • COGNOS • DB2 Data Studio • Optim Development Studio • InfoSphere Data Architect • Rational Asset Analyzer7 © 2011 IBM Corporation
    8. 8. IMS DB Metadata ord# lastName firstName payment type date Defined in INT CHAR CHAR CHAR CHAR DATE DBD 10110001001101101100000101001001101 101101100100010100110101011010101101100101010010101001010101011010001 01010100101111010101 01110101001001011101011001001001001 011101110001100100100100001110111011001010111010100000101010110111001 00001001110100101111 Defined in Appl Copylibs (IMS Java) <PurchaseOrder number=“113246 ”> <lastName> IBM </lastName> <firstName> IMS </firstName> Defined in <date> 04/26/1968 </date> XML Schema: <payment type=“ MC ”> 5414 2263 4895 1145 </payment> Local file or IMS Catalog8 © 2011 IBM Corporation
    9. 9. DBD + PSB = IMS DB Schema Physical Disk Data A B C B D D Program I/O Area A B C DBD, PCB, Copybooks IMS Hierarchy A a b c d B D e f g j k l C DBD/PCB Schema h i9 © 2011 IBM Corporation
    10. 10. Changes to DBD Statement • DBD • ENCODING= • Specifies default encoding of all character data in the database defined by this DBD • Value can be overridden in individual segments or fields • SEGM • EXTERNALNAME= • Optional alias for NAME= parameter used by Java application programs to refer to segment • FIELD • CASENAME= • Name of the map case when alternative mappings are defined for fields in a segment • DATATYPE= • Specifies the external data type of the field • EXTERNALNAME= • Optional alias for the NAME= parameter used by Java application programs to refer to field • DFSMARSH • Specifies the DATATYPE converter routine to transform binary data to external data format • DFSMAP • Defines alternative field mappings in a segment • DFSCASE • Defines a map case for a segment type that uses DFSMAP alternative field mapping • REMARKS= • Optional user comments: 1- to 256-character field added to DBDGEN statement10 © 2011 IBM Corporation
    11. 11. Data Types • Data types have multiple metadata elements • Application data type • Universal drivers use application data type to present data to clients • Physical data type • Universal drivers use physical data type to marshal/unmarshal data to and from the database • Example • Application data type is DECIMAL(10,2) [decimal with precision 10 and scale 2] • Physical data type is a signed packed decimal (AD community doesn‟t need to know this) • New data type support • Structs (nested n levels with no constraint on element data types) • Accessed via SQL and DLI • Arrays (nested n levels with no constraint on element data types) • Accessed via SQL and DLI • User-defined • Name of UDT can be defined to the catalog and intended to be used at runtime by Universal drivers to marshal/unmarshall data • Can be part of a Struct or Array element11 © 2011 IBM Corporation
    12. 12. Changes to PSB PCB Statement • PCB • EXTERNALNAME= • Optional alias for the PCB label or the PCBNAME= parameter • Java application programs use the external name to refer to the PCB • REMARKS= • Optional user comments: 1- to 256-character field added to PSBGEN statements12 © 2011 IBM Corporation
    13. 13. Local File for IMS Java Metadata COBOL/PLI source PSB source IMS Explorer DBD source Local File PSBNAMEDataBaseView.jar  IMS Explorer parses DBD, PSB and COBOL or PL/I source code • Generates PSBNAMEDataBaseView.java and .class files • Export as .jar file to file system where application is deployed  Key points • Metadata deployed to multiple file locations • Metadata offline and not guaranteed to be current13 © 2011 IBM Corporation
    14. 14. IMS Catalog for IMS Java Metadata Contains IMS program & database resources, and relevant application metadata Database Definitions Application Program Specifications  Segments  Arrays and Structures  Fields  Field data types and data type conversion  Field redefines  Alternative Field maps for a segment IMS Catalog Metadata COBOL & PLI source ACBLIB Extended PSB source DBDGEN / PSBGEN / ACBGEN IMS Explorer Extended DBD source PSB & DBD source14 © 2011 IBM Corporation
    15. 15. The IMS Catalog Database • Contains metadata related to an IMS system‟s databases & programs • DBD and PSB and Application information • IMS PHIDAM/OSAM HALDB database • Defined with 4 Data Set Groups (DSGs) • One Secondary Index • Unique feature –> “Unregistered Catalog Database” • DBRC use is optional for the IMS Catalog database • Only HALDB that isn‟t required to be defined to DBRC • IMS can manage allocation/creation of catalog database • Done via parameters in the “CATALOG” section of DFSDFxxx PROCLIB member15 © 2011 IBM Corporation
    16. 16. The IMS Catalog Database • IMS provides the DBD and PSB source code and object code for the Catalog database • PHIDAM DBD name is DFSCD000 • PSINDEX DBD name is DFSCX000 • Used to connect DBDs to PSBs that reference them • PSBs provided to access the Catalog database • Initial load process - DFSCPL00 • Used by the Catalog Populate Utility • Update access - DFSCP001 • Used by the new ACBGEN Utility • Read access - DFSCP000 (COBOL/HLASM), DFSCP002 (PL/I), and DFSCP003 (PASCAL) • Default catalog PCB is DFSCAT00 • ACBGEN required for all catalog PSBs Let‟s look at the IMS Catalog database physical structure...16 © 2011 IBM Corporation
    17. 17. Physical Catalog Record Structure Key value: DBDbbbbbdbdname1 HEADER Key value: PSBbbbbbpsbname1 (RESOURCE HEADER) DBD RESERVED RESERVED PSB RESERVED … DSET DBDRMK PSBRMK AREA CAPXDBD DBDVEND SEGM DBDXREF PSBVEND PCB(DATASET) (REMARKS) (REMARKS)DSETRMK AREARMK FLD SEGMRMK MAP PCBRMK SS CAPXSEGM LCHILD(REMARKS) (REMARKS) (FIELD) (REMARKS) (DFSMAP) (REMARKS) (SENSEG) FLDRMK MAR LCHRMK LCH2IDX MAPRMK CASE SSRMK SF XDFLD(REMARKS) (DFSMARSH) (REMARKS) (INDEX NAME) (REMARKS) (DFSCASE) (REMAKRS) (SENFLD) SFRMK MARRMK PROP CASERMK CFLD XDFLDRMK (REMARKS)(REMARKS) (PROPERTIES) (REMARKS) (FIELD) (REMARKS) Secondary CFLDRMK CMAR Index (REMARKS) (DFSMARSH) DFSCX000 CMARRMK CPROP DSG A DSG B DSG C DSG D (REMARKS) (PROPERTIES)17 © 2011 IBM Corporation
    18. 18. Supported by Existing Database Utilities • HALDB Index/ILDS Rebuild utility (DFSPREC0) • HD Reorganization Unload utility (DFSURGU0) • HD Reorganization Reload utility (DFSURGL0) • Batch Backout utility (DFSBBO00) • Database Recovery utility (DFSURDB0) • Database Image Copy utility (DFSUDMP0 / DFSUDMT0) • Only batch image copies for an unregistered Catalog18 © 2011 IBM Corporation
    19. 19. New Utilities for the IMS Catalog • IMS Catalog Populate utility (DFS3PU00) • Loads or inserts records into the IMS catalog • Estimates the size of the IMS catalog data sets • ACB Generation and Catalog Populate utility (DFS3UACB) • Generates the ACBLIB members and loads the IMS catalog metadata in one unit of work • IMS Catalog Alias Names utility (DFS3ALI0) • Defines a complete list of catalog aliases to IMS • IMS Catalog Copy utility (DFS3CCE0, DFS3CCI0) • Copies IMS catalog database definitions and metadata between IMS systems • Migrate an IMS catalog database from a test to production environment • Copy a production IMS catalog database to another installation for system cloning or DR purposes (etc…) • IMS Catalog Partition Definition Data Set utility (DFS3UCD0) • When DBRC is not used to manage the catalog database: creates the IMS catalog partition definition data set and populates it with information about the IMS catalog HALDB partitions • IMS Catalog Record Purge utility (DFS3PU10) • Removes unnecessary versions of IMS catalog records from the IMS catalog database based on criteria that you specify19 © 2011 IBM Corporation
    20. 20. IMS Batch Processing with the Catalog • Enabling the IMS catalog for IMS batch processing • Specify DFSDFxxx member on job EXEC parm • Requires JCL change to implement • Use Exit Routine (DFS3CDX0) • Optional Catalog Definition user exit routine • Alternative to specifying DFSDFxxx member through job JCL • Available if users cannot or choose not to modify job JCL20 © 2011 IBM Corporation
    21. 21. IMS Catalog Enablement • Add catalog DBDs and PSBs to your DBDLIB, PSBLIB & ACBLIB • Copy DBD and PSB object code from SDFSRESL to your DBDLIB and PSBLIB //CPYCMEM EXEC PGM=IEBCOPY //SDFSRESL DD DSN=SDFSRESL,DISP=SHR //DBDLIB DD DSN=MYIMS.DBDLIB,DISP=OLD //PSBLIB DD DSN=MYIMS.PSBLIB,DISP=OLD //SYSIN DD * COPY OUTDD=DBDLIB,INDD=((SDFSRESL,R)),LIST=YES SELECT MEMBER=(DFSCD000,DFSCX000) COPY OUTDD=PSBLIB,INDD=((SDFSRESL,R)),LIST=YES SELECT MEMBER=(DFSCPL00,DFSCP000,DFSCP001,DFSCP002,DFSCP003) • ACBGEN the catalog DBD and PSB resources into your ACBLIB //CATACB EXEC PGM=DFSRRC00,PARM=UPB //STEPLIB DD DSN=SDFSRESL,DISP=SHR //DFSRESLB DD DSN=SDFSRESL,DISP=SHR //IMS DD DSN=MYIMS.DBDLIB,DISP=SHR // DD DSN=MYIMS.DBDLIB,DISP=SHR //IMSACB DD DSN=IMS.ACBLIB,DISP=OLD //SYSIN DD * BUILD PSB=(DFSCPL00) BUILD PSB=(DFSCP001) BUILD PSB=(DFSCP000) N.B. The MODBLKS resources for the Catalog databases and programs do not need to be defined !21 © 2011 IBM Corporation
    22. 22. IMS Catalog Enablement • Modify DFSDFxxx PROCLIB Member • New CATALOG section(s) for catalog related parameters • Single section format <SECTION=CATALOG> • Multiple section format <SECTION=CATALOGimsid> • Multiple IMS systems sharing one DFSDFxxx PROCLIB member • imsid suffix must be a four character IMS ID • CATALOG section parameters • CATALOG=N | Y • Catalog is disabled or enabled • If enabled, IMS automatically creates catalog DDIR & PDIRs at IMS startup • ALIAS=DFSC | xxxx (no default value) • Specifies any 1-4 alphanumeric value used as a Catalog database name prefix • Enables use of non-shared, Catalog databases within an IMSplex • Use in a data sharing environment where each IMS has its own Catalog database and all are registered in a single set of RECONs • At runtime, the alias Catalog database names are dynamically replaced with internal database names DFSCD000 and DFSCX000 • For standalone IMS system – use „„DFSC‟‟ which is the standard Catalog database name prefix  DFSCD000 and DFSCX00022 © 2011 IBM Corporation
    23. 23. IMS Catalog Enablement • DFSDFxxx PROCLIB Member • CATALOG section parameters (continued) • Information used by Catalog Populate Utility to automatically allocate the Catalog database data sets • DATACLAS • Optional data class for SMS managed data sets • MGMTCLAS • Optional management class for SMS managed data sets • STORCLAS • Required storage class for SMS managed data sets • IXVOLSER • Volume serial number for primary and secondary catalog indices • Required for non-SMS managed data sets • SPACEALLOC • Free space % (0 to 9999) added to the IMS-computed size of the primary & secondary data set allocations • SMSVOLCT • Number of volumes (1-20) created by the Catalog Populate utility for SMS-managed23 © 2011 IBM Corporation
    24. 24. IMS Catalog Enablement • DFSDFxxx PROCLIB Member • CATALOG section parameters (continued) • RETENTION=(MAX=2 | nnn) or RETENTION=(PERIOD=0 | nnn) • Specifies retention schedule for metadata in the IMS catalog • By default IMS keeps only two copies of the DBD or PSB in catalog • MAX=2 | nnn • Maximum number of versions of a DBD or PSB to be stored before they are replaced first-in first-out • PERIOD=0 | nnn • Maximum number of days a version of a DBD or PSB is to be stored before it can be replaced • Metadata versions older than the specified retention period are not automatically deleted, but available for removal when new version of metadata is added • Default value of “0” disables this feature24 © 2011 IBM Corporation
    25. 25. IMS Catalog Enablement • Definition of the HALDB structure • Partitioning of the catalog is the users responsibility • Minimum of 1 partition is required • Last partition must be able to contain the highest-key PSB record • Catalog HALDB uses the high-key selection method • No use of Partition Selection Exit allowed • Catalog Database Definition • For systems that use DBRC • Catalog database can be defined to the RECONs with the DBRC utility and commands • For systems that do not use DBRC • Catalog database must be defined to the Catalog Partition Definition data set using the Catalog Partition Definition Data Set utility, DFS3UCD0 • If an ALIAS is used in the CATALOG sections of the DFSDFxxx member, each alias Catalog database must be defined25 © 2011 IBM Corporation
    26. 26. IMS Catalog Enablement • Using DBRC DSPURX00 utility and commands to define the Catalog database to the RECONs //DEFCAT EXEC PGM=DSPURX00 //STEPLIB DD DSN=IMS.SDFSRESL,DISP=SHR //SYSPRINT DD SYSOUT=* //IMS DD DSN=IMS.DBDLIB,DISP=SHR //SYSIN DD * INIT.DB DBD(DFSCD000) TYPHALDB SHARELVL(3) INIT.PART DBD(DFSCD000) PART(DFSCD01) – DSNPREFX(dsnprefix.DFSCD000) – BLOCKSZE(4096) – KEYSTRNG(XFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) INIT.DB DBD(DFSCX000) TYPHALDB SHARELVL(3) INIT.PART DBD(DFSCX000) PART(DFSCX01) – DSNPREFX(dsnprefix.DFSCX000) - KEYSTRNG(XFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) /* • If using a catalog alias prefix, replace DFSC in the database and partition names for the catalog and the catalog secondary index with the four character ALIAS name prefix • You might need to define multiple alias name databases to the RECONs26 © 2011 IBM Corporation
    27. 27. IMS Catalog Enablement• Using the Catalog Partition Definition Data Set utility, DFS3UCD0, to define the Catalog database (for systems that do not use DBRC) //S1 EXEC PGM=DFS3UCD0,REGION=0M //STEPLIB DD DSN=IMS.SDFSRESL,DISP=SHR //DFSRESLB DD DSN=IMS.SDFSRESL,DISP=SHR //DFSHDBSC DD DSN=...,DISP= //SYSPRINT DD SYSOUT=* //IMS DD DSN=IMS.DBDLIB,DISP=SHR //SYSIN DD * HALDB=(NAME=DFSCD000) PART=(NAME=DFSCD000,PART=partitionname, Unregistered DSNPREFX=dsnprefix, Catalog database KEYSTRNG=keystring) HALDB=(NAME=DFSCX000) PART=(NAME=DFSCX000,PART=partitionname, DSNPREFX=dsnprefix, KEYSTHEX=FFFFFFFFFFFFFFFF) /* • Catalog Partition Definition data set is populated with the information specified in the HALDB and PART control cards • RECON-like information for catalog database partition definition and structure • The name DFSCD000 in the HALDB and PART statements contains the default catalog prefix DFSC. If your catalog uses an alias name prefix, substitute it in the27 JCL © 2011 IBM Corporation
    28. 28. IMS Catalog Enablement • After Catalog database is defined in Catalog Partition Definition Data Set • Identify unregistered Catalog database names • UNREGCATLG parameter in the DATABASE section of the DFSDFxxx member /******************************************************************/ /* Database Section */ /******************************************************************/ <SECTION=DATABASE> UNREGCATLG=(DFSCD000,DFSCX000) /* Unregistered IMS catalog DB */ /******************************************************************/ /* */ /******************************************************************/ • If using an alias name prefix, replace DFSC in the UNREGCATLG database names with the four character alias name prefix • Limitations of using an unregistered Catalog database • NO IMS Data Sharing support • NO OLR support • NO partition definition change support • User must rebuild catalog partitions • Manual recovery required for unregistered Catalog databases28 © 2011 IBM Corporation
    29. 29. IMS Catalog Enablement • After Catalog database is defined in Catalog Partition Definition Data Set • Create a new DFSMDA dynamic allocation member for the Catalog Partition Definition data set //DYNALOC JOB //* //STEP EXEC IMSDALOC //SYSIN DD * DFSMDA TYPE=INITIAL DFSMDA TYPE=CATDBDEF,DSNAME=dsn DFSMDA TYPE=FINAL END /* • dsn is the name of the Catalog Partition Definition data set • Catalog Partition Definition data set was allocated in the DFS3UCD0 utility on the DFSHDBSC DD • Dynamically allocate Catalog Partition Definition data set in any IMS job step29 © 2011 IBM Corporation
    30. 30. IMS Catalog Lifecycle Populate Utility will populate catalog COBOL/PLI from ACBLIB source Extended PSBGEN PSB source PSBLIB++ PSBLIB ACBLIB++ ACBLIB ACBGEN IMS Explorer DFS3PU00 Extended DBDGEN DBD source DBDLIB++ DBDLIB Catalog DB Client Route  ACBGEN will populate ACBLIB and catalog in same UOW • Populates ACBLIB with standard ACB info and extended info • Populates the catalog with extended info  Key points • Only way to update catalog is via the Populate Utility or ACBGEN process • Extended info is acquired via the IMS Explorer • Extended info stored in ACBLIB members for recoverability30 © 2011 IBM Corporation
    31. 31. IMS Catalog Creation  Populate the IMS Catalog – Load the IMS Catalog using IMS Catalog Populate utility, DFS3PU00 • Each ACB member is decoded, converted to catalog format, loaded into the catalog – Reads ACBLIB, DBDLIB and PSBLIB datasets as input • Data sets can be concatenated but only first occurrence of an ACB member is used • DBDLIB needed for Logical databases and GSAM databases • PSBLIB needed to determine which GSAM databases go into the catalog – Catalog database DBD and PSB segments will have a version and contain a timestamp that matches the ACB member timestamp • Used to associate an ACB member with a catalog member • Timestamp exceptions DBDGEN timestamp for Logical and GSAM DBs PSBGEN timestamp for GSAM only PSBs31 © 2011 IBM Corporation 31
    32. 32. IMS Catalog Creation  IMS Catalog Populate utility, DFS3PU00 – Can run as a typical IMS Batch or BMP job • Requires IMS logs for backout / recovery • Requires IRLM if catalog is shared and catalog active in an IMS subsystem – Business as usual for data sharing • BMP mode allows for updates to catalog in non-data sharing environment • Requires DBRC if catalog is defined in the RECON • If using Catalog Partition Definition Data Set – Users responsible to ensure online catalog access has ceased – Business as usual for non-registered full function DB – Can also be used to insert additional records to an existing Catalog database3232 © 2011 IBM Corporation
    33. 33. IMS Catalog Creation  Load the IMS Catalog using the new ACB Generation and Catalog Populate utility, DFS3UACB – Generates the ACB library members and loads the IMS catalog metadata in the same job step – Not recommended if ACBLIB is already valid • No need to recreate the ACBLIB, just populate the catalog3333 © 2011 IBM Corporation33
    34. 34. Catalog Populate Utility – DFS3PU00 SYSPRINT –DFSDFxxx //IMSACB01 DD PROCLIB RECONs //IMSACBnn DD Member ACBLIBs Catalog Catalog –Populate Utility DBDLIBs –DFS3PU00 PSB DFSCPL00 for initial load PSB DFSCP001 for inserting additional records LOGs PSBLIBs Take an Image Copy of the Catalog database after the initial populate !34 © 2011 IBM Corporation
    35. 35. Catalog Populate Utility Report CATALOG DFSCD000 SEGMENT within existing header duplicates not inserted PARTITION DFSCD01 DBD 71 0 NUMBER OF SEGMENTS INSERTED INTO THE CATALOG INSERTED AVERAGE PSB 72 0 SC SEGMENT SEGMENTS DSG PARENT SEGS/PARENT ESTIMATED SPACE REQUIREMENT TO HOLD INSERTED SEGMENTS DSG BLKSIZE BLOCKS 1 HEADER 4228 A 2 DBD 2530 A HEADER 0.6 A 4096 596 3 CAPXDBD 7 D DBD 0.0 B 4096 9343 5 DSET 2599 D DBD 1.0 7 AREA 139 D DBD 0.1 C 4096 8214 9 SEGM 16337 B DBD 6.5 D 4096 236 10 CAPXSEGM 1 D SEGM 0.0 12 FLD 16426 C SEGM 1.0 DSG RECORDS 14 MAR 16426 C FLD 1.0 L 8886 17 LCHILD 2687 B SEGM 0.2 X 4230 20 XDFLD 134 B LCHILD 0.0 33 PSB 1840 A HEADER 0.4 SECONDARY INDEX RECORDS 35 PCB 9190 B PSB 5.0 DFSCX000 8886 37 SS 75274 B PCB 8.2 39 SF 1105 B SS 0.0 41 DBDXREF 8886 D PSB 4.835 © 2011 IBM Corporation
    36. 36. IMS Catalog Members After Populate Utility ACBLIB Catalog DB1 TS0 Catalog Populate Utility DB1 TS0 DB2 TS0 DFS3PU00 DB2 TS0 DB3 TS0 DB3 TS0 • Start with 3 members in an ACBLIB • Run the Catalog Populate Utility, DFS3PU00 • Created catalog members will contain timestamp TS0 • This is the same timestamp from the ACB member36 © 2011 IBM Corporation
    37. 37. Adding IMS Catalog Metadata• New ACB Generation utility, DFS3UACB • Replaces existing ACBGEN Utility, DFSUACB0 (if IMS catalog enabled) • Generate ACBLIB member and populate/create catalog metadata in a single job step • Phase 1 - ACBGEN • DBDLIB and PSBLIB members used as input • Validation is unchanged • ACB member is written to ACBLIB with new ACBGEN timestamp • Phase 2 – IMS catalog update • Generated ACB is decoded, converted to catalog segments , loaded into the catalog • DBD and PSB metadata created and inserted • Corresponding ACB member timestamp saved as timestamp in catalog DBD and PSB segments • ensures validity and consistency of ACBLIB and catalog• New ACBGEN, DFS3UACB, and new Catalog Populate, DFS3PU00, utilities are the only updaters of the IMS catalog • IMS online and IMS batch regions will never update catalog data • IMS online and IMS batch regions will only retrieve data from the catalog37 © 2011 IBM Corporation
    38. 38. IMS Catalog Additions: New ACBGEN DFSDFxxx SYSPRINT DFSMDA RECONs PROCLIB Member //IMSACB DD ACBLIB //IMSACB01 DD PSBLIB ACBGEN & CAT POP DFS3UACB Catalog DBDLIB Logs • New integrated ACBGEN process includes update to the IMS catalog • DFSDFxxx PROCLIB member has the catalog information • DFSMDA member used to dynamically allocate the catalog datasets38 © 2011 IBM Corporation
    39. 39. ACBLIB and Catalog After New ACBGEN ACBLIB PSBLIB DB1 TS0 DB2 TS0 DBDLIB Phase 1 DB3 TS0 TS1 DB1 ACBGEN & DB2 CAT POP DFS3UACB Catalog DB3 Phase 2 DB1 TS0 DB2 TS0 • User makes a change to DB3 and runs ACBGEN 1. Creates updated DB3 ACB member with new timestamp DB3 TS0 2. Creates new DB3 member in the catalog with the new timestamp DB3 TS139 © 2011 IBM Corporation
    40. 40. Catalog Member Timestamps • Java Application request is made to read DB3 1. IMS determines active DB3 ACB member has timestamp TS0 2. Internal DL/I call issued to retrieve member DB3 from IMS catalog 3. IMS retrieves metadata from catalog member DB3 with timestamp TS0 Inactive ACBLIBB Catalog DB1 TS0 IMS Active DB2 TS0 DB1 TS0 DB3 TS1 DMB ACBLIBA pool DB2 TS0 DB1 TS0 DB3 TS0 DB2 TS0 DB3 TS0 Catalog DB3 TS0 DB3 TS140 © 2011 IBM Corporation
    41. 41. Catalog Member Timestamps • Initiate OLC to switch from ACBLIBA to ACBLIBB • Activates DB3 ACB with timestamp TS1 • Java Application request is made to read DB3 1. Internal DL/I call issued to retrieve member DB3 from IMS catalog 2. IMS determines active DB3 member has timestamp TS1 3. IMS retrieves metadata catalog member DB3 with timestamp TS1 Active Catalog ACBLIBB IMS Inactive DB1 TS0 DB1 TS0 DMB ACBLIBA DB2 TS0 pool DB2 TS0 DB3 TS1 DB1 TS0 DB3 TS1 DB3 TS0 DB2 TS0 Catalog DB3 TS0 DB3 TS141 © 2011 IBM Corporation
    42. 42. Multiple IMSes, Cloned ACBLIBs, Shared Catalog Shared CATALOG DB Shared DFSDFxxx ACBLIBA ALIAS=DFSC IMS1 ACBLIBB RECON1 RECON2 Shared ACBLIBA ACBLIBA Catalog IMS3 IMS2 SPARE ACBLIBB ACBLIBB DFSDF000 Member: <SECTION=CATALOG> CATALOG=Y ALIAS=DFSC ACBLIBA IMS4 ACBLIBB42 © 2011 IBM Corporation
    43. 43. Multiple IMSes, Shared ACBLIBs, each IMS has it‟s own Catalog Non-Shared CATALOG DBs Shared DFSDFxxx IMS1 Separate <SECTION=CATALOGimsid> ALIAS=xxxx DFSDF000 Member: CAT1 <SECTION=CATALOGIMS1> Catalog CATALOG=Y ACBLIBA ALIAS=CAT1 <SECTION=CATALOGIMS2> RECON1 ACBLIBB CATALOG=Y IMS2 CAT2 CAT3 IMS3 ALIAS=CAT2 Catalog RECON2 Catalog <SECTION=CATALOGIMS3> CATALOG=Y SPARE ALIAS=CAT3 <SECTION=CATALOGIMS4> CATALOG=Y CAT4 ALIAS=CAT4 Catalog IMS443 © 2011 IBM Corporation
    44. 44. Multiple IMSes, Shared ACBLIBs, each IMS has it‟s own Catalog Non-Shared CATALOG DBs DFSDF001 Member : Non-Shared DFSDFxxx <SECTION=CATALOG> IMS1 CATALOG=Y ALIAS=xxxx ALIAS=CAT1 CAT1 Catalog ACBLIBA DFSDF003 Member : IMS2 CAT2 RECON1 ACBLIBB CAT3 IMS3 <SECTION=CATALOG> CATALOG=Y Catalog RECON2 Catalog ALIAS=CAT3DFSDF002 Member : SPARE<SECTION=CATALOG>CATALOG=Y CAT4ALIAS=CAT2 Catalog DFSDF004 Member: IMS4 <SECTION=CATALOG> CATALOG=Y44 ALIAS=CAT4 © 2011 IBM Corporation
    45. 45. Application Programming with IMS Catalog • IMS catalog PSBs resident for application programs • DFSCP000 - High-level assembler and COBOL applications • DFSCP002 - PL/I applications • DFSCP003 - PASCAL applications • PCBs included to support different catalog processing models: • DFSCAT00 - Primary PCB to access all data in the catalog database • DFSCATSX – Used access the catalog database via the catalog 2nd index • DFSCATX0 – Used to access the catalog 2nd index as a database • All catalog processing is performed with PROCOPT=G • New “GUR” DL/I call to access Catalog DB records • Application programs can use the GUR call45 © 2011 IBM Corporation
    46. 46. NEW “GUR” DL/I Call • Get Unique Record • Retrieves an XML formatted Catalog database “record” • Restricted to use with the IMS Catalog database • Functions like a GU followed by a series of GNP calls • Less overhead than issuing GU & GNP to retrieve all the metadata for a catalog member • Returns the entire database DBD or PSB record in one call • Using an AIB token, the call can be continued if the I/O area is too small for the entire catalog database record • Data returned in XML format • The XML schemas are included in the IMS.ADFSSMPL data set: • DFS3XDBD.xsd (for DBD records) • DFS3XPSB.xsd (for PSB records) • Support added for DFSDDLT0 and IMS REXX46 © 2011 IBM Corporation
    47. 47. SSA Command Code “O”: Qualify by Position • New SSA command code “O” IMS 12 APAR PM65139 • Non-key field definitions not required in the DBD PTF UK81837 or PTF UK81838 • Allows fields defined in database metadata to be used • Search by position and length vs. field name • 4 byte position, hex value • 4 byte length, hex value • Valid for HDAM, HIDAM, PHDAM, PHIDAM and DEBD databases • Valid for GU, GHU, GN, GNP, GHNP, ISRT calls • Plays well with other command codes • “GE” status code returned if field not found • Support for DFSDDLT0 and IMS REXX • Performance will be the same as non-key field search © 2011 IBM Corporation 47
    48. 48. SSA with command code, position and length • SSA with “O” command code, position and length DBD Database Segments 0 1 2 3 Field Offset Len 123456789012345678901235678901234567 LASTNAME 1 10 LAST1 FIRST1 555-1111 1999999 LAST2 FIRST2 555-2222 2999999 LAST3 FIRST3 555-3333 3999999 COBOL Copybook „bb„ Status Code: segments returned successfully Field Offset Len LASTNAME 1 10 GU TELEBOOK*--(LASTNAME=LAST2 ) FIRSTNME 11 10 GU TELEBOOK*O-(000000010000000A=LAST3 ) EXTENSIN 21 10 ZIPCODE 31 7 GU TELEBOOK*O-(0000000B0000000A=FIRST1 ) Offset Length (Offset is relative to 1 vs. zero)48 © 2011 IBM Corporation
    49. 49. SSA Command Code “O”: Qualify by Position IMS12 APAR PM69378• Support for IMS Universal Drivers PTF UK81917 • Allows users to issue queries qualified on non-searchable fields and have a field‟s position and length generated automatically in the qualified SSA • SQL • Universal Drivers will detect a non-searchable field in the where clause based on database metadata and will internally convert the SSAList qualification • DLI • Universal Drivers will detect a non-searchable field in the SSAList based on database metadata and will internally convert the SSAList qualification © 2011 IBM Corporation 49
    50. 50. IMS Universal Driver Additional Enhancements • Variable length segment support • VL segments contain a two byte length (LL) field that identify size of the segment instance • Universal Drivers are now sensitive to the LL field of a VL segment and will manage the IO area of the segment instance on all CRUD calls50 © 2011 IBM Corporation
    51. 51. Mapping Support • A Map is metadata that describes how a field, or set of fields, are mapped for a particular segment instance • Various mapping cases are captured in the metadata • defines the set of fields to be used for each case • Maps can be defined in the IMS catalog • Example: • Insurance segment mapped multiple ways depending on value of a „Policy Type‟ field Policy Property Rooms Value Address Make Model Year Value Color Type Type M - - - - Ford Escort 1989 2K Red 555 Disk Single H 5 500K Drive Way, - - - - - Family 9514151 © 2011 IBM Corporation
    52. 52. IMS Catalog Benefits • Trusted, online source for IMS metadata • Direct access to IMS metadata in the catalog • Leveraged by the Universal Database Drivers • No need for “local” Java metadata classes52 © 2011 IBM Corporation
    53. 53. Summary • IMS Catalog • Contains information about IMS program resources, database resources, and relevant application metadata • New ACBGEN • Used to auto-populate the catalog • The IMS Catalog: The Next Step in Simplification and Enterprise Integration http://www-01.ibm.com/software/sw-events/teleconference/D108305C25358T22.html • IMS Enterprise Suite Explorer for Development • Generates DBD/PSB source used to populate the catalog • Enables IMS metadata discovery • IMS Enterprise Suite Explorer: The new face of IMS http://www-01.ibm.com/software/sw-events/teleconference/T929253D59548D24.html53 © 2011 IBM Corporation
    54. 54. Two New IMS White Papers!! Download it today at ibm.co/PQ5Hdo Download it today at ibm.com/ims54 © 2011 IBM Corporation
    55. 55. Become Part of Our Community! facebook.com/IMSFans twitter.com/IBM_IMS linkd.in/IBM_IMS imsmadesimple.tumblr.com imslistserv.bmc.co ibm.co/IMS_dWBlogs ibm.com/vrm/newsletter/1106 m 9 www.slideshare.net/ibmims ibm.co/IMS_RUGs bit.ly/IMS_YouTube55 © 2011 IBM Corporation
    56. 56. 56 © 2011 IBM Corporation
    57. 57. BONUS SLIDESNancy SteinIBM IMS Advanced Technical Skillsngstein@us.ibm.com Information Management © 2013 IBM Corporation
    58. 58. IMS Catalog and ACBLIB Migrations © 2011 IBM Corporation
    59. 59. Catalog and ACBLIB Migration from Test to Production  Migration process for changed resources does not change significantly  Use new ACB Generation and Catalog Populate utility, DFS3UACB – DFS3UACB replaces existing ACBGEN Utility DFSUACB0  When copying ACB members from staging to inactive ACBLIB: – Use new IMS Catalog Copy Utility, DFS3CCU0 • DFS3CCU0 replaces Online Change Copy utility DFSUOCU0 • Ensures that the catalog and ACBLIB are kept in sync59 © 2011 IBM Corporation
    60. 60. Testing Environment – Phase I  Developer or DBA makes a change to DB3 and runs ACBGEN 1. Creates updated DB3 ACB member with new timestamp 2. Creates new DB3 member in the catalog with new timestamp Test ACBLIB PSBLIB DB1 TS0 – DB2 TS0 DBDLIB ACBGEN & DB3 TS1 CAT POP DB1 DFS3UACB Test Catalog DB2 DB1 TS0 DB3 DB2 TS0 DB3 TS0 DB3 TS160 © 2011 IBM Corporation
    61. 61. Testing Environment - Phase II  Developer or DBA makes another change to DB3 and runs ACBGEN again 1. Creates updated DB3 ACB member with new timestamp 2. Creates another new DB3 member in the catalog with new timestamp Test ACBLIB PSBLIB DB1 TS0 DBDLIB DB2 TS0 ACBGEN & DB3 TS2 DB1 CAT POP DFS3UACB DB2 Test Catalog DB3 DB1 TS0 DB2 TS0 DB3 TS0 DB3 TS1 DB3 TS261 © 2011 IBM Corporation
    62. 62. QA Environment – Phase III  Developer testing is completed, ready for User testing in the QA system 1.Run ACBGEN for DB3 into the QA ACBLIB and the QA catalog 2.Creates updated DB3 ACB member with new timestamp 3.Creates new DB3 member in the catalog with new timestamp QA ACBLIB PSBLIB DB1 TS0 DBDLIB – ACBGEN & DB2 TS0 DB3 TS3 CAT POP DB1 DFS3UACB DB2 QA Catalog DB3 DB1 TS0 DB2 TS0 DB3 TS0 DB3 TS362 © 2011 IBM Corporation
    63. 63. Catalog and ACBLIB Migration from QA to Production  Ready to propagate corresponding ACBLIB members and IMS catalog members between QA and PROD IMS environments – Need to copy ACBLIB members and corresponding catalog metadata • New Catalog Copy Utility, DFS3CCU0 (recommended method) • Catalog Populate Utility, DFS3PU00  Catalog Copy Utility, DFS3CCU0, can be used for … – Migration of resource changes from one IMS environment to another – IMS System cloning – Maintaining Disaster Recovery system  Catalog Copy Utility, DFS3CCU0, is a two step process – Export step • creates an export data set based on catalog member from ACBLIB – Import step • uses export data set to write to both IMS catalog and ACBLIB • single step updates ACBLIB member and catalog metadata63 © 2011 IBM Corporation
    64. 64. Catalog Copy Utility - DFS3CCU0 Export Step  Exports member(s) from an input IMS catalog – Runs as an IMS Batch or BMP job  Export process –Unloads a single catalog member at a time • Cannot export different versions of the same catalog member –Uses ACBLIB to get timestamp for a catalog member export • If no ACBLIB provided  copy all the catalog members • If no ACBLIB member found  copy the catalog member anyway –Read catalog member looking for the ACBLIB timestamp match –Write catalog member to the export data set  Input –ACBLIB and corresponding IMS catalog  Output –Export data set containing unloaded catalog members –Similar format and size as an unload data set64 © 2011 IBM Corporation
    65. 65. Catalog Copy Utility – DFS3CCU0 Import Step  Imports member(s) to an IMS catalog – Runs as an IMS Batch or BMP job  Import process – Write catalog member from export dataset to the IMS catalog – Internal IEBCOPY of ACBLIB member that matches the catalog member timestamp • If no ACBLIB provided  skip the copy of all catalog members • If no matching ACBLIB member found  skip the catalog member copy  Input – Input ACBLIB – Export data set containing unloaded catalog members  Output – Output ACBLIB member and corresponding catalog member65 © 2011 IBM Corporation
    66. 66. Scenario: IMS Resource Migration  Use the Catalog Copy Utility to migrate resource changes from one IMS environment to another – Example: Migrate IMS QA to IMS PROD environment • ACBGEN is done only in IMS QA environment • PROD Staging ACBLIB is clone of QA ACBLIB • same timestamps • ACBLIB members will determine which catalog members are copied to the production catalog – Process may vary slightly depending on method used for modifying IMS resources • OLC, GOLC, MOLC or IMS restart (if not using OLC)66 © 2011 IBM Corporation
    67. 67. Migration to Production Environment – Phase IV  User testing in the IMS QA system is completed, ready to migrate changes to the IMS PROD system 1. Copy members from QA ACBLIB to PROD Staging ACBLIB QA ACBLIB PROD Staging ACBLIB DB1 TS25 IEBCOPY DB1 TS25 DB2 TS61 DB2 TS61 DB3 TS10 DB3 TS1067 © 2011 IBM Corporation
    68. 68. Migration to Production Environment – Phase IV 2. Export IMS QA catalog members that have a matching timestamp in PROD Staging ACBLIB PROD Staging ACBLIB DB1 TS25 DB2 TS61 Catalog Copy DB3 TS10 DB1 TS25 Utility - “Export” DB2 TS61 DFS3CCU0 DB3 TS10 QA Catalog DB1 TS24,TS25 Catalog EXPORT data set DB2 TS60,TS61 DB3 TS9,TS1068 © 2011 IBM Corporation
    69. 69. Migration to Production Environment - Step IV 3. Import IMS catalog members and ACBLIB members into IMS PROD system – Catalog members from export data set migrated to IMS PROD catalog – ACBLIB members with timestamps matching catalog export data set members migrated from PROD Staging ACBLIB to PROD Inactive ACBLIB PROD Staging ACBLIB DB1 TS25 PROD Inactive ACBLIB DB2 TS61 DB1 TS25 DB3 TS10 DB2 TS61 Catalog Copy DB3 TS10 Utility – “Import” DFS3CCU0 DB1 TS25 PROD Catalog DB2 TS61 DB3 TS10 DB1 TS24,TS25 – DB2 TS60,TS61 DB3 TS9,TS10 Catalog EXPORT data set69 © 2011 IBM Corporation
    70. 70. Migration to Production Environment - Step IV 4. Operator issues OLC commands to bring the new ACB resources online – Inactive ACBLIB becomes active and active ACBLIB becomes inactive – Catalog has both active and inactive members becomes Active X PROD Inactive ACBLIB INIT OLC PHASE(PREPARE) DB1 TS25 INIT OLC PHASE(COMMIT) DB2 TS61 DB3 TS10 IMS PROD Catalog becomes Inactive PROD DB1 TS24,TS25 – DB2 TS60,TS61 X PROD Active ACBLIB DB3 TS9,TS10 DB1 TS24 DB2 TS6070 DB3 TS9 © 2011 IBM Corporation
    71. 71. IMSplex Catalog Sharing71 © 2011 IBM Corporation
    72. 72. IMS Catalog Sharing  Catalog Database Data Sharing – One Catalog database can be defined and shared among IMS systems – Follows standard IMS data sharing protocols and procedures – Use standard processes for database management and monitoring  Non-Shared Catalog database – A separate Catalog database can be defined for each IMS system – DFSDFxxx <SECTION=CATALOG> ALIAS parameter allows multiple Catalog databases to exist within same RECON – Catalog databases should not be shared if not registered with DBRC – Catalog Populate utility can be run as a BMP • Prevents a Catalog database outage when catalog updates needed72 © 2011 IBM Corporation
    73. 73. IMS Catalog Sharing  DFSDFxxx PROCLIB Member – Can be shared or not shared among multiple IMS systems – New CATALOG section differentiates whether catalogs are shared or not shared • If only one definition for <SECTION=CATALOG> – One shared Catalog database – ALIAS=DFSC recommended • If multiple definitions for <SECTION=CATALOGimsid> – imsid differentiates that a Catalog database is not shared – Replace “imsid" in section heading with four byte IMS ID of the IMS system that uses this specific CATALOG <SECTION=CATALOGIMS1> or <SECTION=CATALOGIMS2> – Unique ALIAS=xxxx for each Catalog database • A standalone IMS system uses a DFSDFxxx member with one <SECTION=CATALOG> definition73 © 2011 IBM Corporation
    74. 74. IMS Catalog Sharing  Catalog ALIAS definition – Catalog database ALIAS names must be defined in the DBDLIB • Add ALIAS names to the Catalog database name list in your DBDLIB with the IMS Catalog ALIAS Names utility, DFS3ALI0 – Alias name Catalog database must be defined in the RECON or the Catalog Partition Definition data set • Multiple Catalog databases may exist in the RECON – Alias name Catalog databases are not automatically maintained by IMS • User is responsible to keep Catalog databases in sync • Users with cloned ACBLIBs must have processes to keep ACBLIBs in sync during changes – Processes need to be modified to keep ACBLIBs and catalog in sync74 © 2011 IBM Corporation
    75. 75. Without an IMS Catalog Multiple IMSes, each IMS has it‟s own cloned ACBLIBs ACBLIBA IMS1 ACBLIBB RECON1 ACBLIBA ACBLIBA IMS2 IMS3 RECON2 ACBLIBB ACBLIBB SPARE ACBLIBA IMS4 ACBLIBB75 © 2011 IBM Corporation
    76. 76. Without an IMS Catalog Multiple IMSes, shared ACBLIBs IMS1 RECON1 ACBLIBA IMS2 RECON2 IMS3 ACBLIBB SPARE IMS476 © 2011 IBM Corporation
    77. 77. Multiple IMSes, Cloned ACBLIBs, Shared Catalog Shared CATALOG DB Shared DFSDFxxx ACBLIBA ALIAS=DFSC IMS1 ACBLIBB RECON1 RECON2 Shared ACBLIBA ACBLIBA Catalog IMS3 IMS2 SPARE ACBLIBB ACBLIBB DFSDF000 Member: <SECTION=CATALOG> CATALOG=Y ALIAS=DFSC ACBLIBA IMS4 ACBLIBB77 © 2011 IBM Corporation
    78. 78. Multiple IMSes, Cloned ACBLIBs, each IMS has it‟s own Catalog Non-Shared CATALOG DB DFSDF001 Member : Non-Shared DFSDFxxx ACBLIBA <SECTION=CATALOG> ALIAS=xxxx IMS1 CATALOG=Y ACBLIBB ALIAS=CAT1 CAT1 Catalog RECON1 ACBLIBA ACBLIBA IMS2 CAT2 CAT3 IMS3 RECON2 ACBLIBB Catalog Catalog ACBLIBB SPARE DFSDF003 Member : DFSDF002 Member : <SECTION=CATALOG> <SECTION=CATALOG> CAT4 CATALOG=Y CATALOG=Y ALIAS=CAT3 ALIAS=CAT2 Catalog ACBLIBA IMS4 DFSDF004 Member : <SECTION=CATALOG> ACBLIBB CATALOG=Y ALIAS=CAT478 © 2011 IBM Corporation
    79. 79. Multiple IMSes, Shared ACBLIBs, Shared Catalog Shared CATALOG DB Shared DFSDFxxx ALIAS=DFSC IMS1 RECON1 Shared ACBLIBA RECON2 Catalog SPARE ACBLIBB IMS2 IMS3 DFSDF000 Member: <SECTION=CATALOG> CATALOG=Y ALIAS=DFSC IMS479 © 2011 IBM Corporation
    80. 80. Multiple IMSes, Shared ACBLIBs, each IMS has it‟s own Catalog Non-Shared CATALOG DBs Shared DFSDFxxx IMS1 Separate <SECTION=CATALOGimsid> ALIAS=xxxx DFSDF000 Member: CAT1 <SECTION=CATALOGIMS1> Catalog CATALOG=Y ACBLIBA ALIAS=CAT1 <SECTION=CATALOGIMS2> RECON1 ACBLIBB CATALOG=Y IMS2 CAT2 CAT3 IMS3 ALIAS=CAT2 Catalog RECON2 Catalog <SECTION=CATALOGIMS3> CATALOG=Y SPARE ALIAS=CAT3 <SECTION=CATALOGIMS4> CATALOG=Y CAT4 ALIAS=CAT4 Catalog IMS480 © 2011 IBM Corporation
    81. 81. Multiple IMSes, shared ACBLIBs, each IMS has it‟s own Catalog Non-Shared CATALOG DBs DFSDF001 Member : Non-Shared DFSDFxxx <SECTION=CATALOG> IMS1 CATALOG=Y ALIAS=xxxx ALIAS=CAT1 CAT1 Catalog ACBLIBA DFSDF003 Member : IMS2 CAT2 RECON1 ACBLIBB CAT3 IMS3 <SECTION=CATALOG> CATALOG=Y Catalog RECON2 Catalog ALIAS=CAT3DFSDF002 Member :<SECTION=CATALOG> SPARECATALOG=YALIAS=CAT2 CAT4 Catalog DFSDF004 Member: IMS4 <SECTION=CATALOG> CATALOG=Y81 ALIAS=CAT4 © 2011 IBM Corporation

    ×