ims catalog: background, enablement, praxis - minneapolis rug mar 11 2015

80
© 2015 IBM Corporation IMS Catalog: Background, Enablement, Praxis Nancy Stein IBM zGrowth Team / Washington System Center - IMS MSP IMS User Group March 2015 March 11, 2015

Upload: ibm-ims

Post on 16-Jul-2015

127 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2015 IBM Corporation

IMS Catalog: Background, Enablement, Praxis

Nancy Stein

IBM zGrowth Team / Washington System Center - IMS

MSP IMS User Group – March 2015

March 11, 2015

Page 2: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

Catalog Topics

IMS Catalog Background

What is IMS Metadata ?

IMS Catalog Database

IMS Catalog Enablement and Implementation

Catalog Populate Utility

New ACB Gen and Catalog Populate Utility

IMS Catalog Configuration in an IMSplex

Application Programming with the Catalog

2

Page 3: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

Introduced in IMS 12

– GA’d in Oct 2011

– Optional feature, but strongly recommended

A trusted, online source for IMS database and application metadata

information, fully managed by IMS

Opens up metadata discovery and exchange via IMS Open Database

Enables scalable and flexible IMS Open Database solutions

– Applications no longer need to maintain local Java metadata

Applications and Tools can access via standard interfaces

– IMS DL/I

– JDBC/SQL

– IMS 13 Native COBOL SQL

Major component of the IMS simplification and integration strategy

Foundation for existing and future IMS features

3

IMS Catalog Background

Page 4: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

IMS features dependent upon the Catalog being enabled:

– IMS 13 Database Versioning

– IMS 13 Native SQL support for COBOL

– IMS 13 .NET access to IMS

– IMS 14 Dynamic Database Definition

Products which can exploit the IMS Catalog:

– IMS Explorer for Development

– IBM Data Studio

– COGNOS

– InfoSphere Data Architect

– Rational Asset Analyzer

– IBM WAS Liberty Profile

4

IMS Catalog Background

Page 5: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 5

What Is Metadata?

Business metadata

– Business rules, definitions, terminology, glossaries, algorithms and

lineage using business language

– Audience: Business users

Technical metadata

– Defines source and target systems

• Table and field structures and attributes

• Derivations and dependencies

– Audience: Specific tool users, AD, BI, ETL, profiling, modeling

Operational metadata

– Information about application runtimes

• Frequency, record counts, component by component analysis and

other statistics

– Audience: Operations, management and business users

Literally, “data about data” that describes your company’s information from multiple perspectives

Page 6: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 6

IMS Metadata Before the Catalog

Databases partially defined in the IMS DBD

‒ Only key/seq and searchable fields needed by applications

‒ Remaining segment data is not defined and therefore not known to IMS

Remaining database segment definition is defined within applications

‒ COBOL COPYBOOKs and PL/I INCLUDEs map the segment data

‒ Applications can have different mappings for one segment

PSBLIB DBDLIB

ACBLIB

COBOL & PLI

source

DBD GEN PSB GEN IMS User

Java Classes

IMS Metadata

DBD

source

PSB

source

ACB GEN

Page 7: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 7

DBD source

Local File for IMS Java Metadata

Local

File

PSB source

IMS Explorer

COBOL/PLI

source

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 can be deployed to multiple servers and file locations

• Metadata is offline and not guaranteed to be current

Page 8: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 8

IMS Metadata Before the Catalog

Defined in DBD

Defined in Appl Copylibs

(IMS Java)

Defined in XML Schema:

Local file (or the

IMS Catalog)

01010100101111010101 00001001110100101111

1011011001000101001101 0111011100011001001001

<PurchaseOrder number=“ ”> <lastName> </lastName> <firstName> </firstName> <date> </date> <payment type=“ ”> </payment>

1010001 0111001

0101101010110110010101001010100101010101 0000111011101100101011101010000010101011

10110001001101 01110101001001

101100000101001001101 011101011001001001001

ord# lastName firstName payment type date INT CHAR CHAR CHAR CHAR DATE

113246 IBM IMS 04/26/1968 MC 5432 9999 6789 0000

Page 9: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 9

The IMS Catalog Database

Contains metadata related to an IMS system’s databases and programs

– DBD and PSB and Application information

IMS PHIDAM / OSAM HALDB database

– Defined with 4 Data Set Groups

One Secondary Index

– Can be used to cross reference PSB to DBDs and vice versa

Unique features

– DBRC use is optional for the IMS Catalog database

• “Unregistered Catalog Database”

• Only HALDB that isn’t required to be defined to DBRC

– IMS can manage allocation/creation of the Catalog DB data sets

• Done via parameters in the “CATALOG” section of DFSDFxxx

PROCLIB member

Page 10: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 10

The IMS Catalog Database

The IMS catalog can be updated when you create, alter or delete IMS

database or program resources, or application information

Updates to the IMS catalog are done only via integrated IMS utilites

– Catalog Populate Utility (DFS3PU00)

– New ACBGEN and Catalog Populate Utility (DFS3UACB)

Catalog metadata can be used to:

– Enhance understanding of the data

– Improve consistency of the data

– Improve impact analysis of the data

– Improve development productivity

– Improve data governance

Page 11: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

IMS provides the DBD and PSB source code for the Catalog database

IMS provides the object code for the Catalog DBDs and PSBs

PHIDAM DBD name is DFSCD000

PSINDEX DBD name is DFSCX000

– Used to cross reference DBDs and PSBs

PSBs provided to access the Catalog database

– DFSCPL00 - Initial load process

• Only used by the Catalog Populate Utility (DFS3PU00)

– DFSCP001 - Update access

• Only used by the new ACBGEN Utility (DFS3UACB), Purge Utility (DFS3PU10)

and Catalog Populate Utility (DFS3PU00)

– DFSCP000 – Read access from COBOL/HLASM

– DFSCP002 – Read access from PL/I

– DFSCP003 – Read access from PASCAL

Default catalog PCB is DFSCAT00

ACBGEN required for all catalog PSBs before populating the catalog

The IMS Catalog Database

11

Page 12: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 12

Catalog database root segment is a generic resource header

– Indicates the type of resource – DBD or PSB

– Dependent of the root is a complete DBD or PSB

• Allows multiple instances of a resource to be supported

• Resources are differentiated by their ACBGEN timestamp

‒ DBDGEN timestamp is used for Logical DBDs and GSAM

– Segments in the catalog typically correspond to macro statements

in the DBD and PSB source

– One segment at the first child level under both the DBD and PSB

segments are available for ISV or customer use

• DBDVEND

• PSBVEND

The IMS Catalog Database

Let’s look at the IMS Catalog database physical structure...

Page 13: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

Physical Catalog Record Structure

HEADER

(RESOURCE HEADER)

SS

(SENSEG)

PCB

PSB

SF

(SENFLD)

PSBVEND PSBRMK

(REMARKS)

PCBRMK

(REMARKS)

SFRMK

(REMARKS)

SSRMK

(REMAKRS) XDFLD

LCHILD

AREA CAPXDBD SEGM DSET

(DATASET)

DBD

MAP

(DFSMAP)

DBDRMK

(REMARKS)

CAPXSEGM

CASE

(DFSCASE)

LCHRMK

(REMARKS)

SEGMRMK

(REMARKS)

CMAR

(DFSMARSH)

CPROP

(PROPERTIES)

CFLD

(FIELD)

DBDVEND

CFLDRMK

(REMARKS)

CMARRMK

(REMARKS)

DBDXREF

DSETRMK

(REMARKS)

AREARMK

(REMARKS)

FLD

(FIELD)

MAR

(DFSMARSH) FLDRMK

(REMARKS)

PROP

(PROPERTIES)

MARRMK

(REMARKS)

MAPRMK

(REMARKS)

CASERMK

(REMARKS)

RESERVED RESERVED

LCH2IDX

(INDEX NAME)

XDFLDRMK

(REMARKS)

… RESERVED

DSG A DSG B DSG D DSG C

DFSCX000

Secondary

Index

Key value: DBDbbbbbdbdname1 Key value: PSBbbbbbpsbname1

13

Page 14: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 14

IMS Catalog for Metadata

Contains IMS program & database resources, and relevant application metadata

Database Definitions

Segments

Seq Fields

Search Fields

IMS Catalog Metadata

Extended

PSB source

COBOL & PLI source

IMS Explorer

Application Program Specifications

Arrays and Structures

Field data types and data type conversion

Field redefines

Alternative Field maps for a segment

Extended

DBD source

ACBLIB

DBDGEN / PSBGEN / New ACBGEN

PSB & DBD source

Page 15: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

Extended DBD Source • 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 statement

15

Page 16: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

New 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 physical database

• Example

• Application data type is DECIMAL(10,2) [decimal with precision 10 and scale 2]

• Physical data type is a signed packed decimal

• 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/unmarshal data

• Can be part of a Struct or an Array element

16

Page 17: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

PCB Extended Definition for AIBTDLI

• 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

statements

17

Page 18: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

Populate Utility will

populate catalog

from ACBLIB

18

Extended

DBD source

IMS Catalog Lifecycle

Catalog

Extended

PSB source

PSBGEN

DBDGEN

New

ACBGEN IMS Explorer

COBOL/PLI

source

DFS3PU00

Catalog Discovery

PSBLIB

DBDLIB

ACBLIB

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 • Trusted, online, IMS metadata stored in the IMS catalog

• Only way to update catalog is via the Populate Utility or new ACBGEN process

• Extended info is acquired via the IMS Explorer

• Extended info stored in ACBLIB members for recoverability

DFS3UACB

Page 19: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

Copy the IMS supplied DBDs and PSBs for the IMS catalog to your DBDLIB

and PSBLIB data sets

Run the existing ACB Maintenance utility to generate the IMS catalog ACBs

Activate the ACB library that contains the new IMS catalog ACBs

Code the new <SECTION=CATALOG> section in DFSDFxxx PROCLIB

member

If you choose, manually allocate the Catalog HALDB database data sets or

allow IMS to create the Catalog HALDB datasets automatically

Define the Catalog HALDB master and partitions to DBRC

Load the IMS catalog by running the DFS3PU00, Catalog Populate utility

– If you choose, execute this utility first with the DFSCP000 read PSB to get

Catalog HALDB sizing statistics

Image copy the Catalog, it will be required !

Restart IMS

19

IMS Catalog Enablement

Page 20: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

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

– ACB GEN the catalog PSB resources into your ACBLIB

//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)

//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 !

20

Page 21: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

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, use DFSC for no catalog alias)

• 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 DFSCX000

21

Page 22: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

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

• SMSVOLCT

• Number of volumes (1-20) created by the Catalog Populate utility for

SMS-managed

• SPACEALLOC

• Free space % (0 to 9999) added to the IMS-computed size of the

primary & secondary data set allocations

22

Page 23: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

IMS Catalog Enablement

DFSDFxxx PROCLIB Member

– CATALOG section parameters (continued)

• RETENTION=(INSTANCES=2 | nnnnn, DAYS=0 | nnnnn)

• Specify either parameter or both parameters, max nnnnn value of 65535

• Specifies retention criteria for the IMS catalog DBD and PSB metadata

• INSTANCES=2 | nnnnn

• By default IMS keeps two instances of the DBD and PSB metadata

• Specifies the number of DBD and PSB instances retained in the IMS catalog before instances can be deleted by utility DFS3PU10

• When DBD versioning is used, specifies the number of instances retained in the IMS catalog for each DBD version

• DAYS=0 | nnn

• By default IMS ignores the age of the DBD and PSB metadata instances

• Specifies the number of days DBD and PSB instances are retained in the IMS catalog before instances can be deleted by utility DFS3PU10

• GURCACHE=1 | 999

• Specifies gigabytes of 64bit storage allocated for GURIN64 pool to cache XML documents generated by GUR calls

23

Page 24: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 24

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 defined

Page 25: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

IMS Catalog Enablement

Using DBRC DSPURX00 utility and commands to define the Catalog database to the RECONs

– 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 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(X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')

INIT.DB DBD(DFSCX000) TYPHALDB SHARELVL(3)

INIT.PART DBD(DFSCX000) PART(DFSCX01) –

DSNPREFX(dsnprefix.DFSCX000) -

KEYSTRNG(X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')

/*

25

Page 26: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

IMS Catalog Enablement

Using the Catalog Partition Definition Data Set utility, DFS3UCD0, to define the Catalog database (for systems that do not use DBRC)

– Catalog Partition Definition data set (//DFSHDBSC DD) 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 the JCL

//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,

DSNPREFX=dsnprefix,

KEYSTRNG=keystring)

HALDB=(NAME=DFSCX000)

PART=(NAME=DFSCX000,PART=partitionname,

DSNPREFX=dsnprefix,

KEYSTHEX=FFFFFFFFFFFFFFFF)

/*

Unregistered

Catalog database

26

Page 27: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

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

– 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 databases

/******************************************************************/

/* Database Section */

/******************************************************************/

<SECTION=DATABASE>

UNREGCATLG=(DFSCD000,DFSCX000) /* Unregistered IMS catalog DB */

/******************************************************************/

/* */

/******************************************************************/

27

Page 28: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

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

– 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 step

//DYNALOC JOB

//*

//STEP EXEC IMSDALOC

//SYSIN DD *

DFSMDA TYPE=INITIAL

DFSMDA TYPE=CATDBDEF,DSNAME=dsn

DFSMDA TYPE=FINAL

END

/*

28

Page 29: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

Catalog Populate Utility Statistics Report

29

N.B. Run the Catalog Populate Utility, DFS3PU00, with the READ PSB, DFSCP000, to get Catalog sizing statistics before you actually run it with the LOAD PSB, DFSCPL00

Page 30: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

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 PSBs

30

IMS Catalog Populate Utility

Page 31: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

Populate the IMS Catalog (continued)

– If any of the database data sets do not exist,

• DFS3PU00 creates them automatically - the DFSCD000 database data

sets are:

‒ Four data set group data sets for the IMS catalog segments

‒ The primary index data set

‒ The indirect list data set (ILDS)

‒ DFSCX000 secondary index data set

‒ DFS3PU00 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

31

IMS Catalog Populate Utility

Page 32: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

Populate the IMS Catalog (continued)

– The DFS3PU00, Catalog Populate utility, can run as a 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

• Requires DBRC if the Catalog HALDB is defined in the RECON

• If using Catalog Partition Definition Data Set

‒ User’s responsible to ensure online catalog access has ceased

‒ Business as usual for non-registered full function DB

32

IMS Catalog Populate Utility

Page 33: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 33

IMS Catalog Populate Utility

Use load PSB, DFSCPL00, for initial load and use update PSB, DFSCP001, to insert

additional records

Page 34: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 34

IMS Catalog After Catalog Populate Utility

Catalog

Populate Utility

DFS3PU00

DB1 TS0

DB2 TS0

DB3 TS0

DB1 TS0

DB2 TS0

DB3 TS0

• Start with 3 members in an ACBLIB

• Run the Catalog Populate Utility, DFS3PU00

• DBD & PSB catalog records created will have timestamp TS0

• This is the timestamp from the ACB member

Catalog ACBLIB

Page 35: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

Adding IMS Catalog Metadata

New ACB Generation and Catalog Populate utility - DFS3UACB

– Replaces existing ACBGEN Utility, DFSUACB0, if IMS catalog enabled

– Generate ACBLIB member and 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, inserted into catalog

• DBD and PSB records containing 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 catalog

35

Page 36: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 36

PSBLIB

DBDLIB

ACBGEN &

CAT POP

DFS3UACB

Catalog

ACBLIB

Logs

DFSDFxxx

PROCLIB

Member

New IMS ACBGEN

SYSPRINT RECONs

• New integrated ACBGEN process includes updates to the IMS catalog

• DFSDFxxx PROCLIB member has the catalog information

• DFSMDA member used to dynamically allocate the catalog datasets if not

registered to DBRC

//IMSACB DD

//IMSACB01 DD

DFSMDA

Use update PSB, DFSCP001, to insert additional records

Page 37: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 37

ACBLIB and Catalog After New ACBGEN

ACBGEN &

CAT POP

DFS3UACB

DB1

DB2

DB3

DB1 TS0

DB2 TS0

DB3 TS1

DB1 TS0

DB2 TS0

DB3 TS0

Catalog

ACBLIB

DBDLIB

DB3 TS1

DB3 TS0 Phase 1

Phase 2

PSBLIB

• User 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 the new

timestamp

Page 38: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 38

Catalog Timestamps

Active

Catalog

• Application request is made to read DB3

1. IMS determines active DB3 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

DB1 TS0

DB1 TS0

DB2 TS0

DB3 TS0

Catalog ACBLIBB

DB3 TS1

DB2 TS0

DB3 TS1

DB1 TS0

ACBLIBA

DB2 TS0

DB3 TS0

Inactive

IMS

DMB pool

DB3 TS0

IMS DB

Page 39: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 39

Catalog Timestamps

Catalog

• Initiate OLC to switch from ACBLIBA to ACBLIBB

• Activates DB3 ACB with timestamp TS1

• 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

DB1 TS0 DB1 TS0

DB2 TS0

DB3 TS0

Catalog ACBLIBB

DB3 TS1

DB2 TS0

DB3 TS1

DB1 TS0

ACBLIBA

DB2 TS0

DB3 TS0

Inactive

Active

IMS

DMB pool

DB3 TS1

IMS DB

Page 40: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 40

IMS2

IMS1

IMS4

IMS3 ACBLIBA

Multiple IMSes, Cloned ACBLIBs, Shared Catalog

Shared

Catalog

ACBLIBB

ACBLIBA

ACBLIBB

ACBLIBA

ACBLIBB

ACBLIBA

ACBLIBB

Shared CATALOG DB Shared DFSDFxxx ALIAS=DFSC

DFSDF000 Member: <SECTION=CATALOG> CATALOG=Y ALIAS=DFSC

RECON1

RECON2

SPARE

Page 41: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 41

IMS2

IMS1

IMS4

IMS3

ACBLIBA

Multiple IMSes, Shared ACBLIBs, each IMS has it’s own Catalog

ACBLIBB

CAT1

Catalog

CAT2

Catalog

CAT4

Catalog

CAT3

Catalog

Non-Shared CATALOG DBs Shared DFSDFxxx Separate <SECTION=CATALOGimsid> ALIAS=xxxx

RECON1

RECON2

SPARE

DFSDF000 Member:

<SECTION=CATALOGIMS1>

CATALOG=Y

ALIAS=CAT1

<SECTION=CATALOGIMS2>

CATALOG=Y

ALIAS=CAT2

<SECTION=CATALOGIMS3>

CATALOG=Y

ALIAS=CAT3

<SECTION=CATALOGIMS4>

CATALOG=Y

ALIAS=CAT4

Page 42: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 42

IMS2

IMS1

IMS4

IMS3

ACBLIBA

Multiple IMSes, Shared ACBLIBs, each IMS has it’s own Catalog

ACBLIBB

DFSDF001 Member : <SECTION=CATALOG> CATALOG=Y ALIAS=CAT1

DFSDF003 Member : <SECTION=CATALOG> CATALOG=Y ALIAS=CAT3

DFSDF002 Member : <SECTION=CATALOG> CATALOG=Y ALIAS=CAT2

DFSDF004 Member : <SECTION=CATALOG> CATALOG=Y ALIAS=CAT4

CAT1

Catalog

CAT2

Catalog

CAT4

Catalog

CAT3

Catalog

Non-Shared CATALOG DBs Non-Shared DFSDFxxx ALIAS=xxxx

RECON1

RECON2

SPARE

Page 43: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

Application Programming with the 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 DBD and PSB records

• Application programs can use the GUR call

43

Page 44: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

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 REXX

44

Page 45: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 45

Enabling the IMS catalog for IMS batch processing

– Specify DFSDFxxx member on job EXEC parm

– Requires JCL change to implement

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 JCL

IMS Batch Processing with the Catalog

IMS12 Catalog Definition

Page 46: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

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 Catalog

46

Page 47: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

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 UOW

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 specify

47

Page 48: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

Some IMS Catalog Considerations

Make sure every one is on-board

– Work as a team, Sysprogs, DBAs and Developers, to establish

an implementation plan

– Communicate the plan and revisions

Think about, discuss and develop

–Cleaning up the ACBLIB before you start

–Procedure for maintaining DBD, PSB and COPYBOOK source

–Process for rolling into production new DBDs and PSBs

–Management and cleanup of Catalog DBD and PSB instances

–Access to objects - tooling makes administration easy

–Procedure for auditing changes

–Changes made without visibility or created with wrong ACBGEN

–Decide who will run the ACBGENs

–Who builds and maintains the IMS catalog HALDB database

• Partitioning / Repartitioning

• Image Copies and Recoveries

• DB Performance Tuning

• Care and Feeding (ie. Maintenance)

48

Page 49: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

IMS Catalog Benefits

Trusted, online source for IMS metadata

No need for “local” Java metadata classes

Direct access to IMS metadata in the catalog

• IMS Explorer for Development

• “GUR” DL/I call

• Java Clients

• Other Tooling

Leveraged by the Universal Database Drivers

49

Page 50: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 50

IMS Catalog

• Contains information about IMS database resources, program

resources, and relevant application metadata

• Must use new ACBGEN

• Populate and maintain the Catalog metadata

• The IMS Catalog: The Next Step in Simplification and Enterprise

Integration

http://www-01.ibm.com/software/sw-events/teleconference/D108305C25358T22.html

• IMS 12: The IMS Catalog Redpaper

http://www.redbooks.ibm.com/redpieces/abstracts/REDP4812.html?Open

IMS Enterprise Suite Explorer for Development

• Generate or update DBD/PSB source used to populate the catalog

• Enables IMS metadata discovery from the IMS Catalog

• IMS Enterprise Suite Explorer: The new face of IMS

http://www-01.ibm.com/software/sw-events/teleconference/T929253D59548D24.html

IMS Catalog Summary

Page 51: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 51

Page 52: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 52

Page 53: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 53

New SSA command code “O”

• Non-key field definitions not required in the DBD

• 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

IMS 12

APAR PM65139

PTF UK81837 or

PTF UK81838

SSA Command Code “O”: Qualify by Position

53

Page 54: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

SSA with command code, position and length

0 1 2 3

123456789012345678901235678901234567

LAST1 FIRST1 555-1111 1999999

LAST2 FIRST2 555-2222 2999999

LAST3 FIRST3 555-3333 3999999

Database Segments

Field Pos Len

LASTNAME 1 10

DBD

COBOL Copybook

GU TELEBOOK*--(LASTNAME=LAST2 )

GU TELEBOOK*O-(000000010000000A=LAST3 )

GU TELEBOOK*O-(0000000B0000000A=FIRST1 )

Field Pos Len

LASTNAME 1 10

FIRSTNME 11 10

EXTENSIN 21 10

ZIPCODE 31 7

Position Length

‘bb‘ Status Code: segments returned successfully

SSA with “O” command code, position and length

(Position is relative to 1 vs. zero)

54

Page 55: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 55

Support for IMS Universal Drivers

• 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 SSA List qualification

• DLI

• Universal Drivers will detect a non-searchable field in the SSA

List based on database metadata and will internally convert the

SSA List qualification

IMS12

APAR PM69378

PTF UK81917

SSA Command Code “O”: Qualify by Position

55

Page 56: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

IMS Enterprise Suite

A set of components available for both z/OS® and distributed

platforms that support open integration technologies

• enables, simplifies and expands new IMS application

development and administration

• extends access to IMS transactions and data

Provides user-friendly standard and graphical user interfaces

through tooling support from the WebSphere® and Rational®

product families

Simplifies IMS metadata generation

Enables mobile services

The IMS Enterprise Suite is a no-cost product for unlimited installs

56

Page 57: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

IMS Enterprise Suite Components

IMS Enterprise Suite SOAP Gateway – IMS applications can call out to web services, or be called from web services,

independent of platform, environment, programming language, or

programming model.

– allows you to get more value from your trusted IMS application assets in an

SOA environment, without requiring changes to your business logic

IMS Enterprise Suite Connect APIs for Java and C – extend connectivity of distributed platforms to IMS and simplify application

development for stand-alone, user-written IMS Connect clients

IMS Enterprise Suite Data Provider for Microsoft .NET – enables you to use standard SQL queries to access IMS data from .NET

applications.

– delivers high-performing, secure access to IMS data and simplifies the

development of Microsoft .NET applications (for example, C# and Visual Basic)

that access IMS

57

Page 58: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

IMS Enterprise Suite Components

IMS Enterprise Suite Explorer for Development (IMS Explorer for

Development) – an Eclipse-based graphical tool that simplifies IMS application development

tasks

– use to display and edit IMS databases, segments, fields and more

– this tooling also provides mobile server administration to the IMS Mobile

Feature Pack

The IBM IMS Mobile Feature Pack (IMS Mobile) – provides the solution to easily enable your IMS transaction assets as services

for mobile and cloud consumption

IMS Explorer for Administration – an extension of IBM Tools Base Administration Console for System z

– provides tools to gather information about and administer IMS transactions,

databases, application programs, Fast Path routing codes, and IMSplex

members

– use to query, start and stop IMS resources from an easy-to-use browser

interface

– does not require any additional IBM IMS Tools products

58

Page 59: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation 59

IMS Webcast Replay - http://ibm.co/18mNG1l

Page 60: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation 60

IMS ISPF

IMS Explorer for Administration (Web Browser)

Administrators Developers

IMS Explorer for Development (Eclipse)

IMS User Interfaces

Mobile

Page 61: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation 61

IMS Explorer for Development

Visualize IMS database structure as defined by DBD source

Change IMS Database and Program Definitions sources

Graphically access IMS data using SQL

View your mainframe datasets

Submit JCL and inspect output in JES

IMS Catalog Navigation View

IMS Transaction Unit Test Support

Automatic Generation

New

New

Page 62: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 62

DBD + PSB = IMS DB Schema

D A B B D C

a b c d

e f j k l

A

B D

h i

C

DBD, PCB,

Copybooks

DBD/PCB = DB Schema

IMS DB on Physical Disk

IMS DB Hierarchy

IMS Program I/O Area

g

A B C

Page 63: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation 63

Hierarchical to Relational Terminology Mapping

UU45 | Dodge | Viper

PR27 | Dodge | Durango

53SJ9 | Mary | 111 Penny Lane

53SJ8 | Bob | 240 Elm St.

Dealer Segment

Model Segment

FF13 | Toyota | Camry

53SJ7 | George | 555 Bailey Ave.

Hierarchical Design Relational Design

DealerID DealerName DealerAddress

Dealer Table

ID Make Model Dealer

Model Table

UU45 Dodge Viper 53SJ7 0

PR27 Dodge Durango 53SJ7 0

FF13 Toyota Camry 53SJ7 0

JR27 Dodge Durango 53SJ8 1

WJ45 Mercury Cougar 53SJ8 1

... ... ... ... ...

0 53SJ7 George 555 Bailey Ave.

1 53SJ8 Bob 240 Elm St.

2 53SJ9 Mary 111 Penny Ln.

... ... ... ...

Note: Segment Names ~ Table Names

Segment Instances ~ Table Rows

Segment Field Names ~ Column Names

Segment unique key ~ Table primary key

IMS foreign key field ~ Table foreign key

PCB ~ Schema

JPR27 | Dodge | Durango

WJ45 | Mercury | Cougar

63

Page 64: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 64

Query Governance – Join Operations

Logical Child “B”

A

E D B

C F G

Logical Parent “D”

64

Page 65: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

SQL and IMS Concepts

A Segment(Table)

Fields(Columns)

A11|A12|A13

B

A11

B1

C

A11

B1

C1 Segment Instances

(Table Row)

Segment Key (Table Primary Key)

IMS Foreign Key (Table Foreign Key)

65

Page 66: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

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

calls

66

Page 67: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation

Mapping Support

A Map is metadata that describes how a field, or set of fields, are mapped

for a particular segment instance

Maps can be defined in the IMS catalog

Various mapping cases are captured in the metadata

• defines the set of fields to be used for each case

Example:

• Insurance segment mapped multiple ways depending on value of a

‘Policy Type’ field

Policy Type

Property Type

Rooms Value Address Make Model Year Value Color

M - - - - Ford Escort 1989 2K Red

H Single Family

5 500K 555 Disk

Drive Way, 95141

- - - - -

67

Page 68: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

Runtime Catalog Benefits

All Universal drivers leverage the IMS catalog

–Trusted, online source for IMS metadata

–Direct access to IMS metadata in the catalog

–Used by the Universal Database Drivers

–Java clients no longer require separate Java metadata classes

68

Page 69: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation

Runtime Catalog Access

IMS Connect

DB DB

Catalog

IMS

ODBM

DL/I or Type 2

Universal Drivers

(SQL/DLI/XML)

WAS z

DRDA/TCPIP

SQL/DLI

SQL/DLI SCI

DLI

Users IMS Explorer

Tools

Type 4

Universal

Drivers

(SQL/DLI/XML)

Applications

SQL/DLI

Dependent

Regions

(MPP,JMP,IFP

,BMP,JBP)

Type 2

Universal Drivers

(SQL/DLI/XML)

CICS

DB2 z

SP

Type 4

Universal Drivers

(SQL/DLI/XML)

DRDA/TCPIP

69

Page 70: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 70

Enables access to IMS databases anywhere in the Enterprise directly from

local and distributed Java clients

– Clients use industry standard DRDA (Distributed Relational Database

Architecture) to communicate with IMS Connect

• Universal Drivers

• Universal DB Resource Adapter (JEE)

• Universal JDBC Driver

• Universal DLI Driver

• Roll Your Own

Opens the IMS Databases

Makes IMS DB Connectivity and

Application development simpler

IMS Connect becomes the TCP/IP gateway to IMS Transactions and IMS Data

IMS Open Database (IMS V11)

SQL

Page 71: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 71

Type 4 Driver Support –Universal drivers support Type 4 connectivity to IMS databases

from TCP/IP enabled platforms and runtimes

• WebSphere Application Server

• Windows

• zLinux

• z/OS

• Standalone Java SE

Type 2 Driver Support –Universal drivers support Type 2 connectivity to IMS databases

from z/OS runtimes

• WebSphere Application Server for z/OS

• IMS Java dependent regions (JMP & JBP)

• CICS

–All environments zAAP eligible (includes zAPP on zIIP)

Open Database Connectivity

Page 72: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 72

IMS IMS

IMS

IMS

IMS IMS

IMS

IMS

IMS Open Database

J2EE

JDBC Universal

Drivers

DLI

TCP/IP

TCP/IP

J2EE

JDBC

Universal

Drivers

DLI

Direct

z/OS

Distributed (LUW)

z/OS

Page 73: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 73

IMS Universal Drivers

Three IMS Universal Drivers

–Universal DB Resource Adapter

• JEE deployment

• Standard Java SE deployment

• WebSphere Appl. Server

• SQL Calls

–Universal JDBC driver

• Non-JEE and JEE deployment

• Standard Java SE deployment

• SQL Calls

–Universal DLI driver

• Non-JEE and JEE deployment

• Standard Java SE deployment

• DL/I call concepts (SSA, command codes)

Page 74: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 74

Universal Driver – JEE

Universal DB Resource Adapter

– JCA 1.5

• XA transaction support

• Manage multiple datasource connections in a single UOW

• Local transaction support

• Manage multiple datasource connections each in their own UOW

• Connection pooling

• Connections released for future use

• Connection sharing

• Multiple programming models available

• JDBC (Universal JDBC driver incorporated)

• CCI with SQL interactions

• CCI with DLI interactions

Page 75: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 75

Universal Driver – JDBC

Universal JDBC driver

–Significant enhancements to classic JDBC offered in IMS 9 and IMS 10

• Standardized SQL support for an SQL subset

Keys of parent segments are included in tables as foreign keys

• XA transaction support (type 4)

• Local transaction support (type 2)

• Concurrency control

Control release of distributed locks

• Updatable result set support

• Batch support

Fetch multiple rows in a single network call

• JDBC metadata discovery support

Standard SQL and metadata discovery enables significant

integration opportunities for IMS – Use metadata stored in the IMS Catalog

– Enable JDBC tooling to work with IMS DBs

Page 76: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 76

Universal Driver – DLI

Universal DLI driver

–Java implementation of the DL/I API

–Complete DL/I support for database access

–All IMS command codes supported

–Can mix usage of JDBC and DLI drivers in the same application

• SQL cannot always express what DLI offers

Page 77: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 77

Java Dependent Region – Resource Adapter

Java dependent region resource adapter

– Java framework for applications operating in an IMS

container

• Message queue processing

• Program switching

• Asynchronous (deferred) and Synchronous (immediate)

• Transaction demarcation

• GSAM support

• Additional IMS call support necessary for IMS transactions

• INQY

• INIT

• LOG

• Etc…

– Shipped with Type 2 Universal Drivers

Page 78: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 78

Open Database Manager - ODBM

z/OS address space

– Common Service Layer component

Functions

– Receives database connection requests from IMS Connect

– Translates incoming database requests from DDM protocol to DL/I calls

– Manages ODBA or DRA interface to IMS

– Sends/receives byte string to/from IMS

– Translates responses into DDM protocol for the client

– Send results set back to client

Provides isolation of application containers from IMS

– Abend of container during DL/I call does not cause IMS U0113 abend

Distributed Syncpoint (global transaction) requires RRS on z/OS

Use of RRS with ODBM is optional

– If RRS=Y, ODBM uses ODBA interface

– If RRS=N, ODBM uses DRA interface (the DBCTL interface)

Page 79: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation

Open Database Manager - ODBM

ODBM

IMS Universal DB Drivers

Application Requestor

TCP/IP Client

z/OS

TCP/IP

DDM IMS Connect

TCPIP

DRDA PORT

IMS

SCI

DRDA DLI Calls

DRA or

ODBA

DRDA IMS Application Server

IMS DB’s

IMS Connect and Open Database Manager work together as a DRDA server for IMS data

Allows distributed access to IMS Databases via TCP/IP using the IMS Universal Database Drivers

Enables use of SQL database query language for access to IMS Databases

IMS CAT

79

Page 80: IMS Catalog:  Background, Enablement, Praxis  - Minneapolis RUG Mar 11 2015

© 2014 IBM Corporation © 2015 IBM Corporation 80

Open Database Manager - ODBM

ODBM Setup and Configuration

– PROCLIB members

• ODBM BPE Configuration

• ODBM BPE exit list

• ODBM Initialization member – CSLDIxxx

• ODBM Configuration member – CSLDCxxx

– CSLODBM procedure

– ODBM execution parameters

New type-2 commands

– QUERY ODBM TYPE(option)

– UPDATE ODBM START|STOP(TRACE)

– UPDATE ODBM START|STOP(CONNECTION)

– UPDATE ODBM TYPE(CONFIG)

New ODBM exit routines