Power Exchange
Power Exchange
0)
Informatica PowerExchange CDC Guide for z/OS Version 9 .0 December 2009 Copyright (c) 1998-2009 Informatica. All rights reserved.
This software and documentation contain proprietary information of Informatica Corporation and are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright law. Reverse engineering of the software is prohibited. No part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording or otherwise) without prior consent of Informatica Corporation. This Software may be protected by U.S. and/or international Patents and other Patents Pending. Use, duplication, or disclosure of the Software by the U.S. Government is subject to the restrictions set forth in the applicable software license agreement and as provided in DFARS 227.7202-1(a) and 227.7702-3(a) (1995), DFARS 252.227-7013 (1)(ii) (OCT 1988), FAR 12.212(a) (1995), FAR 52.227-19, or FAR 52.227-14 (ALT III), as applicable. The information in this product or documentation is subject to change without notice. If you find any problems in this product or documentation, please report them to us in writing. Informatica, Informatica Platform, Informatica Data Services, PowerCenter, PowerCenterRT, PowerCenter Connect, PowerCenter Data Analyzer, PowerExchange, PowerMart, Metadata Manager, Informatica Data Quality, Informatica Data Explorer, Informatica B2B Data Transformation, Informatica B2B Data Exchange and Informatica On Demand are trademarks or registered trademarks of Informatica Corporation in the United States and in jurisdictions throughout the world. All other company and product names may be trade names or trademarks of their respective owners. Portions of this software and/or documentation are subject to copyright held by third parties, including without limitation: Copyright DataDirect Technologies. All rights reserved. Copyright Sun Microsystems. All rights reserved. Copyright RSA Security Inc. All Rights Reserved. Copyright Ordinal Technology Corp. All rights reserved.Copyright Aandacht c.v. All rights reserved. Copyright Genivia, Inc. All rights reserved. Copyright 2007 Isomorphic Software. All rights reserved. Copyright Meta Integration Technology, Inc. All rights reserved. Copyright Intalio. All rights reserved. Copyright Oracle. All rights reserved. Copyright Adobe Systems Incorporated. All rights reserved. Copyright DataArt, Inc. All rights reserved. Copyright ComponentSource. All rights reserved. Copyright Microsoft Corporation. All rights reserved. Copyright Rouge Wave Software, Inc. All rights reserved. Copyright Teradata Corporation. All rights reserved. Copyright Yahoo! Inc. All rights reserved. Copyright Glyph & Cog, LLC. All rights reserved. This product includes software developed by the Apache Software Foundation (http://www.apache.org/), and other software which is licensed under the Apache License, Version 2.0 (the "License"). You may obtain a copy of the License at http://www.apache.org/licenses/ LICENSE-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This product includes software which was developed by Mozilla (http://www.mozilla.org/), software copyright The JBoss Group, LLC, all rights reserved; software copyright 1999-2006 by Bruno Lowagie and Paulo Soares and other software which is licensed under the GNU Lesser General Public License Agreement, which may be found at http://www.gnu.org/licenses/lgpl.html. The materials are provided free of charge by Informatica, "as-is", without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. The product includes ACE(TM) and TAO(TM) software copyrighted by Douglas C. Schmidt and his research group at Washington University, University of California, Irvine, and Vanderbilt University, Copyright ( ) 1993-2006, all rights reserved. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (copyright The OpenSSL Project. All Rights Reserved) and redistribution of this software is subject to terms available at http://www.openssl.org. This product includes Curl software which is Copyright 1996-2007, Daniel Stenberg, <[email protected]>. All Rights Reserved. Permissions and limitations regarding this software are subject to terms available at http://curl.haxx.se/docs/copyright.html. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. The product includes software copyright 2001-2005 ( ) MetaStuff, Ltd. All Rights Reserved. Permissions and limitations regarding this software are subject to terms available at http://www.dom4j.org/ license.html. The product includes software copyright 2004-2007, The Dojo Foundation. All Rights Reserved. Permissions and limitations regarding this software are subject to terms available at http:// svn.dojotoolkit.org/dojo/trunk/LICENSE. This product includes ICU software which is copyright International Business Machines Corporation and others. All rights reserved. Permissions and limitations regarding this software are subject to terms available at http://source.icu-project.org/repos/icu/icu/trunk/ license.html. This product includes software copyright 1996-2006 Per Bothner. All rights reserved. Your right to use such materials is set forth in the license which may be found at http://www.gnu.org/software/ kawa/Software-License.html. This product includes OSSP UUID software which is Copyright 2002 Ralf S. Engelschall, Copyright 2002 The OSSP Project Copyright 2002 Cable & Wireless Deutschland. Permissions and limitations regarding this software are subject to terms available at http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by Boost (http://www.boost.org/) or under the Boost software license. Permissions and limitations regarding this software are subject to terms available at http:/ /www.boost.org/LICENSE_1_0.txt. This product includes software copyright 1997-2007 University of Cambridge. Permissions and limitations regarding this software are subject to terms available at http://www.pcre.org/license.txt. This product includes software copyright 2007 The Eclipse Foundation. All Rights Reserved. Permissions and limitations regarding this software are subject to terms available at http:// www.eclipse.org/org/documents/epl-v10.php. This product includes software licensed under the terms at http://www.tcl.tk/software/tcltk/license.html, http://www.bosrup.com/web/ overlib/?License, http://www.stlport.org/doc/license.html, http://www.asm.ow2.org/license.html, http://www.cryptix.org/LICENSE.TXT, http://hsqldb.org/web/hsqlLicense.html, http://httpunit.sourceforge.net/doc/license.html, http://jung.sourceforge.net/license.txt , http:// www.gzip.org/zlib/zlib_license.html, http://www.openldap.org/software/release/license.html, http://www.libssh2.org, http://slf4j.org/ license.html, and http://www.sente.ch/software/OpenSourceLicense.htm. This product includes software licensed under the Academic Free License (http://www.opensource.org/licenses/afl-3.0.php), the Common Development and Distribution License (http://www.opensource.org/licenses/cddl1.php) the Common Public License (http:// www.opensource.org/licenses/cpl1.0.php) and the BSD License (http://www.opensource.org/licenses/bsd-license.php). This product includes software copyright 2003-2006 Joe WaInes, 2006-2007 XStream Committers. All rights reserved. Permissions and limitations regarding this software are subject to terms available at http://xstream.codehaus.org/license.html. This product includes software developed by the Indiana University Extreme! Lab. For further information please visit http://www.extreme.indiana.edu/. This Software is protected by U.S. Patent Numbers 5,794,246; 6,014,670; 6,016,501; 6,029,178; 6,032,158; 6,035,307; 6,044,374; 6,092,086; 6,208,990; 6,339,775; 6,640,226; 6,789,096; 6,820,077; 6,823,373; 6,850,947; 6,895,471; 7,117,215; 7,162,643; 7,254,590; 7, 281,001; 7,421,458; and 7,584,422, international Patents and other Patents Pending.. DISCLAIMER: Informatica Corporation provides this documentation "as is" without warranty of any kind, either express or implied, including, but not limited to, the implied warranties of non-infringement, merchantability, or use for a particular purpose. Informatica Corporation does not warrant that this software or documentation is error free. The information provided in this software or documentation may include technical inaccuracies or typographical errors. The information in this software and documentation is subject to change at any time without notice.
NOTICES This Informatica product (the Software) includes certain drivers (the DataDirect Drivers) from DataDirect Technologies, an operating company of Progress Software Corporation (DataDirect) which are subject to the following terms and conditions: 1. THE DATADIRECT DRIVERS ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 2. IN NO EVENT WILL DATADIRECT OR ITS THIRD PARTY SUPPLIERS BE LIABLE TO THE END-USER CUSTOMER FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR OTHER DAMAGES ARISING OUT OF THE USE OF THE ODBC DRIVERS, WHETHER OR NOT INFORMED OF THE POSSIBILITIES OF DAMAGES IN ADVANCE. THESE LIMITATIONS APPLY TO ALL CAUSES OF ACTION, INCLUDING, WITHOUT LIMITATION, BREACH OF CONTRACT, BREACH OF WARRANTY, NEGLIGENCE, STRICT LIABILITY, MISREPRESENTATION AND OTHER TORTS. Part Number: PWX-CCz-900-0001
Table of Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
Informatica Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Informatica Customer Portal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Informatica Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Informatica Web Site. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Informatica How-To Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Informatica Knowledge Base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Informatica Multimedia Knowledge Base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Informatica Global Customer Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Part I: PowerExchange Change Data Capture Introduction. . . . . . . . . . . . . . . . . . . . . . . . . 1 Chapter 1: Change Data Capture Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
PowerExchange CDC Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 PowerExchange Components for CDC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 PowerExchange Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 PowerExchange Environmental Change Capture Routine (ECCR). . . . . . . . . . . . . . . . . . . 4 PowerExchange Listener. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 PowerExchange Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 PowerExchange Condense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 PowerExchange Navigator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 PowerExchange CDC for MVS Data Sources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Adabas Change Data Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Datacom Change Data Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 DB2 for z/OS Change Data Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 IDMS Change Data Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 IMS Change Data Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 VSAM Change Data Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 PowerExchange Integration with PowerCenter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 CDC Implementation Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Part II: CDC Components Configuration and Management. . . . . . . . . . . . . . . . . . . . . . . . 11 Chapter 2: PowerExchange Listener. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
PowerExchange Listener Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Configuring the PowerExchange Listener for CDC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Configuring the PowerExchange Listener JCL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Configuring CAPI_CONNECTION Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Managing the PowerExchange Listener. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Table of Contents
Starting the PowerExchange Listener. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Stopping the PowerExchange Listener. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Controlling PowerExchange Listener Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
ii
Table of Contents
Monitoring the PowerExchange Logger for MVS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Performance Rules and Guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Managing Log and Restart Data Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Archive Log Rules and Guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Size and Number of Active Log Data Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Data Set Size Determination. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Number of Data Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Allocating Restart Data Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Adding Active Log Data Set Definitions to the Restart Data Set. . . . . . . . . . . . . . . . . . . . 57 Changing the Size of Active Log Data Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Formatting Log Data Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Defining Log Data Sets to the ERDS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Deleting Log Data Sets from the ERDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Recovering Damaged Active Log Data Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Recovering Damaged Restart Data Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Moving Log Data Sets to Other Devices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Using Post-Log Merge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Post-Log Merge System Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Post-Log Merge Restrictions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Post-Log Merge Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Performance Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Recovery Scenarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Post-Log Merge Job Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Table of Contents
iii
Part III: CDC Sources Configuration and Management. . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Chapter 6: Adabas Change Data Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Introduction to Adabas Change Data Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Adabas Planning Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Operational Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Accessing Multiple Databases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 PowerExchange CDC Component Relationships. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Configuring Adabas for Change Data Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Customizing the PowerExchange Adabas Exit 2 Sample. . . . . . . . . . . . . . . . . . . . . . . . 107 Configuring the Adabas ECCR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Configuring the Adabas ECCR Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Configuring the Adabas ECCR JCL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Testing the Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Managing Adabas Change Data Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Starting the Adabas ECCR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Stopping the Adabas ECCR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Using the DTLCCADW Utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
iv
Table of Contents
Relationships with Other PowerExchange Components. . . . . . . . . . . . . . . . . . . . . . . . 124 Configuring CICS for Change Data Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124 Activating the CICS/VSAM ECCR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Managing CICS/VSAM Change Data Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126 Controlling CICS/VSAM ECCR Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Output from the CICS/VSAM ECCR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128 Stopping Change Data Capture for VSAM Sources. . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Refreshing Capture Registrations in the CICS/VSAM ECCR. . . . . . . . . . . . . . . . . . . . . 129 Managing VSAM Schema Changes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Table of Contents
Introduction to IDMS Log-Based Change Data Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 PowerExchange IDMS Log-Based CDC Components. . . . . . . . . . . . . . . . . . . . . . . . . . 183 Relationships with Other PowerExchange Components. . . . . . . . . . . . . . . . . . . . . . . . 185 Configuring IDMS Log Catalog Procedures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Configuring the IDMS Log-Based ECCR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Starting the IDMS Log-Based ECCR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Creating the Log Catalog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Providing SR2 and SR3 Information to the ECCR. . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Managing IDMS Log-Based CDC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Manually Manipulating the Log Catalog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Recovering from Failures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Managing IDMS Schema Changes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Table of Contents
vii
Managing IMS Synchronous CDC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Refreshing the IMS Synchronous ECCR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Controlling the IMS Synchronous ECCR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 IMS Console Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 IMS Command Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Stopping Change Data Capture for IMS Sources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Application Recovery Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Managing IMS Schema Changes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Part IV: Change Data Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Chapter 15: Introduction to Change Data Extraction. . . . . . . . . . . . . . . . . . . . . . . . 227
Change Data Extraction Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 Extraction Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 PowerExchange-Generated Columns in Extraction Maps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 Restart Tokens and the Restart Token File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Generating Restart Tokens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Restart Token File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Recovery and Restart Processing for CDC Sessions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 PowerCenter Recovery Tables for Relational Targets. . . . . . . . . . . . . . . . . . . . . . . . . . 234 PowerCenter Recovery Files for Nonrelational Targets. . . . . . . . . . . . . . . . . . . . . . . . . 235 Application Names. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Restart Processing for CDC Sessions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 Group Source Processing in PowerExchange. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 Using Group Source with Nonrelational Sources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Using Group Source with CDC Sources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Commit Processing with PWXPC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 Controlling Commit Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 Maximum and Minimum Rows per Commit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Target Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Examples of Commit Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 Offload Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 CDC Offload Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 Multithreaded Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
viii
Table of Contents
Displaying Restart Tokens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Configuring the Restart Token File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Restart Token File Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Restart Token File - Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Table of Contents
ix
Preface
This guide describes how to configure, implement, and manage PowerExchange change data capture (CDC) environments on z/OS. This guide applies to the PowerExchange CDC option for the following PowerExchange products:
PowerExchange for Adabas PowerExchange for CA Datacom PowerExchange for CA IDMS PowerExchange for DB2 for z/OS PowerExchange for IMS PowerExchange for VSAM
In this guide, the term MVS refers to z/OS operating systems. The term DB2 refers to DB2 for z/OS. Before implementing change data capture, verify that you have installed the required PowerExchange components.
Informatica Resources
Informatica Customer Portal
As an Informatica customer, you can access the Informatica Customer Portal site at http://my.informatica.com. The site contains product information, user group information, newsletters, access to the Informatica customer support case management system (ATLAS), the Informatica How-To Library, the Informatica Knowledge Base, the Informatica Multimedia Knowledge Base, Informatica Documentation Center, and access to the Informatica user community.
Informatica Documentation
The Informatica Documentation team takes every effort to create accurate, usable documentation. If you have questions, comments, or ideas about this documentation, contact the Informatica Documentation team through email at [email protected]. We will use your feedback to improve our documentation. Let us know if we can contact you regarding your comments. The Documentation team updates documentation as needed. To get the latest documentation for your product, navigate to the Informatica Documentation Center from http://my.informatica.com.
Standard Rate Brazil: +55 11 3523 7761 Mexico: +52 55 1168 9763 United States: +1 650 385 5800
Standard Rate Belgium: +32 15 281 702 France: +33 1 41 38 92 26 Germany: +49 1805 702 702 Netherlands: +31 306 022 797 Spain and Portugal: +34 93 480 3760 United Kingdom: +44 1628 511 445
Preface
xi
xii
CHAPTER 1
PowerExchange uses the following components for change data capture: PowerExchange Agent On a z/OS system, provides and verifies capture registration information for ECCRs. PowerExchange Condense Optionally creates condense files that contain a condensed version of the change data in the change stream.
PowerExchange Environmental Change Capture Routine (ECCR) On a z/OS system, captures change data from a data source and passes the captured changes to the PowerExchange Logger for recording. PowerExchange Listener Manages data maps for nonrelational files and DB2 tables and capture registrations and extraction maps for all data sources. It also handles extraction requests for bulk data and change data. PowerExchange Logger On a z/OS system, receives captured change data from the ECCRs that are connected to it and stores the change data in log data sets. PowerExchange Navigator The graphical user interface that you use to define and manage data maps, capture registrations, and extraction maps for the data sources from which you want to extract bulk data or capture change data. The PowerExchange Navigator runs on Windows. All of the other components run on z/OS. The PowerExchange architecture is flexible enough to provide for many alternative configurations. You can configure PowerExchange to handle large volumes of change data using multiple instances of PowerExchange CDC components on a single z/OS system. You can capture change data from different source types to multiple PowerExchange Loggers. The following figure shows an example configuration on a single z/OS system:
Multiple instances of PowerExchange Condense running simultaneously to extract changes from the logs of
condense files. To prevent data loss, the PowerExchange Logger provides dual logging for both the active and archive log data sets. You can use PowerCenter to propagate the change data to one or more relational or nonrelational targets in your enterprise. PowerExchange CDC works in conjunction with PowerCenter to perform the following tasks:
Capture change data for sources from which you want to propagate data Create an inventory of captured change data that you can use for auditing, recovery, and data propagation Provide data transformation capabilities that enable you to propagate changes that are captured from a
PowerExchange Agent
On an MVS system, the PowerExchange Agent provides and verifies capture registration information for ECCRs. The PowerExchange Agent provides capture registration information to the following ECCRs:
DB2 IMS Synchronous Batch VSAM CICS/VSAM
Other ECCRs read capture registrations directly from the CCT data set. For all of the ECCRs, the PowerExchange Agent verifies the capture registration information. The PowerExchange Agent also manages global queues and data flow among various PowerExchange CDC components.
With the exception of Datacom, the asynchronous ECCRs are log-based. Datacom is a table-based ECCR.
PowerExchange Listener
The PowerExchange Listener manages data maps for nonrelational files and DB2 tables and capture registrations and extraction maps for all data sources. It also handles extraction requests for bulk data and change data. The PowerExchange Listener maintains these definitions in the appropriate files:
Data maps in the DATAMAPS file Capture registrations in the CCT file Extraction maps in the DTLCAMAP file
When you create and manage capture registrations and extraction maps, the PowerExchange Navigator communicates with the PowerExchange Listener on MVS. When you open a registration group or an extraction group, the PowerExchange Navigator communicates with the PowerExchange Listener to read the appropriate capture registrations or extraction maps. The PowerExchange Navigator uses the location specified in the registration and extraction group definitions to determine the PowerExchange Listener to contact.
PowerExchange Logger
On an MVS system, the PowerExchange Logger receives captured change data from the ECCRs that are connected to it and stores the change data in log data sets. The PowerExchange Logger stores all change data that is captured by the ECCRs connected to it. The PowerExchange Logger provides the captured change data to real-time extractions or to a PowerExchange Condense job. Change data is stored in the PowerExchange Logger active log data set. When the current active log data set is full, the PowerExchange Logger archives the change data to a sequential archive log data set. To prevent data loss, the PowerExchange Logger provides dual logging for both the active and archive log data sets.
PowerExchange Condense
PowerExchange Condense creates condense files that contain a condensed version of the changes that were captured by an ECCR and stored by the PowerExchange Logger. PowerExchange Condense processes changes for a single data source. You can run multiple PowerExchange Condense jobs. When you create a capture registration, specify either full condense or partial condense. For full condense, PowerExchange creates VSAM condense files that contain all successful changes. Full condense processing
rationalizes all insert, update, and delete activity into the final image of the row or record. Transactional integrity is not maintained in full condense files. For partial condense, PowerExchange creates sequential condense files that contain all successful changes. Transactional integrity is maintained in partial condense files. When using PowerExchange Condense, you extract the change data from the condense files rather than from the PowerExchange Logger log data sets.
PowerExchange Navigator
The PowerExchange Navigator is the graphical user interface that you use to define and manage data maps, capture registrations, and extraction maps for the data sources from which you want to extract bulk data or capture change data. PowerExchange uses capture registrations to determine what sources are eligible for CDC.You use the PowerExchange Navigator to create and manage capture registrations and extraction maps for change data capture sources. Extraction maps can be imported into PowerCenter for use in extracting the captured change data. For more information about creating and managing capture registrations and extraction maps, see the PowerExchange Navigator User Guide.
Table-Based CDC
PowerExchange for Datacom table-based CDC captures changes asynchronously from Datacom CDC tables. The table-based ECCR listens for changes to the CDC tables and writes the change data to the PowerExchange Logger.
Synchronous CDC
PowerExchange for Datacom synchronous CDC captures changes while the changes are occurring in the Datacom Multi-User Facility (MUF) address space. You can configure the Datacom synchronous ECCR to use the direct-log-write method. This method uses the following components: Datacom Change Collector Runs in the Datacom MUF address space, captures changes as they occur, and passes them to the PowerExchange Logger for recording. Datacom Change Controller Runs in a separate address space and manages the capture registrations for the Datacom Change Collector. Informatica recommends the direct-log-write method because it has the following advantages:
It reduces the latency between the time when the changes occur and the time when changes can be extracted. It reduces the operational complexity and system resource usage to capture change data.
For compatibility with earlier configurations of Datacom CDC, configure the Datacom synchronous ECCR to store the changes in a data space before they are passed to the PowerExchange Logger. This method uses the following components: Datacom Change Collector Runs in the Datacom MUF address space, captures changes as they occur, and moves them into the dataspace created by the Datacom Change Controller. Datacom Change Controller Runs in a separate address space and creates the dataspace into which the Datacom Change Collector. moves the change data. Datacom Log Feeder Runs in a separate address space and reads the captured change data from the data space created by the Datacom Change Controller. The Datacom Log Feeder passes the change data to the PowerExchange Logger for recording.
separate address space. It reads IDMS archive logs to capture change data. When IDMS archives an active journal, PowerExchange for IDMS CDC records the new archive log in the Log Catalog. The IDMS log-based ECCR periodically checks the Log Catalog for new archive logs from which to capture changes and passes any changes from those logs to the PowerExchange Logger for recording.
The IMS log-based ECCR runs in a separate address space. It periodically checks the IMS RECON data sets for new system log data sets (SLDS) from which to capture changes and passes any changes from those logs to the PowerExchange Logger for recording.
The following figure shows the data flow for changes made to MVS data sources. In this data flow the PowerExchange CDC components capture the changes and PowerCenter extracts the changes and applies them to the target:
For more information about using PowerCenter to extract change data from PowerExchange, see PowerExchange Interfaces for PowerCenter.
Configure and start PowerExchange CDC components 1 Configure the PowerExchange Listener. - PowerExchange Bulk Data Movement - Configuring the PowerExchange Listener for CDC on page 12 Managing the PowerExchange Listener on page 18 Configuring the PowerExchange Agent on page 22 Managing the PowerExchange Agent on page 31
Step 5
References Configuring the PowerExchange Logger for MVS on page 39 Managing Log and Restart Data Sets on page 52 CDC Sources Configuration and Management on page 104
Define data sources for CDC 8 Create a data map using the PowerExchange Navigator. This step is required for nonrelational sources. For DB2 sources that require user-defined fields and expressions, create a data map using the PowerExchange Navigator. Define and activate capture registrations and extraction maps for the data source using the PowerExchange Navigator. PowerExchange Navigator Guide
10
Materialize targets and start capturing changes 11 12 13 Materialize the target from the source. Establish a starting point for the extraction. Start the ECCR. PowerExchange Bulk Data Movement Guide Change Data Extraction on page 226 CDC Sources Configuration and Management on page 104 Configuring PowerExchange Condense on page 77 Starting and Stopping PowerExchange Condense on page 96
14
15
Extract change data 16 Prepare and extract change data using PowerCenter. - PowerExchange Interfaces for PowerCenter - PowerCenter Designer Guide - PowerCenter Workflow Basics Guide
10
11
CHAPTER 2
PowerExchange Listener
This chapter includes the following topics:
PowerExchange Listener Overview, 12 Configuring the PowerExchange Listener for CDC, 12 Managing the PowerExchange Listener, 18
CDC
Providing new or modified capture registrations to the PowerExchange Agent Providing captured change data to PowerCenter extractions and to the PowerExchange Navigator database
row tests The PowerExchange Listener interacts with the following PowerExchange CDC components:
PowerExchange Navigator PowerExchange Agent PowerExchange Logger
maps reside
The DBMOVER configuration parameters for the PowerExchange Listener on MVS
12
Yes
This DD statement points to the CCT VSAM data set, which contains the capture registrations. This DD statement points to the CDCT VSAM data set, which contains condense file information. This DD statement is only necessary if you are using PowerExchange Condense. This DD statement points to the CDEP VSAM data set, which contains the application names. This DD statement is necessary to perform database row tests from the PowerExchange Navigator and if extracting data using PowerExchange ODBC connections in PowerCenter. This DD statement points to the DTLCAMAP VSAM data set, which contains the extraction maps. This DD statement points to the USERLIB library, which contains the EDMSDIR module options used to connect to the appropriate PowerExchange Agent and Logger.
DTLCACDC
No
DTLCACDE
Yes
DTLCAMAP
Yes
EDMPARMS
Yes
13
Syntax:
CAPI_CONNECTION=( [DLLTRACE=trace_id,] NAME=name, [TRACE=trace,] TYPE=(LRAP, AGENT=agent_id, [EOF={Y|N},] LOG=logger_id, [UIDFMT={ALL|CONN|CORR|CTYPE|PLAN|UID}] ) )
Parameters: Enter the following required and optional parameters and options, as needed: DLLTRACE=trace_id User-defined name of the TRACE statement that activates internal DLL tracing for this CAPI. Specify this parameter only at the direction of Informatica Global Customer Support. NAME=name Required. Unique user-defined name for this CAPI_CONNECTION statement. Maximum length is eight alphanumeric characters. TRACE=trace User-defined name of the TRACE statement that activates the common CAPI tracing. Specify this parameter only at the direction of Informatica Global Customer Support. TYPE=(LRAP, ... ) Required. Type of CAPI_CONNECTION statement. For the LRAPI, this value must be LRAP. AGENT=agent_id Required. PowerExchange Agent ID, which must match the value specified in the AGENTID parameter of the EDMSDIR module. PowerExchange reads the EDMSDIR module from the EDMPARMS DD statement, or, if not specified, from the STEPLIB or JOBLIB DD statement. Maximum length is four alphanumeric characters. EOF={Y|N} Controls whether PowerExchange stops change data extractions when the end-of-log (EOL) is reached. Enter one of the following options:
N . PowerExchange does not stop change data extractions when EOL is reached. Y. PowerExchange stops change data extractions when EOL is reached.
Because this parameter affects all users of the LRAP CAPI_CONNECTION statement, Informatica recommends that you use one of the following alternative methods to stop change data extractions at EOL:
For CDC sessions that use real-time extraction mode, specify 0 for the Idle Time attribute of the PWX
configuration member.
For CDC sessions that use ODBC connections, specify 0 for the WAITTIME parameter in the ODBC
data source.
14
Default is N. LOG=logger_id Required. PowerExchange Logger ID, which must match the value specified in the LOGGER parameter of the EDMSDIR module. Maximum length is four alphanumeric characters. UIDFMT={ALL|CONN|CORR|CTYPE|PLAN|UID} For DB2 for z/OS data sources, controls the data that PowerExchange returns in the DTL__CAPXUSER field. Enter one of the following options:
ALL. Requests the information for all of the other options. PowerExchange provides this information
Restriction: You can specify only one option. If you need more than one option, specify ALL. Default is UID.
Related Statements:
Required:
Syntax:
CAPI_CONNECTION=( [DLLTRACE=trace_id,] NAME=name, [TRACE=trace,] TYPE=(UOWC, CAPINAME=name,
15
Parameters: Enter the following required and optional parameters and options, as needed: DLLTRACE=trace_id User-defined name of the TRACE statement that activates internal DLL tracing for this CAPI. Specify this parameter only at the direction of Informatica Global Customer Support. NAME=name Required. Unique user-defined name for this CAPI_CONNECTION statement. Maximum length is eight alphanumeric characters. TRACE=trace User-defined name of the TRACE statement that activates the common CAPI tracing. Specify this parameter only at the direction of Informatica Global Customer Support. TYPE=(UOWC, ... ) Required. Type of CAPI_CONNECTION statement. For the UOW Cleanser, this value must be UOWC. BLKSIZE=block_size Block size, in bytes, for the sequential UOW spill files that the UOW Cleanser creates when the memory cache cannot hold all changes for a UOW. Valid values and defaults vary by platform:
For z/OS CDC sources, enter a value from 8 through 32760. Default is 18452. For i5/OS CDC sources, enter a value from 8 through 32760. Default is 32760. For Oracle LogMiner CDC sources, enter a value from 8 through 65535. Default is 32768.
CAPINAME=name Required. Value from the NAME parameter in the related source-specific CAPI_CONNECTION statement. The source-specific CAPI_CONNECTION is one of the following statement types:
AS4J CAPI_CONNECTION statement for i5/OS CDC sources LRAP CAPI_CONNECTION statement for z/OS CDC sources ORCL CAPI_CONNECTION statement for Oracle LogMiner CDC sources
DATACLAS=data_class On z/OS, the SMS data class that the UOW Cleanser uses when allocating the sequential UOW spill files. If you do not specify this parameter, the SMS ACS routines can assign the data class. MEMCACHE=cache_size Memory cache size, in kilobytes, that PowerExchange allocates to reconstruct complete UOWs.
16
For each extraction session, PowerExchange keeps all changes for each UOW in the memory cache until it processes the end-UOW record. If the memory cache is too small to hold all of the changes in a UOW, PowerExchange spills the changes to a sequential files on disk, called UOW spill files. Each UOW spill file contains one UOW. A UOW might require multiple UOW spill files to hold all of the changes for that UOW. If the change stream contains multiple large UOWs and the memory cache is insufficient, PowerExchange might create numerous UOW spill files. PowerExchange processes the change stream more efficiently if it does not need to use UOW spill files. In addition to degrading extraction performance, large numbers of UOW spill files can cause a disk space shortage. Important: If the change stream contains only small UOWs, the default value might be sufficient. However, the default value is often too small to eliminate UOW spill files. Informatica recommends that so you specify a larger value. The location in which PowerExchange allocates the UOW spill files varies by operating system, as follows:
For i5/OS, PowerExchange uses CRTPF command to create a physical file for UOW spill files.
PowerExchange creates the UOW spill file names by using the C/C++ tmpnam() function.
For Linux and UNIX, PowerExchange uses the current directory by default for UOW spill files. To use
a different directory, specify the TMPDIR environment variable. PowerExchange creates the UOW spill file names by using the operating system tempnam function with a prefix of dtlq. Note: The UOW spill files are temporary files that are deleted when PowerExchange closes them. They are not visible in the directory while open.
For Windows, PowerExchange uses the current directory by default for UOW spill files. To use a
different directory, specify the TMP environment variable. PowerExchange creates the UOW spill file names by using the Windows _tempnam function with a prefix of dtlq.
For z/OS, PowerExchange uses dynamic allocation to allocate temporary data sets for the UOW spill
files. Generally, SMS controls the location of temporary data sets. If you do not use SMS to control temporary data sets, the UNIT parameter controls the location for the UOW spill files. Because PowerExchange allocates temporary data sets for the UOW spill files, z/OS assigns these files system-generated data set names, which begin with SYSyyddd.Thhmmss.RA000.jobname. Valid values are 1 through 519720. Warning: Because PowerExchange allocates the cache size for each extraction operation, use caution when coding large values for MEMCACHE. Otherwise, many concurrent extraction sessions might cause memory constraints. Default is 1024, or 1 MB. RSTRADV=nnnnn Time interval, in seconds, that PowerExchange waits before advancing restart and sequence tokens for a registered data source during periods when UOWs do not include any changes of interest for the data source. When the wait interval expires, PowerExchange returns the next committed "empty UOW," which includes only updated restart information. The wait interval is reset to 0 when PowerExchange completes processing a UOW that includes changes of interest or returns an empty UOW because the wait interval expired without any changes of interest having been received.
17
For example, if you specify 5, PowerExchange waits 5 seconds after it completes processing the last UOW or after the previous wait interval expires. Then PowerExchange returns the next committed empty UOW that includes the updated restart information and resets the wait interval to 0. If RSTRADV is not specified, PowerExchange does not advance restart and sequence tokens for a registered source during periods when no changes of interest are received. In this case, when PowerExchange warm starts, it reads all changes, including those not of interest for CDC, from the restart point. Valid values are 0 through 86400. No default is provided. Warning: A value of 0 can degrade performance because PowerExchange returns an empty UOW after each UOW processed. SPACEPRI=primary_space On z/OS, the primary space value that the UOW Cleanser uses to allocate UOW spill files. The UOW Cleanser does not use secondary space. Instead, when a spill file becomes full, the UOW Cleanser allocates another spill file of the same size. The SPACETYP parameter specifies the space units for this value. Default is 50 cylinders. SMS ACS routines can override the UOW spill file size. Valid values are 1 through 2147483647. Default is 50 cylinders. Note: On i5/OS, the UOW Cleanser allocates UOW spill files as physical files with SIZE(*NOMAX), which means that the maximum spill file size is controlled by the system maximum file size. On Linux, UNIX, and Windows, PowerExchange allocates UOW spill files as temporary files that are 2 GB in size. SPACETYPE={BLK|TRK|CYL} On z/OS, the type of space units that the UOW Cleanser uses to allocate UOW spill files. Enter one of the following options:
BLK. Use blocks. CYL. Use cylinders. TRK. Use tracks.
Default is BLK. STORCLAS=storage_class On z/OS, the SMS storage class name that the UOW Cleanser uses to allocate UOW spill files. UNIT=unit On z/OS, the generic or esoteric unit name that the UOW Cleanser uses to allocate UOW spill files.
18
Start the PowerExchange Listener prior to starting any other PowerExchange CDC component address spaces including the PowerExchange Agent. You can also run the PowerExchange Listener as a batch job. However, because it is a long-running task, using a MVS started task is more appropriate. Note: You cannot start the PowerExchange Listener by using the pwxcmd program.
You can also issue pwxcmd listtask and stoptask commands from a Linux, UNIX, or Windows system to a PowerExchange Listener running on a z/OS system. The pwxcmd listtask command and the LISTTASK command entered with the z/OS MODIFY command results in the same output.
19
CHAPTER 3
PowerExchange Agent
This chapter includes the following topics:
PowerExchange Agent Overview, 20 Configuring MVS for the PowerExchange Agent, 21 Configuring the PowerExchange Agent , 22 Managing the PowerExchange Agent, 31 Controlling Security for the PowerExchange Agent, 34
components. The PowerExchange Agent provides services to other PowerExchange CDC components. These services include:
- Getting and managing global queues for other PowerExchange CDC components - Getting new or modified capture registrations from the PowerExchange Listener - Managing data flow between PowerExchange CDC components in different address spaces - Managing requests from ECCRs for capture registration information
20
- Providing access to authorized users - Providing a common message log The PowerExchange Agent uses the AgentID you specify in the EDMSCTL parameters to create a MVS
subsystem. You use the AgentID to communicate with the PowerExchange Agent address space.
single MVS system. If you activate or deactivate the Batch VSAM ECCR for one PowerExchange Agent, the status changes for all PowerExchange Agents on the same MVS system.
The AgentID specified in the AGENCTL parameters is defined as an MVS subsystem. To use the same
AgentID for different PowerExchange Agents, each PowerExchange Agent must reside on a different MVS system.
PowerExchange Agent reuses the linkage index entries. During cold start processing, two new linkage index entries are used. Consider increasing the NSYSLX parameter of the EASYSxx member in SYS1.PARMLIB.
Each PowerExchange Agent uses one common data space. If you use the SHUTDOWN command with the
COMPLETELY option to stop the PowerExchange Agent, PowerExchange CDC deletes the data space. However, if you do not specify the COMPLETELY option, the data space persists. When you restart the PowerExchange Agent, the agent reuses the data space if it exists, unless you are performing a cold start. Consider increasing the MAXCAD parameter of the EASYSxx member in SYS1.PARMLIB to enable increased usage of common data spaces. If you change either parameter, you must IPL the MVS system for the changes to take affect.
21
When you install PowerExchange, these options and parameters are configured with defaults and values you provide in the MVS Installation Assistant. Prior to starting any PowerExchange CDC components, review the PowerExchange Agent options and parameters to ensure they are appropriate for your installation.
22
AGENTID
- Four characters, beginning with a letter, #, @, or $ - A value that does not conflict with an existing MVS subsystem Note: The value of AGENTID and the LOGGER cannot be the same. - CONT stops capture but lets the job continue; any changes to the data resource are not captured. If a / STOP subsys is issued from IMS and CCERR=CONT, work continues, but the data to be captured is not logged. - ABEND abnormally ends the job; the transaction does not update the resource.If CCERR=ABEND, the BMP or MPP terminates abnormally, but the control region continues to function. Notes: - With a value of ABEND, if the CICS/VSAM ECCR encounters a serious error, or abnormally ends during initialization, the ECCR immediately terminates the CICS region to prevent loss of data. - If the PowerExchange Logger fails or is shut down, which means the ECCR can not pass any updates to the Logger, the CICS/VSAM ECCR causes the transaction performing the updates to be abended with abend code ASP7 at the transaction syncpoint. Thus, no updates occur to files that are registered for capture, and no data is lost. - Similarly, if the registration status of a file cannot be determined when the file is being opened, the CICS/VSAM ECCR abends any transaction performing updates to the files to be abended, typically with abend code ASP7 at the transaction syncpoint. For example, this situation can occur when the PowerExchange Agent is down or repository access through the PowerExchange Agent has been stopped. Again, no updates occur to files that might be registered for capture, and no data is lost. - Y displays the century. - N displays the date without the century.
CCERR
Specifies what action to take when a DB2, IMS synchronous, batch VSAM, or CICS/VSAM ECCR is unable to capture changes for a data source.
CONT
CENTURY
Specifies whether to include the century when the PowerExchange CDC components display the date Specifies the date format that the PowerExchange CDC components display, for example, in messages.
DATE
(MDY,/)
The first value indicates the order of the date elements: - YMD indicates YY/MM/DD - MDY indicates MM/DD/YY - DMY indicates DD/MM/YY The second value is the date separator. The separator can be any character.
23
Option
Description
Valid Values
ESLLIB
Specifies the data sets to be concatenated to existing DFSESL DD statements in your IMS dependent region or IMS control region. This option is required for IMS synchronous ECCR online environments.If a DFSESL DD statement does not already exist in your dependent region or control region, PowerExchange allocates one for you. For more information about the DFSESL DD statement, see the IBM IMS installation procedures. Specifies the name of the default PowerExchange Logger. You can specify only one instance of the PowerExchange Logger with this parameter. Consequently, if you use multiple PowerExchange Loggers you must have a separate EDMSDIR for each instance of the PowerExchange Logger. Because you cannot rename EDMSDIR, you must allocate a separate user library, your.USERLIB, for each copy of EDMSDIR. Specifies whether the PowerExchange Logger is configured for Post-Log Merge Specifies the default SYSOUT class that any dynamically allocated SYSOUT data sets use. Specifies the time format that the PowerExchange CDC components display, for example, in messages.
- Specify the appropriate data set or sets, enclosed within parentheses. - If you specify multiple data sets with this parameter, separate them with commas. - Specify up to five data sets.
LOGGER
EDML
- Four characters, beginning with a letter, #, @, or $ - A value that does not conflict with an existing MVS subsystem Note: The value of LOGGER and AGENTID cannot be the same.
LOGRGRP
- Y specifies the Post-Log Merge configuration. - N specifies that the Post-Log Merge feature is not used. Any valid SYSOUT class.
SYSOUT
TIME
(24,:)
The first value indicates the hour format: - 24 indicates a 24-hour format, as in military time. - 12 indicates a 12-hour format. The second value is the time separator. The separator can be any character.
RELATED TOPICS:
Using Post-Log Merge on page 69
24
To configure the EDMSDIRM module options: 1. 2. Customize and run the JCL in member XICDC600 of the RUNLIB library. Stop any of the following PowerExchange CDC components that specify the USERLIB library containing the EDMSDIR module:
PowerExchange Listener PowerExchange Agent PowerExchange Logger Environmental Change Capture Routines (ECCRs) PowerExchange Condense jobs
3.
RELATED TOPICS:
EDMSDIR Module Options on page 22
AgentID
Required. The name of the PowerExchange Agent. You can use the same AgentID for different PowerExchange Agents, provided they are on different MVS systems. The value that you specify must match the value of the AGENTID parameter in the EDMSDIR module. Optional. Specifies whether to activate the Batch VSAM ECCR during the startup of the PowerExchange Agent.
- Four characters, beginning with a letter, #, @, or $. - A value that does not conflict with an existing MVS subsystem.
CCVACTIVE
No
- Yes. The Batch VSAM ECCR is activated during startup. - No. The Batch VSAM ECCR is not be activated during startup. - Yes. The PowerExchange Agent checks authorization. - No. The PowerExchange Agent does not check authorization.
CmdAuthCheck
Optional. Specifies whether to check authorization by issuing a RACROUTE authorization macro when a PowerExchange Agent command is issued.
No
25
Parameter
Description
Valid Values
CmdPrefix
Optional. The MVS command prefix to use for all PowerExchange Agent commands.
One to eight characters, beginning with a letter or a symbol. Valid symbols are:
" . / < % ( _ + > | ? & : ! # $ @ * ' ) =
A value that does not conflict with existing MVS or PowerExchange Agent commands. InitAuthCheck Optional. Whether to check authorization by issuing a RACROUTE authorization macro whenever anyone makes a request to initialize a PowerExchange Agent service. Optional. The amount of data space storage to allocate as an integration area for EDMSLOG messages. You can specify the size of the space in terms of number of messages, with each message allowing 216 bytes. The message log is stored in a data space and uses no common storage. Required. The EDMSLOG SYSOUT class. Optional. Specifies whether the EDMSLOG SYSOUT data is allocated with HOLD=YES. Optional. The EDMSLOG line limit. When the PowerExchange Agent determines that the limit has been reached, the agent allocates a new log. Optional. Causes the system to build a new SSCVT. The parameter specifies the existing SSCVT address that you wish to refresh because the existing SSCVT address is no longer usable. Use this parameter if all of the following are true: - You received message PWXEDM172020E. - The STARTUP parameter is set to COLD. - You do not need to IPL as a result of the failure. Required. The PowerExchange Agent repository data set name of either the AGENTREP data set or CCT data set. Required. The type of repository being read. No No - Yes. The PowerExchange Agent checks authorization. - No. The PowerExchange Agent does not check authorization.
LogBuffLimit
2000
LogClass
LogHold
LogLimit
10000
Refreshsscvt
RepositoryDSN
RepositoryMode
26
Parameter
Description
Default Value
Valid Values
Startup
Optional. Whether, during startup, the PowerExchange Agent creates a new data space or uses an existing data space, if one exists. Optional. The amount of data space storage used as an integration area for concurrent PowerExchange Agent tasks. This limit is specified in terms of the maximum number of concurrent task control blocks (TCBs) that can request services from the PowerExchange Agent, allowing 128 bytes per control block. 500
- Warm. Ruses an existing data space if one exists. - Cold. Create a new data space.
TaskLimit
RELATED TOPICS:
EDMSDIR Module Options on page 22 Cold or Warm Startup on page 31
The hlq variable is the PowerExchange high-level qualifier specified in the MVS Installation Assistant at installation time. You can also specify data set name of the PowerExchange CCT data set in the RepositoryDSN parameter. For example:
RepositoryDSN=hlqvs.CCT
The hlqvs is the PowerExchange high-level qualifier for VSAM specified in the MVS Installation Assistance at installation time. Tip: For improved performance and resource usage, Informatica recommends using the AGENTREP data set rather than the CCT data set as the PowerExchange Agent repository.
When you use the AGENTREP data set as the PowerExchange Agent repository, the PowerExchange Agent
only retrieves the capture registrations from the PowerExchange Listener, during each registration update interval, when there are changes.
When you use the CCT data set as the PowerExchange Agent repository, the PowerExchange Agent must
read the entire CCT during each registration update interval to determine if there are any changes. This activity results in unnecessary I/O activity and CPU overhead in the PowerExchange Agent address space.
27
RestartInterval
60
UpdateInterval
28
The following table describes the JCL Statements and JCL parameters for the PowerExchange Agent:
JCL Statements and Parameters EXEC STARTUP Description
The PGM= of the EXEC statement must specify the PowerExchange Agent module EDMSTART. The STARTUP symbolic parameter that determines whether the PowerExchange Agent should start WARM or COLD. If you start the agent without any parameters, the agent starts with all of the options you specified during installation. The STARTUP parameter also enables you to override the option you specified during installation for starting the agent as either WARM or COLD. In a WARM start, the PowerExchange Agent uses an existing agent environment, assuming that one exists. Conversely, in a COLD start, the agent creates a new agent environment and starts as if for the first time. Use the following syntax to start the PowerExchange Agent with all of the options you chose during installation:
START agent_proc_name
The variable agent_proc_name refers to the name you assigned to the PowerExchange Agent procedure at the time of installation. Use the following syntax to start the PowerExchange Agent with all of the options you chose during installation, except for the option of whether to start COLD or WARM:
START agent_proc_name,STARTUP={COLD|WARM}
The variable agent_proc_name refers to the name you assigned to the PowerExchange Agent at the time of installation. STEPLIB or JOBLIB DD Include the PowerExchange load libraries, hlq.LOAD and hlq.LOADLIB. This statement is required even if you specify the load library in the LNKLST concatenation. The PowerExchange Agent loads some modules from the STEPLIB or JOBLIB. The name of the user library, YOUR.USERLIB, that contains the EDMSDIR options module associated with the PowerExchange Agent. If you do not include an EDMPARMS DD statement, or if you specify a library that does not contain the options module, PowerExchange uses the STEPLIB concatenation to obtain the configuration options. The data set containing the PowerExchange Agent's startup parameters. Informatica Corporation recommends that you also include the FREE=CLOSE statement so that this data set is deallocated after it is read. The output data set for MVS system messages.
EDMPARMS DD
EDMSCTL DD
SYSPRINT DD
29
// DD DISP=SHR,DSN=&HLQ..LOAD //DTLMSG DD DISP=SHR,DSN=&HLQ..DTLMSG //DTLCFG DD DISP=SHR,DSN=&RUNLIB(DBMOVER) //DTLKEY DD DISP=SHR,DSN=&RUNLIB(LICENSE) //EDMPARMS DD DISP=SHR,DSN=&HLQ..&LOGGER..USERLIB //EDMSCTL DD DISP=SHR,DSN=&RUNLIB(AGENTCTL), // FREE=CLOSE //* SYSTCPD EXPLICITLY IDENTIFIES WHICH DATA SET IS TO BE USED TO //* OBTAIN THE PARAMETERS DEFINED BY TCPIP.DATA. THIS DD STATEMENT //* MIGHT BE NECESSARY IF YOUR CONFIGURATION CANNOT BE FOUND USING //* USING THE STANDARD IP SEARCH. CONSULT YOUR NETWORKING SYSTEMS //* PROGRAMMER FOR FURTHER INFORMATION. //*SYSTCPD DD DSN=YOUR.TCPIP.DATA,DISP=SHR //DTLLOG DD SYSOUT=* //DTLLOG01 DD SYSOUT=* //SYSPRINT DD SYSOUT=* //*-------------------------------------------------------------------*
30
PWXEDM172119I EDMSREP0: Repository file OPENed. RepositoryDSN=EDMUSR.DETAIL.V811.AGENTREP PWXEDM181214I DTERIOM : Repository access (re)established PWXEDM181215I DTERIOM : New capture registrations (20060808161337)
RELATED TOPICS:
Configuring AGENTCTL Parameters on page 25
Start the PowerExchange Agent after you start the PowerExchange Listener but prior to starting any other PowerExchange CDC component address spaces.
31
The number of non-system linkage indexes is specified in the NSYSLX parameter in the MVS EASYSxx PARMLIB member. The SCOPE=COMMON data space limit is specified in the MAXCAD parameter in the MVS EASYSxx PARMLIB member.
LOGCLOSE LOGOPEN
REPOSITORYDSN
32
Command START
Description START DIS starts the DIS subtask, which processes DISPLAY commands. START LOG starts the LOG subtask, which writes data from the PowerExchange Agent data space to the EDMSLOG SYSOUT data set. START REP starts the REP subtask, which retrieves PowerExchange repository information.
STOP
STOP DIS stops the DIS subtask, which processes DISPLAY commands. STOP LOG stops the LOG subtask, which writes data from the PowerExchange Agent data space to the EDMSLOG SYSOUT data set. STOP REP stops the REP subtask, which retrieves PowerExchange repository information.
RELATED TOPICS:
PowerExchange Agent Message Log on page 31
track.
33
If the cache data sets are not specified in the AGENTREP parameters, the REPSTATUS command displays <NONE> for the data set names. Tip: Informatica recommends using cache data sets to prevent possible loss of change data in situations where the PowerExchange Listener is temporarily unavailable.
34
To control access to PowerExchange Agent services: 1. 2. In the hlq.RUNLIB library, locate the AGENTCTL member and verify that the value of the InitAuthCheck parameter is YES. Define the RACF resource profile, or an equivalent security system, named BMCEDM.agent_ID.REGISTER in class FACILITY.
Defining this resource to RACF, or an equivalent security system, with UACC (READ) effectively disables registration security for PowerExchange Agent services. All RACROUTE macros that the agent issues are successful. You can also disable registration security with the InitAuthCheck configuration parameter. Set its value to NO to disable security checking.
Defining this resource to RACF or an equivalent security system with UACC(READ) effectively disables security for PowerExchange Agent commands. All RACROUTE macros that the agent issues are successful. You can also disable command security with the CmdAuthCheck configuration parameter. Set its value to NO to disable security checking.
2.
Use one of the following methods to provide user authorization for each component:
Add the procedure names to the RACF-started procedures table (ICHRIN03), or its equivalent. Create a RACF profile for each procedure name and use the class STARTED.
35
This step associates a user ID and group ID with the started tasks. This association provides authorized access to any data set that the tasks use and enables PowerExchange components to pass the authorizationchecking process. For more information about the RACF-started procedures table or STARTED class profiles, see the IBM documentation for RACF or an equivalent security product.
36
CHAPTER 4
37
In addition to illustrating data flow, the following figure also shows PowerExchange Logger control flow.
You can control the PowerExchange Logger by running batch change utility procedures that perform the following functions:
Set system parameters in the EDMUPARM module. Modify the restart data set to manage active and archive logs.
each data-resource type. For example, one for IMS and one for VSAM.
Application requirements
Up to 50 PowerExchange Loggers can attach to a PowerExchange Agent. The value of the TaskLimit parameter in the AGENTCTL parameters limits the number of PowerExchange Loggers that can attach to a PowerExchange Agent. Each PowerExchange Logger requires a minimum of 12 tasks, and uses additional tasks for log readers and archive processes.
38
Restriction: A Post-Log Merge group can be comprised of a maximum of eight PowerExchange Loggers.
XCF Groups
To optimize the MVS configuration for the PowerExchange Logger, consider increasing the number of crosscoupling facility (XCF) groups. PowerExchange uses IBM Cross-System Coupling Facility (XCF) services to provide communication between certain PowerExchange CDC components. The couple data set should be sized to accommodate the additional PowerExchange XCF groups and members. If you use the Post-Log Merge option of the PowerExchange Logger, you need to plan for capacity for four XCF groups for each PowerExchange Logger. Otherwise, a single XCF group is used for a PowerExchange Logger. Consult your MVS systems programmer to determine the number of existing XCF groups and ensure that additional XCF groups are available. PowerExchange CDC uses at least one, and up to four, XCF groups for each running PowerExchange Logger.
Post-Log Merge, changes from multiple MVS systems can be accessed as if stored in a single Logger environment.
If you use multiple PowerExchange Loggers, you need to have a copy of the default options module
(EDMSDIR) for each instance of the PowerExchange Logger. Because you cannot rename EDMSDIR, you
39
must allocate a separate user library (YOUR.USERLIB) for each copy of EDMSDIR. You can reduce the chance of data loss by establishing dual active log data sets and dual archive log data sets.
If you reinitialize the PowerExchange Logger after you start capturing changes, the RBA is reset to 0 and you
lose all the changes that have been captured but not yet applied. If you have to reinitialize the PowerExchange Logger, you also need to reinitialize all PowerExchange processes, which use data that is read from the PowerExchange Logger. The normal restart of these processes uses the last-read PowerExchange Logger RBA to generate the correct restart point. Reinitializing the PowerExchange Logger invalidates the last-read RBA value.
RELATED TOPICS:
Managing Log and Restart Data Sets on page 52
archive data sets, and the device type to which you are archiving.
RELATED TOPICS:
Size and Number of Active Log Data Sets on page 53
40
[ARCHIVE_MGCL=name,] [ARCHIVE_MGCL2=name,] [ARCHIVE_RTPD=n,] [ARCHIVE_RTPD2=n,] [ARCHIVE_STCL=name,] [ARCHIVE_STCL2=name,] [ARCHIVE_UNIT=name,] [ARCHIVE_UNIT2=name,] [ARC_UNIT_CNT=n,] [PRIM_SPACE=n,] [SEC_SPACE=n,] [SPACE_ALLOC=unit]] [LOGGING_OPTIONS [LOG_INBUFF=n,] [LOG_OUTBUFF=n,] [ACTIVE_LOG_MODE=mode,] [ARCHIVE_LOG_MODE=mode,] [ERDS_LOG_MODE=mode]] END
DEFINE Statement
Use the DEFINE statement to configure the PowerExchange Logger options. The DEFINE statement has the following general syntax:
DEFINE LOGGER_TITLE=name [SYSTEM_OPTIONS options] [ARCHIVE_OPTIONS options] [LOGGING_OPTIONS options] END
Enter all of the parameters using a single DEFINE statement. If you omit a parameter, the PowerExchange Logger uses its default value. The only required statements are DEFINE and END. The system, archive, and logging option groups have additional parameters. You must specify at least one options group keyword with at least one parameter. Each option group has a different set of options associated with it.
Parameter or Statement LOGGER_TITLE Required Optional Description Specifies a PowerExchange Logger name. This name can be up to 16 characters long. Specifies configuration options for the PowerExchange Logger system. Specifies configuration options for the archive log data sets. Specifies configuration options for the active and archive log data sets. Indicates that the input for the DEFINE statement is complete.
SYSTEM_OPTIONS Statement
Use the following syntax for the SYSTEMS_OPTIONS statement:
SYSTEM_OPTIONS [LOGGER_NAME=id,] [CHKPT_FREQUENCY=nnnn,] [START_TRACE=Y|N,] [SUFFIX=n,] [TIMER_INTERVAL=nnnn,] [TIME_CHKPT_FREQ=nn]
41
The parameters are optional, but you must specify at least one of them. If you specify multiple parameters, use a comma (,) to separate them. Do not put a comma at the end of the last parameter.
Parameter LOGGER_NAME Description Specifies the PowerExchange Logger ID. Valid Values A string from one to four characters in length. The following rules apply: - The value can begin with and contain alphanumeric characters and the characters #, @, and $. - Because other PowerExchange CDC components use this value to refer to the PowerExchange Logger, the value must match the LOGGER parameter in the PowerExchange Agent EDMSDIR options module and the LOG parameter on LRAPI CAPI_CONNECTION statement in the DBMOVER configuration member. - In a Post-Log Merge environment, all member Loggers must use the same LOGGER_NAME value. A number from 1 to 231-1. Default is 10,000.
CHKPT_FREQUENCY
Specifies the number of log records to process before taking a checkpoint. Specifies whether the Logger trace is active. For the trace output to be received, the EDMTRACE DD statement must be in the Logger JCL.
START_TRACE
One of the following values: - Y for yes. - N for no. Default is N. Warning: The value Y causes additional overhead in the Logger. Enter Y only at the request of Informatica Global Customer Support. A unique number from 1 through 9.
SUFFIX
Specifies the unique suffix for a member in a PostLog Merge group. Specifies how frequently the Logger performs its internal management operations, such as freeing unused virtual storage or detecting inactive tasks that need to be POSTed. Specifies how frequently time-based checkpoint records are created in a Post-Log Merge environment. This parameter is used only when running PostLog Merge.
TIMER_INTERVAL
An interval in hundredths of seconds in the following range: - Minimum is 50 (.5 seconds). - Maximum is 6000 (1 minute). Default is 100.
TIME_CHKPT_FREQ
The checkpoint frequency expressed in number of elapsed TIMER_INTERVAL periods. This number must be in the following range: - Minimum is 5. - Maximum is 60. Default is 30. If you use the default TIMER_INTERVAL value of 100 hundredths of a second with the default of 30 for this parameter, a time-based checkpoint record is written every 30 seconds (100 * 1/100 * 30).
RELATED TOPICS:
Using Post-Log Merge on page 69
42
ARCHIVE_OPTIONS Statement
The ARCHIVE_OPTIONS statement has the following syntax:
ARCHIVE_OPTIONS [PREFIX_COPY1=name,] [PREFIX_COPY2=name,] [ARCHIVE_BLKSIZE=n,] [ARCHIVE_DACL=name,] [ARCHIVE_DACL2=name,] [ARCHIVE_MGCL=name,] [ARCHIVE_MGCL2=name,] [ARCHIVE_RTPD=n,] [ARCHIVE_RTPD2=n,] [ARCHIVE_STCL=name,] [ARCHIVE_STCL2=name,] [ARCHIVE_UNIT=name,] [ARCHIVE_UNIT2=name,] [ARC_UNIT_CNT=n,] [PRIM_SPACE=n,] [SEC_SPACE=n,] [SPACE_ALLOC=unit]
If you use the ARCHIVE_OPTIONS statement, you must specify at least one parameter. Use a comma (,) as a separation character for the parameters. The last parameter in an options group must not end in a comma.
Parameter PREFIX_COPY1 Description Specifies the prefix for the first archive log data set name. Valid Values If you use multiple qualifiers, enclose the prefix in quotation marks. The value can be up to 17 alphanumeric characters long and must follow MVS data set name rules. Note: With Post-Log Merge, all member Loggers must have a unique value for this parameter. If you use multiple qualifiers, enclose the prefix in quotation marks. The value can be up to 17 alphanumeric characters long and must follow MVS data set name rules. If you use this keyword, the value cannot be blank, even if you specified ARCHIVE_LOG_MODE=SINGLE. Note: With Post-Log Merge, all member Loggers must have a unique value for this parameter. The block size must be compatible with the device type you specify in the ARCHIVE_UNIT parameter. The value must be a multiple of 4096 and must be in the range 4096 through 28672. Default is 24576. If this value is omitted, no SMS data class is specified when allocating the primary archive log data set. One might be assigned by your SMS ACS routines.
PREFIX_COPY2
Specifies the prefix for the second archive log data set name.
ARCHIVE_BLKSIZE
ARCHIVE_DACL
Specifies the SMS data class name of the archive log data set.
43
Parameter ARCHIVE_DACL2
Description Specifies the SMS data class name of the second archive log data set.
Valid Values If this value is omitted, the second archive log takes the data class of the first archive log data set, if specified. Specify ARCHIVE_DACL2=, to prevent a data class name specified for the first archive log data set being used as a default for the second. If this value is omitted, no SMS management class is specified when allocating the primary archive log data set. One might be assigned by your SMS ACS routines. If this value is omitted, the second archive log takes the management class of the first archive log data set, if one is specified. Specify ARCHIVE_MGCL2=, to prevent a management class name specified for the first archive log data set being used as a default for the second. 0 through 9999. Default is 9999. 0 through 9999. The default is 9999.
ARCHIVE_MGCL
Specifies the SMS management class name of the archive log data set.
ARCHIVE_MGCL2
Specifies the SMS management class name of the second archive log data set.
ARCHIVE_RTPD
Specifies the number of days to retain the archive log data set. Specifies the number of days to retain the second archive log data set. Use this parameter only if you want to set the value differently for the second data set. Specifies the SMS storage class name of the archive log data set.
ARCHIVE_RTPD2
ARCHIVE_STCL
If this value is omitted, no SMS storage class is specified when allocating the primary archive log data set. One might be assigned by your SMS ACS routines. If this value is omitted, the second archive log takes the storage class of the first archive log data set, if specified. Specify ARCHIVE_STCL2=, to prevent a storage class name specified for the first archive log data set being used as a default for the second. Specify a device type or unit name up to 8 alphanumeric characters long. Note: Informatica Corporation recommends that you write the primary archive log data set to DASD. If this value is omitted, the second archive log takes the UNIT value of the first archive log data set. Specify ARCHIVE_UNIT2=, to prevent a unit type specified for the first archive log data set being used as a default for the second Specify a device type or unit name up to 8 alphanumeric characters long.
ARCHIVE_STCL2
Specifies the SMS storage class name of the second archive log data set.
ARCHIVE_UNIT
Specifies the device type or unit name of the device used to store the archive log data set.
ARCHIVE_UNIT2
Specifies the device type or unit name of the device used to store the second archive log data set. Use this parameter only if you want to set the value differently for the second data set.
44
Parameter ARC_UNIT_CNT
Valid Values Use this parameter in the same way you use the count option of the MVS UNIT parameter. If using SMS, the SMS data class specifies the volume count for SMS-managed data sets. Default is 2 units. Must be greater than 0. Default is 4320 blocks.
PRIM_SPACE
Specifies the primary space allocation for DASD data sets in the unit type specified by SPACE_ALLOC. Specifies the secondary space allocation for DASD data sets in the unit type that you specify in SPACE_ALLOC. Specifies the unit in which primary and secondary space allocations are made.
SEC_SPACE
SPACE_ALLOC
- BLK allocates space in blocks. BLK is the default. - CYL allocates space in cylinders. - TRK allocates space in tracks.
LOGGING_OPTIONS Statement
The LOGGING_OPTIONS statement has the following syntax:
LOGGING_OPTIONS [LOG_INBUFF=nn,] [LOG_OUTBUFF=nn,] [ACTIVE_LOG_MODE=mode,] [ARCHIVE_LOG_MODE=mode,] [ERDS_LOG_MODE=mode]
If you use the LOGGING_OPTIONS statement, you must specify at least one parameter. Use a comma (,) as a separation character for the parameters. The last parameter in an options group must not end in a comma.
Parameter LOG_INBUFF Description Defines the number of 4-KB buffers used for reading the active and archive logs. Specifies the size, in 4 KB buffers, of the output buffer that the PowerExchange Logger uses for writing the active and archive log data sets. Specifies whether the PowerExchange Logger writes to one or two active log data sets at a time. Valid Values 1 through 60 (decimal). Default is 28. 1 through 50 (decimal).
LOG_OUTBUFF
ACTIVE_LOG_MODE
- SINGLE. The PowerExchange Logger uses one active log at a time. - DUAL. The PowerExchange Logger writes to a primary log and a secondary backup log simultaneously. Note: Informatica strongly recommends that you use dual logging. Default is DUAL.
45
Parameter ARCHIVE_LOG_MODE
Description Specifies whether the PowerExchange Logger writes to one or two archive log data sets at a time. The PowerExchange Logger generates archive logs when the active log is off-loaded.
Valid Values - SINGLE. The PowerExchange Logger writes to one archive log at a time. - DUAL. The PowerExchange Logger writes to a primary log and a secondary backup log simultaneously. Note: Informatica strongly recommends that you use dual logging. Default is DUAL.
ERDS_LOG_MODE
Specifies whether the PowerExchange Logger writes to one or two PowerExchange restart data sets (ERDS) at a time.
- SINGLE. The PowerExchange Logger uses one restart data set at a time. - DUAL. The PowerExchange Logger writes to a primary restart data set and a secondary backup restart data set simultaneously. Note: Informatica strongly recommends that you use dual logging. Default is DUAL.
RELATED TOPICS:
Defining Log Data Sets to the ERDS on page 63
46
Valid values are 1 through 4 alphanumeric characters. JOBLIB or STEPLIB DD Defines the PowerExchange LOAD library, which contains the PowerExchange Logger load modules. This library must be APF-authorized.
47
EDMPARMS DD Defines the user library, USERLIB, that contains the EDMUPARM module associated with the PowerExchange Logger. If you do not include an EDMPARMS DD statement, or if you specify a library that does not contain the EDMUPARM options module, PowerExchange uses the JOBLIB or STEPLIB concatenation to obtain the configuration options. ERDS01 DD Defines the name of the primary emergency restart data set. ERDS02 DD Optional. Defines the name of the dual emergency restart data set, if DUAL is specified for the ERDS_LOG_MODE parameter in the EDMUPARM module options. SYSPRINT DD Defines the output data set for MVS system messages. EDMTRACE DD Defines the output data set for the common services trace. Use this DD statement only under guidance from Informatica Global Customer Support.
48
Start the PowerExchange Logger after you start the PowerExchange Agent but prior to starting any other PowerExchange CDC component address spaces.
The PowerExchange Logger does not stop until all reader and writer connections have terminated.
EDMLRPRM Parameters
Specify the parameters by including the EDMLRPRM DD name in the JCL of the job issuing the Log-Read API calls. The parameters can be specified using an in-stream data set in the JCL or in a sequential data set. Use the following DCB attributes when using a sequential data set to specify the parameter values:
RECFM=FB or RECFM=VB LRECL less than or equal to 255 Any valid block size
Specify one parameter statement per record or line. An asterisk (*) or a hash (#) in the first character indicates a comment. The syntax of the parameter statement is:
parameter=parm
49
The parm variable represents the wait time in hundredths of a second. The available parameters are:
Parameter Default Values (in hundredths of second) 6000 (60 seconds) Description
INTLST
Specifies the time spent waiting for the PowerExchange Logger to respond to the Resource Interest List command. This time starts after the PowerExchange Logger issues the PWXEDM172791I message. Specifies the time spent waiting for the PowerExchange Logger to start sending data. This time starts after the PowerExchange Logger issues the PWXEDM263011I message. Specifies the time spent trying to connect to the PowerExchange Logger. This time starts after the PowerExchange Logger issues the PWXEDM263010I message. Specifies the time spent waiting for the PowerExchange Logger to stop sending more data. This time starts after the PowerExchange Logger issues the PWXEDM 263014I message. Specifies the time when the Log Read API is disconnecting from the PowerExchange Logger. This time starts after the PowerExchange Logger issues the PWXEDM263012I message.
REQTRN
SIGNON
STPTRN
TERM
The Request Data Transfer (REQTRN) command is the most likely PowerExchange Logger command to require additional time. In processing a Request Data Transfer (REQTRN) command, the PowerExchange Logger may have to wait for archive log data sets to be recalled or for a tape mount. If the PowerExchange Logger cannot access the required log data sets in four minutes and provide the data to the LRAPI, the LRAPI request times out and returns reason code 0x0A0E0062 (LoggerDidNotRespondToCommand) and terminates the extraction request. In some environments, the LRAPI might frequently encounter this situation due to operational issues and so extending the wait time for the REQTRN command is necessary. Note: Setting these parameter values in the PowerExchange Listener affects each instance of the Log-Read API. Therefore, all extractions use the same values. The following examples specifies a value of 3 minutes for the REQTRN parameter using an in-stream data set:
//EDMLRPRM DD * //* //* Set REQTRN timeout value to 3 minutes (i.e. 3*60*100 ) //* REQTRN=18000 /*
50
To resolve in-doubt units of work: 1. 2. 3. Run the DISPLAY command to the PowerExchange Logger to determine the data set names and RBAs of the UOWs that are in doubt. Access the capture source environment and determine which UOWs you want to commit to the target database and which you want to abort. In the PowerExchange Logger environment, run the RESOLVE_INDOUBT command for each in-doubt UOW:
Run the command with ACTION=COMMIT for UOWs that you want to commit to the source. Run the command with ACTION=ABORT for UOWs that you want to abort.
The PowerExchange Logger issues this message when the last available active log data set is 75 percent full, and reissues this message after each additional five percent of the remaining data set space is filled. The PowerExchange Logger retries the archive process each time it issues this message. You should also monitor the PowerExchange Logger for other operational issues that may be unrelated to the active logs and archive log process. For example, if the PowerExchange Logger runs with a lower dispatching priority or class of service than a highly-active ECCR, it may be delay the ECCR because it cannot write change data to the active log data sets fast enough. PowerExchange issues the following Write-To-Operator (WTO) messages to allow you to monitor the status of change data recording:
PWXEDM172824W EDM Change Capture waiting on [the Loggers queue | the ECCR-to-CIC queue] since date time. Using EDM Logger loggerid.
A PowerExchange ECCR issues this message if it cannot send change data to the PowerExchange Logger because the circular queue used to do this is full. For synchronous ECCRs, the transaction or VSAM batch job that encounters the full queue waits until it can log the change data to the circular queue. For asynchronous ECCRs, the ECCR address space waits until it can log the change data to the circular queue.
PWXEDM172825W UOWs are waiting on EDM syncpoint; see EDM log
If the PowerExchange Logger does not respond to a PowerExchange ECCR within approximately one minute of the ECCR sending an end-UOW, the ECCR issues this message. In addition, PowerExchange writes message PWXEDM172826W with the UOW ID to the EDMMSG data set in the ECCR. The PWXEDM172825W message may indicate that the PowerExchange Logger cannot keep pace with the ECCR. Alternatively, this message may indicate a transitory slowdown in the PowerExchange Logger due to other system issues, such as an SVC dump. For synchronous ECCRs, the transaction or VSAM batch job waits until the PowerExchange Logger indicates that the end-UOW has been logged to the active log data set. For asynchronous ECCRs, the ECCR address space waits until this indication is received.
51
define the Logger with the same dispatching priority as other high-performance started tasks on your system.
If you anticipate a large volume of captured data, allocate buffers and data sets that are larger than those
DASD.
The PowerExchange Logger is a long-running MVS started task. Therefore, ensure that your existing MVS
system parameters or JCL does not cancel the PowerExchange Logger after a specified amount of CPU time or time. To prevent cancellation of the PowerExchange Logger after a specified amount of CPU time or time, you need to specify TIME=1440 or TIME=NOLIMIT in the EXEC statement of the PowerExchange Logger startup procedure.
RELATED TOPICS:
Size and Number of Active Log Data Sets on page 53
RELATED TOPICS:
Archive Log Rules and Guidelines on page 53 Size and Number of Active Log Data Sets on page 53 Data Set Size Determination on page 54 Number of Data Sets on page 56 Defining Log Data Sets to the ERDS on page 63 Deleting Log Data Sets from the ERDS on page 64 Allocating Restart Data Sets on page 56 Adding Active Log Data Set Definitions to the Restart Data Set on page 57 Changing the Size of Active Log Data Sets on page 58 Formatting Log Data Sets on page 62 Recovering Damaged Restart Data Sets on page 66 Moving Log Data Sets to Other Devices on page 67
52
you specify the data set name prefix, block size, unit name, and DASD sizes needed for allocation.
The emergency restart data sets (ERDS) contains approximately 1,000 entries for the archive log data sets.
When the PowerExchange Logger reaches the last entry, it wraps to the beginning, overwriting the oldest entry.
Define dual archive logs to prevent potential data loss if one copy is corrupted or accidentally deleted. Configure the Logger parameters so at least the first archive log copy is created on DASD. The second archive
that used to store your primary archive log data sets. You can also specify different SMS classes for your primary and secondary archive logs.
If you archive data to tape, adjust the size of the log data sets so that each set contains the amount of space
that can be stored on a tape volume. Doing so minimizes tape handling and volume mounts and maximizes the use of tape resources.
Because archive log data sets written to DASD cannot extend to another volume, make the primary space
allocation (both quantity and block size) large enough to contain all of the data coming from the active log data sets. Allocate primary space with the PRIM_SPACE option of the DEFINE statement.
As each active log becomes full, the PowerExchange Logger off loads the log data to an active archive log. If
the rate of changes flowing into the Logger fills all the active logs before the Logger finishes off loading to an archive, the Logger stops accepting changes for two minutes. During the pause, the Logger attempts to finish its current archive log. The PowerExchange Logger continues in this mode until it completes off loading data to an archive, or until you stop the PowerExchange Logger manually.
When the PowerExchange Logger abends due to data set out-of-space conditions, the PowerExchange Logger
25 using the units you specified in your definition and attempts to continue archiving.
- If the abend code is D37 or E37, examine your system configuration (particularly the volumes that your
PowerExchange active logs use) and determine the reason for the lack of space. If you fix the problem, the PowerExchange Logger continues attempting to archive until it is successful. If you do not fix the problem, you must use the MVS CANCEL command to cancel the PowerExchange Logger. Warning: Do not place both archive log copies on tape. This limits the number of log readers to a single reader per archive log and allows only two concurrent extractions.
RELATED TOPICS:
ARCHIVE_OPTIONS Statement on page 43
53
The Logger format utility (EDMLUTL0) formats only the primary space allocation. This means that the Logger does not use secondary allocation. This includes Candidate Volumes and Space, such as that allocated by SMS when using a STORCLAS with the Guaranteed Space attribute.
RELATED TOPICS:
Formatting Log Data Sets on page 62
sets in the selected active log pair are not the same size, the amount of data that the PowerExchange Logger writes is limited to the size of the smallest data set in the log pair.
An inverse relationship exists between the size of the log data sets and the archiving frequency. A large data
set needs to be archived less often than a small data set. However, the archiving of a small data set takes less time.
The PowerExchange header adds to the size of change records. For the header size in each record, use
for control information and recovery-related information such as system checkpoints. You can control the frequency of system checkpoints by setting the PowerExchange Logger CHKPT_FREQUENCY parameter.
The type of change transaction affects if PowerExchange CDC captures a before-image, after-image, or both: - For a DELETE, PowerExchange captures the before-image. - For an INSERT, PowerExchange captures the after-image. - For an UPDATE, PowerExchange captures both the before- and after-images. For some data sources such as IMS and VSAM, PowerExchange CDC captures the entire object that contains
a change. For example, if a field in an IMS segment changes, PowerExchange captures the entire segment.
RELATED TOPICS:
SYSTEM_OPTIONS Statement on page 41
54
The number of tracks per cylinder and the number of usable bytes per track depend on the type of DASD you use. The following table provides these values for 3390 and 3380 DASD devices. This table applies only to the PowerExchange Logger and is based on the fact that the PowerExchange Logger writes 4-KB blocks.
Space Information Tracks per cylinder Usable bytes per track Model 3390 15 49,152 Model 3380 15 40,960
Calculating the Total Space for Each Active Log Data Set - Example
This example uses 3390 DASD and the following assumptions:
Average change record size including the PowerExchange header = 600 bytes Number of changes captured per hour = 40,000 Hours between archiving = 12 Overhead rate = 5% Number of tracks per cylinder = 15
To calculate the total space for each active log data set: 1. 2. Use Formula 1 to calculate the size of each active log data set in bytes:
600 x 40,000 x 12 x (1 + .05) = 302,400,000 bytes
Use Formula 2 and Formula 3 to calculate the number of tracks and cylinders to allocate:
302,400,000 / 49,152 = 6,152 tracks 6,152 / 15 = 410 cylinders
55
PowerExchange Logger is active. Therefore, the more active logs you allocate, the more dataspaces you have open while the PowerExchange Logger is active.
If you are running near-real-time replication, consider using a small number of data sets. In near-real-time
2.
Run the JCL procedure to create and configure the restart data sets. The following sample JCL (#DEFRDS) shows how to define the restart data set in dual mode:
// JOB //*-------------------------------------------------------------------* //* PowerExchange Change Data Capture - ALLOCATE LOGGER RESTART DATASETS //*-------------------------------------------------------------------* //* REPLACE THE FOLLOWING ITEMS WITH PROPER INSTALLATION VALUES //* 1. JCL DATA SET NAMES //* 2. IDCAMS COMMAND SPECIFICATIONS //* 3. REPLACE ???? WITH YOUR LOGGER NAME. USING THE LOGGER NAME AS A //* DATA SET NAME QUALIFIER PROVIDES A STANDARD TO INDICATE WHICH //* DATA SET BELONGS TO WHICH LOGGER. //*-------------------------------------------------------------------* //ALLOCRDS EXEC PGM=IDCAMS,REGION=4M //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSIN DD * DELETE (YOUR.????.ERDS01) ERASE DELETE (YOUR.????.ERDS02) ERASE SET MAXCC = 0 DEFINE CLUSTER -
56
(NAME(YOUR.????.ERDS01) VOLUMES(VVVVVV) SHAREOPTIONS(2,3) DATA (NAME(YOUR.????.ERDS01.DATA) RECORDS(200) RECORDSIZE(4089 4089) CONTROLINTERVALSIZE(4096) FREESPACE(0 20) KEYS(4 0) ) INDEX (NAME(YOUR.????.ERDS01.INDEX) RECORDS(5 5) CONTROLINTERVALSIZE(1024) ) DEFINE CLUSTER (NAME(YOUR.????.ERDS02) VOLUMES(VVVVVV) SHAREOPTIONS(2,3) DATA (NAME(YOUR.????.ERDS02.DATA) RECORDS(200) RECORDSIZE(4089 4089) CONTROLINTERVALSIZE(4096) FREESPACE(0 20) KEYS(4 0) ) INDEX (NAME(YOUR.????.ERDS02.INDEX) RECORDS(5 5) CONTROLINTERVALSIZE(1024) ) //*-------------------------------------------------------------------*
RELATED TOPICS:
Data Set Size Determination on page 54
Adding Active Log Data Set Definitions to the Restart Data Set
The installation process creates definitions for at least three active log data sets. With three data sets allocated, two are active and one is always available for selection. The startup procedure for the PowerExchange Logger dynamically allocates the active log data sets named in the restart data sets. Use this procedure to create additional data set definitions as required for your site. You can have a maximum of 31 active logs. To help distinguish log data sets from different PowerExchange Logger subsystems, include the subsystem name in the high-level qualifiers of these data sets. Use the IDCAMS parameters to define the active log data sets. Adjust the CYL parameters for the active log data sets according to the expected volume of logging. Determine the size and number of active log data sets required for your organization. To add active log data set definitions to the restart data set: 1. Make a working copy of the #ADDLOGS sample JCL procedure from the HLQ.SAMPLIB library, and edit the copy as required. In the following JCL example, HLQ and YOUR represent high-level qualifiers that you specified during installation. (The question marks represent the PowerExchange Logger ID associated with the log data sets.) Using the subsystem name in the data set name helps you distinguish between the different log data sets.
JCL Statement EXEC PARM Description Specify the EDMLC000 program. Include the Logger name, followed by BATCH.
57
Description Include the PowerExchange CDC load library. If you added the load library to your system's LNKLST concatenation, you do not need to add it to the STEPLIB. Specify the name of the user library (YOUR.USERLIB) that contains the PowerExchange Logger EDMUPARMS module options associated with the PowerExchange Logger that uses these data sets. Specify the data set name of the primary restart data set. Make sure that this name matches the name you used when you created this data set. Specify the data set name of the backup restart data set. Ensure that this name matches the name you used when you created this data set. Specify the output data set for MVS system messages. Specify the PowerExchange Logger command, DEFINE_LOG.
EDMPARMS DD
ERDS01 DD
ERDS02 DD
SYSPRINT DD SYSIN DD
2. 3.
Stop the PowerExchange Logger. Run the JCL procedure to define the active log data sets.
4. Restart the PowerExchange Logger. The following sample JCL (#ADDLOGS) shows how to add active log data sets:
// JOB //*-------------------------------------------------------------------* //* PowerExchange CDC - DEFINE ACTIVE LOG DATA SETS TO LOGGER //*-------------------------------------------------------------------* //* REPLACE THE FOLLOWING ITEMS WITH PROPER INSTALLATION VALUES //* 1. JCL DATA SET NAMES //* 2. REPLACE ???? WITH YOUR LOGGER NAME. USING THE LOGGER NAME AS A //* DATA SET NAME QUALIFIER PROVIDES A STANDARD TO INDICATE WHICH //* DATA SET BELONGS TO WHICH LOGGER. //*-------------------------------------------------------------------* //DEFLOG EXEC PGM=EDMLC000,PARM='????,BATCH' //STEPLIB DD DISP=SHR,DSN=HLQ.LOAD <=== PWX LOAD //EDMPARMS DD DISP=SHR,DSN=YOUR.USERLIB <=== EDMSDIR,EDMUPARM //ERDS01 DD DISP=SHR,DSN=YOUR.????.ERDS01 <=== PRI RESTART DSN //ERDS02 DD DISP=SHR,DSN=YOUR.????.ERDS02 <=== SEC RESTART DSN //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE_LOG DSNAME=YOUR.????.PRILOG.DS03, COPY=PRILOG END DEFINE_LOG DSNAME=YOUR.????.SECLOG.DS03, COPY=SECLOG END /*
RELATED TOPICS:
Configuring the PowerExchange Logger for MVS on page 39 Sample JCL Procedure for the PowerExchange Logger on page 48 Size and Number of Active Log Data Sets on page 53
58
Before you begin, estimate the average active log data set size and the space to allocate for each of these data sets. To resize the data sets, use the JCL in the #SIZELOG member of the hlq.SAMPLIB member, where hlq the highlevel qualifier that you specified during installation. This member contains IDCAMS DEFINE statements for allocating space for the resized active log data sets, such as:
DEFINE CLUSTER (NAME (hlq.EDML.PRILOG.DS01) LINEAR VOLUMES(volser) SHAREOPTIONS(2,3) CYL(nnn) ) DATA (NAME(hlq.EDML.PRILOG.DS01.DATA) )
Note: To resize the active log data sets, you must shut down the PowerExchange Logger and stop all capture and extraction tasks. To change the size of active log data sets: 1. 2. Make a copy of the sample #SIZELOG member in the hlq.SAMPLIB library. This member contains JCL for changing the size of log data sets. Edit the JCL statements in the copy of the #SIZELOG member, as needed. The following table describes the JCL statements for the IBM IDCAMS program:
JCL Statement EXEC Description Specify the IDCAMS program so that you can run the IDCAMS ALTER, DEFINE, and REPRO commands, which are specified in the SYSIN DD. Specify the output data set for MVS system messages. Specify the IDCAMS commands ALTER, DEFINE, and REPRO. For more information about these commands, see your IBM documentation.
SYSPRINT DD SYSIN DD
The following table describes the JCL statements for the PowerExchange EDMUTIL0 program:
JCL Statement EXEC Description Specify the EDMLUTL0 program. This program formats the expanded portions of the active log data sets for the PowerExchange Logger. Add the PowerExchange CDC load library to the STEPLIB DD concatenation unless you added it to the system LNKLST concatenation. Specify the active log data set name that you used to create the log data set.
STEPLIB DD
PRILOG DD
3.
Stop all PowerExchange jobs and tasks for which the PowerExchange Logger writes data to or reads data from the active log data sets. These jobs and tasks include the PowerExchange Listener, all ECCRs associated with the PowerExchange Logger, PowerExchange Condense tasks, and PowerExchange netport jobs. After all log reader and writer threads stop, stop the PowerExchange Logger. Customize and run the JCL in the #DISPLOG member of the hlq.SAMPLIB sample library. This JCL uses the PowerExchange Logger batch interface to display the in-use active log data sets.
4. 5.
59
If you want to display only the active log data sets, without the archive data sets, include the following TYPE parameter in the DISPLAY OBJECT=LOG command:
DISPLAY OBJECT=LOG,TYPE=ACTIVE,DSNAME=* END
When you run the batch job, the following output is written to the EDMMSG data set:
L O G S T A R T PWXEDM172502I EDM Logger BATCH initialization in-progress product level V2.4.04 10/15/2003 PWXEDM172638I EDM Logger system timestamp for ERDS = 2006.241 16:08:25.95 DISPLAY OBJECT=LOG,TYPE=ACTIVE,DSNAME=* END PWXEDM172572I EDM Logger input commands accepted execution started PWXEDM172679I EDM Logger LOG ACTIVE report follows: *Start RBA End RBA Log Dsname Status 000001FA4000 000002A2FFFF EDMUSR.PWX.PRILOG.DS01 REUS 000002A30000 0000034BBFFF EDMUSR.PWX.PRILOG.DS02 REUS,IN-USE 000001518000 000001FA3FFF EDMUSR.PWX.PRILOG.DS03 REUS 000001FA4000 000002A2FFFF EDMUSR.PWX.SECLOG.DS01 REUS 000002A30000 0000034BBFFF EDMUSR.PWX.SECLOG.DS02 REUS,IN-USE 000001518000 000001FA3FFF EDMUSR.PWX.SECLOG.DS03 REUS PWXEDM172506I EDM Logger BATCH Shutdown in progress PWXEDM172508I EDM Logger #### TASK EDMLIPC0 COMPLETE RC=00 PWXEDM172508I EDM Logger #### TASK EDMLCKP0 COMPLETE RC=00 PWXEDM172508I EDM Logger #### TASK EDMLRLM0 COMPLETE RC=00 PWXEDM172508I EDM Logger #### TASK EDMLLLG0 COMPLETE RC=00 PWXEDM172509I EDM Logger BATCH shutdown complete
Note: The PRILOG and SECLOG data sets that have the status of REUS,IN-USE are the in-use active log data sets. 6. 7. To change the size of the active log data sets, run the customized #SIZELOG job. Review the specifications for ARCHIVE_OPTIONS in the SETUPCC2 member of the hlq.RUNLIB library. Make any necessary adjustment to accommodate the new size of the active log data sets. An archive log data set requires the same amount of space as the active log from which it was created. If you increase the size of the active log data sets and you archive these logs to disk, you might also need to increase the space for the archive log data sets. You specify the amounts of primary and secondary space for archive log data sets in the ARCHIVE_OPTIONS parameter of the EDMUPARM options module. If you change these space amounts, update the corresponding values in the SETUPCC2 member. Tip: To change the archive log data set size, run only the first step of the job in the SETUPCC2 member. You do not need to run the second step, which defines the active log data sets to the PowerExchange Logger. 8. 9. Restart the PowerExchange Logger. Restart all of the PowerExchange jobs and tasks that you stopped in step 3. Note: If you issue the PowerExchange Logger DISPLAY OBJECT=LOG command immediately after this procedure, the RBA range that is displayed for the active log data sets might not reflect the increased data set size. The PowerExchange Logger does not adjust the RBA ranges to account for additional space until it nears the end of the in-use active log data sets.
RELATED TOPICS:
Data Set Size Determination on page 54
60
ALTER PWX.PRILOG.DS01.DATA NEWNAME(PWX.TEMPLOG1.DS01.DATA) ALTER PWX.SECLOG.DS01 NEWNAME(PWX.TEMPLOG2.DS01) ALTER PWX.SECLOG.DS01.DATA NEWNAME(PWX.TEMPLOG2.DS01.DATA) ALTER PWX.PRILOG.DS02 NEWNAME(PWX.TEMPLOG1.DS02) ALTER PWX.PRILOG.DS02.DATA NEWNAME(PWX.TEMPLOG1.DS02.DATA) ALTER PWX.SECLOG.DS02 NEWNAME(PWX.TEMPLOG2.DS02) ALTER PWX.SECLOG.DS02.DATA NEWNAME(PWX.TEMPLOG2.DS02.DATA)
/* //*-------------------------------------------------------------------* //ALLOCLOG EXEC PGM=IDCAMS,REGION=0M,COND=(0,LT) //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE CLUSTER (NAME(PWX.PRILOG.DS01) LINEAR STORCLAS(SMSPOOL) CYL(300)) DATA (NAME(PWX.PRILOG.DS01.DATA) ) DEFINE CLUSTER (NAME(PWX.SECLOG.DS01) LINEAR STORCLAS(SMSPOOL) CYL(300)) DATA (NAME(PWX.SECLOG.DS01.DATA) ) DEFINE CLUSTER (NAME(PWX.PRILOG.DS02) LINEAR STORCLAS(SMSPOOL) CYL(300)) DATA (NAME(PWX.PRILOG.DS02.DATA) ) DEFINE CLUSTER (NAME(PWX.SECLOG.DS02) LINEAR STORCLAS(SMSPOOL) CYL(300)) DATA (NAME(PWX.SECLOG.DS02.DATA) )
/* //*-------------------------------------------------------------------* //REPROLOG EXEC PGM=IDCAMS,REGION=0M,COND=(0,LT) //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO INDATASET(PWX.TEMPLOG1.DS01) OUTDATASET(PWX.PRILOG.DS01) REPRO INDATASET(PWX.TEMPLOG2.DS01) OUTDATASET(PWX.SECLOG.DS01) REPRO INDATASET(PWX.TEMPLOG1.DS02) OUTDATASET(PWX.PRILOG.DS02) REPRO INDATASET(PWX.TEMPLOG2.DS02) OUTDATASET(PWX.SECLOG.DS02)
/* //*-------------------------------------------------------------------* //* NOTE: //* THE FOLLOWING STEPS WILL *NOT* DESTROY THE DATA THAT WAS JUST //* COPIED INTO THE LOG DATASETS. INSTEAD, THE UTILITY DETECTS //* WHETHER ANY PART OF THE DATASETS HAVE BEEN ALLOCATED BUT NOT //* YET FORMATTED, AND ONLY FORMATS *THOSE* PARTS OF THE DATASETS. //*-------------------------------------------------------------------* //FORMATP EXEC PGM=EDMLUTL0,REGION=0M,COND=(0,LT) //STEPLIB DD DISP=SHR,DSN=PWX.LOAD //PRILOG DD DISP=OLD,DSN=PWX.PRILOG.DS01 //*-------------------------------------------------------------------* //FORMATS EXEC PGM=EDMLUTL0,REGION=0M,COND=(0,LT)
61
//STEPLIB DD DISP=SHR,DSN=PWX.LOAD //PRILOG DD DISP=OLD,DSN=PWX.SECLOG.DS01 //*-------------------------------------------------------------------* //FORMATP EXEC PGM=EDMLUTL0,REGION=0M,COND=(0,LT) //STEPLIB DD DISP=SHR,DSN=PWX.LOAD //PRILOG DD DISP=OLD,DSN=PWX.PRILOG.DS02 //*-------------------------------------------------------------------* //FORMATS EXEC PGM=EDMLUTL0,REGION=0M,COND=(0,LT) //STEPLIB DD DISP=SHR,DSN=PWX.LOAD //PRILOG DD DISP=OLD,DSN=PWX.SECLOG.DS02 //*-------------------------------------------------------------------*
STEPLIB DD
PRILOG
2.
Repeat Step 1 until you have defined all of the log data sets that you want to format. See the following sample JCL for a site with four PowerExchange log data sets, two primary data sets, and two secondary data sets.
3.
Run the job. The utility processes each data set, formatting it for change capture. The utility formats the data sets according to the following conditions:
If the data set is empty when the format utility processes it, the utility formats the entire data set, from the
beginning of the data set to the highest-allocated RBA for the log.
If the data set contains data when the format utility processes it, the utility formats the data set from the
highest used log RBA to the highest allocated log RBA. The utility does not format the existing data in the log data set. This is useful if you want to format a data set when you move or copy it to a different physical location. The following sample JCL (#EDMLFMT) shows how to format log data sets:
//*-------------------------------------------------------------------* //* PowerExchange CDC - FORMAT ACTIVE LOG DATA SETS FOR LOGGER //*-------------------------------------------------------------------*
62
//* REPLACE THE FOLLOWING ITEMS WITH PROPER INSTALLATION VALUES //* 1. JCL DATA SET NAMES //*-------------------------------------------------------------------* //DEFLOGP1 EXEC PGM=EDMLUTL0 //STEPLIB DD DISP=SHR,DSN=HLQ.LOAD <=== PWX LOAD //PRILOG DD DISP=SHR,DSN=YOUR.????.PRILOG.DS01 <=== PRI LOG #1 //*-------------------------------------------------------------------* //DEFLOGS1 EXEC PGM=EDMLUTL0 //STEPLIB DD DISP=SHR,DSN=HLQ.LOAD <=== PWX LOAD //PRILOG DD DISP=SHR,DSN=YOUR.????.SECLOG.DS01 <=== SEC LOG #1 //*-------------------------------------------------------------------* //DEFLOGP2 EXEC PGM=EDMLUTL0 //STEPLIB DD DISP=SHR,DSN=HLQ.LOAD <=== PWX LOAD //PRILOG DD DISP=SHR,DSN=YOUR.????.PRILOG.DS02 <=== PRI LOG #2 //*-------------------------------------------------------------------* //DEFLOGS2 EXEC PGM=EDMLUTL0 //STEPLIB DD DISP=SHR,DSN=HLQ.LOAD <=== PWX LOAD //PRILOG DD DISP=SHR,DSN=YOUR.????.SECLOG.DS02 <=== SEC LOG #2
DEFINE_LOG Command
The DEFINE_LOG command adds log definitions to the emergency restart data set. Use the DEFINE_LOG command to perform the following tasks:
Add a definition for a new active log to the restart data set. Add a definition for a replacement active log to the restart data set. Add a definition for a replacement archive log to the restart data set.
The DEFINE_LOG command has the following syntax for active logs:
DEFINE_LOG DSName=data_set_name, COPY={PRILOG|SECLOG}, [STARTRBA=Xstart_rba,ENDRBA=Xend_rba] END
The DEFINE_LOG command has the following syntax For archive logs:
DEFINE_LOG DSName=data_set_name, STARTRBA=Xstart_rba,ENDRBA=Xend_rba END
COPY
Specifies which copy of the active log you are defining. This parameter is valid only when you are specifying active log options.
63
Parameter STARTRBA
Definition Specifies the log RBA of the beginning of either the replacement active log data set or the replacement archive log data set volume specified by data_set_name. You can obtain the start RBA from messages or by using the PowerExchange Logger DISPLAY command. You must enter this parameter for archive log definitions. It is optional for active log definitions. Specifies the log RBA of the end of either the replacement active log data set or the replacement archive log data set volume specified by data_set_name. You can obtain the end RBA from messages or by using the PowerExchange Logger DISPLAY command. You must enter this parameter for archive log definitions. For active log definitions, this parameter is required if you specified STARTRBA. Indicates that the input for this command is complete.
Valid Values Enter up to 12 hexadecimal digits for the start_rba value preceding them with the character X and enclosing them in single quotation marks. If you enter fewer than 12 digits, the PowerExchange Logger adds leading zeros. Use this parameter only for replacement log data sets.
ENDRBA
Enter up to 12 hexadecimal digits for the end_rba value preceding them with the character X and enclosing them in single quotation marks. If you enter fewer than 12 digits, the PowerExchange Logger adds leading zeros. Use this parameter only for replacement log data sets.
END
RELATED TOPICS:
Adding Active Log Data Set Definitions to the Restart Data Set on page 57
The DELETE_LOG has the following syntax when used in batch mode:
DELETE_LOG DSNAME=archive_log_dataset_name END
64
The following sample JCL shows how to run the PowerExchange Logger in batch mode to delete an archive log data set. Specify the PowerExchange Logger ID in place of the question marks (????) in the PARM parameter on the EXEC card:
//jobname JOB //DEFLOG EXEC PGM=EDMLC000,PARM='????,BATCH' //STEPLIB DD DISP=SHR,DSN=HLQ.LOAD //EDMPARMS DD DISP=SHR,DSN=YOUR.USERLIB //ERDS01 DD DISP=SHR,DSN=YOUR.????.ERDS01 //ERDS02 DD DISP=SHR,DSN=YOUR.????.ERDS02 //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE_LOG DSNAME=archive_log_dataset_name END /*
2. 3.
Stop the PowerExchange Logger. Run the job to recover the damaged data sets. The following JCL example shows statements that recover damaged active log data sets. The following sample JCL (#RCOVADS) shows how to recover damaged active log data sets:
// JOB //*-------------------------------------------------------------------* //* PowerExchange Change Data Capture - RECOVER PRIMARY LOG FROM SECONDARY LOG
65
//*-------------------------------------------------------------------* //* REPLACE THE FOLLOWING ITEMS WITH PROPER INSTALLATION VALUES //* 1. JCL DATA SET NAMES //* 2. IDCAMS COMMAND SPECIFICATIONS //* 3. REPLACE ???? WITH YOUR LOGGER NAME. USING THE LOGGER NAME AS A //* DATA SET NAME QUALIFIER PROVIDES A STANDARD TO INDICATE WHICH //* DATA SET BELONGS TO WHICH LOGGER. //*-------------------------------------------------------------------* //ALLOCLOG EXEC PGM=IDCAMS,REGION=0M //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE (YOUR.????.PRILOG.DS01) ERASE SET MAXCC = 0 DEFINE CLUSTER (NAME(YOUR.????.PRILOG.DS01) LINEAR VOLUMES(VVVVVV) CYL(CC) ) DATA (NAME(YOUR.????.PRILOG.DS01.DATA) ) /* //*-------------------------------------------------------------------* //REPROLOG EXEC PGM=IDCAMS,REGION=0M //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO INDATASET(YOUR.????.SECLOG.DS01) OUTDATASET(YOUR.????.PRILOG.DS01) //*-------------------------------------------------------------------* //* NOTE: THE NEXT STEP WILL *NOT* DESTROY THE DATA THAT WAS JUST //* COPIED INTO THE PRILOG DATASET. INSTEAD, THE UTILITY DETECTS //* WHETHER ANY PART OF THE DATASET HAS BEEN ALLOCATED, BUT NOT //* YET FORMATTED, AND ONLY FORMATS *THAT* PART OF THE DATASET. //*-------------------------------------------------------------------* //FORMATLOG EXEC PGM=EDMLUTL0,REGION=0M //STEPLIB DD DISP=SHR,DSN=HLQ.LOAD <=== CDM LOADLIB //PRILOG DD DISP=OLD,DSN=YOUR.????.PRILOG.DS01 <=== LOG DATASET //*-------------------------------------------------------------------*
4.
2.
66
3. 4.
Run the edited #RCOVRDS job to recover the damaged data sets. Restart the PowerExchange Logger. The following sample JCL (#RCOVRDS) shows how to recover damaged restart data sets:
// JOB //*-------------------------------------------------------------------* //* PowerExchange Change Data Capture - RECOVERING A RESTART DATA SET //*-------------------------------------------------------------------* //* REPLACE THE FOLLOWING ITEMS WITH PROPER INSTALLATION VALUES //* 1. JCL DATA SET NAMES //* 2. IDCAMS COMMAND SPECIFICATIONS //* 3. REPLACE ???? WITH YOUR LOGGER NAME. USING THE LOGGER NAME AS A //* DATA SET NAME QUALIFIER PROVIDES A STANDARD TO INDICATE WHICH //* DATA SET BELONGS TO WHICH LOGGER. //*-------------------------------------------------------------------* //ALLOCRDS EXEC PGM=IDCAMS,REGION=0M //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE (YOUR.????.ERDS01) ERASE SET MAXCC = 0 DEFINE CLUSTER (NAME(YOUR.????.ERDS01) VOLUMES(volser) SHAREOPTIONS(2 3) ) DATA (NAME(YOUR.????.ERDS01.DATA) RECORDS(100) RECORDSIZE(4089 4089) CONTROLINTERVALSIZE(4096) FREESPACE(0 20) KEYS(4 0) ) INDEX (NAME(YOUR.????.ERDS01.INDEX) RECORDS(5 5) CONTROLINTERVALSIZE(1024) ) /* //*--------------------------------------------------------------------* //REPRORDS EXEC PGM=IDCAMS,REGION=0M //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO INDATASET(YOUR.????.ERDS02) OUTDATASET(YOUR.????.ERDS01) /*
67
2. 3. 4.
Stop the PowerExchange Logger. Run the job to move the data sets. Restart the PowerExchange Logger. The following sample JCL (#MOVELOG) shows how to move log data sets to other devices:
// JOB //*-------------------------------------------------------------------* //* PowerExchange Change Data Capture - MOVING A LOG DATA SET //*-------------------------------------------------------------------* //* REPLACE THE FOLLOWING ITEMS WITH PROPER INSTALLATION VALUES //* 1. JCL DATA SET NAMES //* 2. IDCAMS COMMAND SPECIFICATIONS //* 3. REPLACE ???? WITH YOUR LOGGER NAME. USING THE LOGGER NAME AS A //* DATA SET NAME QUALIFIER PROVIDES A STANDARD TO INDICATE WHICH //* DATA SET BELONGS TO WHICH LOGGER. //*-------------------------------------------------------------------* //ALTERLOG EXEC PGM=IDCAMS,REGION=0M //SYSPRINT DD SYSOUT=* //SYSIN DD * ALTER YOUR.????.PRILOG.DS01 NEWNAME(YOUR.????.TEMPLOG.DS01) ALTER YOUR.????.PRILOG.DS01.DATA NEWNAME(YOUR.????.TEMPLOG.DS01.DATA) /* //*-------------------------------------------------------------------* //ALLOCLOG EXEC PGM=IDCAMS,REGION=0M //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE CLUSTER (NAME(YOUR.????.PRILOG.DS01) LINEAR VOLUMES(VVVVVV) CYL(CC) ) DATA (NAME(YOUR.????.PRILOG.DS01.DATA) ) /* //*-------------------------------------------------------------------* //REPROLOG EXEC PGM=IDCAMS,REGION=0M //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO INDATASET(YOUR.????.TEMPLOG.DS01) OUTDATASET(YOUR.????.PRILOG.DS01) /* //*-------------------------------------------------------------------*
68
//* NOTE: THE NEXT STEP WILL *NOT* DESTROY THE DATA THAT WAS JUST //* COPIED INTO THE PRILOG DATASET. INSTEAD, THE UTILITY DETECTS //* WHETHER ANY PART OF THE DATASET HAS BEEN ALLOCATED, BUT NOT //* YET FORMATTED, AND ONLY FORMATS *THAT* PART OF THE DATASET. //*-------------------------------------------------------------------* //FORMATLG EXEC PGM=EDMLUTL0,REGION=0M //STEPLIB DD DISP=SHR,DSN=HLQ.LOAD <=== CDM LOADLIB //PRILOG DD DISP=OLD,DSN=YOUR.????.PRILOG.DS01 <=== LOG DATASET //*-------------------------------------------------------------------*
Logger creates an XCF group. The Post-Log Merge job creates an XCF group, which is named by using the PowerExchange Logger ID value. All member Loggers join the Post-Log Merge XCF group. Therefore, the total number of XCF groups that PowerExchange requires is the sum of all of the member Loggers plus one for the Post-Log Merge XCF group. For example, if you have three member Loggers on three MVS systems, there are four XCF groups created.
Each PowerExchange Logger XCF group name must be unique within the sysplex. PowerExchange creates the
name for the member Logger XCF group by appending the SMF ID of the MVS system to PowerExchange Logger ID value from the LOGGER_NAME parameter in the EDMUPARM module options. If the SMF ID value for the MVS system on which a member Logger runs is not unique within the Post-Log Merge group, you can specify a unique value to override the SMF ID in the PARM parameter of the EXEC JCL card for the member Logger.
69
The Logger emergency restart data sets (ERDSnn) and the active log data sets for all member Loggers in the
must be accessible to the system on which the Post-Log Merge job runs. This applies to all member Loggers in the Post-Log Merge group. All PowerExchange MVS capture sources that support multi-system access and update can utilize Post-Log Merge. You must run the appropriate capture source ECCR (along with the Agent and the Logger) on each MVS system for which you want the Post-Log Merge job to merged changes. Note: DB2 data sharing does not require Post-Log Merge. The DB2 IFI 306 interface calls utilized by the DB2 ECCR result in all changes being captured from a database on any system in the data sharing group. Running multiple DB2 ECCRs in a DB2 data sharing group results in changes being captured numerous times.
Synchronous capture data sources include IMS, Batch VSAM, CICS/VSAM, and Datacom Synchronous. You must run an ECCR for the synchronous data sources on every MVS system in the sysplex where changes are made. You must also run a PowerExchange Agent on each system that you run an ECCR, and a Post-Log Merge member Logger on one MVS system. Therefore, the minimum capture environment on any one system includes a PowerExchange Agent, PowerExchange Logger, and an ECCR.
All log readers must run on the same MVS system as the Post-Log Merge job. Log readers include the
PowerExchange Listener, netport jobs, Condense jobs, and the DTLUAPPL utility.
The DTLUAPPL utility and Condense jobs require that a Post-Log Merge member Logger run on the same
70
Post-Log Merge group. 4. Create a unique EDMUPARM for each USERLIB data set. Member SETUPCC2 in RUNLIB creates the EDMUPARM member in USERLIB. This member contains specifications that should be reviewed and changed where required:
SUFFIX= in SYSTEM_OPTIONS must be a unique number for each member Logger of the Post-Log
Merge group
LOGGER_NAME= in SYSTEM_OPTIONS must be the Logger name. This Logger name must be the same
qualifiers (HLQ) for the archive logs of each member Logger of the Post-Log Merge group.
71
TIME_CHKPT_FREQ= in SYSTEM_OPTIONS should be reviewed and changed if necessary. TIMER_INTERVAL= in SYSTEM_OPTIONS should be reviewed and changed if necessary.
Note: In environments with member Loggers that are occasional less active than others, you need to carefully consider the values specified for TIME_CHKPT_FREQ= and TIMER_INTERVAL=. Lower values reduce extraction latency in a Post-Log Merge environment. 5. Customize the PowerExchange Logger JCL, as necessary.
If your MVS systems do not have unique SMF IDs, update the PowerExchange Logger JCL for those systems to override the non-unique SMF ID with a unique value. This completes the additional installation customization required for Post-Log Merge.
RELATED TOPICS:
SYSTEM_OPTIONS Statement on page 41 Customizing the PowerExchange Logger JCL on page 47 Performance Considerations on page 73
Use the USERLIB that has been created for the MVS system on which the Post-Log Merge job runs. For the DDNAME of the ERDS, you must use the following format:
//ERDSnn
The variable nn represents a two-digit value from 01 to 99. When you set up the Post-Log Merge job, specify only one ERDSnn DD statement, usually the primary one, for each PowerExchange Logger.
72
Performance Considerations
Post-Log Merge does not impact the performance of the change capture process. All change capture ECCRs connect to the member Logger on their MVS system to write their captured changes. During change extraction process, if one MVS system or member Logger is running slowly, the log-merge process performed by the Post-Log Merge task for the log readers are impacted. The change extraction process must wait for the data from the slow MVS system/member Logger as the change data from all members must be merged and presented in the proper chronological order. The Post-Log Merge task reads records from each member Loggers active log data set as they are written. To ensure the required responsiveness for the extraction process, there are two key performance characteristics of the Post-Log Merge environment to consider:
Time-based checkpoint frequency in inactive member loggers. Dispatching priority of the Post-Log Merge job.
73
Dispatching Priorities
It is recommended that the member Loggers have a dispatching priority (or service class) at least equal to the ECCRs which are writing data to them. This is especially important with transaction-oriented synchronous capture sources (such as IMS, CICS/VSAM) as the change logging process is a part of the transactions path length so delays in logging delay the transaction. The dispatching priority of Post-Log Merge does not impact the capture process. However, the extraction process is dependent upon the responsiveness of the Post-Log Merge task. Based on your extraction needs, the Post-Log Merge job may need to have a higher dispatching priority than standard batch jobs or general started tasks. For example, if you require the best-possible extraction response from the Post-Log Merge task, its dispatching priority (or service class) should be equal to or higher that the PowerExchange Listener (or whatever job is performing the extraction).
Recovery Scenarios
When you run Post-Log Merge, you need to consider the recovery options for the Post-Log Merge job as well as the other PowerExchange CDC components. Consider the following types of recovery scenarios:
PowerExchange CDC component failures MVS system failures
PowerExchange CDC component failures might interrupt capture or extraction processing. The following table lists the capture and extraction components in the Post-Log Merge configuration and the result if that component fails:
Component ECCR PowerExchange Agent PowerExchange Condense PowerExchange Logger Result If the Component Fails Capture for that ECCR is interrupted. Capture registrations cannot be verified. No new CDC data condensed. Recovery Restart the ECCR. Restart the PowerExchange Agent. Restart PowerExchange Condense.
The ECCRs that reside on the same system as the failed PowerExchange Logger also fail. The member Loggers and the Post-Log Merge job continue to run. Real-time extraction CDC sessions fail. The member Loggers continue to run but realtime extraction CDC sessions fail.
Restart the PowerExchange Logger and then the ECCRs. Restart the PowerExchange Listener and then restart the failed CDC sessions.
PowerExchange Listener
Restart the Post-Log Merge job and then restart the failed CDC sessions.
74
The following table lists the extraction components in a Post-Log Merge configuration and the considerations for moving these components to another MVS system in the sysplex:
Component PowerExchange Listener Considerations - If a PowerExchange Listener runs on the destination MVS system and uses the same PowerExchange CDC environment, then you can change the NODE statement that points to the failed MVS system in the dbmover.cfg file on the Integration Service machine to point to the PowerExchange Listener on the destination system. - If you move the PowerExchange Listener from the failed system, you must either redirect network traffic for the failed MVS system to the destination MVS system or change the NODE statement for the failed MVS system in the dbmover.cfg file on the Integration Service machine to point to the destination MVS system. - To restart extraction CDC sessions, you must also move the Post-Log Merge job. - The Post-Log Merge job can be restarted on any MVS system in the sysplex, including systems that do not currently run a member Logger. - Move the PowerExchange Agent if there is not one running on the destination MVS system. - To restart extraction CDC sessions, you must either move the PowerExchange Listener and redirect network traffic for that PowerExchange Listener or change the NODE statement in the dbmover.cfg file on the Integration Service machine to point to a PowerExchange Listener that runs on the destination MVS system.
The following table lists the capture components in a Post-Log Merge configuration and the considerations for moving these components to another MVS system in the sysplex:
Component ECCR Considerations - Only move a synchronous ECCR to another MVS system if the source database region or workload moves. In this case, a PowerExchange Agent and a member Logger must be available on the destination MVS system. If a member Logger of the same Post-Log Merge group runs on the destination MVS system, do not move the PowerExchange Agent and PowerExchange Logger from the failed system. - For the Adabas, Datacom table-based, IDMS log-based, and IMS log-based ECCRs, the PowerExchange Agent and PowerExchange Logger from the failed MVS system must be moved to the destination MVS system. The destination system cannot run another PowerExchange Logger that has the same Logger name or is part of the same Post-Log Merge group. The destination MVS system must also run the Post-Log Merge job and the PowerExchange Listener used for change data extraction. - For a DB2 ECCR that attaches to a data sharing group, you can only move the ECCR to a destination MVS system that does not have a member Logger that is a part of the same Post-Log Merge group. If so, then you must move the member Logger from the failed system. The destination system must also have a DB2 subsystem that is a member of the same data sharing group. This DB2 subsystem can be the one moved from the failed system or one that normally runs on the destination system. If there is a member Logger on the destination system, you cannot move the DB2 ECCR to that system. - For a DB2 subsystem that attaches to a non-data sharing DB2 subsystem, the related PowerExchange Agent and PowerExchange Logger must be available on the destination MVS system. The destination MVS system cannot run another PowerExchange Logger that has the same Logger name or is part of the same Post-Log Merge group. You must also move the DB2 subsystem to the destination system. None - A PowerExchange Logger that is part of the Post-Log Merge group must run on the destination MVS system. - The destination MVS system must also run the Post-Log Merge job.
75
Considerations - If no PowerExchange Logger runs on the destination MVS system, then you must also move the related PowerExchange Agent from the failed MVS system. - If a member Logger in the same Post-Log Merge group runs on the destination MVS system, do not move another member Logger to that system. If you use the PowerExchange Listener on the failed MVS system to extract change data, then also move the Post-Log Merge job to the destination MVS system.
PowerExchange Listener
The job_name is the Post-Log Merge JOB name. Also, you can use the MVS STOP command (STOP job_name). It has the same effect as the following MODIFY command:
MODIFYjob_name,QUIT
The following table shows the full set of MODIFY commands that you can use:
Command DISPLAY or DIS Description Displays information about Log Reader processes that are connected to the Post-Log Merge task, including what Loggers are being merged, and what the current read location is within each Logger's data. Information is displayed in the Log. Same as for DISPLAY. Causes Post-Log Merge to terminate. Any active Log Reader processes end abnormally. Same as for QUIT. Disables tracing for the Post-Log Merge task. Activates short-form tracing. No more than 32 bytes of data for each trace entry are produced. Activates long-form tracing, which causes the entire trace entry to be produced.
76
CHAPTER 5
PowerExchange Condense
This chapter includes the following topics:
PowerExchange Condense Overview, 77 Configuring PowerExchange Condense, 77 Configuring PowerExchange Condense Parameters, 84 Starting and Stopping PowerExchange Condense, 96 Controlling PowerExchange Condense, 102 Backing Up PowerExchange Condense Output Files , 102
77
Restriction: PowerExchange does not support full condense processing for Adabas or IDMS log-based CDC. If you want the PowerExchange Condense to create separate condense files for one or more groups of tables, create a PowerExchange group definition file that defines groups of capture registrations for the tables.
RELATED TOPICS:
Configuring Condense Group Definitions on page 94
5. Click File > Save to save the changed capture registration. Alternatively, press CTRL+S. You must refresh or recycle the ECCR that captures changes for the data source, and recycle the PowerExchange Condense job if it is running. If PowerExchange Condense does not find any active capture registration, it issues the error message PWX-06427 and ends.
The PowerExchange log contains messages indicating when the various tasks start and end and, generally, from which task a message is being issued.
RELATED TOPICS:
Configuring PowerExchange Condense Parameters on page 84
78
Batch Mode
In batch mode, a single condense operation runs and then the Condense job shuts down. Running the Condense job in this manner is well suited for batch applications. For example, single condense runs might be inserted at appropriate points in an applications automated schedule following update jobs. The following sample messages display for batch mode:
PWX-06455 Command Handler: received CAPTURE_STARTUP_COMPLETE event. PWX-06417 Condense: Start to Condense because initialization complete PWX-09957 CAPI i/f: Read times out after 10 seconds PWX-09967 CAPI i/f: End of log for time 06/08/16 16:59:43 reached PWX-06415 Condense: Condense completed. Total Records=584, Data=289, UOWs =6 PWX-06416 Condense: Shutting down because Single Condense run completed PWX-06418 Condense: Closed file EDMUSR.D811.CND.CP060816.T1659144 PWX-06136 Checkpoint taken to file=EDMUSR.D811.CHKPTV0 time=06/08/16 17:00:05 PWX-06420 Condense: Checkpoint done. Sequence=0000035CAA14000000000000035CAA1400000000 PowerExchange Logger=C5C4D4D340400000035C5EEB00000000
In this example, the Condense job ran in batch mode and so it shut down after the first condense operation as indicated by message PWX-06416.
Continuous Mode
In continuous mode, the Condense job runs for a long period, perhaps on a 24-hour basis. In this mode, the condense subtask sleeps after each condense operation. One of the following events triggers the next condense operation:
The number of minutes defined by the NO_DATA_WAIT parameter elapses. You issue a CONDENSE command from the command line. Alternatively, you issue a pwxcmd condense
command from a Linux, UNIX, or Windows system to the PowerExchange Condense process running on the z/OS system.
You issue a FILESWITCH command from the command line. Alternatively, you issue a pwxcmd fileswitch
command from a Linux, UNIX, or Window system to the PowerExchange Condense process running on the z/OS system.
You issue a SHUTCOND command from the command line. Alternatively, you issue a pwxcmd shutcond
command from a Linux, UNIX, or Windows system to the PowerExchange Condense process running on the z/OS system. In continuous mode, the Condense job does not automatically shut down. Instead, you must shut the Condense job down by using either the SHUTDOWN or SHUTCOND commands. Condense files become available for reading by the change extraction process after a file switch. File switch processing closes open condense files if they contain data and opens a new set of condense files for future changes. Only closed condense files can be processed by extractions. PowerExchange performs the file switch when the file switch criteria defined by tags FILE_SWITCH_CRIT and FILE_SWITCH_VAL are met or when you issue a FILESWITCH command. Note: A file switch does not take place if no data is present in the current condense file. If no data is present, the next file switch attempt occurs when the criteria defined by FILE_SWITCH_CRIT and FILE_SWITCH_VAL are met. If there is still no data, this cycle continues at the set intervals until data is available. The following are sample messages for continuous mode:
PWX-06455 PWX-06417 PWX-09957 PWX-09967 PWX-06421 PWX-06417 PWX-06419 Command Handler: received CAPTURE_STARTUP_COMPLETE event. Condense: Start to Condense because initialization complete CAPI i/f: Read times out after 10 seconds CAPI i/f: End of log for time 06/08/16 17:14:56 reached Condense: 06/08/16 17:15:09 Starting wait on commands for 5 minute Condense: Start to Condense because no commands received after 5 minute Condense: Doing file switch. Records=1017 Reason=Records criteria met
79
PWX-06418 Condense: Closed file EDMUSR.D811.CND.CP060816.T1720146 PWX-06136 Checkpoint taken to file=EDMUSR.D811.CHKPTV1 time=06/08/16 17:20:10 PWX-06420 Condense: Checkpoint done. Sequence=0000036359560000000000000363595600000000 PowerExchange Logger=C5C4D4D34040000003630E4300000000 PWX-06415 Condense: Condense completed. Total Records=1356, Data=672, UOWs =12 PWX-06421 Condense: 06/08/16 17:20:21 Starting wait on commands for 5 minute
In this example, the Condense job is running in continuous mode so the condense operation runs periodically and waits for the next interval as specified in NO_DATA_WAIT. Message PWX-06421 indicates that the condense operation waits the NO_DATA_WAIT interval, which is five minutes in this example. Message PWX-06417 indicates that the condense operation starts after the NO_DATA_WAIT interval expires. If PowerExchange condenses data in a condense operation, PowerExchange issues message PWX-06420.
RELATED TOPICS:
Configuring PowerExchange Condense Parameters on page 84
80
DTLAMCPR
This DD statement points at the hlqvs.CCT, which is a VSAM KSDS data set containing the capture registrations defined using the Navigator. When the Condense job is started, it processes all active registrations in the CCT requesting condense processing, which match the CAPTPARM parameters DB_TYPE and DBID. For example, if the CAPTPARM specifies DB_TYPE=DB2 and DBID=DSN1, the Condense uses all active DB2 registrations with condense of either Part or Full with an instance name of DSN1. Note: The value for DBID is the value specified when the Registration Group is created. The name of the field in the Registration Group varies based on DB_TYPE. In the case of DB2, the field is called Database Instance. When opening an existing Registration Group in the Navigator, this value is contained in the Instance field in the Registration Group tab in Resource Inspector. The CCT pointed to by the Condense DTLAMCPR DD statement must be the same CCT pointed to by the PowerExchange Listener, which was used when the capture registration was created. The CCT must also be the same CCT that is read on behalf of or by the PowerExchange Agent. The recommended Agent setup is to process registrations through the PowerExchange Listener but it is possible for the Agent to read the CCT directly. In either case, this must be the same CCT as used by the Condense job.
EDMPARMS
This DD statement points to the hlq.logger.USERLIB data set, which is created during the installation of PowerExchange. This data set contains the EDMSDIR module, which defines the default Agent ID and Logger name and is used to initialize services required by the Log Read API. PowerExchange uses the Log Read API (LRAPI) to access the change data captured by the DB2 ECCR and recorded by the PowerExchange Logger.
DTLCFG
This DD statement points at the DBMOVER member of the hlq.RUNLIB data set, which is created during the installation of PowerExchange. The DBMOVER member contains the PowerExchange configuration parameters. The DBMOVER member includes the CAPI_CONNECTION statements used by the Log Read API (TYPE=LRAP) and the UOW Cleanser (TYPE=UOWC). The Log Read API (LRAPI) CAPI_CONNECTION statement defines the Agent ID and Logger name to which it connects. PowerExchange uses the UOW Cleanser in conjunction with the LRAPI to reconstruct the UOWs read from the Logger into complete UOWs in the proper chronological order. The Logger specified in the CAPI_CONNECTION for the LRAPI must be the same that the DB2 ECCR uses (in the EDMSDIR pointed to by the EDMPARMS DD statement) to capture the change data.
DTLCACDC (CDCT)
The hlqvs.CDCT, a VSAM KSDS data set, is written to by the condense process and read by the PowerExchange Listener when extracting condensed change data. This VSAM data set is created during the PowerExchange
81
installation and is initially primed with a high values (9s) record. After each file switch, tracking records are written with information about each Condense file. These keyed records contain information about the data that has been condensed such as the condense file name, whether it is a partial or full condense file, start and end times, whether before images are included, the number of records in the file, and other control information. After each file switch, the Condensed files are closed, tracking records are inserted into the CDCT, and a new checkpoint is taken to the Checkpoint data set. The CDCT tracking records are also written to the checkpoint file. Each time the Condense job is warm started, these records are checked and adjustments are made to the CDCT file if necessary, by either inserting or deleting records.
Condense Files
Condense files are created as a part of the condense process in the Condense job. They contain the change data for the active registrations found by the Condense job during initialization. The names of these data sets are determined by various parameters specified in the CAPTPARM parameters; specifically, EXT_CAPT_MASK and CONDF_FULL_FILE_CTL. The data set type of the condense files varies based on whether they are partial or full condense files:
Partial condense creates variable-blocked sequential data sets. The data set name has the following
format:
hlq.CND.CPyymmdd.Thhmmssn
Where:
- hlq is an EXT_CAPT_MASK value. - yymmdd is a date. - hhmmss is a time. - n is a sequence number, starting at 1, for establishing uniqueness. Full condense creates VSAM KSDS data sets. The cluster data set name has the following format: hlq.CND.CFyymmdd.Thhmmssn
Where:
- hlq is an EXT_CAPT_MASK value. - yymmdd is a date. - hhmmss is a time. - n is a sequence number, starting at 1, for establishing uniqueness.
Condense files are read by the PowerExchange Listener or a netport job using the CAPX access method. You can use the PowerExchange Navigator to view the data contained within closed condense files. Open the extraction map that is in the appropriate Extraction Group and select Database Row Test. The Condense change data can be extracted and processed by a variety of methods, including PowerCenter sessions and workflows.
RELATED TOPICS:
Configuring PowerExchange Condense Parameters on page 84
Checkpoint Files
The checkpoint files are VSAM KSDS data sets. Their names are determined based on the prefix specified in the CHKPT_BASENAME parameter in CAPTPARM and, if specified, the suffix specified in the template pointed to by CAPTPARM parameter CHKPT_FILE_CTL.
82
It is possible to run with a single checkpoint data set. This is not advisable as future restart could be compromised. It is recommended that at least 2 checkpoint files are specified for the Condense job in the CAPTPARM parameters. During initialization of the Condense job, a new checkpoint is taken. The following message, which includes the checkpoint file name and a timestamp, indicates that a checkpoint has been taken:
PWX-06136 Checkpoint taken to file=hlq.CHKPTVn time=yy/mm/dd hh:mm:ss
This checkpoint reflects the results of merging the current registrations from the CCT file with the information from the last checkpoint of the previous run (if this is a warm start). For a cold start, no data is merged because previous checkpoint files do not exist. After each FILESWITCH or SHUTDOWN command is issued, a new checkpoint is taken. In addition to the PWX-06136 message, the following PWX-06420 message displays the contents of the restart tokens at checkpoint:
PWX-06420 Condense: Checkpoint done. Sequence=sequence_restart_token Logger=logger_restart_token
The following table describes the information that is stored in the checkpoint files:
Checkpoint Record Type ERT records Description Registration tags and restart tokens, which indicate the point to start receiving records from the PowerExchange Logger. Information which is also held in the CDCT file, describing completed Condensed files. The purpose of this record type is to be able to restore the CDCT file to a consistent point during either cold start or warm start. This information is purged using the number of days defined in CAPTPARM parameter COND_CDCT_RET_P. A single record defining system-wide information.
DCT records
SRT record
The following information assumes that alternative logging, which is the default during the installation of PowerExchange, is being used.
DTLLOG
With alternative logging, DTLLOG only contains messages up until the point that the alternative logging subtask is successfully initialized. For the Condense job, this means that it generally only contains the print of the DTLCFG DD statement parameters (DBMOVER).
83
These can be DD statements in the JCL of the form DTLLOGnn (where nn are numbers from 01 through 99) or dynamically allocated data sets (if no DD statements are provided).
DTLOUT
When alternative logging is used, the DTLOUT DD statement only contains messages if there are errors allocating condense files. Without alternative logging, it contains a subset of the messages written to the DTLLOG DD statement.
EDMMSG
The EDMMSG DD statement is dynamically allocated if it is not included in the JCL. It contains messages from the Log Read API, which connects to the PowerExchange Logger to read the captured change data. These messages indicate to which PowerExchange Logger and PowerExchange Agent the Condense job attaches as well as the starting point at which to begin, which is passed to the Logger.
If you plan to run multiple PowerExchange Condense jobs, each job must use a unique CAPTPARM member. Each PowerExchange Condense job must have unique checkpoint and condense file data set names.
Parameter Descriptions
This topic describes the PowerExchange Condense parameters that you can specify in the CAPTPARM member.
84
Valid Values - AI. After images only. - BA. Before and after images. Default is AI.
CHKPT_BASENAME
Checkpoint data sets are VSAM KSDS clusters. To create the full checkpoint VSAM KSDS cluster name, PowerExchange appends Vn to the last qualifier, where n is a number from 0 to the value of CHKPT_NUM-1. For example:
INFA.D.CHKPTV0
By default, the names of the index and data components of the checkpoint VSAM KSDS clusters are the full cluster names with the suffix .D or .I. The following example is for a data component:
INFA.D.CHKPTV0.D
CHKPT_FILE_CTL
Specifies the template file that contains the IDCAMS DEFINE CLUSTER control statements for the checkpoint files. A sample template, TMLCHKPT, is supplied in the RUNLIB library. This parameter is mutually exclusive with: - CHKPT_VOLSERS - CHKPT_PRIM_ALLOC - CHKPT_SCND_ALLOC Specifies the number of checkpoint data sets. Warning: Decreasing CHKPT_NUM on a warm start can result in a restart from an incorrect location. Decrease CHKPT_NUM only if doing a cold start. Specifies the primary space allocation for checkpoint files. This parameter is mutually exclusive with CHKPT_FILE_CTL. Specifies the secondary space allocation for checkpoint files. This parameter is mutually exclusive with CHKPT_FILE_CTL.
A fully qualified sequential data set name or PDS member name. For a PDS member, enclose the entire name string in quotation marks ().
CHKPT_NUM
CHKPT_PRIM_ALLOC
CHKPT_SCND_ALLOC
85
Parameter CHKPT_VOLSERS
Description Specifies the DASD volume serial numbers where checkpoint data sets are allocated. If specified, three VOLSERs must be specified, even if they are all the same. This parameter is mutually exclusive with CHKPT_FILE_CTL. Specifies the operational mode of the Condense job.
COLL_END_LOG
- 0. Continuous mode. After each Condense run, the system waits for the number of minutes defined in the NO_DATA_WAIT parameter and then performs another Condense. - 1. Batch mode. The system shuts down after a single Condense run. For example, a single condense run might be scheduled following a particular batch update job. Default is 0. Any number greater than 0. Default is 60.
COND_CDCT_RET_P
Specifies the retention period, in days, for CDCT records and condense files. Files older than this period and their corresponding CDCT records are automatically deleted during cleanup processing. Cleanup processing occurs during startup, fileswitch, or shutdown processing. Tip: Enter enough days for change data to be extracted from the condense files before the files are deleted. Optional. A name for the command-handling service for a PowerExchange Condense process to which pwxcmd commands are issued. Syntax is:
CONDENSENAME=service_name
CONDENSENAME
This service name must match the service name that is specified in the associated SVCNODE statement in the DBMOVER configuration file. CONDF_FULL_FILE_CTL Specifies a template file that contains the IDCAMS DEFINE CLUSTER control statements for the full condense files. A sample template, TMLCONF, is supplied in RUNLIB. Any fully qualified sequential data set name or PDS member name. If specifying a member name, enclose the entire name string in quotation marks (). A number from 0 to 32760. Default is 0. Any valid SMS DATACLAS.
CONDF_PART_BLKSZ
CONDF_PART_DATACLAS
Specifies the SMS DATACLAS value for partial condense files. Specifies the logical record length (LRECL) value for partial condense files.
CONDF_PART_LRECL
86
Parameter CONDF_PART_MGMTCLAS
Description Specifies SMS MGMTCLAS value for partial condense files. Specifies the SMS STORCLAS value for partial condense files. Specifies the primary space allocation for condense files, used in conjunction with CONDF_TYPE. This parameter is ignored for full condense files if CONDF_FULL_FILE_CTL is specified. Specifies the secondary space allocation for condense files, used in conjunction with CONDF_TYPE. This parameter is ignored for full condense files if CONDF_FULL_FILE_CTL is specified. Specifies the space unit type for condense files, used in conjunction with CONDF_PRIM_ALLOC and CONDF_SCND_ALLOC. This parameter is ignored for full condense files if CONDF_FULL_FILE_CTL is specified. Specifies the unit for condense files. This parameter is ignored for full condense files if CONDF_FULL_FILE_CTL is specified. Specifies the VOLSER for condense files. This parameter is Ignored for full condense files if CONDF_FULL_FILE_CTL is specified. Specifies the CAPI_CONNECTION name to use when running PowerExchange Condense.
CONDF_PART_STORCLAS
CONDF_PRIM_ALLOC
CONDF_SCND_ALLOC
CONDF_TYPE
CONDF_UNIT
Valid MVS generic or esoteric unit name. For example, 3390 or SYSDA. Valid MVS VOLSER.
CONDF_VOL
CONN_OVR
Valid source CAPI connection name. If you do not specify this name, PowerExchange Condense uses the default connection. ADA for Adabas DB2 for DB2 for z/OS DCM for Datacom IDM for IDMS synchronous IDL for IDMS log-based IMS for IMS VSM for VSAM
DB_TYPE
DBID
Specifies the instance name. When used with DB_TYPE, it defines selection criteria for capture registrations in the CCT file. This value must match the instance name that is displayed in the PowerExchange Navigator for the Registration Group that contains the capture registrations. For DB2, this value is either a DB2 subsystem ID (SSID) or the name of a data-sharing group.
87
Parameter EXT_CAPT_MASK
Description Specifies a unique high-level qualifier (HLQ) that PowerExchange Condense uses to allocate condense data sets. For example:
INFA.D
Valid Values Verify that this HLQ does not match data sets other than condense data sets on the system. PowerExchange considers any data sets that match this HLQ to be condense data sets, even if they are unrelated to condense processing. Maximum length is 21.
To create condense data sets, PowerExchange appends the following information for sequential partial condense data sets:
.CND.CPyymmdd.Thhmmnnn
Where: - yymmdd is year (yy), month (mm), and day (dd). - hh is hour. - mm is minutes. - nnn is a sequence number starting from 001. For example:
INFA.D.CND.CP080718.T1545001
Warning: Do not use the same EXT_CAPT_MASK value for multiple Condense tasks. Otherwise, a Condense task might corrupt condense data sets that another Condense task is using. Also, do not reuse an EXT_CAPT_MASK value until the Condense task has finished processing all condense data sets that match the mask. FILE_SWITCH_CRIT Specifies whether to use minutes or records for determining when to do an automatic file switch. Used in conjunction with FILE_SWITCH_VAL. Specifies the number of FILE_SWITCH_CRIT units at which to do a file switch. For example, if this value is 30, the Condense task performs a file switch every 30 records if FILE_SWITCH_CRIT=R, or every 30 minutes if FILE_SWICTH_CRIT=M. If a condense file contains no data when the FILE_SWITCH_VAL limit is reached, the file switch does not occur. Specifies the fully qualified data set name for the Condense Group Definitions file that defines condense groups. This parameter is required to use condense definition groups. - M. Minutes. - R. Records. Default is M. Any number greater than 0. Default is 30.
FILE_SWITCH_VAL
GROUPDEFS
Any fully qualified sequential data set name or PDS member name. If you specify a member name, enclose the entire name string in quotation marks (). For example:
GROUPDEFS="DTLUSR.V810.RUN LIB(CONDGRP)"
88
Parameter KEY_CHANGE_ALW
Description Specifies whether changes to the source key columns are allowed for full condense. With DB2, it is possible to do an UPDATE and change any or all key columns in a row. This parameter is not applicable to partial condense.
Valid Values - N. If a key is changed for a source using full condense, the condense job fails when this is detected during condense processing. - Y. If a key is changed for a source using full condense, the condense job, during condense processing, ignores the change to the key and continue processing. Default is N. Any number greater than 0. Default is 60.
NO_DATA_WAIT
Specifies the wait period, in minutes, between condense operations when running in continuous mode. If file switching is done on minutes criteria and FILE_SWITCH_VAL is smaller than NO_DATA_WAIT, the wait period is reduced to the smaller of the two values. This parameter is not used if running in batch mode (COLL_END_LOG = 1). Specifies the wait period, in seconds, for additional data to be received after the end-of-log is reached, indicated by the PWX-09967 message. This parameter sets the Consumer API (CAPI) interface timeout value, which is shown in message PWX-09957. The completion of a condense operation occurs when this number of seconds expires without data being provided by PowerExchange Logger.
NO_DATA_WAIT2
Any number greater than 0. 2 seconds is recommended. Default is 600 seconds. The optimal value for the parameter varies according to change data activity on the system: If the parameter is set too low, the Condense operation might end prematurely causing a delay in capturing all available changes to a condense file so they can be extracted. - If the parameter is set too low and a large unit of work for a source not being condensed is encountered by the PowerExchange Logger, the condense operation might also end prematurely because no data is being returned. - If the parameter is set too high, an individual condense operation might never end.
89
Parameter OPER_WTO
Description Specifies whether condense file close WTO messages are issued. Note: File switch processing does not occur for empty condense files.
Valid Values - N. PWX-06418 messages are written to the PowerExchange log when a condense file is closed. - Y. PWX06418I WTOs are issued when a condense file is closed. These messages can be used by an automation product if desired. The PWX-06418 messages are also written to the PowerExchange log. Default is N. - Specific restart and sequence token values. - 0 - Not specified.
Parameters that define a restart point for starting change data processing when PowerExchange Condense is cold started. A restart point is defined by both a restart token and a sequence token. Depending on how you set these parameters, PowerExchange Condense processing starts from one of the following restart points during a cold start: - If you do not specify these parameters, processing starts from the current end-of-log position. - If you enter 0 for both parameters, processing starts from the earliest possible start location in the PowerExchange Logger. - If you enter restart token and sequence token values other than 0, processing resumes from the specific restart point defined by these token values. Specifies whether PowerExchange Condense should attempt to handle certain abnormal end conditions, such as ABEND 0C4, SIGSEGV, SIGABEND.
SIGNALLING
- Y. Condense takes automatic action in the event of certain abnormal ends, such as memory corruption (S0C4 ABENDs), and attempt to close down in an orderly manner. - N. No automatic trapping of errors is done by Condense. Instead, the operating system uses its default error handling, which is usually to report the offending program line and dump memory. Default is N. A number from 0 to 2147483647. Set this value based on your environment, such as the number of tables being condensed. Default is 600 seconds. - Y. Verbose messaging - N. Terse messaging Default is Y.
CONDENSE_SHUTDOWN_TIME OUT
Specifies the maximum amount of time, in seconds, that PowerExchange Condense waits after receiving a SHUTDOWN command before stopping.
VERBOSE
Specifies whether PowerExchange Condense issues verbose or terse messages for frequent condense activities such as cleanup, checkpoint, condense, and file switch processing.
90
RELATED TOPICS:
Condense Operational Modes on page 78 Controlling Allocation Attributes of Condense Data Sets on page 91 Configuring Condense Group Definitions on page 94
Checkpoint Files
The allocation attributes of the checkpoint files can be controlled in two ways in the CAPTPARM parameters:
Specifying the data set prefix, space allocation, and volumes using the following parameters: - CHKPT_BASENAME - CHKPT_VOLSERS - CHKPT_PRIM_ALLOC - CHKPT_SCND_ALLOC Specifying the IDCAMS DEFINE CLUSTER control statements using the CHKPT_FILE_CTL parameter.
Note: The CHKPT_BASENAME parameter is still used to provide the data set prefix for the checkpoint files. With the exception of CHKPT_BASENAME, the various parameters of the two options are mutually exclusive. This means that you cannot specify the parameters noted in #1 if you specify CHKPT_FILE_CTL. The reverse is also true.
Using CHKPT_FILE_CTL
If you use the CHKPT_FILE_CTL parameter to specify DEFINE CLUSTER control statements, you have some additional flexibility in controlling the allocation attributes of the checkpoint files. For example, you can:
Specify SMS DATACLAS, STORCLAS, and MGMTCLAS parameters. Change the default suffix for the DATA and INDEX components from D and I, respectively, to some other
desired value.
Specify different CONTROLINTERVALSIZE values to override the default of 32768.
91
The MVS Installation Assistant customizes the values for DATACLAS, STORCLASS, MANAGEMENTCLASS, and VOLUMES based on information specified on the install dialog boxes. When using the template to allocate the checkpoint files, the following restrictions apply:
The control statements of the DEFINE CLUSTER must be valid IDCAMS control statements as they are passed
DATA, and INDEX statements. The variable is populated with the value specified in the CHKPT_BASENAME parameter of CAPTPARM. Ensure that the CHKPT_BASENAME prefix combined with any changes made to the suffix for the DATA and INDEX statements do not exceed 44 characters.
The KEYS parameter must be specified as shown in the template. Comments must start with /* and should only be placed before or after all of the IDCAMS control statements.
The only required parameter is EXT_CAPT_MASK. Any combination of the remaining parameters is allowed. The following parameters have default values provided by PowerExchange:
CONDF_PART_LRECL. Default is (blocksize - 4). CONDF_PART_BLKSZ. Default is 0. CONDF_PRIM_ALLOC. Default is from DBMOVER SPACE= parameter, if specified. CONDF_SCND_ALLOC. Default is from DBMOVER SPACE= parameter, if specified. CONDF_TYPE. Default is CYL.
If some or all volume and space allocation parameters are omitted, the partial condense file allocations may still succeed, depending upon the MVS/SMS configuration on the system. It is also possible for the data set allocation to succeed but for the data set to be unusable. For example, if no space allocation parameters are provided in CAPTPARM or DBMOVER, none is passed on the dynamic allocation request. If the MVS system on which this occurs does not have space allocation defaults defined, the data set is created with a primary and secondary space allocation value of 0. The data set is successfully created but when the Condense job attempts to write to this data set, it fails.
92 Chapter 5: PowerExchange Condense
Note: The EXT_CAPT_MASK parameter is still used to provide the data set prefix for the full condense files. The only required parameter is EXT_CAPT_MASK. Any combination of the remaining parameters is allowed. The following parameters have default values provided by PowerExchange:
CONDF_PRIM_ALLOC. Default is 1. CONDF_SCND_ALLOC. Default is 1. CONDF_TYPE. Default is CYL.
If the CONDF_VOL parameter is omitted, the full condense file allocations may still succeed, depending upon the MVS/SMS configuration on the system.
Using CONDF_FULL_FILE_CTL
If you use the CONDF_FULL_FILE_CTL parameter to specify DEFINE CLUSTER control statements, you have some additional flexibility in controlling the allocation attributes of the full condense files. For example, you can:
Specify SMS DATACLAS, STORCLAS, and MGMTCLAS parameters. Change the default suffix for the DATA and INDEX components from D and I respectively to some other
desired value.
Specify different CONTROLINTERVALSIZE values to override the default of 32768.
93
The MVS Installation Assistant customizes the values for DATACLAS, STORCLASS, MANAGEMENTCLASS, and VOLUMES based on information specified on the install dialog boxes. When using the template to allocate the full condense files, the following restrictions apply:
The control statements of the DEFINE CLUSTER must be valid IDCAMS control statements as they are passed
DATA, and INDEX statements. The variable is populated with the value specified in the EXT_CAPT_MASK parameter of CAPTPARM. Ensure that the EXT_CAPT_MASK prefix combined with any changes made to the suffix for the DATA and INDEX statements do not exceed 44 characters.
The KEYS parameter must be specified as shown in the template. Comments must start with /* and should only be placed before or after all of the IDCAMS control statements.
REG
registration_name
VARCHAR(8)
94
Based on these registrations, the following example group definition file creates separate sets of condense files for the groups called Personnel, Locations, and Departments:
GROUP=(Personnel,DTLUSR.PERSCOND) REG=regemp* REG=regmgr GROUP=(Locations,DTLUSR.LOCCOND) REG=regloc* GROUP=(Departments,DTLUSR.DEPTCOND) REG=regdept1
In this definition file, the asterisk (*) is used a wildcard character. Consequently, the REG=regemp* specification includes both the regemp1 and regemp2 registrations. The REG=regloc* specification includes the regloc1, regloc2, and regloc3 registrations.
Output Files
Condense files for data groups are written to data sets that have data set names with the prefix values that are specified by the external_capture_mask parameters of the GROUP statements. Extraction processes can then extract the change data from the condense files in those data sets.
95
Starting Condense
The Condense job can be run as a MVS batch job or as a started task. Generally, continuous mode condense is run as a started task as it is a long-running job whereas batch mode condense is run as a batch job. If you are running the Condense job as a batch job, it is started by submitting the job to the MVS Job Scheduler using such products as TSO/E, a job scheduler, automation, or other mechanisms that submit batch jobs. Sample JCL for running Condense as a batch job is supplied in RUNLIB member CONDDB2. If you are running the Condense job as a started task, the PROC needs to be placed into a system PROCLIB. After which, the MVS START command is used to start the Condense job as a started task. Sample JCL for running Condense as a started task is supplied in RUNLIB member PCNDDB2. Note: You cannot start the Condense job by using the pwxcmd program. Before starting the Condense job, verify the following:
Ensure that the PowerExchange Logger and Agent have already been started. Ensure that the checkpoint files are in the desired state:
If a cold start is required, no checkpoint files should exist for the mask defined by CAPTPARM parameter CHKPT_BASENAME. If a warm start is required, ensure that all of the checkpoint files created in the last Condense job exist and are available.
Ensure that the required registrations have been added through the PowerExchange Navigator to the CCT file
for the DBTYPE and DBID being used in this run. If required, existing registrations can be disabled or deleted using the Navigator.
RELATED TOPICS:
Configuring PowerExchange Condense JCL on page 80 Cold Start Processing on page 96 Warm Start Processing on page 97
To continue with the cold start, reply Y to the PWX06101A message. The Condense job issues the following WTO to indicate that the request to cold start has been accepted:
PWX06103I Cold Start accepted
If you reply N to this message, the cold start is canceled and the Condense job ends immediately. The following message is issued in this case:
PWX06104W Cold Start declined
96
For each possible checkpoint file (the CHKPT_NUM number), the following message is written to the PowerExchange log (DTLOG or DTLLOGnn if using alternative logging):
PWX-06365 Warning: Checkpoint file chkpt_basenameVn could not be read and was ignored: Checkpoint FILE chkpt_basenameVn Does not exist. OPEN retcodes 268/4/5896
These messages indicate that the Condense job was unable to allocate the checkpoint file because it does not exist. The point at which the Condense job starts receiving change data from the PowerExchange Logger depends upon whether RESTART_TOKEN and the SEQUENCE_TOKEN are specified in the CAPTPARM and, if so, what values are specified:
If the RESTART_TOKEN and SEQUENCE_TOKEN are not present in the CAPTPARM parameters then the
condense starts from the current position in the Logger (the current end-of-log).
If the RESTART_TOKEN and SEQUENCE_TOKEN are present but set to zero then the condense starts from
the earliest available point in the PowerExchange Logger. The Logger goes back to the oldest available RBA (or timestamp in Post-Log Merge). Be aware that this could take some time depending upon the number and size of Logger archive logs available. The following messages are issued in the PowerExchange log (DTLOG or DTLLOGnn if using alternative logging) to indicate that zeroes are provided for the restart tokens:
PWX-06100 Sequence token 0000000000000000000000000000000000000000 PWX-06100 Logger token 00000000000000000000000000000000 If the RESTART_TOKEN and SEQUENCE token are set to a specific value, the Logger starts reading from this
point, provided the values are a valid restart point. The following messages are issued in the PowerExchange log (DTLOG or DTLLOGnn if using alternative logging) to indicate the restart tokens provided:
PWX-06100 Sequence token sequence_token_value PWX-06100 Logger token restart_token_value
These restart points can be values obtained from utilities DTLUAPPL or DTLUCDEP. They could also be values obtained from previous Condense job runs or provided by Informatica Support (for error recovery situations). At this point in the initialization process, the other subtasks of the Condense job (dump task, command task, and condense task) are started by the controller task. The restart tokens that are to be used as the starting point for data extraction from the PowerExchange Logger are echoed in the PowerExchange log with the following message:
PWX-06413 Condense: Highest Restart Token. Sequence=sequence_token_value PowerExchange Logger=restart_token_value
After the restart point is established, PowerExchange Condense performs cleanup processing for condense files and CDCT entries that are being expired as a result of the cold start, and writes checkpoint information to the current checkpoint file. Then, the initialization is complete as indicated by the following messages in the PowerExchange log:
PWX-06111 Controller: All tasks initialization complete. PWX-06455 Command Handler: received CAPTURE_STARTUP_COMPLETE event.
97
This message indicates the latest checkpoint time in that checkpoint file. You may also see the following message if some of the data sets defined by the CHKPT_NUM do not exist:
PWX-06365 Warning: Checkpoint file chkpt_basenameVn could not be read and was ignored: Checkpoint FILE chkpt_basenameVn Does not exist. OPEN retcodes 268/4/5896
Warning: Do not change CHKPT_NUM to a lower value and warm start Condense. This action can cause incorrect warm start processing and duplicate data being condensed. The Condense job only verifies as many checkpoint files as specified in CHKPT_NUM. For example, if the latest checkpoint is in V3 and CHKPT_NUM is changed to 3, only checkpoint files V0, V1, and V2 are checked to determine the latest checkpoint. After the existing checkpoint file have been read and the latest checkpoint has been determined, the following message indicates which checkpoint file is being used for Condense restart:
PWX-06040 Checkpoint restart using file chkpt_basenameVn.
The capture registrations eligible for Condense are processed (as indicated by the PWX-06118 messages) and the warm start complete message is issued:
PWX-06048 Controller: Warm start complete. Tables restored from checkpoint file.
At this point in the initialization process, the other subtasks of the Condense job (dump task, command task, and condense task) are started by the controller task. The restart tokens that are to be used as the starting point for data extraction from the PowerExchange Logger are echoed in the PowerExchange log with the following message:
PWX-06413 Condense: Highest Restart Token. Sequence=sequence_token_value PowerExchange Logger=restart_token_value
After the restart point is established, cleanup processing occurs for condense files and CDCT entries that are being expired as a result of the cold start, a checkpoint is taken to the current checkpoint file, and the initialization process is now complete. This is indicated by the following messages in the PowerExchange log:
PWX-06111 Controller: All tasks initialisation complete. PWX-06455 Command Handler: received CAPTURE_STARTUP_COMPLETE event.
Then, the first condense operation is triggered. Note: When a condense operation is in progress, you can shut down the Condense job by issuing the SHUTDOWN command from the command line. The SHUTDOWN command might cause an incomplete UOW being written to the final condense file. When the Condense job is restarted, this is detected and a file switch is done when an end UOW record is encountered. The following messages are issued to indicate this has occurred:
PWX-06414 Condense: Checkpoint ERT shows incomplete UOW on previous partial Condense PWX-06419 Condense: Doing file switch. Records=nn Reason=1st EndUOW after previous file switch Cdcts=nn CPU: TotMs=nnnnnn Diff=nnnnnn
98
Alternatively, on a Linux, UNIX, or Windows system, you can issue a pwxcmd shutcond command to a PowerExchange Condense process running on a z/OS system. Issue these commands by using the MVS MODIFY (F) command.
RELATED TOPICS:
Sample Condense Job Messages on page 99
99
PWX-21605 Connection selected LRAP found from covr<CHANGES> tag< > type< > int<TRUE> method<CONN_OVR>. PWX-09950 CAPI i/f: Connect OK. Sources = 4 PWX-21605 Connection selected LRAP found from covr<CHANGES> tag< > type< > int<TRUE> method<CONN_OVR>. PWX-06405 Condense: Deleting CDCT record. Reason: 10. Tag=DB2DSN8db2demo11 Sequence=000000055FA600000000000000055FA600000000 Date=06/08/16 13:10:56 file=EDMUSR.D811.CND.CP060816.T1309001. PWX-06405 Condense: Deleting CDCT record. Reason: 10. Tag=DB2DSN8db2demo11 Sequence=000000062AFD00000000000000062AFD00000000 Date=06/08/16 14:01:09 file=EDMUSR.D811.CND.CP060816.T1322002. PWX-06405 Condense: Deleting CDCT record. Reason: 10. Tag=DB2DSN8db2demo11 Sequence=00000009B7550000000000000009B75500000000 Date=06/08/16 16:05:02 file=EDMUSR.D811.CND.CP060816.T1604003. PWX-06136 Checkpoint taken to file=EDMUSR.D811.CHKPTV0 time=06/08/21 19:30:12 PWX-06111 Controller: All tasks initialisation complete. PWX-06455 Command Handler: received CAPTURE_STARTUP_COMPLETE event. PWX-06417 Condense: Start to Condense because initialisation complete PWX-09957 CAPI i/f: Read times out after 10 seconds PWX-06419 Condense: Doing file switch. Records=50012 Reason=Records criteria met Cdcts=3 CPU: TotMs=16339770 Diff=16339770 PWX-06418 Condense: Closed file EDMUSR.D811.CND.CP060821.T1930001 PWX-06136 Checkpoint taken to file=EDMUSR.D811.CHKPTV1 time=06/08/21 19:31:18 PWX-06420 Condense: Checkpoint done. Sequence=000001374CE900000000000001374CE900000000 PowerExchange Logger=C5C4D4D3404000000137360B00000000 PWX-06419 Condense: Doing file switch. Records=50007 Reason=Records criteria met PWX-06418 Condense: Closed file EDMUSR.D811.CND.CP060821.T1931002 PWX-06136 Checkpoint taken to file=EDMUSR.D811.CHKPTV2 time=06/08/21 19:31:40 PWX-06420 Condense: Checkpoint done. Sequence=00000260A94C0000000000000260A94C00000000 PowerExchange Logger=C5C4D4D340400000026091AE00000000 PWX-09967 CAPI i/f: End of log for time 06/08/21 19:30:11 reached PWX-06415 Condense: Condense completed. Total Records=144696, Data=103251, UOWs =9275 PWX-06421 Condense: 06/08/21 19:32:19 Starting wait on commands for 5 minute Command=SHUTDOWN PWX-06463 Command Handler: Close Condense request is now queued. PWX-06464 Command Handler: Shutdown will occur shortly. PWX-06105 Controller: Executing command Setting STOPTASK to CAPI. PWX-06109 Controller: Warning During shutdown, ignored event=11 (CMD_TO_CONT). PWX-06453 Command Handler: shutting down. PWX-06454 Command Handler: has stopped. PWX-06110 Unloaded module 1 (COMMAND_HANDLER). PWX-06060 Controller: subtask Command Handler ended. PWX-06416 Condense: Shutting down because SHUTDOWN event received PWX-06418 Condense: Closed file EDMUSR.D811.CND.CP060821.T1931003 PWX-06495 Dump: task got an event event_num=2. PWX-06491 Dump: ending. PWX-06060 Controller: subtask Dump ended. PWX-06110 Unloaded module 4 (DUMP). PWX-06136 Checkpoint taken to file=EDMUSR.D811.CHKPTV0 time=06/08/21 19:32:27 PWX-06420 Condense: Checkpoint done. Sequence=00000364AF140000000000000364AF1400000000 PowerExchange Logger=C5C4D4D3404000000364641500000000 PWX-06414 Condense: Closing down CAPI PWX-06401 Condense: Ending successfully. PWX-06110 Unloaded module 3 (CONDENSE). PWX-06060 Controller: subtask Condense ended. PWX-06107 Controller: All subtasks shut down. PWX-06065 Controller: Condensing ended. Last checkpoint time 06/08/21 19:32:27 PWX-06039 Controller: Ending.
The following table describes useful messages to look for in the output.
Message PWX-21605 Description Indicates the CAPI_CONNECTION that is used (in this case from DTLCFG because covr is blank). Indicates that none of the Checkpoint data sets are found. Shows the restart tokens used for restart. Indicates that the operator responded Y to the PWX06101A WTOR message.
100
Description Lists information about each capture registration. The PWX-06119 and PWX-06412 messages list the registration tag. The PWX-06118 message includes: - DBID / instance (DBName:) - Registration name and version - Creator - Table Indicates that the cold start completed successfully. Reports that the Controller is starting the three sub tasks: the Command Handler, the Condense and the Dump sub tasks. Indicates that old condense files and their CDCT entries are being removed because the restart point is prior to the restart points at which these files were created. Lists the highest restart tokens across all registration tags. Restart tokens contain two components: - Sequence (20 bytes) containing UOW and sub UOW sequencers. - Logger (16 bytes) containing the Logger started task name and the RBA of the last successfully processed UOW. Reports the initial checkpoint which is done before any processing starts. This file is a merge of any checkpoint data brought forward from the last run (if warm start) and any new data being added or deleted from the CCT registrations file. Reports that all sub tasks have successfully completed their initialization. Reports that a successful connection has been made to the Consumer API (CAPI) and the number of registration tags used. Reports that a Condensing has begun and the reason why it started, which can be: - Initialization is complete. - Timeout waiting for commands. - A CONDENSE command was issued to end the wait period:
F jobname,CONDENSE
PWX-06049 PWX-06112
PWX-06404, PWX-06405
PWX-06413
PWX-06136
PWX-06111 PWX-09950
PWX-06417
- On a Linux, UNIX, or Windows system, a pwxcmd condense command was issued to the PowerExchange Condense process running on the z/OS system. PWX-09957 Is issued on the first read from the Consumer API. It reports some parameters used by the interface to the Consumer API. Here it indicates that Condensing stops if no data is received for a maximum of 10 seconds. This parameter is set from CAPTPARM parameter NO_DATA_WAIT2. Indicates that a file switch has occurred and why, which can be: - Number of records reached if FILE_SWITCH_CRIT=R. - Number of minutes reached if FILE_SWITCH_CRIT=M. - A FILESWITCH command was received (F jobname,FILESWITCH). - A pwxcmd fileswitch command was received. Indicates the data set name of the Condense file(s) closed by the file switch. Indicates that what was the end-of-log (EOL) at the point the read started has been reached. The NO_DATA_WAIT2 time is now waited to see if there is more data. If not, this condense operation stops.
PWX-06419
PWX-06418 PWX-09967
101
Message PWX-06415
Description Reports the end of this condense operation. The number of insert/update/delete records (Data=) processed and number of units of work processed are reported. It is only issued if records were processed. Indicates that the condense task is going to sleep. It waits for the period specified by NO_DATA_WAIT to expire or until a CONDENSE or pwxcmd condense command is received before starting the next condense operation. Indicates that a SHUTDOWN or pwxcmd shutdown command was issued and is being processed. Indicates that the condense subtask has successfully shutdown after closing any open condense files and doing a final checkpoint. Indicates that the Condense job is ending and the timestamp of the final checkpoint.
PWX-06421
PWX-06463, PWX-06404
PWX-06401
PWX-06039, PWX-06065
SHUTDOWN
You can issue these commands by using the MODIFY (F) command on the z/OS system. Alternatively, use the pwxcmd program to issue condense, displaystatus, fileswitch, shutdown, or shutcond commands from a Linux, UNIX, or Windows system to a PowerExchange Condense process on a z/OS system.
102
The CDCT file must be backed up in coordination with the checkpoint files. For every (2n-1) condense cycles completed, where n is the number of checkpoint files that you use, you must back up the CDCT at least once. If you do not back up the CDCT file in coordination with the checkpoint files and file corruption occurs, the CDCT file and the condense files to which the CDCT file points might no longer be synchronized. For example, if you use eight checkpoint files and perform a file switch every 20 minutes, back up the CDCT file at least every ((2 * 8) - 1) * 20 = 300 minutes. Back up the checkpoint files before they are overwritten by a later condense cycle. The frequency with which you back up the condense files is at your discretion.
103
104
CHAPTER 6
105
What is the volume of changes? How will the initial load of the data be performed?
Operational Considerations
The following CDC operational considerations apply to PowerExchange Adabas sources:
PowerExchange imports Long Alpha (LA) fields with a default length of 1,024 bytes. You can override this
default length from the PowerExchange Navigator by editing the data map. Open the Record view of an Adabas file and then open the Field Properties dialog box for the LA field. In the Length field, you can enter an override value of up to 16,381.
The PowerExchange PCAT program, DTLCCADW, can read archived Adabas PLOG records from tape data
sets, including data sets that have a block size value greater than 32,760. The Adabas ECCR can then capture change data from those PLOG records.
statements.
ECCR.
Operational issues in the PowerExchange Logger can cause the Adabas ECCR to enter a wait state, which
would prevent further capture and recording of change data until the issues are resolved. After you resolve the operational issues in the PowerExchange Logger, the Adabas ECCR continues the capture and recording of change data without any loss of data. You must carefully monitor the PowerExchange Logger to ensure that change data capture proceeds without interruption.
RELATED TOPICS:
Monitoring the PowerExchange Logger for MVS on page 51
106
Depending on the requirements of your site processes, the Adabas DBA must modify, assemble, link, stop, and start the Adabas nucleus, only if the JCL is submitted directly from within UEX2. The DTLEXPL library contains template members, which may be used to copy and paste the changes into the desired site members. SAMPEXTU provides an example of a JCL program called outside of UEX2. To configure Adabas for CDC: 1. Verify that the ADARUN parameters of the SAMPUEX2 reflect the correct settings for the installation environment. For example:
ADARUN DB=200,DE=3390,SVC=249,PROG=ADASEL
2.
Replace your current UEX2 with the contents of SAMPUEX2. Alternatively, you can replace your current PLOG archive JCL with SAMPEXTU. Verify that the ADARUN parameters of the user exit JCL reflect the correct settings for the installation environment. For example:
ADARUN DB=dbid,DE=3390,SVC=249,PROG=ADASEL
3.
Perform an Adabas PLOG file switch. The PLOG file switch has two functions:
It confirms the successful change to the PLOG archive JCL. It verifies that, after the Adabas ECCR is brought up, the PCAT contains an initial archived PLOG data set
name entry for subsequent change processing. Note: PowerExchange creates the PCAT VSAM data set during the installation process if Adabas change capture is selected.
* *STR-01* * End of cards spotted - if this copy is for Command Log, finish * but if it's a Protection Log, continue to submit further cards to * register PLOG into the plog control file... * *STR-01* CLI CASE,C'P' *STR-01* BNE CLOSE i.e. it's a CLOG *STR-01* LA 4,1(,4) Skip over first EOJ mark *STR-01* SUBMIT2 DS 0H *STR-01* MVC CARD(50),0(4) *STR-01* PUT INTRDR2,CARD *STR-01* LA 4,50(,4) *STR-01* CLI 0(4),EOJ LAST CARD PROCESSED ? *STR-01* BNE SUBMIT2 *STR-01* * * CLOSE THE INTERNAL READER
107
* CLOSE
DS 0H CLOSE (INTRDR2)
*STR-01*
Add the following cards to the JCL cards that are immediately before the comment block * READER DCB: * BELOW ARE PWX ADDITIONAL CARDS DC CL50'//PLOGCNTL EXEC PGM=DTLCCADW,COND=(4,LT),' DC CL50'// PARM=(A)' DC CL50'//STEPLIB DD DSN=sceerun,DISP=SHR' DC CL50'// DD DSN=hlq.LOADLIB,DISP=SHR' DC CL50'//DTLCCPLG DD DSN=*.COPY.DDSIAUS1,DISP=SHR' DC CL50'//DTLCCADA DD DSN=hlq.DBdbid.PCAT,' DC CL50'// DISP=SHR' DC CL50'//DTLCFG DD DSN=hlq.runlib(DBMOVER),' DC CL50'// DISP=SHR' DC CL50'//DTLMSG DD DSN=hlq.DTLMSG,' DC CL50'// DISP=SHR' DC CL50'//DTLKEY DD DSN=hlq.runlib(LICENSE),' DC CL50'// DISP=SHR' DC CL50'//DTLSGN DD DSN=hlq.runlib(SIGNON),' DC CL50'// DISP=SHR' DC CL50'//DTLLOG DD SYSOUT=*' DC CL50'//SYSUDUMP DD DUMMY' DC CL50'//SYSPRINT DD SYSOUT=*' ENDALL DC AL1(EOJ) * END OF PWX ADDITIONAL CARDS
108
COLDSTART
- Y. Directs the ECCR to perform a cold start, which means it starts processing from the first (oldest) log in the PCAT. - N. Directs the ECCR to perform a warm start, which means it continues processing where it left off. Default is N.
COLL_END_LOG
- 0. The number of PLOGs processed has no influence on whether the collector shuts down. - Any number (n) greater than 0. If greater than 0 this specifies the number of PLOGS to be processed before closing down. Default is 0. Collection Identifier used on registrations.
DBID
DB_TYPE
ADA
109
Parameter ECCRNAME
Description Required. The ECCR name for the Adabas ECCR. The ECCR name value must be unique within a PowerExchange Logger group. Warning: If you change the ECCRNAME value, the ECCR cannot warm start from the last stopped position. The Adabas ECCR uses the value specified for the following purposes: - The ECCR name that connects to the PowerExchange Logger to write change data - The member name that joins the XCF group of the PowerExchange Logger - As part of the ECCR-UOW field in the control information for each change record written to PowerExchange Logger log files Tip: Informatica recommends that you use the same value for the ECCRNAME parameter and the Adabas ECCR started task or job name. This practice allows you to easily identify the Adabas ECCR when reviewing messages and data from the PowerExchange Logger. Controls whether the Adabas ECCR ignores records for which update operations did not change the data. You can use this parameter to have the Adabas ECCR ignore the many unchanged records that are typically produced by the ADAORD utility for online reorder operations. When you reorder Adabas files, Adabas logs the before and after images of unchanged records to PLOG files. The ECCR captures the unchanged records from the PLOG files unless you instruct the ECCR to ignore these records.
IGNORENOCHANGEUPDATES
- Y. The Adabas ECCR checks the before image and after image of the source data to determine if the data changed and then passes only the changed records to the PowerExchange Logger. The ECCR ignores records for which data did not change. This setting can reduce the number of records that are sent to the PowerExchange Logger. - N. The Adabas ECCR passes all records to the PowerExchange Logger, including the records with unchanged data. Default is N. - 0. Shut down the ECCR as soon as all PLOG entries in the PCAT are processed. - Any number (n) greater than 0. Wait n minutes before checking for new PCAT entries. After the initial wait, NO_DATA_WAIT2 controls subsequent waits. Any number greater than 0. Default is 600.
NO_DATA_WAIT
The ECCR execution is controlled by a combination of parameters COLL_END_LOG, NO_DATA_WAIT, and NO_DATA_WAIT2. You can combine these parameters to ensure that the ECCR runs continuously or closes down after a specified number of PLOGs are processed. Specifies the number of seconds for the ECCR to wait for new PLOGs to be entered into the PCAT after processing all existing entries. The ECCR continues to retry every NO_DATA_WAIT_2 period until the ECCR is stopped if COLL_END_LOG is 0 and NO_DATA_WAIT is greater than 0.
NO_DATA_WAIT2
110
Run a separate Adabas ECCR with unique Adabas ECCR parameters for each Adabas database from which change data is captured. The member that holds the parameters is specified in the DTLCACFG DD statement. To configure the Adabas ECCR JCL: 1. Verify that the ADARUN parameters in the ADACARD1 member of the RUNLIB library reflect the correct settings for the installation environment. For example:
ADARUN DB=dbid,DE=3390,SVC=249,PROG=ADASEL
2.
Run the Adabas ECCR as a started task or batch job. A sample Adabas ECCR batch job, ECCRADA, is delivered in RUNLIB. The job XIZZZ998 copies the ECCRADA member to the PowerExchange PROCLIB library as xxxAD1EC, where xxx is the PowerExchange Agent / Logger Prefix value that was specified in the MVS Installation Assistant.
3.
Verify that the Adabas ECCR DBID parameter is correct in the RUNLIB library member ADAECRP1. The DBID parameter must be the same as the collection identifier used for the registration group containing the capture registrations in the PowerExchange Navigator.
4.
If you use PowerExchange Condense, verify that the DBID parameter in the RUNLIB(CAPTADA1) member is correct. The DBID parameter must be the same as the collection identifier used for the registration group containing the capture registrations in the PowerExchange Navigator.
Note: The ECCR determines whether it is time to collect archived PLOG data and move the data to the PowerExchange Logger (based on the existence of new PCAT entries) when the following events occur:
The ECCR is first started. The criteria in the NO_DATA_WAIT and NO_DATA_WAIT2 parameters are met.
111
In summary, the first parameter specifies the number of minutes the ECCR will wait before doing another read after the ECCR received an end of PCAT file condition (which means there are no more archived PLOGs to process at the time). On receiving another end-of-file condition on the first read following the previous end-of-file, the ECCR will wait NO_DATA_WAIT2 seconds before retrying another read (over and over again). These parameters are located in the RUNLIB(ADAECRP1) member. 5. Look at the PowerExchange Logger output to verify that the archived PLOG was read. Look in DDNAME EDMMSG for the message that begins with:
PWXEDM172774I Event Mark generated by ECCR xxxAD1EC for: Finished with Plog copy ADABAS.DB00199.PLOG.G0022V00
Example archived PLOG. This can also be verified by reviewing the PCAT file and locating the archived PLOG data set name. 6. If you do not use PowerExchange Condense, perform a database row test in the PowerExchange Navigator, as follows: a. b. c. 7. Open the extraction map. Click File > Database Row Test . Specify CAPXRT in DB_Type, and click Go.
If you use PowerExchange Condense, issue the fileswitch command to make the condense file available for extraction processing. Look at the PowerExchange Condense job output to determine the records added to the condense file. Review the PowerExchange log file to find the PWX-06415 message that contains information about a completed condense. Then, perform a database row test in the PowerExchange Navigator. Specify CAPX in DB_Type, and click Go.
The Adabas ECCR can also be run as a batch job. Start the Adabas ECCR after starting the PowerExchange, Listener, PowerExchange Agent, and PowerExchange Logger. The Adabas ECCR terminates with a return code 8 if there are no active Adabas capture registrations. PowerExchange issues messages about active registrations to the PowerExchange log file. The Adabas ECCR issues message DTL07901 as a WTOR to the MVS operator console, requesting confirmation for cold start processing in the following cases:
The ECCR is being started for the first time The ECCRNAME statement in the Adabas ECCR parameters specifies a new name for the Adabas ECCR COLDSTART=Y is specified in the Adabas ECCR parameters
112
113
CHAPTER 7
system.
The PowerExchange Logger and PowerExchange Agent must both run on the same MVS system as the ECCR.
114
If you use Post-Log Merge option of the PowerExchange Logger, PowerExchange allows you to capture and
propagate changes even if the changes originate from different MVS systems. You must run a PowerExchange Logger on each MVS system that makes changes to the source VSAM data sets.
Operational issues in the PowerExchange Logger can cause the batch job to enter a wait state, which would
prevent further capture and recording of change data until the issues are resolved. After you resolve the operational issues in the PowerExchange Logger, PowerExchange continues the capture and recording of change data without any loss of data. You must carefully monitor the PowerExchange Logger to ensure that change data capture proceeds without interruption.
RELATED TOPICS:
Monitoring the PowerExchange Logger for MVS on page 51 Using Post-Log Merge on page 69
processing for VSAM files If you use these applications, unpredictable results can occur. The batch VSAM ECCR uses an internal exclude table to exclude VSAM data sets from change data capture processing. This internal exclude table contains the following types of entries:
Complete load module names Prefixes for load module names Prefixes for data set names
The batch VSAM ECCR does not capture changes for the following data sets:
VSAM data sets that begin with any data set prefix in this table VSAM data sets that are opened by any load modules that match specific load module names or begin with any
load module prefix in this table The following table lists the load module names and prefixes included in the batch VSAM ECCR internal exclude table:
Load Module Name or Prefix $CRLFSM $TMONTMP Generic or Specific Specific Specific Excludes Product, Component, or Data Set ASG Software Solutions ASG-TMON ASG Software Solutions ASG-TMON
115
Load Module Name or Prefix ACF2 ARC DFH DFSMVRC0 DSI DSN EDML EDMSTART ERB FDR GIM IEFIIC JMPMAINT LANDMARK RPCMAINT SYS1 TMVSMSTR UCC1
Generic or Specific Generic Generic Generic Specific Generic Generic Generic Specific Generic Generic Generic Specific Specific Specific Specific Generic Specific Generic
Excludes Product, Component, or Data Set Data sets prefixed with ACF2 IBM DFSMShsm IBM CICS Transaction Server IBM IMS - Online control region IBM Tivoli Netview for z/OS IBM DB2 for z/OS PowerExchange Logger PowerExchange Agent IBM Resource Measurement Facility (RMF) Innovation Data Processing FDR IBM SMP/E for z/OS IBM z/OS - MVS Initiator BMC Software JOURNAL MANAGER PLUS ASG Software Solutions ASG-TMON BMC Software RECOVERY PLUS for CICS/VSAM Data sets prefixed with SYS1 IBM TMON for MVS Data sets prefixed with UCC1
116
update VSAM data sets registered for capture. Alternatively, you can add the LOAD library to the JOBLIB DD of the batch job.
Add the EDMPARMS DD statement in every step of any batch jobs that update VSAM data sets registered for
capture. The EDMPARMS DD statement references the PowerExchange USERLIB library that contains the EDMSDIR module options. For example:
//EDMPARMS DD DISP=SHR,DSN=hlq.logger_name.USERLIB
If the EDMSDIR module is included in the LOAD library or if the USERLIB library is include in the JOBLIB or STEPLIB concatenation, you do not need to add the EDMPARMS DD statement.
PowerExchange to get control. If CCERR=ABEND is coded, VSAM OPEN requests fail if the PowerExchange Agent is not active. Source for EDMSDIR is supplied in member XICDC600 in the RUNLIB library. Change and rerun this job if changing the CCERR parameter is necessary.
To override the EDMSDIR included in the LNKLST concatenation and use CCERR=ABEND for VSAM batch
jobs, add the EDMPARMS DD statement to the VSAM batch jobs updating VSAM data sets registered for capture. Specify a different data set name in the EDMPARMS DD statement than is specified in the LNKLST concatenation, and include an EDMSDIR module that specifies CCERR=ABEND.
If you add the PowerExchange LOAD library to the LNKLST concatenation, you can stop an ECCR from
For cmd_prefix, use the MVS command prefix specified in the CmdPrefix parameter in the PowerExchange Agent AGENTCTL parameters. The EDMSCTL DD statement in the PowerExchange Agent JCL points to the AGENTCTL parameters.
Restoring VSAM Data Sets When Using the Batch VSAM ECCR
The batch VSAM ECCR captures changes from VSAM batch jobs and passes the changes to the PowerExchange Logger to be recorded. If the VSAM batch job step terminates abnormally, PowerExchange aborts any open units of work in the PowerExchange Logger for that job step. When you extract change data, PowerExchange provides only successfully committed units of work and skips aborted units of work. Note: If the batch job closes the VSAM data set registered for capture before it terminates abnormally, the PowerExchange Logger unit of work containing the changes for that VSAM data set is successfully committed. When you extract changes for this VSAM data set, PowerExchange provides the changes from the failed batch job because the UOW was successful even though the batch job ultimately failed. If you restart batch VSAM processing from the point of failure rather than restoring the data set and restarting the batch job from the beginning, you must change the default PowerExchange operation to capture change data properly. To change the default PowerExchange processing, add the following DD statement in each batch VSAM job where you restart processing from the point of failure:
//EDMCMUOW DD DUMMY
When you use the EDMCMUOW DD statement and the batch VSAM job step terminates abnormally, PowerExchange commits all open units of work (UOWs) generated by the batch VSAM job. Consider the following points before using the EDMCMUOW DD statement:
Depending upon the failure circumstances, the batch VSAM ECCR may not get control to commit the open
units of work. If so, any uncommitted units of work from the failed VSAM batch job are left in IN-DOUBT status. You must use the PowerExchange Logger RESOLVE_INDOUBT command to commit these uncommitted units of work.
Do not use EDMCMUOW if you have specified full condense in the capture registration for a VSAM data set.
Where:
The cmd_prefix variable is the command prefix for the PowerExchange Agent. You specify this prefix in the
118
START
STOP
RELATED TOPICS:
Configuring AGENTCTL Parameters on page 25
Note: This report also includes message PWXEDM172886I, which indicates any load module replacements that have been applied.
119
Warning: When you stop the change data capture process without stopping updates to the source, you lose change data. To avoid losing change data and rematerializing the target tables, stop updates to the source instead of stopping the batch VSAM ECCR interface.
The cmd_prefix variable is the command prefix for the PowerExchange Agent. You specify this prefix in the CmdPrefix statement in the PowerExchange Agent AGENTCTL parameters. For more information about batch VSAM ECCR interface commands, see the PowerExchange Command Reference.
RELATED TOPICS:
Configuring AGENTCTL Parameters on page 25
120
Point-in-Time Recovery
Point-in-time recovery invalidates those changes on the PowerExchange Logger that were recorded by the jobs which were recovered. Standard point-in-time recovery does not indicate to processors of PowerExchange Logger data that this data is invalid. What the processor of PowerExchange log data must do when point-in-time recovery is necessary is as follows:
Recover the source to the correct point-in-time. Recover the output of the PowerExchange Condense to the state that it was in at the time of recovery. Reset the change processor to restart processing when the recovery is complete.
DFSMSdfp Checkpoint/Restart
PowerExchange for VSAM CDC does not support DFSMSdfp Checkpoint/Restart.
121
CHAPTER 8
RECOVERY(ALL). The CICS/VSAM ECCR only supports capture for recoverable data sets.
122
Warning: If you register a non-recoverable VSAM data set for capture and the CICS/VSAM ECCR is active, PowerExchange closes the data set and prevent it from being reopened.
You must define and open the CSMT queue in the CICS region. CSMT is a file used for sending messages
serious error or abnormally ends (abends) during initialization, PowerExchange terminates the CICS region to prevent data loss and ensure change data replication integrity. The termination process aborts current tasks and backs out in-flight transactions similar to if you had issued the CICS command CEMT PERFORM SHUTDOWN IMMEDIATE.
If you activate the CICS/VSAM ECCR and open a file before you activate the PowerExchange Agent, you must
storage violations.
PowerExchange requires unique data source-specific ECCRs to capture changes for that data source. A single
ECCR cannot capture changes for multiple data source types, such as CICS/VSAM and DB2. Therefore, PowerExchange cannot maintain transactional integrity for transactions that change CICS/VSAM data sets and DB2 tables or IMS databases in the same unit of work. If you need to apply the changes made by a CICS transaction that changes multiple data source types in the same order, you could use a staging table. First, extract the changes for each unique source type and insert them into the staging table, which includes the DTL__CAPXTIMESTAMP value as a column. Then, you can extract these changes from the staging table, ordering them by the DTL__CAPXTIMESTAMP value, to apply the changes to the target tables in the appropriate order.
deleted with UPDATE and issues a new DELETE operation without the RIDFLD operand. The new DELETE operation causes the XFCFRIN and XFCFROUT exits to get control again, which allows the XFCFROUT exit to capture and log all of the required information for this type of DELETE operation. If your CICS region has other, active programs that use the XFCFRIN or XFCFROUT exit point, verify that those exits do not impact the processing of the PowerExchange-supplied exits. For example, if your exit receives control
123
prior to the PowerExchange exit and changes the data record, PowerExchange might be unable to properly capture change data. Also, consider the following:
The PowerExchange XFCFROUT exit must receive uncompressed data records. If you have other XFCFRIN or XFCFROUT global user exits and use the EDMC INIT command, you might
impact the processing of either your application or the CICS/VSAM ECCR. This command initializes the CICS/VSAM ECCR and dynamically installs the XFCFRIN and XFCFROUT exits, which might cause the PowerExchange exits to get control in an improper order. Note: CICS gives control to multiple exits at the same exit point based on the order in which the exits are activated in CICS. To determine whether a CICS region has other exits programs installed at the XFCFRIN and XFCFROUT exit points, you can use the CECI transaction with the following commands to browse the exit list:
INQUIRE EXITPROGRAM EXIT(XFCFRIN) START INQUIRE EXITPROGRAM EXIT(XFCFROUT) START
For more information about the CICS-supplied CECI transaction and the INQUIRE EXITPROGRAM command, see the IBM CICS Transaction Server documentation.
system.
The PowerExchange Logger and PowerExchange Agent must both run on the same MVS system as the ECCR. If you use the Post-Log Merge option of the PowerExchange Logger, PowerExchange allows you to capture
and propagate changes even if the changes originate from different MVS systems. You must run a PowerExchange Logger on each MVS system that makes changes to the source VSAM data sets.
Operational issues in the PowerExchange Logger can cause the CICS transactions to enter a wait state, which
would prevent further capture and recording of change data until the issues are resolved. After you resolve the operational issues in the PowerExchange Logger, the waiting transactions continue and PowerExchange captures and records the change data without any loss of data. You must carefully monitor the PowerExchange Logger to ensure that change data capture proceeds without interruption.
RELATED TOPICS:
Monitoring the PowerExchange Logger for MVS on page 51 Using Post-Log Merge on page 69
124
To configure CICS for capture change data: 1. Modify the CICS JCL.
Add the PowerExchange LOAD library to the STEPLIB and DFHRPL DD statements.
Note: If you added the PowerExchange LOAD library to the MVS LNKLST concatenation, you do not need to add it to the STEPLIB statement but you do need to add it to the DFHRPL DD statement.
Add the EDMPARMS DD statement. The EDMPARMS DD statement references the PowerExchange
2.
Modify the CICS startup procedures. Add the module name EDMKOPER to the second phase of the PLT initialization list (PLTPI) so that the CICS/VSAM ECCR is initialized during the third stage of CICS initialization. Alternatively, you can manually activate the CICS/VSAM ECCR by entering the CICS command:
EDMC INIT
Tip: Informatica Corporation recommends that you add the module name EDMKOPER to the initialization list, rather than manually activating the CICS/VSAM ECCR with EDMC INIT. When you include EDMKOPER in the initialization list, the CICS/VSAM ECCR activates during CICS startup, which ensures that PowerExchange captures change data. 3. Verify that each CICS region that connects to PowerExchange uses a unique ECCR name. The ECCR name value must be unique within a PowerExchange Logger group. You must cold-start CICS to change the ECCR name. The CICS/VSAM ECCR uses the value specified for the following purposes:
The ECCR name that connects to the PowerExchange Logger to write change data The member name that joins the XCF group of the PowerExchange Logger As part of the ECCR-UOW field in the control information for each change record written to
PowerExchange Logger log files The default name is the CICS SYSID specified in the SIT SYSIDNT parameter. To override the default name, code the following statement in the SIT or SIT override file:
INITPARM=(EDMKOPER=option)
125
Tip: Informatica recommends that you use the same value for the ECCR name and the CICS started task or job name. This practice allows you to easily identify the CICS/VSAM ECCR when reviewing messages and data from the PowerExchange Logger. 4. Add the CICS/VSAM ECCR programs and transaction to CICS. The PowerExchange SAMPLIB library contains sample members for each level of CICS:
CICS TS Version 1.2, 1.3, and 2.1 2.2 and later Member Name #CICSV52 #CICSV62
Edit the copy as required for your site. Use DFHCSDUP or RDO to add the CICS/VSAM ECCR programs and transaction to the processing program table (PPT) and program control table (PCT).
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
: : : : : : : :
126
The keyword variable can be any valid EDMC keyword. The following table describes these keywords:
Keyword DISPLAY Description Displays the names of the files that are registered for capture and have been opened since the CICS/VSAM ECCR initialized. The file names are displayed at the CICS terminal. Both DISP and DISPLAY are valid keywords. Displays a Help panel for the CICS/VSAM ECCR that lists the available commands and their functions. Initializes CICS/VSAM ECCR in the CICS region. Use this keyword following a TERM command to restart the CICS/VSAM ECCR. You can also set up the ECCR to start automatically as part of the PLTPI startup procedure. Note: To capture changes for a particular VSAM file, you must activate the corresponding capture registration and close and reopen the VSAM file to CICS. Terminates the CICS/VSAM ECCR in the CICS region. When you run this command, the CICS/VSAM ECCR stops immediately. Note: To terminate the change data capture for a particular VSAM file, you must deactivate or delete the corresponding capture registration and close and reopen the VSAM file to CICS.
HELP INIT
TERM
Warning: If you have initialization programs that enable either the XFCFRIN or XFCFROUT exit, do not use the INIT or TERM commands.
RELATED TOPICS:
CICS XFCFRIN and XFCFROUT Global Exits on page 123
127
Note: This report also includes message PWXEDM172886I, which indicates any load module replacements that have been applied.
Warning: When you stop the change data capture process without stopping updates to the source, you lose changed data. You can avoid losing changed data and avoid rematerialization by stopping updates to the source instead of stopping the change data capture process.
EDMC is the default CICS transaction code for the CICS/VSAM ECCR. The CICS/VSAM ECCR stops immediately. Warning: If you have initialization programs that enable either the XFCFRIN or XFCFROUT exit, do not use the INIT or TERM command.
128
RELATED TOPICS:
CICS XFCFRIN and XFCFROUT Global Exits on page 123
10. Open the VSAM file in the CICS region. 11. Allow updates to the altered VSAM data set.
129
CHAPTER 9
For compatibility with older configurations of Datacom CDC, you can configure the Datacom synchronous ECCR to store the changes in a data space before they are passed to the PowerExchange Logger. This method uses the following components:
130
Datacom Change Collector Runs in the Datacom MUF address space. It captures changes as they occur and passes the changes to the Datacom Change Controller. Datacom Change Controller Runs in a separate address space. It manages the capture registrations for the Datacom Change Collector and stores the captured changes in a data space. Datacom Log Feeder Runs in a separate address space. It reads the captured change data from the data space and passes this data to the PowerExchange Logger for recording.
MVS system.
The PowerExchange Logger and PowerExchange Agent must both run on the same MVS system as the
Datacom ECCR.
Operational issues in the PowerExchange Logger can cause the Datacom Change Collector to enter a wait
state, which would prevent further capture and recording of change data until the issues are resolved. After you resolve the operational issues in the PowerExchange Logger, the Datacom Change Collector continues the capture and recording of change data without any loss of data. You must carefully monitor the PowerExchange Logger to ensure that change data capture proceeds without interruption.
RELATED TOPICS:
Monitoring the PowerExchange Logger for MVS on page 51
131
SUBTASK DTLXDPDX Use this statement when using the direct-log-write method for logging changes. The Change Collector, when using the direct-log-write method, passes changes directly to the PowerExchange Logger for recording. Informatica recommends using the direct-log-write method because it provides the lowest latency between the time the change occurs and the time it is recorded. SUBTASK DTLXDPDT Use this statement when using the original method for logging changes. The Change Controller passes changes to the Change Controller so they can be stored in a data space. The Log Feeder reads the changes from the data space and passes them to the PowerExchange Logger for recording.
Configuring the Datacom MUF JCL When Using the Direct-Log-Write Method
Use the following procedure to configure the Datacom MUF JCL when you want to use the direct-log-write method of logging change data. These JCL changes are required to provide access to the load modules and parameters that are needed for CDC. 1. Add the following PowerExchange load libraries to the STEPLIB concatenation in the MUF JCL:
hlq.LOADLIB hlq.LOAD
The hlq variable is the high-level qualifier for the PowerExchange data sets chosen during installation. 2. Verify that all libraries in the STEPLIB DD statement are APF-authorized. The Datacom MUF must run under this authorization if you use Datacom CDC. 3. Add the following EDMPARMS DD statement:
//EDMPARMS DD DISP=SHR,DSN=hlq.logger.USERLIB
This statement allocates the USERLIB library that contains the EDMSDIR module options. 4. Add the following DTLINPUT DD statement:
//DTLINPUT DD DISP=SHR,DSN=data_set(DTLINPUT)
This statement allocates the data set that contains the Datacom Change Collector parameters. The variable data_set is the name of this data set. 5. Add the following DTLPRINT DD statement:
//DTLPRINT DD SYSOUT=*
This statement allocates the SYSOUT data set PowerExchange uses for messages.
Configuring the Datacom MUF JCL When Using the Original Logging Method
Use the following procedure to configure the Datacom MUF JCL when you want to use the original method of logging changes in a data space. These JCL changes are required to provide access to the load modules and parameters that are needed for CDC. 1. 2. Add the hlq.LOADLIB to the STEPLIB concatenation. Verify that all libraries in the STEPLIB DD statement are APF-authorized. The Datacom MUF must run under this authorization if you use Datacom CDC. 3. Add the following DTLINPUT DD statement:
//DTLINPUT DD DISP=SHR,DSN=data_set(DTLINPUT)
132
This statement allocates the data set that contains the Datacom Change Collector parameters. The variable data_set is the name of this data set. 4. Add the following DTLPRINT DD statement:
//DTLPRINT DD SYSOUT=*
This statement allocates the SYSOUT data set that PowerExchange uses for messages.
RELATED TOPICS:
Configuring the Datacom Change Collector Parameters on page 133
If you use the original logging method, configure the same Change Collector and Change Collector items and also configure the Log Feeder and its parameters.
133
ON_ERROR {ABEND|DISABLE} The ON_ERROR parameter specifies how the MUF handles change capture fatal errors:
ON_ERROR ABEND causes the MUF to shut down. ON_ERROR DISABLE allows the MUF to remain functioning, which is the default behavior if ON_ERROR
is not specified.
134
LOCATION nnnnnnnn The LOCATION statement indicates the location of the PowerExchange Listener from which registrations are obtained. Specify the LOCATION value in the DBMOVER member pointed to by the DTLCFG DD statement in the Change Control JCL. You can run the Change Controller without using the PowerExchange Listener to get capture registrations. In this case, the Change Controller JCL must include the PowerExchange data sets and specify LOCAL for the LOCATION statement value. This statement is required. MUF nnnnnnnn The MUF statement specifies the Multi-User Facility on this system to which all following statements are applied. If the MUF parameter is specified in the standard input stream for the MUF, Datacom takes this value as the MUF name. Otherwise, the value is a started task or job name. The nnnnnnnn is the MUF name. It should match the MUF name as determined in the previous sentence. Multiple MUF statements are valid in a single job. This statement is required. REG_MUF nnnnnnnn Overrides the MUF name with the name that you specified in the Registration Group. Using this enables you to create a single set of registrations that can be used for a number of similar MUFs, such as development and production environments, and just use this statement to control the MUF with which they are operating. STATUS The status command lists all registrations for a MUF. The list includes the DBID and TABLE, its current active status, and the base source name. This statement is optional. When specified, it returns information similar to the following:
DTL_RPC002I: DTL_RPC231I: DTL_RPC210I: DTL_RPC211I: DTL_RPC205I: DTL_RPC206I: DTL_RPC215I: DTL_RPC210I: DTL_RPC211I: DTL_RPC205I: DTL_RPC206I: DTL_RPC215I: DTL_RPC245I: INPUT STATEMENT: STATUS MUFR10NL ENABLED FOR PROPAGATION STATUS FOR MODULE dcomcapc MODULE IS ACTIVE DBID IS 00999 TABLE NAME IS CRS BASE SOURCE NAME IS DCMMUFR10NLdcomcapc1 STATUS FOR MODULE dcomamdc MODULE IS ACTIVE DBID IS 00999 TABLE NAME IS CRS BASE SOURCE NAME IS DCMMUFR10NLdcomamdc1 PROPAGATION ENVIRONMENT ESTABLISHED.
135
For example:
**************** Top of Data ***************** * * This input file allows the dataspace id to be explicitly specified * for Datacom Real Time Capture. * * The dataspace id will by default match the started task name. * DSPACE_ID TE000006 ***************** Bottom of Data ******************
Note: A sample DTLINPUT is supplied at installation. 3. Add DDName DTLINPUT to the input stream of the MUF JCL. For example:
//DTLINPUT DD DISP=SHR,DSN=STQA.TE000006.CNTL(DTLINPUT)
Control information for the started task is included in the RUNLIB member DCPARMLF.
136
BYPASS The BYPASS statement allows testing of the Log Feeder without invoking the PowerExchange Change Capture software code. All other processes are available. This statement is optional. FAKEIT The FAKEIT statement allows testing of the Log Feeder without invoking the actual PowerExchange Change Capture software code. Different from the bypass command, this invokes a simulator for the PowerExchange Change Capture software that prints messages describing the processes that would be sent to the PowerExchange Change Capture software. This allows testing and verification without the overhead and difficulties associated with running dual testing and production facilities. All other processes are available. This statement is optional. END The END statement terminates the SYSIN datastream. This statement is optional. Synonyms for END are EXIT and QUIT. If these statements are not present, EOF is assumed to be a valid END statement.
The jobname variable is the name of the Change Controller started task.
or submit the JCL if running as a batch job. When starting up the Log Feeder ensure the Log Feeder has connected to the PowerExchange Logger. The following message in the Log Feeder confirms the connection has been successfully made.
PWXEDM172841I EDM ECCR DOCLF1 connected to EDM Logger DOCL, Log RBA=X'000000056AD40000' To stop the Log Feeder address space, use the MVS STOP command. To display Logger Feeder statistics or get diagnostic information, use the following MVS MODIFY commands: - F jobname,STATUS to get current propagation statistics. - F jobname,DEBUG {ON|OFF} to turn debugging on or off during processing. - F jobname,TRACE {ON|OFF} to turn tracing on or off during processing.
137
Note: If change data capture is unavailable, changes applied to the database might be missed. Restricting database access to read-only with the ACCESS command can be an option if change data capture is unavailable.
138
CHAPTER 10
RELATED TOPICS:
Datacom Synchronous Change Data Capture on page 130
139
Logger and PowerExchange Agent must run on the same MVS system as the Datacom table-based ECCR.
The PowerExchange Logger stores the changes in its log files. The PowerExchange Logger archives active
logs when they become full. You must monitor the PowerExchange Logger to ensure that the archiving process keeps pace with the data flow. If the PowerExchange Logger uses all available active log space, the Datacom table-based ECCR enters a wait state until the PowerExchange Logger archival process makes active log space available.
RELATED TOPICS:
Managing the PowerExchange Logger for MVS on page 48
RELATED TOPICS:
CDC Implementation Summary on page 9
Architectural Overview
This overview describes the Datacom and PowerExchange components that are involved in Datacom table-based CDC.
For more information about these components, see the CA Datacom/DB Database and System Administrator Guide.
140
Source MUF
The source Multi-User Facility (MUF) is the Datacom MUF in which the inserts, updates, and deletes occur and are written to the Log Area (LXX) file. For CDC purposes, any MUF configuration that shares a single LXX file is considered a source MUF, including:
A single MUF A MUFPLEX consisting of multiple MUFs that share a single LXX file A MUF with a shadow MUF
Target MUF
The target MUF contains the CDC tables. A program supplied with Datacom captures the changes in the LXX file in the source MUF and records the changes in the CDC tables in the target MUF. The target MUF can match, or differ from, the source MUF.
to the CDC tables in the target MUF. The program runs within the target MUF address space. This program is provided with Datacom.
CDC user listener program (CDCU). This program detects, processes, and deletes committed records in the
TSN and MNT tables. PowerExchange uses this program interface to capture change data.
CDC monitor program (CDCM). This program monitors the CDCL and the CDCU. The task runs within the
RELATED TOPICS:
Datacom Table-Based ECCR on page 141
The PowerExchange CDC components run in a separate address space from the target MUF.
Architectural Overview
141
specify the same value for the CDC_ID ECCR parameter. You can specify this option during MUF startup only. You cannot specify CDCL through the console. CDCL_DBID Specifies the database ID where the CDCL runs. If you specify a value other than 2009, be sure to specify the same value for the CDC_BASE ECCR parameter. You can specify CDCL_DBID during MUF startup or through the console. For more information about MUF startup options, console commands, and Datacom CDC operation, see the CA Datacom/DB Database and System Administrator Guide. Note: Before starting CDC, ensure that the CDC tables are adequately sized for your environment. For more information, see your CA Datacom documentation.
ECCR Parameters
Specify input parameters for the Datacom table-based ECCR inline in the ECCR JCL or in the data set designated by the //DTLCACFG DD statement in the ECCR JCL. The ECCRDCMP member in the PowerExchange RUNLIB data set includes the following sample ECCR parameters:
MUF=muf_name REG_MUF=registered_muf_name NO_DATA_WAIT=60 NO_DATA_WAIT2=600
142
The variables shown for the ECCR parameters in the sample member will have the values that you specified with the MVS Installation Assistant. MUF=muf_name Required. Specifies the name of the Datacom MUF for which change data is captured. This name must match the internal MUF name that is recorded as part of the key data within the CDC TSN table. Unless REG_MUF specifies a different value, the MUF value is also the same as the MUF name that you specified when you defined the PowerExchange Datacom registration group. This parameter has no default. REG_MUF=registered_muf_name Optional. Specifies the MUF name that you specified when you defined the PowerExchange Datacom registration group. This parameter allows capture registrations defined for one MUF to be used to collect changes for a different MUF. For example, test and production MUFs that have capture active for the same tables can use the same set of registrations. The ECCR uses the REG_MUF parameter value to read PowerExchange registrations and the MUF parameter value to read the change data from the Datacom CDC tables. Default is the value specified with the MUF parameter. NO_DATA_WAIT=seconds Optional. Specifies the number of seconds that the ECCR waits before doing another read after reading the CDC tables and determining that no new change records have been written. If subsequent reads also return no new records, the ECCR waits NO_DATA_WAIT2 before retrying another read. The ECCR always waits simultaneously for console input. Default is 60 seconds. NO_DATA_WAIT2=seconds Optional. Specifies the number of seconds that the ECCR waits before performing another read after the second and subsequent consecutive times that the ECCR reads the CDC tables and determines that no new records have been written. If data is subsequently received, the ECCR reverts to the value for NO_DATA_WAIT. The ECCR always waits simultaneously for console input. Default is 600 seconds. ECCRNAME=eccr_name Required. The ECCR name for the Datacom ECCR. The ECCR name value must be unique within a PowerExchange Logger group. Warning: If you change the ECCRNAME value, the ECCR cannot warm start from the last stopped position.
143
The Datacom ECCR uses the value specified for the following purposes:
The ECCR name that connects to the PowerExchange Logger to write change data The member name that joins the XCF group of the PowerExchange Logger As part of the ECCR-UOW field in the control information for each change record written to
PowerExchange Logger log files Valid values are 1 through 8 alphanumeric characters. Default is PWXDCMEC. Tip: Informatica recommends that you use the same value for the ECCRNAME parameter and the Datacom ECCR started task or job name. This practice allows you to easily identify the Datacom ECCR when reviewing messages and data from the PowerExchange Logger. DB_TYPE=db_type Required. Specifies the type of database and ECCR. For the Datacom table-based ECCR, this value must be DCM. This parameter has no default. COLDSTART={Y|N} Optional. Controls the method by which the ECCR is started. Specify Y to perform a cold start or N to perform a warm start, which restarts the change capture process from its previous stopping point, without loss of data. Default is N. CLEANUP={Y|N} Optional. Specifies whether PowerExchange invokes the cleanup subtask at a specific interval to remove changes from the Datacom CDC tables that have been committed to the PowerExchange Logger. By specifying Y, you can ensure that the CDC tables do not fill up. Specify N to prevent the cleanup subtask from being invoked. Default is Y. CLEANUP_INTERVAL=seconds Optional. Specifies the number of seconds for the cleanup subtask to wait before removing change data that has been committed from the Datacom CDC tables. If CLEANUP=Y, the cleanup subtask connects to the Datacom MUF and removes any data that is no longer needed. The subtask then waits again for the specified wait interval. Default is 300. CDC_BASE=dbid Optional. Specifies the database identifier for the database to contain the change data. By convention, Datacom uses a database ID of 2009. If this ID is already in use at your site, you can assign a different ID to the CDC database with the Datacom MUF CDCL_DBID startup option. The value that you specify with CDC_BASE must match the value specified with CDCL_DBID. Default is 2009. CDC_ID=A Optional. Specifies the version identifier of the Datacom CDC tables. This value must match the value specified with the Datacom MUF CDCL startup option. If the format of the Datacom CDC tables changes in a later Datacom release, a new version identifier will be assigned. Default is A.
144
Statement Descriptions: EXEC Specifies the ECCR program name (DTLCCDCR). STEPLIB DD Includes the PowerExchange load libraries (LOADLIB and LOAD). If you added the load libraries to the system LNKLST concatenation, you do not need to add it to the STEPLIB statement. EDMPARMS Specifies the name of the PowerExchange USERLIB library that contains the default options module (EDMSDIR) associated with the PowerExchange Agent and PowerExchange Logger that you are using. If you do not include an EDMPARMS statement, or if the library that you specify does not contain the options modules, PowerExchange CDC uses the STEPLIB concatenation to obtain the configuration options. DTLCFG Specifies the DBMOVER configuration file for PowerExchange. Some of the parameters are applicable to the Datacom table-based ECCR.
145
DTLKEY Specifies the PowerExchange license key file, which contains the license key for the PowerExchange options that you use. DTLCACFG Points to the Datacom ECCR configuration member ECCRDCMP. DTLAMCPR Points to the data set that contains the capture registrations. DTLMSG Specifies the output data set for PowerExchange messages. DTLLOG Specifies the PowerExchange log file for messages. This SYSOUT file contains various messages that report the status and events for the Datacom table-based ECCR.
RELATED TOPICS:
Configuring the Datacom Table-Based ECCR on page 142
146
147
CHAPTER 11
148
DB2 Datatypes
The following table indicates the DB2 datatypes for which PowerExchange supports change data capture:
DB2 datatype BIGINT BINARY BLOB CHAR CLOB DATE DBCLOB DECFLOAT DECIMAL DOUBLE FLOAT GRAPHIC LONG VARCHAR LONG VARGHAPHIC INTEGER REAL ROWID SMALLINT TIME TIMESTAMP VARBINARY VARCHAR VARGRAPHIC XML User-defined (distinct) Supported for CDC? Yes Yes No Yes No Yes No No Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes No Yes Must map to a supported datatype.
149
registration for a DB2 table, the DB2 ECCR captures changes only for columns that are selected.
The DB2 ECCR does not support change data capture for the TRUNCATE SQL statement with the
IMMEDIATE option.
DB2 views and aliases are not eligible for change data capture. The DB2 ECCR only captures changes that are recorded in the DB2 log as structured query language (SQL)
option.
- Changes from all DB2 utilities, even if you specify the LOG=YES option, with the exception of the DB2 LOAD
utility with the RESUME YES and SHRLEVEL CHANGE options. With these options, the DB2 ECCR does capture changes from the DB2 LOAD utility.
The DB2 ECCR does not support a single unit-of-work (UOW) that contains both DML and DDL for the same
DB2. You should not stop databases or table spaces that contain the tables for which you wish to capture changes, unless you are certain that the DB2 ECCR has processed all pending DB2 log data for that table.
In a DB2 data sharing environment, the DB2 subsystem to which the DB2 ECCR connects needs access to
compression dictionaries. You must make the table spaces and the buffer pools for any tables registered for capture accessible to the DB2 subsystem to which the DB2 ECCR connects. If the DB2 subsystem to which the DB2 ECCR connects cannot access table spaces or buffer pools for registered compressed tables, DB2 passes decompressed change records to the DB2 ECCR. When the DB2 ECCR receives compressed change records, it abends with a user abend code 3680 and reason code 02710009 after issuing the following message to the EDMMSG log:
PWXEDM177462E ROW NOT DECOMPRESSED, TABLE=table_name, DB2 LOG LOCATION=lrsn
If this occurs, you must remove the table from capture by inactivating or deleting its registration. After the table is removed from capture, you can warm start the DB2 ECCR.
Because the compression dictionary must match the DB2 log records, the following compression restrictions
apply if you did not specify KEEPDICTIONARY: When compression is enabled with the COMPRESS YES table space option and you use one of the following utilities, the compression dictionary is rebuilt or recovered:
- DB2 REORG TABLESPACE utility - DB2 LOAD utility with the REPLACE or RESUME NO options
If the DB2 log records that you want to capture were written prior to these utilities being executed, DB2 may no longer be able to decompress those rows. In this situation, DB2 passes the compressed rows to the DB2 ECCR and the DB2 ECCR abends.
150
When you start the DB2 ECCR, it uses the current compression dictionary. For this reason, be careful when using either the START WARM statement or the START STARTLOC= statements to start from a specified point in the DB2 log. If the DB2 log records that you want to capture need an earlier compression dictionary, the DB2 subsystem may not be able to decompress the change records for the DB2 ECCR, which will abend.
to capture.
all members in the data sharing group. You do not need to use the Post-Log Merge configuration of the PowerExchange Logger to capture DB2 change data when you use DB2 data sharing.
If you use the Post-Log Merge configuration of the PowerExchange Logger for another reason, a single DB2
ECCR can attach to a single member Logger of the Post-Log Merge group.
Operational issues in the PowerExchange Logger can cause the DB2 ECCR to enter a wait state, which would
prevent further capture and recording of change data until the issues are resolved. After you resolve the operational issues in the PowerExchange Logger, the DB2 ECCR continues the capture and recording of change data without any loss of data. You must carefully monitor the PowerExchange Logger to ensure that change data capture proceeds without interruption.
RELATED TOPICS:
Monitoring the PowerExchange Logger for MVS on page 51
151
The following table describes the purpose of each DB2 ECCR capture directory table:
Name TCAPCOLUMNS Purpose Stores catalog and status information about all of the columns in the tables registered for change data capture. Stores information about the columns that use a field procedure exit routine (FIELDPROC) and that are in tables registered for change data capture. Stores status information about all of the tables registered for change data capture. Stores information about table space parts for all table spaces that contain tables registered for change data capture. Stores catalog and status information about the tables registered for change data capture. Stores catalog and status information about all table spaces in the DB2 catalog, including those table spaces containing tables that are not registered for change data capture. Stores information that the DB2 ECCR uses to coordinate handling of the DB2 log read process. Stores changes to the DB2 system catalog tables until the UOW that contains the catalog table change is committed.
TCAPFIELDS
TCAPSTATUS TCAPTABLEPART
TCAPTABLES TCAPTABLESPACE
TCAPUPDATE TCAPWORK
In the MVS Installation Assistant, you specify a DB2 creator name for the DB2 capture directory tables and a DB2 owner for the DB2 ECCR plans and packages. You also specify the following information for customizing the jobs that create these tables and related DB2 objects:
DB2 subsystem identifier (SSID) Database name STOGROUP TCAPWORK buffer pool name
The XIDDB220 member of the RUNLIB library creates the DB2 tables spaces, tables, and indexes for the DB2 ECCR capture directory tables. The SETUPDB2 job submits the XIDDB220 job. The DDL for the capture directory tables are in the following RUNLIB members: DB2TGEN Creates the database and the table space for each table. DB2SGEN Creates the tables, except for DB2 Version 8 new-function mode and later. DB2SGEN8 Creates the tables for DB2 Version 8 new-function mode and later. DB2IGEN Creates the unique index for each of the tables.
152
If you are using DB2 Version 8 new-function mode or DB2 Version 9.1, assign a buffer pool of at least 16 KB to the TCAPWORK table. Prior to DB2 Version 8 new-function mode, the TCAPWORK table required only an 8 KB buffer pool. You can assign larger buffer pool sizes than the minimum requirements for the DB2 ECCR.
Up to three rows per column across all the tables being captured
3 KB
One row per column that has a FIELDPROC across all tables being captured One row per table being captured
3 KB
1 KB
180 KB
20 KB
One row for each non-partitioned table space and a row for each partition in a partitioned table space Up to three rows per table being captured
180 KB
20 KB
180 KB
20 KB
Up to three rows per tablespace in the DB2 catalog, including those table spaces containing tables that are not registered for capture One row per DB2 ECCR
3 KB
1 KB
720 KB
48 KB
The default values provided in the PowerExchange installation process are usually sufficient for most DB2 subsystems, although some of the table spaces may create secondary extents. If you have more than 5,000 tables in the DB2 subsystem or a large number of tables or columns in tables registered for capture, the PowerExchange install values may need adjustment. You should monitor these table spaces to ensure they are able to extend as needed. The DB2 ECCR abends if it cannot extend a capture directory table.
or not apart of the same data sharing group. For example, you have test and production DB2 subsystems on the same MVS image and you need to capture change data from both subsystems.
You have a single DB2 subsystem and you want a separate capture environment for certain tables. For
example, if the DB2 subsystem contains both test and production tables, you might want to have a capture environment for the test tables and another capture environment for the production tables.
153
single DB2 subsystem and, with the exception of DB2 data sharing environments, can only capture changes for that specific DB2 subsystem.
The capture name that you specify in the CA statement in the REPL2CTL file must be unique for each DB2
Logger tasks. For instance, if you are capturing data from test and production DB2 subsystems, you might want to keep the capture environments separate. If you are capturing data from two separate test systems, using the same capture environment might be acceptable.
REPL2OPT DD statements.
Each DB2 ECCR must have its own set of DB2 Capture Directory tables. Each DB2 ECCR must have its own unique qualifier and plan name in the BIND for the packages and plans. The capture name you specify in the CA statement in the REPL2CTL file must be unique for each DB2 ECCR,
ECCR must have its own unique set of PowerExchange Listener, Agent, and Logger tasks. This allows the registrations to be split up as desired between the various capture environments.
DB2 group attachment name or the SSID when specifying the SYSTEM operand of the DSN command.
The DB2 ECCR captures changes for tables registered under the name specified in the RN parameter of the
REPL2OPT control statement. The RN parameter can specify an SSID of a member of the data sharing group or the group attachment name. Use of the group attachment name is recommended. All tables must be registered under either a single DB2 SSID or group attachment name.
The DB2 ECCR uses the CN parameter to attach to DB2. You can use either the SSID or group attachment
name to attach. Specification of the CN parameter is optional unless you want to attach to a specific DB2 subsystem. If it is not specified, the DB2 ECCR uses the RN value to do the attach. Of course, should the ECCR be moved, it still must have access to its proper Agent and Logger.
154
If you want to have the flexibility to move the DB2 ECCR to other MVS systems running members in the same DB2 data-sharing group without making parameter changes, either use the DB2 group attachment name in the CN parameter or allow it to default from the RN parameter.
If you run DB2 for z/OS Version 9.1 in new-function mode in a data-sharing environment, multiple DB2 log
records in a single data-sharing member can have the same LRSN. In this case, the DB2 ECCR generates unique, ascending sequence tokens for these records. Also, if two of the records are begin-UR records with the same LRSN, the PowerExchange Logger generates corresponding begin-UOW records with unique UOWIDs.
Considerations If You Migrate to DB2 Version 8 New-Function Mode or DB2 Version 9.1
To capture change data when running DB2 Version 8 new-function mode or DB2 Version 9.1, the DB2 ECCR requires changes to its capture directory tables. PowerExchange provides SQL and procedures to upgrade existing capture directory tables to support DB2 Version 8 new-function mode and DB2 Version 9.1. Even if you altered the capture directory tables to support DB2 Version 8 new-function mode while running a previous release of PowerExchange, you must upgrade the capture directory tables as a part of the upgrade to PowerExchange 8.6 or later. PowerExchange 8.6 includes improvements in the DB2 ECCR for DB2 Version 8 newfunction mode, and also supports DB2 Version 9.1. Note: With PowerExchange 8.6 or later, you only need to upgrade the capture directory tables once to support both DB2 Version 8 new-function mode and DB2 Version 9.1.
If XIDDB210 used the DB2SGEN8 member, you do not need to perform any further migration tasks for the DB2 ECCR. Otherwise, you must upgrade the format of the capture directory tables. Alternatively, you can do the following if you are not yet using the DB2 ECCR to capture changes:
Set the value of the DB28NFM variable to 1 in the GENBULK member in the RUNLIB library so that the
RELATED TOPICS:
DB2 ECCR Capture Directory Table Upgrades on page 172
155
PowerExchange provides SQL to upgrade the capture directory tables to allow the DB2 ECCR to support DB2 Version 8 new-function mode and DB2 Version 9.1. The following rules apply to altering the capture directory tables:
You must run DB2 Version 8 new-function mode or DB2 Version 9.1 to be able to change the capture directory
tables for support of the DB2 version you are running. If you run DB2 Version 8 compatibility mode or earlier, you cannot change the capture directory tables.
Change the capture directory tables to support DB2 Version 9.1 before making any schema change to the
tables that are registered for change capture and before starting the DB2 ECCR with DB2 Version 9.1.
RELATED TOPICS:
DB2 ECCR Capture Directory Table Upgrades on page 172
Note: DB2 does honor the KEEPDICTIONARY specification if a table in the table space contains an EDITPROC or VALIDPROC. For more information, see the description of APAR PK41156. DB2 Version 9.1, with APAR PK41156, provides a new DSNZPARM option called HONOR_KEEPDICTIONARY. You can enable this option to cause DB2 to honor the KEEPDICTIONARY specification during the first reorganization or reload of a table space in new-function mode. For table spaces containing tables for which the DB2 ECCR is capturing changes, do one of the following:
When you install the fix for APAR PK41156, enable the HONOR_KEEPDICTIONARY option in DSNZPARM. When you perform the first reload or reorganization, verify that the DB2 ECCR has captured all of the changes
for the tables in the table space. Otherwise, the DB2 ECCR may be unable to process compressed change records and fail.
156
Warning: The DB2 ECCR fails if DATA CAPTURE CHANGES is not enabled for these catalog tables, when running DB2 Version 8 or later. Prior to DB2 Version 8, the DB2 catalog tables only required DATA CAPTURE CHANGES to be enabled when using the DB2 ECCR IFI306OPT statement. The DB2 ECCR issues the following messages when running DB2 Version 7 without DATA CAPTURE CHANGES enabled for the aforementioned DB2 catalog tables:
PWXEDM177540W Some DB2 catalog tables not defined with Data Capture Changes PWXEDM177541W Migration to DB2 V8 will not be allowed
In DB2 Version 8 and later, the DB2 ECCR issues the following message when one or more of the DB2 catalog tables do not have DATA CAPTURE CHANGES enabled:
PWXEDM177543E Capture program of DB2 Replication ending - DB2 Catalog tables not Data Capture Changes
When this message is issued, the DB2 ECCR terminates without processing any data.
RELATED TOPICS:
Altering DB2 System Tables for DATA CAPTURE CHANGES on page 171
157
normally be run with START WARM unless a cold or special start is required for recovery purposes.
The DB2 ECCR requires at least one active registration to start successfully. If there are no active
registrations, the DB2 ECCR abends with U3680 and message PWXEDM177509E indicating there are no active registrations.
The DB2 ECCR issues IFCID 306 READS requests to read the DB2 log data. To issue the READS request,
MONITOR TRACE 1 needs to be started. Therefore, the user ID under which the DB2 ECCR runs must have the following authorities:
- TRACE authority to issue the START TRACE command - DISPLAY authority to issue a DISPLAY TRACE to determine if the MONITOR TRACE is already active - MONITOR2 authority to issue the READS request to get the log data containing the changes it needs to
capture If the user ID for the DB2 ECCR has SYSOPR, SYSCTL, or SYSADM authority, you do not need to grant additional authority. If the DB2 ECCR starts the trace during initialization, it issues message:
PWXEDM177008I -START TRACE(MONITOR) PLAN(plan) LOCATION(caname) CLASS(1) HAS BEEN EXECUTED
If MONITOR TRACE is started, the DB2 ECCR does not issue the START TRACE command. If MONITOR TRACE is stopped or has never started, the DB2 ECCR starts it.
The first time that the DB2 ECCR receives a change record for a particular table, it compares the registered
schema for that table to the schema for the table in the DB2 catalog. If the schemas do not match, the DB2 ECCR issues a report and terminates. The DB2 ECCR also performs schema verification the first time that the ECCR receives a change record for a table following a schema change on that table. To prevent the ECCR from terminating when the table schemas do not match, you must update the corresponding capture registration any time that the source schema changes.
158
CA NAME=eccr_name Required. The ECCR name for the DB2 ECCR. The ECCR name value must be unique within a sysplex. Warning: If you change the CA NAME value, the ECCR cannot warm start from the last stopped position. The DB2 ECCR uses the value specified for the following purposes:
The ECCR name that connects to the PowerExchange Logger to write change data The member name that joins the XCF group of the PowerExchange Logger The minor name of the DB2CAPT ENQ
During initialization, the DB2 ECCR issues the DB2CAPT ENQ as an exclusive ENQ with SCOPE=SYSTEMS.
As part of the ECCR-UOW field in the control information for each change record written to
PowerExchange Logger log files Valid values are 1 through 8 alphanumeric characters. Default is PWXDB201. The default value can be modified in the MVS Installation Assistant during the installation of PowerExchange. Tip: Informatica recommends that you use the same value for the CA NAME parameter and the DB2 ECCR started task or job name. This practice allows you to easily identify the DB2 ECCR when reviewing messages and data from the PowerExchange Logger. STOPAFT [LOGLOC=rba|LOGTS=timestamp] Optional. Specifies when the DB2 ECCR should stop processing. STOPAFT can be used with any type of start for the DB2 ECCR. Only one STOPAFT statement can be used in the REPL2CTL file. LOGLOC=rba The value of rba is the RBA, or LRSN if the DB2 ECCR is connected to a member of a DB2 data sharing group, at which the DB2 ECCR is to terminate. The value must be larger than the RBA or LRSN location at which the DB2 ECCR starts. If not, the DB2 ECCR stops as soon as the first record is obtained from the DB2 log data. LOGTS=timestamp The value of timestamp is the time at which the DB2 ECCR is to terminate. The timestamp value has the following format: yyyy-mm-dd-hh.mm.ss.nnnnnn. The variables in the timestamp value are:
yyyy is the year, such as 2005 mm is the numeric month dd is the numeric day of the month hh is the hour of the day mm is the minute of the hour ss is the second of the minute nnnnnn is the fraction of the second
The timestamp must be a valid date. For example, 2005-02-31-17.15.59.000000 is invalid because February 31st does not exist. The timestamp value must be later than the time at which the DB2 ECCR starts. If not, the ECCR stops as soon as the first record is obtained from the DB2 log data.
159
All of the REPL2OPT statements must begin in column 1. REPL2OPT has following statements: CHKSCHEM {NO|YES|WARN} Optional. Specifies whether the DB2 ECCR is to verify the schema registrations at ECCR initialization and, if so, how to handle errors. This schema verification is in addition to the verification performed when the ECCR receives the first change record for a registered schema. NO Default. Does not verify your registered schema at initialization.The DB2 ECCR continues to verify each registered schema against the information in the DB2 catalog when the ECCR receives the first change record for that schema. YES Checks all registered schema information against the information in the DB2 catalog at initialization and when you refresh the ECCR.This option terminates the ECCR startup process if the verification encounters errors. WARN Checks all registered schema information against the information in the DB2 catalog at initialization and when you refresh the ECCR.This option issues a warning message if the verification encounters errors, but the DB2 ECCR continues. Refresh or restart the DB2 ECCR to activate a new value for this statement. DB2 PLAN=plan_name {RN=rn_ssid|CN=cn_ssid|RN=rn_ssid CN=cn_ssid} Required. Specifies the plan and subsystem name or group name for the DB2 system to which the DB2 ECCR attaches. You can code both RN, CN, or RN and CN. Only one of these keywords is required. The specified keyword substitutes for the non-specified keyword, if only one of RN and CN is coded.
160
Tip: When implementing the DB2 ECCR in a data sharing environment, Informatica recommends using the group attachment name for the RN keyword and in the registration group in the PowerExchange Navigator. The PowerExchange Logger uses the registration tag name to capture changes. The registration tag name contains the value specified in the Database Instance field in the registration group. Using the group attachment name makes registration tag names and captured change data independent of a specific data sharing group member SSID. PLAN=plan_name Identifies the DB2 plan name that the ECCR uses. The following rules and guidelines apply:
The PLAN keyword must be in uppercase and begin in column 5. Plan names must be in uppercase. Plan names can be between 1 and 8 characters long. Plan names less than eight characters must be padded with spaces to make eight characters.
For example, if your plan name is MYPLAN, you must add three spaces between the plan name and the RN keyword. RN=rn_name Identifies the DB2 subsystem name used in the capture registrations. The value specified for this keyword must match the value specified in the Database Instance field in the registration group defined in the PowerExchange Navigator. The value for this keyword defaults to the CN value if not specified. The following rules and guidelines apply:
The RN keyword must be in uppercase and begin in column 19. The rn_name value must be in uppercase. The rn_name value can be 1 to 4 characters long and is either the DB2 subsystem ID (SSID) or the
DB2 group attachment name. CN=cn_ssid Identifies the DB2 subsystem to which the DB2 ECCR should connect. This value for this keyword defaults to the RN value if not specified. The following rules and guidelines apply:
CN must be in uppercase and begin in column 27. The cn_name value must be in uppercase. The cn_name value can be 1 to 4 characters long and is either the DB2 subsystem ID (SSID) or the
DB2 group attachment name. The following examples show combinations of RN and CN keywords:
If you have a non-data-sharing environment with a DB2 subsystem SS01, code the DB2 statement as
follows:
DB2 PLAN=plan_name RN=SS01 If you migrate SS01 to a data-sharing environment called GRP1, code the DB2 statement as follows: DB2 PLAN=plan_name RN=SS01 CN=GRP1
161
If you add another DB2 subsystem, SS02, to the data-sharing group GRP, continue to use the previous
statement to run one instance of the ECCR on either SS01 or SS02. You must continue to register new tables under the name SS01.
If you have a data sharing environment with the previous configuration and do not have existing capture
Create all capture registrations under the GRP1 name. Restart the DB2 ECCR to activate a new value for this statement. EC PERMIL=err_num Optional. Specifies the maximum number of acceptable errors per thousand updates. The default value is zero. Refresh or restart the DB2 ECCR to activate a new value for this statement. IFI306OPT Optional. IFI306OPT changes the manner in which the DB2 ECCR interacts with the DB2 catalog tables. For this option to be effective, the DB2 catalog tables must have the DATA CAPTURE CHANGES option. When the DB2 catalog tables have DATA CAPTURE CHANGES enabled and you specify IFI306OPT, DB2 passes a reduced volume of change information to the DB2 ECCR. Restart the DB2 ECCR to activate a new value for this statement. MODE={RB|CM} Optional. Specifies the DB2 ECCR mode of operation. RB Default. Designates rollback mode. This option does not send aborted UOW records to the PowerExchange Logger. CM Designates compensation mode. This option sends compensation and SQL records to the PowerExchange Logger. Restart the DB2 ECCR to activate a new value for this statement. START {COLD|WARM|STARTLOC=rba [USEDIR],[USESTAT]} Required. Controls the method by which the DB2 ECCR is started. COLD Starts the DB2 ECCR for the first time or restarts the ECCR after a major system failure. WARM Restarts change-capture process from its previous stopping point, without loss of data. Use this option to restart the DB2 ECCR after a successful shutdown using the STOP command or the MODIFY QUIESCE command. Typically, you should use the WARM keyword when starting the ECCR. STARTLOC=rba [USEDIR],[USESTAT] Restarts change-capture process from a specific point in the DB2 log. The rba value specifies the 12-digit hexadecimal DB2 log RBA or log record sequence number (LRSN) at which the DB2 ECCR should start.
162
information that was registered in the PowerExchange repository when the STARTLOC option was specified.
USESTAT. Specifies that the DB2 ECCR uses the status active (C) or inactive (N) for the table
registration that existed when the STARTLOC option was specified. Restart the DB2 ECCR to activate a new value for this statement. Ignored when you refresh the DB2 ECCR. STAT LEV={ST|SQ} [SEC=secs] Optional. Specifies the interval at which the DB2 ECCR displays capture statistics. The DB2 ECCR displays statistics before terminating, when you issue a DISPLAY command, or when you issue a REFRESH command. You can find these statistics in the EDMMSG file in DB2 ECCR JCL. LEV=[ST|SQ] Identifies the level of table statistics printed. This value can ST for table summary statistics or SQ for table SQL operation statistics. Note: The SQ option prints two lines of output per table registered for capture. To minimize the size of the EDMMSG output, use LEV=ST. You can issue the DISPLAY command with the SQ option to write a table SQL operation statistics report. SEC=secs Specifies the number of seconds in the reporting period. The default is 3600 (1 hour). Refresh or restart the DB2 ECCR to activate a new value for this statement. TRACE [option] Optional. The TRACE statement can help to troubleshoot the behavior and performance of the DB2 ECCR. Note: Use the TRACE statement and its keywords only under the advice of Informatica Global Customer Support. To activate more than one trace, you must specify the TRACE statement multiple times. If you specify TRACE without an keyword, a minimal trace is activated, which is the same level of tracing specified by the MINI keyword. The TRACE statement must start in column 1 and the trace option, if specified, must start in column 7. You can specify the following TRACE options:
Keyword MINI ALL DB2CAT CAPDIR COMMIT ROLLBACK Description Default. Activates a minimal trace. Activates all tracing within the DB2 ECCR. Traces DB2 catalog access. Traces DB2 ECCR capture directory access. Traces DB2 ECCR commit and rollback activity. Has the same function as COMMIT.
163
Keyword SERVICES RECCDC RECDDL RECURCTL LOGREC LOGSEG LOGIFI LOGDSNJ CB DECOMPRESSION EDITPROC FIELDPROC FMSG
Description Traces DB2 ECCR services. Traces log record processing for captured DB2 change data. Traces DB2 DDL log record processing. Traces DB2 log UR Control record processing. Traces reading a DB2 log record. Traces reading a DB2 log record segment. Traces reading the DB2 log through IFI. Traces reading the DB2 log through DSNJ. Traces DB2 ECCR internal control block activity. Traces record decompression for captured records. Traces EDITPROC processing for captured records. Traces FIELDPROC processing for captured records. Traces message formatting for captured records.
Note: When you use the TRACE statement and its keywords, the REPL2TRA DD statement must be present in the JCL. Refresh or restart the DB2 ECCR to activate a new value for this statement.
RELATED TOPICS:
Sample REPL2CTL Parameters on page 160 DB2 Catalog Tables on page 174
164
The following table describes the JCL statements for the DB2 ECCR procedure:
JCL Statement EXEC STEPLIB DD Description Specify the PX029200 program. Include the PowerExchange load libraries (LOADLIB and LOAD) and the DB2 load library (DSNLOAD). If your DB2 subsystem uses EDITPROC or FIELDPROC exit routines, include the library that contains them as well. All libraries included in this STEPLIB concatenation must be APFauthorized. If any of the libraries are included in your system's LNKLST concatenation, you do not need to include them in the STEPLIB. Specify the name of the PowerExchange USERLIB library that contains the EDMSDIR modules options module associated with the PowerExchange Logger you are using. If you do not include an EDMPARMS DD statement, or if the library you specify does not contain the EDMSDIR options module, the DB2 ECCR searches the STEPLIB concatenation for those options. Specify the REPL2CTL file (REPDB2CT in RUNLIB) associated with the ECCR.
EDMPARMS DD
REPL2CTL DD
165
Description Specify the REPL2OPT file (REPDB2OP in RUNLIB) associated with the ECCR. Specify the output data set for the DB2 ECCR TRACE output. The default and recommended specification is SYSOUT=*. The DB2 ECCR writes data to this DD statement in error situations and if the TRACE statement is included in the REPL2OPT file.
RELATED TOPICS:
DB2 ECCR REPL2CTL Statement on page 158 DB2 ECCR REPL2OPT Statements on page 160
Important: The default member that PowerExchange supplies specifies WARM for the start type. The first time you start the DB2 ECCR, temporarily change the start type to COLD to allow the DB2 ECCR to start. After the initial start, warm start the DB2 ECCR. 2. 3. Edit the ECCRDB2 sample JCL in the PowerExchange RUNLIB data set as required.
Execute the procedure in a batch job. Alternatively, start it as a started task by using the MVS START command. Generally, the DB2 ECCR is run as a started task because it is a long-running job. The process described previously details the requirements for starting a single DB2 ECCR in a simple environment.
RELATED TOPICS:
Running Multiple DB2 ECCRs on page 153 DB2 Data-Sharing Considerations on page 154 DB2 ECCR REPL2CTL Statement on page 158 DB2 ECCR REPL2OPT Statements on page 160
166
The job_name variable is the name of the DB2 ECCR job or of the started task. The QUIESCE command results in the following message output:
PWXEDM177048I PWXEDM177280I PWXEDM177282I PWXEDM177008I PWXEDM177000I PWXEDM177000I PWXEDM177268I PWXEDM177265I PWXEDM172809I PWXEDM172809I PWXEDM172841I PWXEDM172818I PWXEDM172829I PWXEDM177012I CAPTURE PROGRAM ACKNOWLEDGES A QUIESCE COMMAND CAPTURE PROGRAM OF DB2 REPLICATION ENDING BECAUSE OF CAPTURE QUIESCE COMMAND BEGIN DB2 CAPTURE TERMINATION -STOP TRACE(MONITOR) PLAN(CCDDGKP0) LOCATION(DEBB0001) CLASS(1) HAS BEEN EXECUTED DSNW131I *DEBB STOP TRACE SUCCESSFUL FOR TRACE NUMBER(S) 04 DSN9022I *DEBB DSNWVCM1 '-STOP TRACE' NORMAL COMPLETION LAST READ DB2-LOG LOCATION=000017068F37 PROCESSING IS COMPLETE Change Capture counts for DEBB/RDADGK.SOURCE: Insert=0, Update=0, Delete=0 Change Capture counts for DEBB/RDADGK.DGKSRC01: Insert=0, Update=0, Delete=1 EDM ECCR DEBB0001 disconnected from EDM Logger PWXL, Log RBA=X'0000014AA0540000' Left XCF group 'PWXL' as member 'PWXDB2CC' EDM ECCR sent 1 records to Logger PWXL (1 change records) DB2 ECCR STATUS : LAST READ RBA=000017068F37/0000 OLDEST OPEN URID=NONE
For the job_name variable, enter the name of the DB2 ECCR job or the started task. The following are examples of messages that result when you run STOP to stop the DB2 ECCR:
PWXEDM177046I PWXEDM177279I PWXEDM177282I PWXEDM177008I PWXEDM177000I PWXEDM177000I PWXEDM177268I CAPTURE PROGRAM ACKNOWLEDGES A MVS STOP COMMAND CAPTURE PROGRAM OF DB2 REPLICATION ENDING BECAUSE OF MVS STOP COMMAND BEGIN DB2 CAPTURE TERMINATION -STOP TRACE(MONITOR) PLAN(CCDDGKP0) LOCATION(DEBB0001) CLASS(1) HAS BEEN EXECUTED DSNW131I *DEBB STOP TRACE SUCCESSFUL FOR TRACE NUMBER(S) 04 DSN9022I *DEBB DSNWVCM1 '-STOP TRACE' NORMAL COMPLETION LAST READ DB2-LOG LOCATION=000017062074
167
PROCESSING IS COMPLETE Change Capture counts for DEBB/RDADGK.SOURCE: Insert=0, Update=0, Delete=0 Change Capture counts for DEBB/RDADGK.DGKSRC01: Insert=1, Update=0, Delete=0 EDM ECCR DEBB0001 disconnected from EDM Logger DGKL, Log RBA=X'0000014A8FB40000' Left XCF group 'DGKL' as member 'DEBB0001' EDM ECCR sent 1 records to Logger DGKL (1 change records) DB2 ECCR STATUS : LAST READ RBA=000017062074/0000 OLDEST OPEN URID=00001705DB33
The following table briefly describes the DB2 ECCR commands you can use with the MVS MODIFY command to control DB2 ECCR processing:
Keyword DISPLAY QUIESCE STOP REFRESH Description Displays current ECCR-processing statistics. Stops the DB2 ECCR after all open UOWs for that ECCR finish processing. Terminates the DB2 ECCR immediately. Activates the updated options file and validates the new table registration information. Note: The REFRESH keyword ignores any changes that you make to the CA, IFI306OPT, and START statements in the REPL2CTL file. The REFRESH command is equivalent to stopping the DB2 ECCR and then restarting it with the START WARM statement. Displays any open UOWs for the DB2 subsystem or data-sharing group to which the DB2 ECCR is connected Commits an outstanding UOW.
URID TERM
The variable job_name refers to the MVS batch job or started task name that you need to run the DB2 ECCR.
The variable job_name refers to the MVS started task name that you need to run the DB2 ECCR.
168
RELATED TOPICS:
DB2 ECCR REPL2OPT Statements on page 160
By default, the DB2 ECCR writes a table summary statistics report for each interval. If you specify LEV=SQ on the STAT statement, the DB2 ECCR writes a table SQL operation statistics report.
When you issue a DISPLAY command to the DB2 ECCR
If you specify the SQ option, the DB2 ECCR writes a table SQL operation statistics interval report. The DISPLAY command also writes the PWXEDM177084I message to the MVS hardcopy log and to the JES job log of the DB2 ECCR.
169
MSG_TOT 0 13 32 0 18
MSG_INTV MSG_PSEC 0 0 0 0 0 0 0 0 0 0
The followed example shows a table SQL operation statistics report of the DB2 ECCR:
PPWXEDM177084I STATISTICS OF CAPTURE PGM PWXDB2CC AT=2008-11-30 11.20.39 ----------------------------------------------------------------------DB2-LOG LOCATION=001520A5EE6E/0000 DB2-LOG TIMESTMP=2008-11-30 11.18.55 LAST DELAY= 2.20 SEC AVERAGE DELAY= 2.20 SEC NBR OF ERRORS= 0 DB2 LOG CI'S CI_TOT CI_INTV CI_PSEC 380,719 0 0 EDM MESSAGES MSG_TOT MSG_INTV MSG_PSEC 63 0 0 PWXEDM177085I DETAIL-LEVEL STATISTICS FOLLOW BELOW TABLE: AUSQA.RRTB_SRC_001 0 INSERTS, 0 UPDATES, 0 DELETES TABLE: AUSQA.DB2DEMO_006 4 INSERTS, 5 UPDATES, 4 DELETES TABLE: AUSQA.DB2DEMO_003 8 INSERTS, 20 UPDATES, 4 DELETES TABLE: AUSQA.DB2DEMO_002 0 INSERTS, 0 UPDATES, 0 DELETES TABLE: AUSQA.DB2DEMO_001 8 INSERTS, 5 UPDATES, 5 DELETES
The following table describes each element of the interval statistics reports:
Report Element DB2-LOG LOCATION DB2-LOG TIMESTAMP Description Displays the RBA of the current location of ECCR processing in the DB2 log. Displays the time stamp of the last DB2 log record that the ECCR read. This time stamp reflects the date and time that the record was written to the DB2 log. Displays the difference between the time when the ECCR read the last DB2 log record and the time when the record is written to the DB2 log. Displays the average delays for the statistical reporting period. The delay is defined as the difference between the time when ECCR read a DB2 log record and the time that record was written to the DB2 log. Displays the total number of errors since the DB2 ECCR was started. Displays the total estimated number of DB2 log control intervals read by the ECCR since the ECCR started. Displays the total estimated number of DB2 log control intervals read by the ECCR for the statistical reporting period. Displays the estimated average number of DB2 log control intervals read per second by the ECCR for the statistical reporting period. In the EDM MESSAGES section, displays the total number of changed records read by the DB2 ECCR for all tables since the ECCR started. This statistic also appears for each table in the table summary statistics report. In the EDM MESSAGES section, displays the total number of changed records read by the DB2 ECCR for all tables in the statistical reporting period. This statistic also appears for each table in the table summary statistics report.
LAST DELAY
AVERAGE DELAY
CI_INTV
CI_PSEC
MSG_TOT
MSG_INTV
170
Description In the EDM MESSAGES section, displays the average number of changed records read per second by the DB2 ECCR for the statistical reporting period. This statistic also appears for each table in the table summary statistics report. In the table summary statistics report, displays the name of the table for which the MSG_TOT, MSG_INTV, and MSG_PSEC statistics are reported. In the table SQL operation statistics report, displays the name of the table for which the INSERTS, UPDATES, and DELETES statistics are reported. In the table SQL operation statistics report, displays the total number of insert operations to the table since the ECCR started. In the table SQL operation statistics report, displays the total number of update operations to the table since the ECCR started. In the table SQL operation statistics report, displays the total number of delete operations to the table since the ECCR started.
TABLE_NAME
TABLE
INSERTS
UPDATES
DELETES
To recover the DB2 ECCR: 1. Determine the cause of the DB2 ECCR failure. The DB2 ECCR allows you to specify a maximum number of errors to tolerate before the ECCR terminates. Use the EC PERMIL statement in the REPL2OPT file. 2. If the DB2 ECCR failed because the PowerExchange Logger stopped, restart the PowerExchange Logger. If the PowerExchange Logger stops or ABENDs while attached to the DB2 ECCR, the DB2 ECCR also ABENDs when it receives the first change record following the PowerExchange Logger failure. 3. Restart the DB2 ECCR from the point at which it ABENDed.
Use the STARTUP WARM statement in the REPDB2OP member. Be sure to use the same REPL2CTL file that you used prior to the abend. When you restart the DB2 ECCR or the PowerExchange Logger after a failure, the PowerExchange Logger determines the point at which to begin capturing changes again for the corresponding CA name.
RELATED TOPICS:
DB2 ECCR REPL2OPT Statements on page 160
171
To alter DB2 system tables for DATA CAPTURE CHANGES: 1. Perform a orderly shutdown of the DB2 ECCR by using the MVS command:
MODIFY db2_eccr_name,QUIESCE
Record the LAST READ RBA in the PWXEDM177012I message in the EDMMSG data set in DB2 ECCR output listing. You need this RBA value to restart the DB2 ECCR. For example:
PWXEDM177012I DB2 ECCR STATUS : LAST READ RBA=000C9041C372/0000
The LAST READ RBA value that is used to special start the DB2 ECCR in this example is 000C9041C372. 2. Alter any of the following catalog tables that are currently have DATA CAPTURE NONE to DATA CAPTURE CHANGES:
SYSTABLES SYSCOLUMNS SYSTABLESPACE SYSFIELDS SYSCOPY
3.
Special start the DB2 ECCR using STARTLOC= parameter in the REPDB2OP member of RUNLIB library, pointed to by the REPL2OPT DD statement in the DB2 ECCR JCL. The value specified in the STARTLOC= parameter should be the LAST READ RBA value from the PWXEDM177012I message in the EDMMSG data set in the DB2 ECCR output listing from the quiesced DB2 ECCR. For example, using the example message from step 1, you would code the following STARTLOC parameter:
START STARTLOC=000C9041C372 USEDIR,USESTAT
4. 5.
Verify that no PWXEDM177540W or PWXEDM177541W messages are issued when the DB2 ECCR special start completes. Modify the REPDB2OP member of the RUNLIB library to specify START WARM so the next restart of the DB2 ECCR starts correctly.
RELATED TOPICS:
DB2 ECCR REPL2OPT Statements on page 160
If you previously used an earlier PowerExchange version and upgraded the capture directory tables when migrating to DB2 Version 8 new-function mode, you must upgrade the capture directory tables again as part of the upgrade to PowerExchange 8.6 or later. This step is necessary because PowerExchange 8.6 introduced DB2 ECCR enhancements for DB2 Version 8 new-function mode. After you upgrade the capture directory tables once for PowerExchange 8.6 or later, you do not need to update the tables again to support DB2 Version 9.1.
172
FIXTCAPC Updates the TCAPCOLUMNS capture directory table to correct some existing data that might have been set incorrectly by previous levels of the DB2 ECCR. FIXTCAPP Updates the TCAPTABLEPART capture directory table to populate new columns that are added to that table by the EXPNDCAP DDL, and to provide full support for DB2 Version 9.1 functionality such as clone tables and reordered row format. FIXTCAPS Updates the TCAPTABLESPACE capture directory table to populate the new columns that are added by the EXPNDCAP DDL. Also, provides full support for DB2 Version 9.1 functionality such as clone tables and reordered row format. FIXTCAPT Updates the TCAPTABLES capture directory table to populate new columns that are added by the EXPNDCAP DDL. Also, provides full support for DB2 Version 9.1 functionality such as clone tables and reordered row format.
173
7. 8.
If necessary, update the GENBULK member in the RUNLIB library to change the DB28NFM variable from 0 to 1. A value of 1 indicates that you have DB2 Version 8 new-function mode or later. Warm start the DB2 ECCR to resume change data capture with the upgraded catalog capture directory tables.
With DB2 Version 8 and later, you must enable DATA CAPTURE CHANGES for these DB2 catalog tables whether you use IFI306OPT or not. The DB2 ECCR does not start up unless DATA CAPTURE CHANGES is specified for these catalog tables.
Record the LAST READ RBA value in the PWXEDM177012I message in the EDMMSG data set in DB2 ECCR output listing. You need this RBA value to restart the DB2 ECCR. For example:
PWXEDM177012I DB2 ECCR STATUS : LAST READ RBA=000C9041C372/0000
The LAST READ RBA value that is used to special start the DB2 ECCR in this example is 000C9041C372. 2. Alter any of the following catalog tables that are currently have DATA CAPTURE NONE to DATA CAPTURE CHANGES:
SYSTABLES SYSCOLUMNS SYSTABLESPACE
174
SYSFIELDS SYSCOPY
Altering the catalog tables to use DATA CAPTURE CHANGES does not, on its own, cause PowerExchange to request reduced information from DB2. 3. Code statement IFI306OPT in the REPDB2OP member of hlq.RUNLIB, pointed to by the REPL2OPT DD statement in the DB2 ECCR JCL. Note: The IFI306OPT statement cannot be activated by a REFRESH of the ECCR. 4. Special start the DB2 ECCR using STARTLOC= parameter in the REPDB2OP member of hlq.RUNLIB, pointed to by the REPL2OPT DD statement in the DB2 ECCR JCL. The value specified in the STARTLOC= parameter should be the RBA value from the PWXEDM177012I message in the EDMMSG data set in the DB2 ECCR output listing from the quiesced DB2 ECCR. For example, using the example message from step 1, you would code the following STARTLOC parameter:
START STARTLOC=000C9041C372 USEDIR,USESTAT
5. 6.
Verify that no PWXEDM177540W or PWXEDM177541W messages are issued when the DB2 ECCR special start completes.
Modify the REPDB2OP member of hlq.RUNLIB, pointed to by the REPL2OPT DD statement in the DB2 ECCR, to specify START WARM so the next restart of the DB2 ECCR starts correctly. If running DB2 Version 7 or less with IFI306OPT specified in the REPL2OPT statements, the following message appears if the relevant DB2 catalog tables have not been set up with DATA CAPTURE CHANGES:
PWXEDM177542W Request for optimized IFI306 processing (IFI306OPT) ignored
In this case the ECCR continues processing but uses the standard data capture processing.
RELATED TOPICS:
DB2 ECCR REPL2OPT Statements on page 160 Restrictions Imposed by Optimized Access (IFI306OPT) on page 175
175
To manually rename a table or column in a table: 1. 2. 3. 4. 5. 6. 7. Make the table read-only. Ensure the DB2 ECCR has captured all changes up until the point at which changes were stopped. Rename the table or the column in the table. Delete or inactivate the capture registration for the table. If you renamed the table but still want to capture changes for the renamed table, create and activate a new capture registration for the table. Otherwise, skip this step. Issue the DB2 ECCR REFRESH command. Allow changes to the table.
176
DB2 subsystem. If the DB2 subsystem to which the DB2 ECCR normally attaches is unavailable, the DB2 ECCR does not run and does not capture table changes from the DB2 logs. The change data are not be lost as long as the DB2 logs are still available, but access to the data might be delayed.
- Processes all updates performed by DB2 subsystems that are members of the DB2 data-sharing group If you create a single data sharing group using existing DB2 subsystems and want to continue using their
existing capture registrations, you must continue to run multiple DB2 ECCRs: one for each SSID for which you captured changes with the appropriate RN parameter to match that DB2 subsystem id. After successfully migrating to a data sharing environment, you can consider minimizing the number of ECCRs by combining existing ones from the members of the data sharing group. This requires reregistration of all of the DB2 tables of the combined ECCRs under a common SSID (generally the group attachment name). Before attempting to combine ECCRs, ensure that you understand the ramifications as you may need to change your extraction mappings and processes in addition to re-registering your tables.
2.
3.
To ensure that the DB2 ECCR processed all log records that were written before setting the table spaces to RO state, issue the following command:
MODIFY job_name,DISPLAY
The result of this command includes the DB2 log timestamp that indicates when the last read log record was created. Be sure that this timestamp is later than the recorded time at which the last table space (which contains source tables) entered the read-only (RO) state. 4. 5. 6. Stop the DB2 ECCR by issuing the following command:
STOP job_name
Complete the migration from the DB2 data sharing environment. Start the DB2 subsystem in non-sharing mode and start the DB2 ECCR to propagate all of the updates that are performed in non-sharing mode.
177
spaces containing the source tables in RW mode). After completing the cold-start, allow the update of the source tables. PowerExchange CDC propagates these updates as usual.
Special start the DB2 ECCR before completing any data definition language (DDL) operations on the
source tables. You can perform the special start before or after you allow updates to the source tables. For the special start, proceed as follows to determine the STARTLOC keyword value of the START control record in the file REPL2OPT:
Run the DB2 DSNJU004 utility. From the DSNJU004 print output, obtain the value of MIN RBA FOR TORBA. Use the value of MIN RBA FOR TORBA as the keyword value for STARTLOC. If you specified the group attachment name in the CN parameter (or allowed it to default from the RN
parameter) of the REPL2OPT control statement, you should now code a DB2 subsystem ID. If you now run multiple ECCRs and had registered all resources under the group attachment name, you can continue to use the same repository and the same RN value as before. For each table registered that is not in the DB2 catalog, you receive the following message:
PWXEDM177371W TABLE=creator.tablename DOES NOT EXIST IN DB2 CATALOG
This message is a warning message. It does not affect change capture for tables that are defined in the DB2 catalog for the DB2 subsystem under which the ECCR is running.
RELATED TOPICS:
Stopping the DB2 ECCR on page 167 Altering the DB2 Table Structure on page 178 Deactivating or Deleting Registrations on page 179
As a result, the DB2 ECCR can no longer capture changes associated with the specified table. For more information about this command, see your IBM DB2 documentation.
178
Warning: When you change the structure of your DB2 table to DATA CAPTURE NONE, changes are no longer written to the DB2 log in the expanded format that is required for data capture. Consequently, you cannot retrieve the changes later.
Warning: Keep at least one active DB2 data-resource registration in the PowerExchange repository (CCT file). If you deactivate or delete all of your DB2 registrations, the DB2 ECCR ends abnormally when you refresh or restart it. For restart and recovery reasons, do not delete registrations.
Schema Verification
When the DB2 ECCR captures the first change record for a DB2 table, the ECCR verifies that the DB2 table schema in the DB2 catalog matches the corresponding schema registration in the PowerExchange repository. The schema verification routine does not actually access the DB2 catalog. Instead, the routine uses the internal PowerExchange tables that were created from the DB2 catalog when you started the DB2 ECCR.
If the DB2 table schema matches the activated schema registration, capture processing continues. If the DB2 table schema does not match the activated schema registration, the verification routine displays a
report and the DB2 ECCR ABENDs. You can request that the DB2 ECCR also run this schema verification routine at startup by using the CHKSCHEM statement. The following example shows a sample report and the messages that are displayed when schema verification fails. In this example, schema verification fails because the schema in the schema registration contains a column that is not defined in the DB2 catalog (suggesting that a column has been removed since the table was registered). The fields in the Schema Verification Report table describe the fields in the report.
179
Sc
180
change record for the table after the schema change is made. The DB2 ECCR writes the following messages in the EDMMSG data set:
PWXEDM177511E Schema verification failed for table 'owner.table_name' PWXEDM172807E ABEND issued by schema verification, Abend code=3680, Reason=10040001.
To recover from an unplanned schema change to a DB2 source table: 1. 2. 3. 4. 5. 6. If you use PowerExchange Condense, ensure that all of the captured changes have been condensed. After this has been done, shut down PowerExchange Condense. Extract all captured changes. Delete the capture registration and extraction map. Create a new capture registration using the new schema. Warm start the DB2 ECCR. Restart any extraction processes and, if applicable, PowerExchange Condense.
RELATED TOPICS:
Changing the Schema of DB2 Source Tables on page 180
Important: DB2 requires that you disable DATA CAPTURE CHANGES to alter the datatype of a column. To enable DATA CAPTURE CHANGES after you alter the datatype, you must reorganize the table space containing the table. Some releases and maintenance levels of DB2 also require the table space or partitions to be reorganized if you increase the length of variable columns. During this process, do not allow any data changes to the table because the DB2 ECCR does not see them. If changes occur while DATA CAPTURE CHANGES is disabled, you must rematerialize any target tables that use the source table.
Rename a column
If you make these types of alterations to a column registered for capture with the DB2 ECCR, you must follow the procedure for schema changes. If a column is not registered for capture with the DB2 ECCR, you do not need to change to the capture registration. When you create a capture registration in the PowerExchange Navigator, columns can be registered for capture in one of the following ways:
Explicitly selected Select All Columns option Select all and notify changes option
RELATED TOPICS:
Changing the Schema of DB2 Source Tables on page 180
181
However, you must take action to enable the DB2 ECCR to capture changes if the following conditions exist:
The table space contains multiple tables. You have altered at least two tables containing a minimum of one variable-length column to add fixed-length
columns.
The altered tables are not registered for capture.
To allow the DB2 ECCR to capture changes for the second table, you must reorganize the table space before you make any changes to that table. Otherwise, the DB2 ECCR fails because it is cannot process DB2 log records for the second table. Note: The DB2 ECCR can capture changes for the altered tables if you change the qualifier for the table space containing the tables after you register both altered tables for capture and refresh or warm start the DB2 ECCR.
182
CHAPTER 12
183
The components through which the data flows appear as shaded, rectangular shapes with numerical labels. The components that control the flow of data appear as elliptical shapes with alphabetic labels. The following table describes the PowerExchange IDMS log-based CDC components. These components handle the change data as it progresses through the capture process. Note: The user application and the source and target databases are not PowerExchange CDC components.
Component User Updates IDMS Description Any software that updates the IDMS source database on an ongoing basis. The IDMS database where the source data resides. PowerExchange Change Capture can capture changes from more than one source database or data file. PowerExchange IDMS log-based Data Capture uses data changes stored in the IDMS logs. PowerExchange uses a catalog of IDMS logs. The PowerExchange Log Catalog is built and maintained using PowerExchange utilities to identify data available for capture. The IDMS ECCR is run as a batch job or started task to select data required for capture from the logs identified in the PowerExchange Log Catalog. The PowerExchange Logger records the change data captured by the ECCRs in its log data set. Change consumers extract the changes from the PowerExchange Logger using the PowerExchange Listener. PowerExchange Condense extracts changes from the PowerExchange Logger, condenses them, and stores them in condense files. The PowerExchange Agent controls mainframe service routines and programs for data propagation in PowerExchange. The PowerExchange Agent obtains data from repositories, manages authorization, and facilitates communication between components.
ECCR
LOGGER
CONDENSE
AGENT
To develop a data capture environment, you must perform the following tasks:
Register a data source. Create the Capture catalog, Populate the Capture catalog. Configure and start the ECCR. Register a restart token. Enable data access.
The information here is enough for a basic working installation. The following components must be configured for IDMS log-based change data capture:
PowerExchange Log Catalog. This catalog contains information about all of the IDMS logs from which change
data is captured.
SR2/SR3 journal record identifier. ECCR. This routine captures changes from the IDMS logs and makes the data available to the PowerExchange
Logger. When you start the ECCR, PowerExchange begins capturing changes as the logs are included in the PowerExchange Log Catalog. PowerExchange sends the change data to the PowerExchange Logger. After the data has been sent, PowerExchange Condense, if used, can pull the changes from the PowerExchange Logger, or the data can be accessed directly from the PowerExchange Logger if you use the PowerExchange real-time option.
184
Warning: Multiple schemas can be registered within a single LOGSID. However, schemas, which include objects of the same name, cannot be differentiated. If you copy schemas under the same names, such as in system test and QA environments, configure the copies for their own environments. A separate PowerExchange Listener, PowerExchange Logger, and ECCR is required for each like-named schema.
RELATED TOPICS:
CDC Components Configuration and Management on page 11 PowerExchange Agent on page 20 PowerExchange Condense on page 77 PowerExchange IDMS Log-Based CDC Components on page 183 Configuring the IDMS Log-Based ECCR on page 186 Creating the Log Catalog on page 188 Providing SR2 and SR3 Information to the ECCR on page 190
system.
The PowerExchange Logger and PowerExchange Agent must all run on the same MVS system as the IDMS
log-based ECCR.
Operational issues in the PowerExchange Logger can cause the IDMS log-based ECCR to enter a wait state,
which would prevent further capture and recording of change data until the issues are resolved. After you resolve the operational issues in the PowerExchange Logger, the IDMS log-based ECCR continues the capture and recording of change data without any loss of data. You must carefully monitor the PowerExchange Logger to ensure that change data capture proceeds without interruption.
RELATED TOPICS:
Monitoring the PowerExchange Logger for MVS on page 51
185
been captured by PowerExchange. Add this file to the PowerExchange Log Catalog by running the following jobs:
Run DTLULCAT to generate input statements for DTLULOGC. Run DTLULOGC to update the PowerExchange Log Catalog.
When Central Versions are varied offline to run in Local Mode, ensure Local Mode logs are added before any new Central Version logs. If a database, previously varied offline, is subsequently varied back online and the Local Mode log is not added immediately, if a later log is added to the catalog and a subsequent attempt made to add the Local Mode log, this will fail. The rules for checking such log additions is:
A local mode journal must not be added to the catalog if the last available timestamp within the journal is
RELATED TOPICS:
CDC Components Configuration and Management on page 11
186
ECCRNAME=ECCRIDL1 DB_TYPE=IDL Parameter LOGSID Description Name of the LOGSID specified in the DBMOVER configuration file. Number of seconds for the Collector to wait before doing another read after the Collector received an end-of-log condition. On receiving another end-of-log condition on the first read following the previous end-of-log, the Collector will wait NO_DATA_WAIT2 before retrying another read. Number of seconds for the Collector to wait before doing another read after the Collector received an end-of-log condition after waiting for NO_DATA_WAIT. The Collector waits for the number of seconds specified in NO_DATA_WAIT_2 and retries another read over and over. The Log Catalog is read to check whether a new LOG data set has been registered. ECCRNAME Required. The ECCR name for the IDMS logbased ECCR. The ECCR name value must be unique within a PowerExchange Logger group. Warning: If you change the ECCRNAME value, the ECCR cannot warm start from the last stopped position. The IDMS log-based ECCR uses the value specified for the following purposes: - The ECCR name that connects to the PowerExchange Logger to write change data - The member name that joins the XCF group of the PowerExchange Logger - As part of the ECCR-UOW field in the control information for each change record written to PowerExchange Logger log files Tip: Informatica recommends that you use the same value for the ECCRNAME parameter and the IDMS log-based ECCR started task or job name. This practice allows you to easily identify the IDMS logbased ECCR when reviewing messages and data from the PowerExchange Logger. DB_TYPE Specify IDL for MVS IDMS log-based. IDL 1 through 8 alphanumeric characters. Default is PWXIDLEC. - 0. Shut down the change capture routine as soon as there are no more logs to process. - n. Where n is the time in minutes to wait for more logs or changes before shutting down. Valid Values
NO_DATA_WAIT
NO_DATA_WAIT2
0 or greater (decimal).
2.
187
The following table describes the JCL Statements for the IDMS ECCR Startup Procedure:
JCL Statement EXEC STEPLIB DD EDMPARMS DD Description Specify the DTLCCIDL program. Specify the PowerExchange LOADLIB and LOAD. Specify the name of the user library (YOUR.USERLIB) that contains the default options module (EDMSDIR) associated with the PowerExchange Logger you are using. If you do not include an EDMPARMS DD statement or if the library you specify does not contain the options modules, PowerExchange Change Capture uses the STEPLIB concatenation to obtain the configuration options. DTLCACFG DD EDMMSG DD Points to the IDMS ECCR configuration file ECCRIDLP. Specify the output data set for IDMS log-based ECCR messages.
3.
Run the procedure, or start it as a started task by using the MVS START command.
4. Ensure that all the IDMS logs that require processing have been added to the PowerExchange Log Catalog. Sample ECCRIDL JCL to activate the IDMS log-based ECCR (the place holders HLQ and LOGGER will be substituted with the appropriate information as added in the MVS Install Assistant when installing):
//******************************************************************** //* * //* RUN DETAIL IDMS LOG BASED ECCR * //* * //******************************************************************** //ECCRAD1 EXEC PGM=DTLCCIDL,REGION=50M //STEPLIB DD DISP=SHR,DSN=&HLQ..LOADLIB // DD DISP=SHR,DSN=&HLQ..LOAD //EDMPARMS DD DISP=SHR,DSN=&HLQ..&LOGGER..USERLIB //DTLCFG DD DISP=SHR,DSN=&RUNLIB(DBMOVER) //DTLKEY DD DISP=SHR,DSN=&RUNLIB(LICENSE) //DTLCACFG DD DISP=SHR,DSN=&RUNLIB(ECCRIDLP) //DTLAMCPR DD DISP=SHR,DSN=&HLQ..CCT //DTLMSG DD DISP=SHR,DSN=&HLQ..DTLMSG //DTLLOG DD SYSOUT=* //DDPRINT DD SYSOUT=* //DDDRUCK DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //EDMMSG DD SYSOUT=* //CEEDUMP DD SYSOUT=*
The process described previously details the requirements for starting an ECCR in a simple environment.
188
RUNLIB member DTLULCAU is supplied to run the two utilities one after the other. It is expected that this be scheduled to run as soon as the latest IDMS log had been spooled off. There may, however, be times when DTLULOGC is run in isolation, involving manual coding of the input file. Correct scheduling of the addition logs to the Log Catalog is vital to obtaining timely data from the log-based IDMS capture environment.
RELATED TOPICS:
Configuring IDMS Log Catalog Procedures on page 185
Running DTLULCAT
Use the DTLULCAT utility to take a supplied journal name and use it to prepare the input required for the catalog utility DTLULOGC. The DTLULCAT utility is delivered as an executable on Windows and as the DTLULCAT member in the RUNLIB on MVS. Sample utility statements:
IDMS_VERSION=15 FILE_TYPE=C MEDIA_TYPE=D MEDIA_CONTENT=BI SERVICE=IDMSE150 INSTANCE_IDENTIFIER=XYLOGSID. Statement IDMS_VERSION FILE_TYPE Description Versions 15 and 16 are supported. One of the following file types: - C. Central version. - L. Local mode. One of the following media types: - T. Tape. - D. Disk. One of the following options for the types of images of change records delivered: - BI. Before images. - AI. After images. - BA. Both before and after images. IDMS CV name or Local Job name. Chosen LOGSID identifier.
MEDIA_TYPE
MEDIA_CONTENT
SERVICE INSTANCE_IDENTIFIER
The DTLULCAT utility writes information to DDCARD SYSPUNCH. This file is the input to the DTLULOGC utility.
Running DTLULOGC
The DTLULOGC utility populates the log catalog with information about the logs to process. The following example shows sample DTLULCAU JCL, which runs DTLULCAT followed by DTLULOGC. The DTLULCAU JCL is the recommended method of populating the Log Catalog. The example adds the log DTLUSR.IDMS.E15SP0.OFF.LOADED.JOURNAL1 for an IDMS Version 15 environment with the CV Name IDMSE150. The log resides on disk storage and will be accessed using a LOGSID value of XYLOGSID. The SYSIN data is shown as instream data for clarity. However, the sample JCL points to
189
member DTLIDLC when running against a CV (DTLIDLL for Local Job mode) in which these statements would normally be placed.
//*******************************************************************/ //* */ //* SAMPLE JCL TO:*/ //* */ //* CAPTURE IDMS JOURNAL FILE INFORMATION AND INPUT STREAM */ //* INTO FOR DTLULOGC LOG FILE CATALOG ROUTINE. */ //* */ //* NORMALLY THE SYSIN INPUT STREAM WOULD BE A PDS MEMBER. */ //* */ //* THIS NEEDS TO BE INTEGRATED INTO THE END USERS JOURNAL */ //* ARCHIVING PROCEDURE, WHICH MAY BE DIFFERENT FROM SITE TO SITE. */ //* */ //* A MECHANISM WILL NEED TO BE ESTABLISHED TO REPLACE THE DATASET */ //* SPECIFIED VIA THE LOGFILE DD STATEMENT WITH THE LOGFILE */ //* WHICH IS CURRENTLY THE OBJECT OF THE USERS ARCHIVING PROCEDURE */ //* AND OUR CATALOG OPERATION */ //* */ /********************************************************************/ //INCS1 INCLUDE MEMBER=GENBULK //DTLULCAT EXEC PGM=DTLULCAT //STEPLIB DD DISP=SHR,DSN=DTLUSR.V800B14.LOADLIB //DTLCFG DD DISP=SHR,DSN=DTLUSR.V800B14.RUNLIB(DBMOVER) //DTLKEY DD DISP=SHR,DSN=DTLUSR.V800B14.RUNLIB(LICENSE) //DTLMSG DD DISP=SHR,DSN=&HLQ..DTLMSG,FREE=CLOSE //DTLLOG DD SYSOUT=* //LOGFILE DD DISP=SHR,DSN=DTLUSR.IDMS.E15SP0.OFF.LOADED.JOURNAL1 //SYSPRINT DD SYSOUT=* //SYSPUNCH DD DSN=&&LOGDATA, // DISP=(,PASS), // SPACE=(CYL,(2,1),RLSE), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120) //SYSIN DD * IDMS_VERSION=15 FILE_TYPE=C MEDIA_TYPE=D MEDIA_CONTENT=BI SERVICE=IDMSE150 INSTANCE_IDENTIFIER=XYLOGSID /* //DTLULOGC EXEC PGM=DTLULOGC //STEPLIB DD DISP=SHR,DSN=DTLUSR.V800B14.LOADLIB //DTLCFG DD DISP=SHR,DSN=DTLUSR.V800B14.RUNLIB(DBMOVER) //DTLKEY DD DISP=SHR,DSN=DTLUSR.V800B14.RUNLIB(LICENSE) //DTLSGN DD DISP=SHR,DSN=DTLUSR.V800B14.RUNLIB(SIGNON) //DTLMSG DD DISP=SHR,DSN=&HLQ..DTLMSG //LOGSCAT DD DISP=SHR,DSN=DTLUSR.V800B14.V1.LOGSCAT //DTLLOG DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSPRINT DD SYSOUT=* //REPORT DD SYSOUT=* //EXPORT DD SYSOUT=* //SYSIN DD DISP=SHR,DSN=&&LOGDATA
Running DTLUCSR2
You must run the DTLUCSR2 utility before running IDMS log-based capture the first time and after subsequent database reorganizations.
190
To run DTLUCSR2: 1. Edit RUNLIB member DTLICSRI. For each database for which records will be registered for capture, edit the sample statements with the relevant values as described in the following example and table:
Read, DD_NAME=ddname PAGE_GROUP=n RADIX=x Parameter DD_NAME Description Specify the DDNAME that must then be added to the DTLUCSR2 JCL. This value does not have to match a DD name from an IDMS region but must match exactly the DD name added to your DTLUCSR2 JCL. Format: DD_NAME=STUDENT PAGE_GROUP If the database file is normally accessed with a page group other than 0, the PAGE_GROUP number must be specified. RADIX must be specified if it is not the default value of 8. Valid range is 2 to 12.
RADIX
Note: DTLUCSR2 will write control information to DD SR2TOTAL, and SR2/SR3 link information to SR2OUT. These files are created with default information at installation time, but the file sizes may need to be reviewed and amended depending upon the number of SR3 records. 2. Add relevant DD cards to your DTLUCSR2 JCL, which match the DD names supplied in parameter file DTLICSRI. The DD cards added point to the relevant IDMS data set names. 3. Run RUNLIB member DTLUCSR2.
191
The following table shows the parameters that you can code in an 80-byte file that is specified as input in the SYSIN DD card, as shown in the previous sample JCL:
Keyword ADD_INSTANCE Parameter Description
Add a LOGSID instance to the catalog. Each LOGSID used will require an instance to be added to the log catalog. INSTANCE_IDENTIFIER VERSION LOGSID value. Version number of the entry.
192
Keyword ADD_ENTRY
Description
Block size of the log. Required if the logs are to be shipped to another platform. Sequential number, which should be incremented by 1 for each new log added to the log catalog. - C. Central or Shared Service Log or Journal. - L. Local Mode or Unshared Service Log or Journal. Sequence number of the first record in the block.
ENTRY_NUMBER
FILE_TYPE
Version number of IDMS. Specified as an integer. LOGSID value Record ID of the last record in the block or zeros if a nondata record. Offset of last valid offset in the block. IDL for MVS IDMS log data. Name of IDMS log file. - AI. Only contains After images. - BI. Only contains Before images. - BA. Contains both Before and After images. - D. Disk. - T. Tape. Number of blocks in the log. CV name or Local Mode job name. - A. Active. - S. Skip. - T. Terminate. - 1. File entry. - 2. Reserved for future use. Version number of the entry. Updates a log entry. The entry is identified by the value of INSTANCE_IDENTIFIER and ENTRY_NUMBER. Deletes the last log for the specified INSTANCE_IDENTIFIER.
MEDIA_TYPE
ENTRY_TYPE
VERSION UPDATE_ENTRY Valid parameters are those listed for ADD_ENTRY INSTANCE_IDENTIFIER
DELETE_ENTRY
193
Keyword REPORT_INSTANCE
Parameter INSTANCE_IDENTIFIER
Description Lists catalog entries for the specified INSTANCE_IDENTIFIER. Used to export all information for a specified INSTANCE_IDENTIFIER to a file.
EXPORT_INSTANCE
INSTANCE_IDENTIFIER
Note: Keyword commands are separated by a semicolon (;), parameters by a comma (,). The following sample input adds two instances (LOGSIDs), adds entries (log files), deletes an entry, reports instance LOGSIDA, exports instance LOGSIDA to a file (dtlulgce.txt), and finally deletes instance LOGSIDA:
ADD_INSTANCE INSTANCE_IDENTIFIER=LOGSIDA, VERSION=224; ADD_ENTRY INSTANCE_IDENTIFIER=LOGSIDA, ENTRY_NUMBER=777, VERSION=0, ENTRY_TYPE=1, STATUS=A, LOG_DATA_TYPE=IDL, IDMS_VERSION=15, FILE_TYPE=C, MEDIA_TYPE=D, MEDIA_CONTENT=BI, SERVICE=IDMSE150, LOG_FILE_NAME=XXXXXXXXXXXXXXXXXXXXXXXXXXXX, BLOCK_SIZE=29000, NUMBER_OF_BLOCKS=445, LAST_RECORD_OFFSET=1119, LAST_RECORD_IDENTIFIER=3, FIRST_RECORD_SEQUENCE_NUMBER=4, FIRST_RECORD_TIME_STAMP="05/03/03 10:55:01"; ADD_ENTRY INSTANCE_IDENTIFIER=LOGSIDA, ENTRY_NUMBER=778, VERSION=0, ENTRY_TYPE=1, STATUS=A, LOG_DATA_TYPE=IDL, IDMS_VERSION=15, FILE_TYPE=C, MEDIA_TYPE=D, MEDIA_CONTENT=BI, SERVICE=IDMSE150, LOG_FILE_NAME=MMMMMMMMMMMMMMMMMMMMMMMMMM, BLOCK_SIZE=29000, NUMBER_OF_BLOCKS=445, LAST_RECORD_OFFSET=1119, LAST_RECORD_IDENTIFIER=3, FIRST_RECORD_SEQUENCE_NUMBER=4, FIRST_RECORD_TIME_STAMP="05/03/03 12:55:01"; ADD_ENTRY INSTANCE_IDENTIFIER=LOGSIDA, ENTRY_NUMBER=779, VERSION=0, ENTRY_TYPE=1, STATUS=A, LOG_DATA_TYPE=IDL, IDMS_VERSION=15, FILE_TYPE=C, MEDIA_TYPE=D, MEDIA_CONTENT=BI, SERVICE=IDMSE150, LOG_FILE_NAME=ZZZZZZZZZZZZZZZZZZCCCCCCCCCCCC, BLOCK_SIZE=29000, NUMBER_OF_BLOCKS=333, LAST_RECORD_OFFSET=1119, LAST_RECORD_IDENTIFIER=3, FIRST_RECORD_SEQUENCE_NUMBER=4, FIRST_RECORD_TIME_STAMP="05/03/03 14:55:01"; ADD_INSTANCE INSTANCE_IDENTIFIER=ABCDE, VERSION=0; ADD_ENTRY INSTANCE_IDENTIFIER=ABCDE, ENTRY_NUMBER=1, VERSION=0, ENTRY_TYPE=1, STATUS=A, LOG_DATA_TYPE=IDL, IDMS_VERSION=15, FILE_TYPE=C, MEDIA_TYPE=D, MEDIA_CONTENT=BI, SERVICE=IDMSE15P, LOG_FILE_NAME=BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB, BLOCK_SIZE=29000, NUMBER_OF_BLOCKS=444, LAST_RECORD_OFFSET=1112, LAST_RECORD_IDENTIFIER=2, FIRST_RECORD_SEQUENCE_NUMBER=3, FIRST_RECORD_TIME_STAMP="05/04/03 08:55:01"; ADD_ENTRY INSTANCE_IDENTIFIER=ABCDE, ENTRY_NUMBER=2, VERSION=0, ENTRY_TYPE=1, STATUS=A, LOG_DATA_TYPE=IDL, IDMS_VERSION=15, FILE_TYPE=C, MEDIA_TYPE=D, MEDIA_CONTENT=BI, SERVICE=IDMSE15P, LOG_FILE_NAME=CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC, BLOCK_SIZE=29000, NUMBER_OF_BLOCKS=445, LAST_RECORD_OFFSET=1119, LAST_RECORD_IDENTIFIER=3, FIRST_RECORD_SEQUENCE_NUMBER=4, FIRST_RECORD_TIME_STAMP="05/04/03 10:55:01"; UPDATE_ENTRY INSTANCE_IDENTIFIER=LOGSIDA, ENTRY_NUMBER=779, VERSION=0, ENTRY_TYPE=1, STATUS=A, LOG_DATA_TYPE=IDL, IDMS_VERSION=15, FILE_TYPE=C, MEDIA_TYPE=D, MEDIA_CONTENT=BI, SERVICE=DTLXXXXX, LOG_FILE_NAME=AAAAAAAAAAAAAAKKKKKKKKKKKKKKK, BLOCK_SIZE=29000, NUMBER_OF_BLOCKS=111, LAST_RECORD_OFFSET=1119, LAST_RECORD_IDENTIFIER=3, FIRST_RECORD_SEQUENCE_NUMBER=4, FIRST_RECORD_TIME_STAMP="05/04/03 12:55:01"; DELETE_ENTRY INSTANCE_IDENTIFIER=LOGSIDA; REPORT_INSTANCE INSTANCE_IDENTIFIER=LOGSIDA; EXPORT_INSTANCE INSTANCE_IDENTIFIER=LOGSIDA; DELETE_INSTANCE INSTANCE_IDENTIFIER=LOGSIDA;
propagation.
Procedures to restart change propagations for every target.
194
If the PowerExchange Logger stops or abends while attached to the IDMS log-based ECCR, the ECCR also abends when it receives the first change record following the PowerExchange Logger failure. When you restart the IDMS log-based ECCR or the Logger after a failure, the Logger determines the point at which to begin capturing changes again. To recover the IDMS log-based ECCR: 1. 2. Determine the cause of the ECCR failure and correct it. If the ECCR failed because the PowerExchange Logger stopped, restart the Logger.
3. Restart the IDMS log-based ECCR from the point at which it abended. The ECCR undergoes a warm start if there is warm start data available from the Agent or Logger. It automatically restarts at the correct point. If there is no warm start data available, the ECCR issues a prompt for a cold start. Be sure that you use the same ECCRNAME in your ECCRIDLP parameter file that you used for the ECCR that abended.
195
CHAPTER 13
IMS synchronous ECCR runs as separate subtasks in IMS regions such as the control region, DBCTL, DL/1, and DBB batch jobs.
Log-based IMS CDC reads the changes from the IMS archive logs and logs them to the PowerExchange
Logger. The IMS log-based ECCR runs in a separate address space and can be either a started task or a batch job. The following table describes the functional differences between the IMS synchronous ECCR and the IMS log-based ECCR implementations of CDC:
Description IMS Synchronous ECCR Yes No IMS Log-Based ECCR No Yes
PowerExchange IMS interface modules install into IMS RESLIB. DBD for every database for which capture is required needs EXIT statement added. Uses IMS external subsystem to communicate with IMS ECCR.
Yes
No
196
Description
IMS region JCL needs PowerExchange libraries added. All databases for which capture is required must be registered in DBRC. Real-time capture of changed data. Reads IMS archive logs to capture IMS changed data. Captures changed data within an IMSplex. Captures multiple segments with a single capture registration. Captures non-keyed and non-uniquely keyed segments. Captures changes from compressed databases. Adds additional data to the IMS log data sets.
The IMS log-based ECCR is a separate address space and runs either continuously or in batch mode. During initialization, the ECCR reads the registration data set to determine which IMS databases are registered for capture. You must make the following changes to the IMS environment for all databases for which capture is required:
Change the DBD to include the EXIT statement. Register the databases in DBRC, if not already registered.
IMS log-based change data capture is built around an architecture, which allows functions to capture changes, process them according to user-specified rules, and provide the input for business processes. The core architecture is a multi-tasking environment, which has the capability to perform many functions in parallel. The IMS log-based ECCR task collects changes for registered data sources. Once the changes have been collected, they will be transformed into a PowerExchange internal format, which is essentially the same regardless of the source of the changes. Further processing, condensing and extraction is the same regardless of the source.
197
The IMS log-based ECCR captures changes to IMS databases from IMS logs and logs the changes in the PowerExchange Logger. On start-up, the IMS log-based ECCR goes through several steps:
Initialization Processing blocks of data Waiting for data
Initialization
The initialization process performs the following tasks:
Checks and loads the registrations. Determines which RECON data set in the list provided in the input parameters is the current data set. Uses the RECON to determine which log data sets to process and in which order. Opens a connection to the PowerExchange Logger and retrieves restart information. Sets up searchable structures and allocates work buffers.
system.
The PowerExchange Logger and PowerExchange Agent must run on the same MVS system as the IMS log-
based ECCR.
Operational issues in the PowerExchange Logger can cause the IMS log-based ECCR to enter a wait state,
which would prevent further capture and recording of change data until the issues are resolved. After you resolve the operational issues in the PowerExchange Logger, the IMS log-based ECCR continues the capture and recording of change data without any loss of data. You must carefully monitor the PowerExchange Logger to ensure that change data capture proceeds without interruption.
198
RELATED TOPICS:
Monitoring the PowerExchange Logger for MVS on page 51
The EXIT statement causes IMS to create log record type x'99' for data logged for the segment. The IMS logbased ECCR uses x'99' record to obtain the changed data. Using the EXIT statement will increase the number of log records for IMS online and batch regions. To reduce the amount of x'99' records, modify the EXIT= statement and change PATH to NOPATH. PATH causes the logging of the entire hierarchical path for the segment and NOPATH causes the logging of the segment only. Only use NOPATH if you are registering a table represented by a single segment for capture. NOPATH incurs less logging overhead as IMS does not log the entire hierarchical path. For more information on specifying the EXIT parameter, see IBM IMS Utilities Reference: System.
199
CAPT_STATS
Y or N. Default is N.
COLDSTART
- Y. Directs the ECCR to perform a cold start, which means it starts processing the next IMS log file created. - N. Directs the ECCR to perform a warm start, which means it will continue processing where it left off. Default is N.
DB_TYPE
IMS
DBID
200
Parameter ECCRNAME
Description Required. The ECCR name for the IMS log-based ECCR. The ECCR name value must be unique within a PowerExchange Logger group. Warning: If you change the ECCRNAME value, the ECCR cannot warm start from the last stopped position. The IMS log-based ECCR uses the value specified for the following purposes: - The ECCR name that connects to the PowerExchange Logger to write change data - The member name that joins the XCF group of the PowerExchange Logger - As part of the ECCR-UOW field in the control information for each change record written to PowerExchange Logger log files Tip: Informatica recommends that you use the same value for the ECCRNAME parameter and the IMS log-based ECCR started task or job name. This practice allows you to easily identify the IMS logbased ECCR when reviewing messages and data from the PowerExchange Logger.
201
Parameter ERROR_LOG
Description This parameter controls the behavior of the IMS log-based ECCR when it encounters an IMS log which is marked in the RECON data set as one of the following: - In error - Otherwise unavailable Typically, an IMS log gets marked in error when some sort of media error has occurred when writing to the IMS log, for example, x37 Abends. Warning: After a log has been ignored or skipped, you cannot go back and try to process it. You must rematerialize the data.
Valid Values - ABEND. This value is the default. When the IMS ECCR encounters a log marked in error, it ends with a WTO to the MVS console and messages that indicate that the log that was in error. The messages include the start and stop times of the log in question. The ECCR ends in such a way that it can be restarted after the log in question is resolved by the user. - SKIP. The IMS ECCR skips the log in error. Use care when using this value. Changes can be missed, which can invalidate the accuracy of the capture target (the Data Warehouse). When this option is used, messages such as the start and stop time and name are issued to indicate which logs have been skipped. - WAIT. When encountering an IMS log in error, the IMS ECCR issues informational messages to indicate the status of the IMS LOG, and then it sleeps. The IMS ECCR wakes up periodically (according to the NO_DATA_WAIT2 value) to check the log status. Once resolved, it continues processing. The user has the option to change the status of the log by performing the relevant IMS steps or to remove the log from the RECON data set. The user must ensure that no changes are lost. - WTOR. Stops the IMS ECCR from continuing and issues a WTOR to ask for the option to use. - No response. The ISM ECCR waits forever. Again messages are required to detail the reason, log in question. Syntax:
IMSID=(ims_ssid, DBD_lib, RECON=(recon,recon,...))
IMSID
Defines the IMS subsystem ID (SSID), the DBDLIB data set, and the RECON data sets. Enables PowerExchange to register IMS data sources for CDC.
Where: - ims_ssid is the IMS SSID. Specify a 1- to 8-character alphanumeric string. - DBD_lib is the name of the IMS DBDLIB data set that contains the DBD load modules. - recon is an IMS RECON data set. Use commas to separate RECON data sets.
202
Parameter MSGLVL
Description Specifies whether or not to provide detailed messages about the processing of IMS logs from the RECON data sets as well as statistical information about change data capture.
Valid Values - 0. Detailed messages are not reported. - 1. Detailed messages are reported. This value is the recommended setting. Default is 0. A number from 1 through 99999999. Default is 60.
NO_DATA_WAIT
Specifies the number of seconds for the ECCR to wait before doing another read after the ECCR received an end-of-log condition. On receiving another end-of-log condition on the first read following the previous end-of-log the ECCR will wait NO_DATA_WAIT_2 before retrying another read. Specifies the number of seconds for the ECCR to wait before doing another read after the ECCR received an end-of-log condition after waiting for COLL_NO_DATA_WAIT. The ECCR will wait NO_DATA_WAIT_2 and retry another read over and over again.The RECON is read to check whether a new LOG data set has been registered. This value relates to the record ID of the start marker written to the IMS log by the utility DTLCUIML. The record prevents data capture from a point prior to the required start point. Enables you to direct the IMS log-based ECCR to start processing change records (ISRT/REPL/DLET) from IMS Logs after the specified start time. STARTTIME is only used is during a cold start of the ECCR. Controls how often, in seconds, a special restart UOW is written to the PowerExchange Logger when nothing of interest has occurred since the last special restart UOW was written. This value affects how far back the PowerExchange Logger searches to find the restart point when the ECCR is restarted.
NO_DATA_WAIT_2
RECID
A0 to FF Default is A0.
STARTTIME
Example:
STARTTIME=05/01/01 09:00:00
WRITE_RESTART_SECS
Note: While the IMS log-based ECCR and PowerExchange Condense parameters have similar names, two different members are required. PowerExchange Condense parameters are found in the CAPTIMSS member.
RELATED TOPICS:
Configuring PowerExchange Condense Parameters on page 84
203
The MVS Installation Assistant configures the JCL and removes the comment for the EXEC card that matches the IMS version specified. Verify that the correct EXEC card is chosen.
DTLAMCPR
DTLCACFG DTLCFG
204
DD Name DTLKEY
Description The PowerExchange License key file, containing the license key for PowerExchange and the various options used. The PowerExchange logging files. These SYSOUT files contain various messages reporting the status and events for the IMS log-based ECCR. This data set contains the PowerExchange messages.
RELATED TOPICS:
Configuring the IMS Log-Based ECCR JCL on page 204
205
The jobname variable is the name of the IMS log-based ECCR batch job or started task. The command variable is one of the following ECCR commands:
Command Name DISPLAY TRACE CLOSE TRACEOFF TRACEON trace,severity Description Displays the tracing status. Requests a shutdown of the PowerExchange IMS log-based ECCR. Turns off all traces. Turns on tracing. For example, the following command turns on "trace1" when severity is less than or equal to 3:
TRACEON trace1,3
RELATED TOPICS:
Stopping the IMS Log-Based ECCR on page 206 Deactivating or Deleting Registrations on page 206
206
If you are preparing capture registrations for a condense, recycle the Condense task after you refresh the IMS ECCR.
207
CHAPTER 14
IMS synchronous ECCR runs as separate subtasks in IMS regions such as the control region, DBCTL, DL/1, and DBB batch jobs.
Log-based IMS CDC reads the changes from the IMS archive logs and logs them to the PowerExchange
Logger. The IMS log-based ECCR runs in a separate address space and can be either a started task or a batch job. The following table describes the functional differences between the IMS synchronous ECCR and the IMS log-based ECCR implementations of CDC:
Description IMS Synchronous ECCR Yes No IMS Log-Based ECCR No Yes
PowerExchange IMS interface modules install into IMS RESLIB. DBD for every database for which capture is required needs EXIT statement added. Uses IMS external subsystem to communicate with IMS ECCR.
Yes
No
208
Description
IMS region JCL needs PowerExchange libraries added. All databases for which capture is required must be registered in DBRC. Real-time capture of changed data. Reads IMS archive logs to capture IMS changed data. Captures changed data within an IMSplex. Captures multiple segments with a single capture registration. Captures non-keyed and non-uniquely keyed segments. Captures changes from compressed databases. Adds additional data to the IMS log data sets.
Once the IMS synchronous ECCR is active, you can activate new registrations by closing the database using the IMS DBR command and opening the database using the IMS START command. You can communicate with the ECCR using IMS external subsystem commands.
209
IMS Environments
The IMS synchronous ECCR operates in the following IMS environments:
DBCTL DB/DC Batch IMS
the IMS synchronous ECCR runs in z/Architecture mode. PowerExchange provides the CRG software in the CRG.LOAD library, which contains components from BMC Software products CHANGE RECORDING FACILITY and DATABASE INTEGRITY PLUS. The PowerExchange CRG software is based on version 4.6.00 of these products from BMC Software and requires that z/OS run in z/ Architecture mode. If you have these BMC Software products, you can use them instead of the PowerExchange CRG software.
The IMS synchronous ECCR does not capture changes made to IMS databases in the following situations: - When you run IMS migration, initialization, reorganization, or recovery utilities - If you specify PROCOPT=L in the program specification block (PSB) - If you have user data in secondary indexes - If an update request does not change any data in the segment that it updates The IMS synchronous ECCR does not support change data capture for the following IMS database types: - Hierarchical Sequential Access Method (HSAM) databases - Simple Hierarchical Sequential Access Method (SHSAM) databases - Generalized Sequential Access Method (GSAM) databases - Main Storage databases (MSDBs) - IMS Fast Path sequential dependent (SDEP) segments - Any IMS databases after an XRF failover - Block-level data-sharing IMS databases that are not in a sysplex
RELATED TOPICS:
Compatibility with BMC Software Products on page 212
210
propagate changes.
In an online environment, the IMS synchronous ECCR runs as an IMS external subsystem. In this environment,
IMS does not support the SETS function. IMS does support the SETU and ROLS functions if your application accepts the SC and RC status codes, respectively. If your application accepts the SC and RC status codes, the IMS synchronous ECCR captures changed data from SETU and ROLS functions.
You can capture changes to both keyed and non-keyed segments.
For non-keyed or non-uniquely keyed segments, the IMS synchronous ECCR generates an 8-byte field containing the relative byte address (RBA) of the segment. This RBA value is passed to the PowerExchange Logger where it is logged along with the changed data. To use this RBA value to create a unique key field for the segment, you must create a new field in the data map for the segment. You need to use the GetIMSRBAByLevel expression to populate this field with the captured RBA value. Use this altered data map to create the capture extraction map. Reorganizing the IMS source database changes the RBA value of segments. To ensure that the generated RBA value in the target is associated with the correct source data record, rematerialize the target table from the source table if it is reorganized.
MVS image.
The PowerExchange Logger and PowerExchange Agent must run on the same MVS image as the IMS
synchronous ECCR.
In configurations where updates to an IMS database occur on multiple MVS images, you must configure
PowerExchange on each MVS image. PowerExchange requires an IMS synchronous ECCR, PowerExchange Logger, and PowerExchange Agent on each MVS image. The PowerExchange Logger on all MVS images must be configured to use Post-Log Merge.
Operational issues in the PowerExchange Logger can cause IMS transactions to wait, which would prevent
further capture and recording of change data until the issues are resolved. After you resolve the operational issues in the PowerExchange Logger, the waiting transactions continue and PowerExchange captures and records the change data without any loss of data. You must carefully monitor the PowerExchange Logger to ensure that change data capture proceeds without interruption.
RELATED TOPICS:
Monitoring the PowerExchange Logger for MVS on page 51 Using Post-Log Merge on page 69
211
If you are unsure of the installed version of the CHANGE RECORDING FACILITY and DATABASE INTEGRITY PLUS products, browse the BMC load library and select the CRGLEVEL and DBILEVEL load modules. The version is displayed on the last line, after the date. If you need assistance, call BMC Software Technical Support. If these BMC Software products are installed and meet the minimum release requirements, use the BMC Software load libraries instead of the PowerExchange hlq.CRG.LOAD library. Then, configure the IMS region JCL. If the installed version of these products is earlier than the recommended minimum versions, you must upgrade before you activate the IMS synchronous ECCR. After the upgrade, continue configuring the IMS synchronous ECCR.
RELATED TOPICS:
Configuring IMS Region JCL on page 214
212
Informatica strongly recommends using SMP/E to install the DBRC modifications. Using SMP/E instead of manual link-edits ensures that the appropriate modules are included when you apply IMS maintenance and prevents any interruption in change data capture operation. PowerExchange provides a sample job to use SMP/E called CRGUMOD in hlq.SAMPLIB. This sample job contains two SMP/E USERMODs:
USERMOD MODDBI1 includes DBICRXvr from hlq.CRG.LOAD and DSPCRTR0 from the IMS RESLIB to
Warning: A full IMS SYSGEN will regress the PowerExchange modifications to DBRC regardless of whether SMP/ E is used or not. Prior to doing the SYSGEN, remove these USERMODs by using member CRGUREM in hlq.SAMPLIB. CRGUREM is sample JCL that contains SMP/E RESTORE and REJECT commands. After the SYSGEN, reapply the USERMODs to DBRC before restarting the IMS subsystem. PowerExchange provides member CRGCLINK in hlq.SAMPLIB, which can be used instead of the SMP/E USERMODs. This sample JCL manually link-edits the DBICRXvr and the DBICRT00 modules to create the necessary combination load modules. The job places the resulting load modules in hlq.CRG.LOAD. Note: The CRGCLINK JCL exists to allow temporary installation without modifying the IMS RESLIB. This JCL is useful for tests such as a proof of concept. Use the SMP/E method for permanent installation of the modifications.
RELATED TOPICS:
Compatibility with BMC Software Products on page 212 Configuring IMS Region JCL on page 214
213
RELATED TOPICS:
Verifying Installed Version of BMC Products on page 214 Adding the CRG.LOAD Library to the IMS Region JCL on page 214 Adding the CRG.LOAD Library to the DBRC JCL on page 215 Adding Remaining PowerExchange Libraries on page 215 Configuring the IMS External Subsystem on page 215 Providing Access to the External Subsystem Modules on page 217
RELATED TOPICS:
Compatibility with BMC Software Products on page 212 Adding Remaining PowerExchange Libraries on page 215
214
Alternatively, you can customize and execute member DBICOPY in the hlq.SAMPLIB library. DBICOPY copies the required DATABASE INTEGRITY PLUS load modules from the hlq.CRG.LOAD to the IMS RESLIB.
RELATED TOPICS:
Configuring IMS DBRC on page 213
The EDMPARMS DD statement references the PowerExchange USERLIB data set containing the EDMSDIR module. For example:
//EDMPARMS DD DISP=SHR,DSN=hlq.logger_id.USERLIB
Add hlq.LOAD to the STEPLIB concatenation. This library must precede the IMS RESLIB. For example:
//STEPLIB // // DD DD DD DISP=SHR,DSN=hlq.CRG.LOAD DISP=SHR,DSN=IMS.SDFSRESL DISP=SHR,DSN=hlq.LOAD
Alternatively, you can copy the entire hlq.LOAD library into an existing library in the STEPLIB concatenation.
215
region JCL. Alternatively, specify the SSM parameter in the DFSPBxxx member, where xxx is the RGSUF value in the IMS region JCL.
Add or modify the member in the IMS procedure library that defines the external subsystem. The member
name must be the four-character IMS system ID followed by the value of the SSM parameter.
- If you also specify the SSM parameter in MPP or BMP regions, change the members that contain the external
subsystem definitions for both the control region and the dependent regions. If you use the SSM parameter in the IMS control region, all the MPP and BMP dependent regions have access to the subsystems defined in the member. If you plan to use SSM parameter in both the IMS control region and the dependent regions, you must change both SSM members because the dependent region only has access to the subsystems that are defined in both members.
- Do not include the external subsystem in any SSM member used by DL/I batch procedures and jobs. Within the member, you can use positional parameters to define the external subsystem. The following table
LIT
Yes
ESMT
Yes
RTT
No
216
Parameter REO
Required Yes
Description One character region error option code. The option specified determines the action IMS takes when an application program issues a request for external subsystem services before connection to the external subsystem is complete or if problems are encountered with the external subsystem. Valid values are: - R, the default - Q - A PowerExchange requires A, which means that IMS abnormally terminates the application program with an abend code of U3047 and discards the transaction input.
CRC
No
One character command recognition character that allows external subsystem commands from IMS terminals or automated operator interface (AOI) applications. Any EBCDIC value except / is permitted. The / character is reserved for IMS. Issue external subsystem commands by entering /SSR, followed by the command recognition character specified here, followed by the external subsystem command. Note: The external subsystem may require IMS user IDs and LTERM names to allow authorization for issuing external subsystem commands. For information on command authorization requirements, see the IBM IMS documentation. PowerExchange provides four IMS external subsystem commands.
The following example shows the fields that define the external subsystem for the IMS synchronous ECCR using the positional format:
PWXA,PWXA,EDMCESMT,,A,X
In this example, the PowerExchange AgentID is PWXA, the required REO value is A, and the CRC selected for the external subsystem commands is X. The following example specifies an equivalent statement for the external subsystem using the keyword format:
SST=DB2,SSN=PWXA,LIT=PWXA,ESMT=EDMCESMT,CRC=X
You do not need to add hlq.logger_name.USERLIB or hlq.CRG.LOAD to the DFSESL concatenation. All libraries in the DFSESL concatenation must be APF-authorized. The IMS synchronous ECCR concatenates the data sets in the DFSESL DD statement in the control region and the data sets in the ESLLIB parameter to the data sets specified in the DFSESL DD statement in the dependent region. If necessary, the IMS synchronous ECCR allocates the DFSESL DD statement in the dependent region.
217
Use one or more of the following methods, which are listed in the order of search, to construct the DFSESL concatenation for the dependent regions:
Include the DFSESL DD statement in the JCL of any IMS MPP and BMP dependent regions that update
The EDMSDIR module is created during the installation of PowerExchange. If you change the ESLLIB parameter in EDMSDIR, reassemble and reliant the module by editing and running the job in the XICDC600 member of hlq.RUNLIB. In order for the IMS synchronous ECCR to use the updated EDMSDIR, you must stop and restart the affected IMS online regions. The following example demonstrates a DFSESL concatenation constructed by the IMS synchronous ECCR. In this example, the following statement is specified in the IMS control region:
//DFSESL DD DSN=IMS.SDFSRESL,DISP=SHR
The EDMSDIR specifies ESLLIB=(hlq.LOAD). The dependent region contains no DFSESL DD statement. The IMS synchronous ECCR concatenates this information to produce the following DFSESL concatenation in the IMS dependent region:
//DFSESL // DD DSN=IMS.SDFSRESL,DISP=SHR DD DSN=hlq.LOAD,DISP=SHR
software to get control. If CCERR=ABEND is coded in EDMSDIR, access fails if the PowerExchange Agent is not active. Source for EDMSDIR is supplied in member XICDC600 in the hlq.RUNLIB library. Change and rerun this job if changing the CCERR parameter is necessary. To use CCERR=ABEND, add the EDMPARMS DD in any batch job that updates IMS files to be captured. If you have added the hlq.LOAD library to the LNKLST concatenation, you can stop an ECCR from capturing changes for a specific job by including the following DD statement:
//EDMNOCAP DD DUMMY
218
database by using the IMS DBR command and reopen is using the IMS START command to capture changes.
The IMS synchronous ECCR activates in IMS regions containing the PowerExchange modules in the STEPLIB
concatenation. You can prevent the ECCR from capturing changes in a specific job or region by adding the following DD statement to that JCL:
//EDMNOCAP DD DUMMY
To activate the IMS synchronous ECCR: 1. Start the PowerExchange tasks. Start the PowerExchange Listener, PowerExchange Agent, and the PowerExchange Logger. These tasks must be active before the IMS subsystem is started or no changed data is captured. Start the IMS subsystem. The IMS synchronous ECCR starts during the IMS subsystem initialization and generates a report beginning with message PWXEDM172852I in the EDMMSG SYSOUT data set. The report lists the default options that are in effect. If the IMS synchronous ECCR is running in an online region, the report also contains allocation options for the DFSESL DD statement. Verify activation. Check the system messages to verify that the IMS synchronous ECCR activated. The following messages are issued when using the PowerExchange hlq.CRG.LOAD. The messages issued may differ slightly when using the BMC Software DATABASE INTEGRITY PLUS and CHANGE RECORDING FACILITY products.
In the DBRC region, verify that the job log (JESMGLG) contains the following messages: BMC2700I NO VALID DBI PASSWORD FOUND BMC44001I DI+ INITIALIZATION COMPLETE BMC44008I DI+ LABEL PROCESSING SUSPENDED DFS3613I - DRC TCB INITIALIZATION COMPLETE
2.
3.
imsid
The variable imsid is the IMS subsystem name. Message BMC44001I indicates that the DBRC modification required by the IMS synchronous ECCR requires is installed.
In the IMS control region, verify that the job log (JESMSGLG) contains the following messages: *DFS0800I AWAITING NOTIFICATION FROM SUBSYS ssid imsid BMC250011I CRF V4600 12/21/07 INITIALIZATION COMPLETED, RC=0, RSN=00000000 BMC90489W CHANGE RECORDING FACILITY COMPONENT NOT INSTALLED F ims_job,SSNOTimsidssid
The variable ssid is the IMS external subsystem and imsid is the IMS subsystem name. You can ignore message BMC90488W. Message BMC250011I indicates that the CHANGE RECORDING FACILITY (CRF) product required by the IMS synchronous ECCR has initialized. PowerExchange generates the MVS MODIFY command following CRF activation to notify IMS that the external subsystem is active and ready to connect. The following messages in the EDMMSG SYSOUT data set indicate that the IMS synchronous ECCR connected successfully to the PowerExchange Logger and completed initialization:
PWXEDM172818I Joined XCF group 'logger_id' as member 'imsid' PWXEDM172841I EDM ECCR imsid connected to EDM Logger logger_id, Log RBA=X'0000000011680000' PWXEDM172852I DFSESL DD allocation options: DSNs to allocate to DFSESL DD. . . . . . : user.data.set1 : IMS910.SDFSRESL : DSN810.SDSNLOAD : user.data.set2 PWXEDM172820I Change Capture initialized for IMS Online on V9.1.0 - imsid
RELATED TOPICS:
Configuring IMS DBRC on page 213 Configuring IMS Region JCL on page 214
219
Close, and reopen the IMS database. For more information, see your IBM documentation.
220
RELATED TOPICS:
EDMSDIR Module Options on page 22
/SSR xEDP-CONTINUE
221
Description Produces an IMS synchronous ECCR snapshot report in the EDMMSG SYSOUT data set. The report contains the number of record inserts, replacements, and deletes that the IMS ECCR has captured. The records are grouped by database area and segment. Produces an IMS synchronous ECCR snapshot report in the job log of the IMS region. The report contains the number of record inserts, replacements, and deletes that the IMS ECCR has captured. The records are grouped by database area and segment.
/SSR xEDP-STATWTO
Note: The IMS external commands are available only if you have modified the member DFSPBxxx and the SSM member in the IMS PROCLIB to include a matching command recognition character (CRC).
STATUS CONN
EDMA EDMA
The output shows the command recognition character (CRC) assigned to the I24A external subsystem. This CRC is needed when issuing /SSR commands to the IMS synchronous ECCR external subsystem.
This example indicates that no capture registrations exist for any open databases.
222
In this example, a single database with four segments is registered for capture. The IMS synchronous ECCR has captured no changes for this database.
Close the database or data set. Alternatively, you can also stop the IMS synchronous ECCR. Stop the IMS synchronous ECCR. Stop the log-based ECCR. Deactivate or delete the corresponding data-resource registration. Then, close or stop the database or data set, as appropriate, and refresh the ECCR.
RELATED TOPICS:
Closing an IMS Database on page 223 Stopping the IMS Synchronous ECCR on page 223 Stopping the IMS Log-Based ECCR on page 224
The variable ssid designates the subsystem ID. Before you can issue the IMS external command, you must set the value for the option CCERR to CONTINUE. You can also change the value by issuing the EDP_CONTINUE command of the IMS synchronous ECCR external subsystem.
223
5. 6.
MVS Checkpoint/Restart
You cannot use MVS Checkpoint/Restart in an IMS synchronous ECCR job.
image copy or point-in-time recovery requires synchronizing the source and target databases again.
- Resume execution of the job step from the failed checkpoint.
224
You cannot use the IMS Batch Backout utility to back out any farther than the last IMS checkpoint on the batch
log.
If IMS Dynamic Backout runs due to an abend, you do not need to run the Batch Backout utility.
225
226
CHAPTER 15
PowerExchange. If you import metadata from the database, you might need to modify the source definition in Designer to add PowerExchange-defined CDC columns or to remove any columns that are not included in the extraction map. If you import extraction maps, you do not need to manually add or remove these columns from the PowerCenter source definition. After you import the metadata, you can use the source definitions in PowerCenter to create mappings, sessions, and workflows for extracting the change data from PowerExchange.
RELATED TOPICS:
PowerExchange-Generated Columns in Extraction Maps on page 228
227
Extraction Modes
You can use different modes to extract change data captured by PowerExchange. The extraction mode is determined by the PowerCenter connection type and certain PowerExchange CDC configuration parameters. Some extraction modes are available only if you use PowerExchange Condense or the PowerExchange Logger for Linux, UNIX, and Windows. Depending on your extraction requirements, use one of the following extractions modes: Real-time extraction mode Continuously extracts change data directly from the PowerExchange Logger for MVS log files in near real time. Extraction processing continues until the CDC session is stopped or interrupted. To implement this mode, configure a PWX CDC Real Time application connection in PowerCenter for your data source type. Batch extraction mode Extracts change data from PowerExchange Condense condense files on MVS that are closed at the time the session runs. After processing the condense files, the CDC session ends. To implement this mode, configure the following items:
In PowerCenter, configure a PWX CDC Change application connection for your data source type. In the PowerExchange Navigator, set the Condense option to Part or Full in your capture registrations.
Continuous extraction mode. Continuously extracts change data from open and closed PowerExchange Logger for Linux, UNIX, and Windows log files in near real time. To implement this mode, configure the following items:
On the remote Linux, UNIX, or Windows system, configure the PowerExchange Logger for Linux, UNIX,
and Windows to log change data that was originally captured on MVS.
In PowerCenter, configure a PWX CDC Real Time application connection for your data source type. In the PowerExchange Navigator, set the Condense option to Part in your capture registrations.
RELATED TOPICS:
Configuring PowerExchange to Capture Change Data on a Remote System on page 284 Extracting Change Data Captured on a Remote System on page 290
228
from view when you open the extraction map. To display these columns, open the extraction map, right-click anywhere within the Extract Definition window, and select Show Auto Generated Columns. Note: By default, all columns except the DTL__columnname_CNT and DTL__columnname_IND columns are selected in an extraction map. You must edit an extraction map to select these columns. The following table describes the columns that PowerExchange generates for each change record:
Column DTL__CAPXRESTART1 Description A binary value that represents the position of the end of the UOW for that change record followed by the position of the change record itself. The length of a sequence token varies by data source type, except on z/OS where sequence tokens for all data source types have the same length. The value of DTL__CAPXRESTART1 is also known as the sequence token, which when combined with the restart token comprises the restart token pair. A sequence token for a change record is a strictly ascending and repeatable value. A binary value that represents a position in the change stream that can be used to reconstruct the UOW state for the change record, with the following exceptions: - Microsoft SQL Server CDC. A binary value that contains the DBID of the distribution database and the name of the distribution server. - Change data extracted from full condense files on z/OS or i5/OS. A binary value that contains the instance name from the registration group of the capture registration. The length of a restart token varies by data source type. On z/OS, restart tokens for all data source types have the same length, except for change data extracted from full condense files. The value of DTL__CAPXRESTART2 is also known as the restart token, which when combined with the sequence token comprises the restart token pair. For DB2 on i5/OS only, the relative record number. A binary value that represents the position in the change stream of the start of the UOW for the change record. The user ID of the user that made the change to the data source, with the following exceptions: - DB2 for i5/OS. If you specify LIBASUSER=Y on the AS4J CAPI_CONNECTION statement, the value is the library and file name to which the change was made. - DB2 for z/OS. If you do not specify UIDFMT on the LRAP CAPI_CONNECTION, the value is the user ID of the user that made the change. Otherwise, the UIDFMT parameter determines the value. - Microsoft SQL Server. The value is null because Microsoft SQL Server does not record this information in the distribution database. - Oracle. The value might be null. If known, Oracle provides the user ID. Datatype VARBIN Length 255
DTL__CAPXRESTART2
VARBIN
255
DTL_CAPXRRN DTL__CAPXUOW
DECIMAL VARBIN
10 255
DTL__CAPXUSER
VARCHAR
255
229
Column DTL__CAPXTIMESTAMP
Description The timestamp for when the change was made to the data source, as recorded by the source DBMS in the following format:
YYYYMMDDhhmmssnnnnnn
Datatype CHAR
Length 20
Where: - YYYYMMDD is the date in year (YYYY), month (MM), and day (DD) format. - hhmmssnnnnnn is the time in hours (hh), minutes (mm), seconds (ss), and microseconds (nnnnnn) format. Note: Oracle does not support microseconds in the timestamp. DTL__CAPXACTION A single character that indicates the type of change operation. Valid values are: - I. INSERT operation. - D. DELETE operation. - U. UPDATE operation. For DB2 for z/OS sources only, a single character that indicates whether DB2 has deleted the row because the table specifies the ON DELETE CASCADE clause. Valid values are: - Y. Indicates that DB2 deleted this row because of a cascade delete rule. - N. Indicates that DB2 did not delete this row because of a cascade delete rule. For UPDATE operations, the value of the before image of the selected column in the change record. CHAR 1
DTL__CAPXCASDELIND
CHAR
DTL__BI_columnname
DTL__CI_columnname
For UPDATE operations, a single character that indicates whether the selected column was changed. Valid values are: - Y. Indicates that the column changed. - N. Indicates that the column did not changed. - Null value. Indicates an INSERT or DELETE operation. Binary count column. PowerExchange generates this column for variable length columns of types VARCHAR and VARBIN to determine the length of the column during change data extraction processing. Note: By default, binary count columns are not selected in an extraction map. You must edit an extraction map to select these columns. Null indicator column. PowerExchange generates this column for nullable columns to indicate the nullable value for the column. Note: By default, null indicator columns are not selected in an extraction map. You must edit an extraction map to select these columns.
DTL__columnname_CNT
NUM32U
DTL__columnname_IND
BIN
230
distribution database.
For change data extracted from full condense files on z/OS or i5/OS, a binary value that represents the full
condense file and the position of the change record in that file. A sequence token for a change record is a strictly ascending and repeatable value. The length of a sequence token varies by data source type, except on z/OS where sequence tokens for all data source types have the same length. Restart token For each change record that PowerExchange reads from the change stream, a binary value that represents a position in the change stream that can be used to reconstruct the UOW state for that record, with the following exceptions:
For Microsoft SQL Server CDC, a binary value that contains the DBID of the distribution database and the
instance name from the registration group for the capture registration. In some cases, the restart token might contain the position of the oldest open UOW. An open UOW is a UOW for which PowerExchange has read the beginning of the UOW from the change stream but has not yet read the commit record, or end-UOW. The length of a restart token varies by data source type. On z/OS, restart tokens for all data source types have the same length, except for change data extracted from full condense files. PowerExchange uses these restart token values to determine the point from which to start reading change data from the change stream, with the following exceptions:
For Microsoft SQL Server CDC, PowerExchange uses the sequence token value to determine the point from
which to start reading change data from that distribution database, and the restart token value to verify that the distribution database is the same as the distribution database specified on the CAPI connection.
For change data extracted from full condense files on z/OS or i5/OS, PowerExchange uses the sequence token
value to determine the point from which to start reading change data from the condense files, and the restart token value to verify that the instance is the same as the instance recorded for the change record. After determining the start point in the change stream for a CDC session, PowerExchange begins to read and pass change data to PWXPC. PWXPC uses the sequence token value for each source in the CDC session to determine the point at which to start providing the change data passed from PowerExchange to a specific source.
231
You should specify restart token values in the restart token file in the following situations:
When creating a new CDC session, specify a restart token pair for each data source. Alternatively, you can use
the special override statement to specify a restart token pair for some or all data sources.
When adding a data source to an existing CDC session, specify a restart token pair for the new source. If you need to override token values for a data source that is defined in an existing CDC session, specify the
If you use the DTLUAPPL utility or the PowerExchange Navigator to generate restart tokens, edit the restart token file that PWXPC uses to specify the token values before you start the CDC session. On MVS, PowerExchange generates an event mark in the PowerExchange Logger log files that can be used to create restart tokens for the following sources:
DB2 for z/OS. The DB2 ECCR generates an event mark when it reads a quiesce point from the DB2 logs. DB2
creates quiesce points when you use the DB2 QUIESCE utility.
IMS. The IMS log-based ECCR generates an event mark when it reads the records that the DTLCUIML utility
The PowerExchange Logger writes message PWXEDM172774I, which contains the restart point of the event mark, to its EDMMSG data set. The event marks that these ECCRs generate are the same as those that the EDMXLUTL utility creates.
When you run a CDC session, PWXPC reads the restart token file in the folder specified in the RestartToken File Folder attribute of the source CDC connection. If this folder does not exist and the RestartToken File Folder attribute contains the default value of $PMRootDir/Restart, PWXPC creates this folder. PWXPC does not create
232
any other restart token folder name. PWXPC then verifies that the restart token file exists. If the file does not exist, PWXPC uses the name specified in the RestartToken File Name attribute to create an empty restart token file. PWXPC stores restart tokens for CDC sessions at the following locations:
For relational targets, in a state table in the target database For nonrelational targets, in a state file on the PowerCenter Integration Service machine
When you restart a CDC session, PWXPC reads the restart tokens for each source in the CDC session from the state table or file. PWXPC also reads the restart token file for the CDC session and overrides the restart tokens for any sources that have token values included in the file.
PowerCenter Integration Service, commits both the change data and the restart tokens for that data in the same commit, which ensures that the applied data and the restart tokens are in-sync.
Nonrelational targets. Recovery state file in the shared location on the PowerCenter Integration Service
machine. PWXPC, in conjunction with the PowerCenter Integration Service, writes the change data to the target files and then writes the restart tokens to the recovery state file. As a result, duplicate data might be applied to the targets when you restart failed CDC sessions. The PowerCenter Integration Service saves the session state of operation and maintains target recovery tables. The PowerCenter Integration Service stores the session state of operation in the shared location that is specified in $PMStorageDir. The PowerCenter Integration Service saves relational target recovery information in the target database. When you run a CDC session that uses a resume recovery strategy, PWXPC writes the following message to the session log to indicate that recovery is in effect:
PWXPC_12094 [INFO] [CDCRestart] Advanced GMD recovery in effect. Recovery is automatic.
When you recover or restart a CDC session, PWXPC uses the saved restart information to resume reading the change data from the point of interruption. The PowerCenter Integration Service restores the session state of operation, including the state of each source, target, and transformation. PWXPC, in conjunction with the PowerCenter Integration Service, determines how much of the source data it needs to reprocess. PowerExchange and PWXPC use the restart information to determine the correct point in the change stream from which to restart extracting change data and then applying it to the targets. If you run a session with resume recovery strategy and the session fails, do not change the mapping, the session, or the state information before you restart the session. PowerCenter and PWXPC cannot guarantee recovery if you make any of these changes. Restriction: If any of the targets in the CDC session use the PowerCenter File Writer to write CDC data to flat files, do not use a resume recovery strategy. Restart tokens for all targets in the CDC session, including relational targets, will be compromised if a flat file target is in the same session. Data loss or duplication might occur.
233
removes the information from this table after each successful session and initializes the information at the beginning of subsequent sessions.
PM_TGT_RUN_ID. Contains information the PowerCenter Integration Service uses to identify each target on
the database. The information remains in the table between session runs. If you manually create this table, you must create a row and enter a value other than zero for LAST_TGT_RUN_ID to ensure that the session recovers successfully.
PM_REC_STATE. Contains state and restart information for CDC sessions. PWXPC stores the application
name and restart information for all sources in the CDC session. The PowerCenter Integration Service stores any state information for the session. Unlike the session state information, restart information persists in this table across successful sessions. The PowerCenter Integration Service updates it with each commit to the target tables. If you edit or drop the recovery tables before you recover a session, the PowerCenter Integration Service cannot recover the session. Also, PWXPC cannot restart the CDC session from the point of interruption. If you disable recovery, the PowerCenter Integration Service does not remove the recovery information from the target database. Also, PWXPC no longer updates the restart information in the target database.
234
Each session entry in a state table contains a number of repository identifiers and execution state data such as the checkpoint number and CDC restart information. The following columns can contain PWXPC-specific restart information:
APPL_ID. Contains the value the PWXPC creates by appending the task instance ID of the CDC session to the
value that you specify in the Application Name attribute in the source PWX CDC application connection. When this value matches an APPL_ID value for a row in the state table, the PowerCenter Integration Service, in conjunction with PWXPC, selects the row from the state table for the CDC session.
STATE_DATA. Contains the restart information for the session in a variable-length, 1,024-byte binary column.
When the PowerCenter Integration Service commits change data is to the targets tables, it also commits the restart information for that data in this column. PWXPC uses the restart information from this column to perform restart processing for the CDC session. If the amount of restart information for a session exceeds 1,024 bytes, the PowerCenter Integration Service adds additional rows to accommodate the remainder of the restart information. For each row added, the PowerCenter Integration Service increases the value of the SEQ_NUM column by one, starting from zero.
PWXPC creates the value for the appl_id variable in the file name by appending the task instance ID of the CDC session to the value that you specify in the Application Name attribute in the source PWX CDC application connection. The PowerCenter Integration Service uses various task and workflow repository attributes to complete the file name. The message CMN_65003, which the PowerCenter Integration Service writes to the session log, contains the complete file name.
Application Names
PWXPC, in conjunction with the Integration Service, uses the application name you specify as part of the key when it stores and retrieves the restart information for the CDC session. When you configure the PWX CDC application connection for each CDC session, specify a unique value in the Application Name attribute. PWXPC appends the repository task instance ID for the CDC session to the Application Name value to create the APPL_ID value in the recovery state table and the appl_id portion in the recovery state file name. Because the value of the APPL_ID column and the state recovery file contains the task instance ID for the session, changes to the CDC session such as adding and removing sources or targets affects restart processing. When you change the CDC session to add or remove sources and targets, you must use the restart token file to provide restart tokens and then cold start the CDC session.
235
all sources, does not read the state table or file, and makes no attempt to recover the session. The CDC session continues to run until stopped or interrupted.
Warm start. When you warm start a CDC session, PWXPC reconciles the restart tokens for sources provided
in the restart token file, if any, with any restart tokens that exist in the state tables or file. If necessary, PWXPC performs recovery processing. The session continues to run until stopped or interrupted.
Recovery start. When you recover a CDC session, PWXPC reads the restart tokens from any applicable state
tables and file. If necessary, PWXPC performs recovery processing. PWXPC then updates the restart token file with the restart tokens for each source in the CDC session, and the session ends. Before you run a CDC session for the first time, you should create and populate the restart token file with restart tokens for each source in the session. Each restart token pair should match a point in the change stream where the source and target are in a consistent state. For example, you materialize a target table from a source and do not change the source data after materialization. To establish a starting extraction, or restart, point in the change stream, code a special override statement with the CURRENT_RESTART option in the restart token file that has the file name that you specified in the PWX CDC application connection in the CDC session. When you cold start the CDC session, PWXPC requests that PowerExchange use the current end-point in the change stream as the extraction start point. After the CDC session starts, you can resume change activity to the sources. If you cold start a CDC session and a restart token file does not exist, the PowerCenter Integration Service still runs the session. Because you did not provide any restart information, PWXPC passes null restart tokens for all sources to PowerExchange and indicates that the restart tokens for each source are NULL in message PWXPC_12060. PowerExchange then assigns the default restart point to each source. Warning: If you use null restart tokens, the CDC session might not produce the correct results. When you cold start CDC sessions, provide valid restart tokens.
Oldest PowerExchange Logger for Linux, UNIX, and Windows log file, as recorded in the CDCT.
236
Batch and Continuous Extraction Mode Oldest PowerExchange Logger for Linux, UNIX, and Windows log file, as recorded in the CDCT. Oldest PowerExchange Logger for Linux, UNIX, and Windows log file, as recorded in the CDCT.
Oracle
PowerExchange uses the default restart point only if all sources in a CDC session have null restart tokens. If some sources have non-null restart tokens, PWXPC assigns the oldest restart point from those tokens to any sources for which no restart tokens are specified. For example, a new CDC session contains the sources A, B, and C. The restart token file contains restart tokens for sources A and B. The restart point for source A is older than that for source B. Source C does not have existing or supplied restart tokens. Because some sources in the CDC session have explicit restart points, PWXPC does not assign null restart tokens to source C. Instead, PWXPC assigns the restart point for source A to source C because this restart point is the oldest one supplied.
session.
If the restart token file contains only explicit override statements, PWXPC performs the following processing: - Assigns the restart tokens in the explicit override statements to the specified sources. - Assigns the oldest supplied restart point to any sources for which an explicit override statement was not
specified.
If the restart token file contains only the special override statement, PWXPC assigns the restart tokens in the
237
More specifically, PWXPC uses one of the following methods to determine the restart tokens:
If the restart token file is empty or does not exist and there is no matching entry in a state table or state file,
PWXPC uses the restart tokens from the state tables or state file.
If the restart token file contains explicit override statements and no sources have a matching entry in a state
entry in a state table or a state file, PWXPC performs the following processing:
- Assigns the restart tokens in the explicit override statements to the specified sources. - Assigns restart tokens from a state table or state file to the appropriate sources, provided that the tokens
238
If you use PWXPC connections for bulk data movement operations, PowerExchange uses group source processing for the following multiple-record, nonrelational data sources:
IMS unload data sets Sequential data sets and flat files VSAM data sets
PowerExchange uses group source processing to read all records for a single multi-group source qualifier in a mapping. When you run a bulk data movement session, PWXPC passes PowerExchange the source data map information from the source definition metadata, which includes the data set or file name if available. If PWXPC does not pass the data set or file name, PowerExchange determines it from the PowerExchange data map. PowerExchange reads the data set or file and passes all of the data records to PWXPC. PWXPC then provides the data records to the appropriate source record type in the multi-group source qualifier.
239
box or the Import from Database dialog box. Restriction: To read change data for nonrelational sources, you must import extraction maps from PowerExchange. Informatica recommends that you use extraction maps to create source definitions for all CDC sources. When you create source definitions from extraction maps, the mapping and session creation process is simpler for the following reasons:
The source definition contains the extraction map name, which eliminates the need to provide it when you
these columns to the source definition. The PowerExchange-defined columns include the change indicator and before image columns as well as the DTL__CAPX columns. When you extract change data, PowerExchange uses group source processing for all source definitions in the mapping. All source definitions must be for the same data source type, such as DB2, IMS, VSAM, or Oracle. Do not include multiple data source types in the mapping. Otherwise, the session fails with message PWXPC_10080. For example, you cannot run a CDC session that contains a mapping with both VSAM and IMS source definitions, even though the change stream is the same. To extract change data for both IMS and VSAM data sources, create unique a mapping and session for the VSAM sources and a separate, unique mapping and session for the IMS sources. PowerExchange reads the change stream twice, once for the session with VSAM sources and once for the session with IMS sources. If you create a workflow that contains multiple CDC sessions, PowerExchange uses a connection for each session, even if the sessions extract change data from the same change stream, such as the PowerExchange Logger for MVS.
240
The following example mapping shows three DB2 sources, for which the source definitions were created from extraction maps:
If you include this mapping in a session that uses a PWX DB2zOS CDC application connection, PowerExchange uses group source processing to read the change stream and extract the changes for all three source tables. PowerExchange extracts change data in chronological order, based on when the UOWs were completed. PowerExchange passes the change data to PWXPC, and PWXPC provides the changes to the appropriate source qualifier. Note: Because the example mapping uses source definitions created from extraction maps, it cannot be used for bulk data movement operations. However, mappings that use source definitions created from database relational metadata can be used for either change data extraction or bulk data movement.
RELATED TOPICS:
Commitment Control Options on page 255
241
Maximum number of change records that PWXPC processes before it flushes the data buffer to commit the change data to the targets. If necessary, PWXPC continues to process change records across UOW boundaries until this maximum rows threshold is met. PWXPC does not wait for a UOW boundary to commit the change data. Default is 0, which means that PWXPC does not use maximum rows. Minimum number of change records that PowerExchange reads from the change stream before it passes any commit records in the change stream to PWXPC. Before reaching this minimum value, PowerExchange skips commit records and passes only the change records to PWXPC. Default is 0, which means that PowerExchange does not use minimum rows. Number of milliseconds that must pass before PWXPC flushes the data buffer to commit the change data to the targets. When this latency period expires, PWXPC continues to read the changes in the current UOW until the end of that UOW is reached. Then, PWXPC flushes the data buffer to commit the change data to the targets. Default is 0, which means that PWXPC uses 2,000 milliseconds. Number of UOWs that PWXPC processes before it flushes the data buffer to commit the change data to the targets. Default is 1.
Real Time
Real Time
UOW Count
Both
You can specify values for the all of these commitment control attributes. However, PWXPC commits change data only when one of the following values is met:
Maximum Rows Per commit Real-time Flush Latency in milli-seconds UOW Count
If you specify a value for the Minimum Rows Per commit attribute, this threshold must be met before a commit can occur. However, PWXPC flushes the data buffer to commit the change data to the targets only when Maximum Rows Per commit, Real-time Flush Latency in milli-seconds, or UOW Count is met, whichever is first. After PWXPC commits the change data, it resets the UOW count, the maximum and minimum rows, and the realtime flush latency timer. PWXPC continues to read change data. Whenever one of the commitment control values is met, PWXPC commits that data to the targets. Commit processing continues until the CDC session is stopped, ends, or terminates abnormally. When the PWXPC CDC reader ends normally, PWXPC issues a final commit to flush all complete, buffered UOWs and their final restart tokens to the targets. Prior to ending, the PWXPC CDC reader writes the following message to the session log:
PWXPC_12075 [INFO] [CDCRestart] Session complete. Next session will restart at: [restart1_token] : Restart 2 [restart2_token] Restart 1
Restriction: If you enable the Commit On End Of File attribute on the session Properties tab, duplicate data can occur in the targets because the Integration Service commits any remaining change data in the buffer to the
242
targets. This final commit by the Integration Service occurs after the PWXPC CDC reader has committed all complete UOWs in the buffer, along with their restart tokens, to the targets. As a result, the final restart tokens might represent a point in the change stream that is earlier than final change data that the Integration Service commits to the targets. To prevent possible duplicate data when you restart CDC sessions, set the Commit Type attribute to Source and disable the Commit On End Of File attribute.
Target Latency
Target latency is the total time that PWXPC uses to extract change data from the change stream and that the Integration Service uses to apply that data to the targets. If this processing occurs quickly, target latency is low.
243
The values you select for the commitment control attributes affect target latency. You must balance target latency requirements with resource consumption on the Integration Service machine and the target databases. Lower target latency results in higher resource consumption because the Integration Service must flush the change data more frequently and the target databases must process more commit requests. You can affect target latency by setting the commit control attributes. The following default values can result in the lowest latency:
0 for Maximum Rows Per commit, which disables this option 0 for Minimum Rows Per commit, which disables this option 0 for Real-time Flush Latency in milli-seconds, which is equivalent to 2000 milliseconds or 2 seconds 1 for UOW Count
These values can decrease target latency because PWXPC commits changes after each UOW, or on UOW boundaries. However, these values also cause the highest resource consumption on the source system, the Integration Service machine, and the target databases. Alternatively, these values might decrease throughput because change data flushes too frequently for the Integration Service or the target databases to handle. To lower resource consumption and potentially increase throughput for CDC sessions, specify a value greater than the default value for only one of the following attributes:
Maximum Rows Per commit UOW Count Real-time Flush Latency in milli-seconds
Based on the maximum rows value, PWXPC flushes the data buffer after reading the first 300 records in a UOW. This action commits the change data to the targets. PWXPC continues to commit change data to the targets every 300 records. PWXPC commits on UOW boundaries only for the UOW count and real-time flush latency interval. If the real-time flush latency interval expires before PWXPC reads 300 change records, PWXPC still commits based on the maximum rows value because that threshold is met before a UOW boundary occurs. When the end of the UOW is read, PWXPC commits the change data because the UOW Count value is 1. PWXPC resets the UOW and maximum row counters and the real-time flush latency timer each time it commits. Because all of the UOWs have the same number of change records, PWXPC continues to read change data and to commit the data to the targets at the same points in each UOW.
244
Initially, PWXPC reads 900 complete UOWs in 5 seconds. Because the real-time flush latency interval has expired, PWXPC flushes the data buffer to commit the change data to the targets. PWXPC then resets both the UOW counter and real-time flush latency timer. When PWXPC reaches UOW 1,000, PWXPC does not commit change data to the targets because the UOW counter was reset to 0 after the last commit. PWXPC reads the next 1,000 UOWs in 4 seconds, which is less than the real-time flush latency timer. PWXPC commits this change data to the target because the UOW counter has been met. After this commit, PWXPC then resets the real-time flush latency timer and the UOW counter. PWXPC continues to read change data and commit the data to the targets, based on the UOW count or the realtime flush latency flush time, whichever limit is met first. In this example, PWXPC commits change data at the following points:
After UOW 900 because the real-time latency flush latency timer matched first After UOW 1,900 because the UOW count matched first during the second commit cycle
PWXPC passes the minimum rows value to PowerExchange and requests change data from the change stream. Because the minimum rows value is 100, PowerExchange skips the commit records of the first nine UOWs. When PowerExchange reads the last change record in the tenth UOW, the minimum rows limit is met. So, PowerExchange passes the commit record for the tenth UOW to PWXPC and resets the minimum rows counter. PWXPC increases the UOW counter to one. PowerExchange and PWXPC continue to read the change data until the UOW counter is 10. At this point, PWXPC flushes the data buffer to commit the change data to the targets and resets the UOW counter. In this example, PWXPC commits change data after 1,000 change records, which is also after every 10 UOWs because each UOW contains 10 change records and the UOW Count is 10.
Commit Processing with PWXPC 245
Offload Processing
You can use CDC offload processing and multithreaded processing to improve performance and efficiency of real-time CDC sessions. You can use CDC offload processing to distribute processing to the PowerCenter Integration Service machine running the extraction, which reduces processing on the source system. You can also use CDC offload processing to copy change data to a remote system by using the PowerExchange Logger for LINUX, UNIX, and Windows. You can use multithreaded processing to increase parallelism on the PowerCenter Integration Service machines.
Multithreaded Processing
If you use CDC offload processing for change data extractions, you can also use multithreaded processing, which might improve help improve throughput even more. By default, PowerExchange performs column-level processing on the change stream as a single thread. If you use multithreaded processing, PowerExchange might be able to extract changes faster and more efficiently by processing more than one UOW simultaneously. PowerExchange multithreaded processing splits a UOW into multiple threads on the PowerCenter Integration Service machine. After the column-level processing completes, PowerExchange merges the threads and passes the UOW to the PWXPC CDC reader for processing. Multithreaded processing works most efficiently when PowerExchange on the source machine is supplying data fast enough to take full advantage of the multiple threads on the PowerCenter Integration Service machine. If PowerExchange completely utilizes a single processor on the Integration Service machine, then multithreaded processing may provide increased throughput.
246
CHAPTER 16
If you use offload processing with real-time extractions, you can also use multithreaded processing.
247
2. 3. 4. 5. 6. 7. 8. 9.
To test the extraction map, perform a database row test on the extraction map in PowerExchange Navigator. In Designer, import metadata for the sources and targets. In Designer, configure a mapping to extract and process change data. In Workflow Manager, configure a connection and session. Create restart tokens for the CDC session. Configure the restart token file. If you want to stop extraction processing based on certain events, implement event table processing. If you want to offload column-level extraction processing and UOW Cleanser processing from the source system to the PowerCenter Integration Service machine or to the PowerExchange Logger for Linux, UNIX, and Windows machine, configure offload processing. For real-time extractions, you can also configure multithreaded processing.
RELATED TOPICS:
Configuring PowerCenter CDC Sessions on page 250 Creating Restart Tokens for Extractions on page 257 Configuring the Restart Token File on page 258 Monitoring and Tuning Options on page 270 Starting PowerCenter CDC Sessions on page 262 Testing Change Data Extraction on page 248
248
To test change data extraction: 1. 2. 3. 4. In the Resource Explorer of the PowerExchange Navigator, open the extraction group that includes the extraction map that you want to test. Open the extraction map. Select the extraction map and click File > Database Row Test. In the Database Row Test dialog box, enter or edit the following information:
Field DB Type Description An extraction mode indicator: - CAPXRT. Real-time extraction mode or continuous extraction mode. - CAPX. Batch extraction mode. Location Node name for the location of the system on which the captured change data resides. This name must be defined in a NODE statement in the dbmover.cfg file on the Windows machine from which you run the database row test. Optionally, a user ID and password that provides access to the source change data. At least one character to represent the application name. For a row test, a unique application name is not required. PowerExchange does not retain the value that you specify. A SQL SELECT statement that PowerExchange generates for the fields in the extraction map. You can edit this statement, if necessary. In the statement, a table is identified in the following format:
Schema.RegName_TableName
SQL Statement
Where: - Schema is schema for the extraction map. - RegName is the name of the capture registration that corresponds to the extraction map. - TableName is the table name of the data source.
Note: If you enter CAPX in the DB Type field, you can only extract change data after PowerExchange Condense or the PowerExchange Logger for Linux, UNIX, and Windows has closed at least one condense or log file. Otherwise, PowerExchange displays no data in PowerExchange Navigator and writes the PWX-04520 message in the PowerExchange message log on the extraction system. PowerExchange also writes this message if no change data for the data source has been captured, condensed, or logged. 5. 6. Click Advanced. In the CAPX Advanced Parameters or CAPXRT Advanced Parameters dialog box, enter information, including the following:
If you use continuous extraction mode, enter the CAPX CAPI_CONNECTION name in the CAPI
remote from the system on which it was captured, enter location of the extraction maps in the Location field.
249
7. 8.
Click OK. Click Go. The database row test returns each change from the extraction start point by column. The results include the PowerExchange-defined CDC columns, the DTL__ columns, which provide information such as the change type, change timestamp, and user ID of the user who made the change.
Commit Type
Default is Target. The PowerCenter Integration Service automatically overrides it to Source. However, you cannot disable Commit On End Of File unless you change Commit Type to Source. Default is enabled. The PowerCenter Integration Service performs a commit when the session ends. This commit occurs after PWXPC commits the restart tokens, which can cause an out-of-sync condition between the restart tokens and the target data. As a result, duplicate data can occur when CDC sessions restart. Default value is Fail task and continue workflow. To properly restart CDC session, PowerExchange CDC and PWXPC require that this option is set to Resume from last checkpoint. Default value is 0. By default, the PowerCenter Integration Service does not consider errors when writing to targets as fatal. The following types of error are non-fatal: - Key constraint violations - Loading nulls into a not null field - Database trigger responses If write errors occur, you might experience change data loss because PWXPC has advanced the restart tokens values. To maintain target data and restart token integrity, you must set this option to 1. Default is the first 20 characters of the WorkFlow Name. Warning: The default might not result in a unique name.
Properties Tab
Disabled
Recovery Strategy
Properties Tab
Stop on errors
Application Name
Application Connection
250
Attribute Name
Description
Use the default value of $PMRootDir/Restart, which PWXPC creates if it does not exist. If no value is entered for Application Name, the default is the workflow name. Otherwise, the value for Application Name is used. Warning: The default may not result in a unique name. Default is 0. PWXPC keeps only one backup copy of the restart token initialization and termination files. Specify a value greater than 0 so a history is available for recovery purposes.
Application Connection
1 or higher
Image Type
For update operations, use the Image Type attribute to configure the format of the change data that a CDC session extracts. Select one of the following options for the Image Type attribute:
AI. After images only. BA. Before and after images.
Default is BA. If you select BA for the Image Type attribute, PowerExchange provides the before-image (BI) and after-image (AI) data for the updated row as separate SQL operations:
A DELETE with the before-image data An INSERT with the after-image data
Note: To select BA with batch or continuous extraction mode, you must configure PowerExchange Condense or the PowerExchange Logger for Linux, UNIX, and Windows to log before and after images. Otherwise, you can only select after images. If you select AI for the Image Type attribute, PowerExchange provides the after-image data for updated row as a SQL UPDATE operation. You can also configure one or more data columns in an extraction map with before-image (BI) columns. Use the PowerExchange Navigator to update the extraction map with before-image columns, which adds additional columns to the extraction map with the name of DTL__BI_columnname. If you use BI columns, select AI for the Image Type attribute. PowerExchange then includes before-image data in any BI columns, along with the afterimage data, in a single SQL UPDATE operation. When you configure BI columns, you can make decisions about UPDATE operations in a mapping because the before and after-image data is contained in a single record. For example, you can use BI columns to handle update operations that change the value of a key column of a row. Some relational databases, such as DB2 for z/ OS, allow update operations to key columns. The RDBMS understands that this operation is equivalent to deleting the row and then re-adding it with a new primary key and logs the change as an update.
251
If you select AI for the Image Type attribute, PowerExchange provides these changes as an UPDATE operation. Because some relational databases do not allow updates to primary key columns, you cannot apply these changes as updates. If you configure BI columns for key columns, you can then use the Flexible Key Custom transformation to be change any UPDATE operations for key columns into a DELETE operation followed by an INSERT operation.
To use event table processing: 1. Create an event table. The event table must be of the same source type and on the same machine as the change data that is extracted. For example, if you extract DB2 change data on MVS, the event table must be a DB2 table in the same DB2 subsystem as the DB2 source tables for the extraction. 2. In the PowerExchange Navigator, create a capture registration and extraction map for the event table. When you create a capture registration, the PowerExchange Navigator generates an extraction map. 3. 4. In PowerCenter, create a CDC session, and specify the extraction map name in the Event Table attribute on the PWX CDC Real Time application connection. When the defined event occurs, update the event table. When PowerExchange reads the update to the event table, PowerExchange places an end-of-file (EOF) into the change stream. PWXPC processes the EOF, passes it to the PowerCenter Integration Service, and then shuts down the PowerExchange reader. The PowerCenter Integration Service completes writing all of the data currently in the pipeline to the targets and then ends the CDC session.
252
Idle Time
To indicate whether a real-time or continuous extraction mode CDC session should run continuously or shutdown after reaching the end-of-log (EOL), use the Idle Time attribute. Enter one of the following values for the Idle Time attribute:
-1. The CDC session runs continuously. PowerExchange returns end-of-file (EOF) only when the CDC session
is manually stopped.
0. After reaching EOL, PowerExchange returns EOF and the CDC session ends. n. After reaching EOL, PowerExchange waits for n seconds and, if no new change data of interest arrives, the
CDC session ends. Otherwise, the CDC session continues until PowerExchange waits for n seconds without reading new change data of interest. Default is -1. PowerExchange determines the EOL by using the current end of the change stream at the point that PowerExchange started to read the change stream. PowerExchange uses the concept of EOL because the change stream is generally not static, and so the actual end-of-log is continually moving forward. After PowerExchange reaches EOL, it writes the PWX-09967 message in the PowerExchange message log. Typically, real-time and continuous extraction mode CDC sessions use the default value of -1 for the Idle Time attribute. If necessary, you can manually stop a never-ending CDC session by using the PowerCenter Workflow Monitor, pmcmd commands, or the PowerExchange STOPTASK command. Alternatively, you can set the Idle Time attribute to 0. After PowerExchange reaches EOL, it returns an EOF to PWXPC. PWXPC and the PowerCenter Integration Service then perform the following processing: 1. 2. 3. 4. PWXPC flushes all buffered UOWs and the ending restart tokens to the targets. The CDC reader ends. After the PowerCenter Integration Service finishes writing the flushed data to the targets, the writer ends. After any post-session commands and tasks execute, the CDC session ends.
If you set the Idle Time attribute to a positive number, the following processing occurs: 1. 2. PowerExchange reads the change stream until it reaches EOL, and then timing for the idle time begins. If more data is in the change stream after EOL, PowerExchange continues to read the change stream, looking for change data of interest to the CDC session, as follows:
If the idle time expires before PowerExchange reads a change record of interest for the CDC session,
timer, passes the change data to PWXPC, and continues to read the change stream. This processing continues until the idle time expires. 3. 4. After the idle time expires, PowerExchange passes an EOF to PWXPC. PWXPC and the PowerCenter Integration Service perform the same processing as when the Idle Time attribute is set to 0 and the CDC session ends.
If you set the Idle Time attribute to a low value, the CDC session might end before all available change data in the change stream has been read. If you want a CDC session to end periodically, Informatica recommends that you set the Idle Time attribute to 0 because active systems are rarely idle. When a CDC session ends because either the idle time value has been reached or a PowerExchange STOPTASK command has been issued, PWXPC writes the following message in the session log:
[PWXPC_10072] [INFO] [CDCDispatcher] session ended after waiting for [idle_time] seconds. Idle Time limit is reached
If you stop a never-ending CDC session with the PowerExchange STOPTASK command, PWXPC substitutes 86400 for the idle_time variable in the PWXPC_10072 message.
253
Note: If you specify values for the Reader Time Limit and Idle Time attributes, the PowerCenter Integration Service stops reading data from the source when the first one of these terminating conditions is reached. Because the reader time limit does not result in normal termination of a CDC session, Informatica recommends that you use only the idle time limit.
Informatica recommends that you specify a value for the Application Name attribute, because the default value might not result in a unique name. The values for Application Name and RestartToken File Name attributes must be unique for every CDC session. Non-unique values for either of these attributes can cause unpredictable results that include session failures and potential data loss.
PowerExchange uses the flush latency value as the CAPI interface timeout value on the source machine, or on the PowerCenter Integration Service machine if you use CDC offload processing. For CDC sessions that use real-time or continuous extraction mode, set the flush latency in the PWX Latency in seconds attribute of the PWX CDC Real Time application connection. For CDC sessions that use batch extraction mode, PowerExchange always uses two seconds for the flush latency. Restriction: The value of PWX Latency in seconds impacts the speed with which a CDC session responds to a stop command from Workflow Monitor or pmcmd, because PWXPC must wait for PowerExchange to return control before it can handle the stop request. Informatica recommends that you use the default value of 2 seconds for the PWX Latency in seconds attribute.
254
PowerExchange writes the message PWX-09957 in the PowerExchange message log to reflect the CAPI interface timeout value set from the flush latency value. If you select Retrieve PWX Log Entries on the application connection, PWXPC also writes this message in the session log. After PowerExchange flushes the change data to PWXPC, PWXPC provides the data to the appropriate sources in the CDC session for further processing and the PowerCenter Integration Service commits the data to the targets.
255
If you specify a minimum rows limit, PowerExchange changes the number of change records in a UOW to match or exceed the limit. PWXPC does not commit change data to the targets when the minimum rows limit occurs. PWXPC only commits change data to the targets based on the values of the Maximum Rows Per commit, Real-Time Flush Latency in milli-seconds, and UOW Count attributes. A minimum rows limit does not impact the relational integrity of the change data because PowerExchange does not create new commits points in the change stream data. It merely skips some of the original commit records in the change stream. If your change data has many small UOWs, you can set the Minimum Rows Per commit attribute to create larger UOWs of a more uniform size. Online transactions that run in transaction control systems such as CICS and IMS often commit after making only a few changes, which results in many, small UOWs in the change stream. PowerExchange and PWXPC process fewer, larger UOWs more efficiently than many small UOWs. By using the minimum rows limit to increase the size of UOWs, you can improve CDC processing efficiency. Real-Time Flush Latency in milli-seconds For real-time or continuous extraction mode, number of milliseconds that must pass before PWXPC flushes the data buffer to commit the change data to the targets. After the flush latency interval expires and PWXPC reaches a UOW boundary, PWXPC issues a real-time flush to commit the change data and the restart tokens to the targets and writes the PWXPC_10082 message in the session log. PWXPC resets the flush latency interval when a real-time flush occurs because either the interval expires, or one of the UOW count or maximum row limit is met. Enter one of the following values for the flush latency interval:
-1. Disables data flushes based on time. 0 to 2000. Interval set to 2000 milliseconds, or 2 seconds. 2000 to 86400. Interval set to the specified value.
Default is 0, which means that PWXPC uses 2,000 milliseconds. If you set the flush latency interval value is 0 or higher, PWXPC flushes the change data for all complete UOWs after the interval expires and the next UOW boundary occurs. The lower you set the flush latency interval value, the faster you commit change data to the targets. Therefore, if you require the lowest possible latency for the apply of changes to the targets, specify a low value for the flush latency interval. When you specify low flush latency intervals, the CDC session might consume more system resources on the PowerCenter Integration Service and target systems because PWXPC commits to the targets more frequently. When you choose the flush latency interval value, you must balance performance and resource consumption with latency requirements. UOW Count Number of complete UOWs that PWXPC reads from the change stream before flushing the change data to the targets. As PWXPC reads change data from PowerExchange and provides that data to the appropriate source in the CDC session, it counts the number of UOWs. After the UOW count value is reached, PWXPC issues a real-time flush to commit the change data and the restart tokens to the targets, and writes the PWXPC_10081 message in the session log. PWXPC resets the UOW count when a real-time flush occurs because the UOW count or maximum rows limit is met, or the flush latency interval expires. Enter one of the following for the UOW count value:
-1 or 0. PWXPC does not use the UOW Count attribute to control commit processing. 1 to 999999999. PWXPC flushes change data after reading the number of UOWs specified by
256
The lower you set the value for the UOW Count attribute, the faster that PWXPC flushes change data to the targets. To achieve the lowest possible latency for applying change data to targets, set the UOW Count attribute to 1. However, the lowest possible latency for applying change data also results in the highest possible resource consumption on the PowerCenter Integration Service and the target systems. Commit processing for CDC sessions is not controlled by a single commitment control attribute. The Maximum Rows Per commit, Real-Time Flush Latency in milli-seconds, and UOW Count values all result in a real-time flush of change data, which causes the data and restart tokens to be committed to the targets. When you choose values for the UOW Count, Real-Time Flush Latency in milli-seconds, and Maximum Rows Per commit attributes, balance performance and resource consumption with latency requirements. Warning: You must ensure that the session properties Commit Type attribute specifies Source and that the Commit at End of File attribute is disabled. By default, the Commit at End of File attribute is enabled, which causes the PowerCenter Integration Service to write additional data to the targets after the CDC reader has committed the restart tokens and shut down. As a result, when you restart the CDC session, duplicate data might be written to the targets.
RELATED TOPICS:
Commit Processing with PWXPC on page 241
extraction mode by coding the CURRENT_RESTART option on the RESTART1 and RESTART2 special override statements in the PWXPC restart token file. When the session executes, PWXPC requests that PowerExchange provide restart tokens for the current end of the change stream, which PWXPC then uses as the extraction start point.
Database Row Test. Generate current restart tokens for sources by performing a database row test in
the DTLUAPPL utility. You can also construct restart tokens by using the RBA or LRSN of an event mark record that is written to the PowerExchange Logger log files. Use the EDMXLUTL utility to generates event marks. Certain PowerExchange ECCRs also generates event marks in the following situations:
DB2 ECCR. Generates an event mark when it reads a quiesce point from the DB2 logs. DB2 creates quiesce
IMS logs.
Adabas ECCR. Generates an event mark when it reads an Adabas PLOG data set.
If you use a PowerExchange utility or the PowerExchange Navigator to generate restart tokens, edit the restart token file that PWXPC uses to specify the token values before you start the CDC session.
257
If you include the DTL__CAPXRESTART1 and DTL__CAPXRESTART2 columns in your PowerCenter source definition, PowerExchange provides the restart tokens for each row when you extract change data in a CDC session. When a CDC session runs, PowerExchange and PWXPC display restart token values in the following messages:
In the messages PWX-04565 and PWX-09959, the sequence token is in the Sequence field and restart token is
value and is followed by the restart token. When you use the DTLUAPPL utility to generate restart tokens, use the PRINT statement to display the generated values. In the PRINT output, DTLUAPPL displays the sequence token, without the usual trailing eight zeros, in the Sequence field and displays the restart token in the Restart field.
and the attribute contains the default value of $PMRootDir/Restart, PWXPC creates it. PWXPC does not create any other restart token folder name.
RestartToken File Name. Specify the unique name of the restart token file. If you do not specify a value in this
attribute, PWXPC uses the value of the Application Name, if available. Otherwise, PWXPC uses the name of the workflow. Because this name must be unique, Informatica recommends that you always code a value for the RestartToken File Name attribute. When you run a CDC session, PWXPC verifies that the restart token file exists. If one does not exist, PWXPC uses the name specified in the RestartToken File Name attribute to create an empty restart token file. Restriction: The value of RestartToken File Name attribute in must be unique for every CDC session. Nonunique file names can cause unpredictable results, such as change data loss and session failures. To locate the restart token file name for a CDC session, check the following places:
For existing CDC sessions, message PWXPC_12057 in the session log contains the restart token file folder
contains the restart token file name and folder location. If the restart token file name is not specified in the application connection, PWXPC uses the application name, if specified. Otherwise, PWXPC uses the workflow name.
258
Before you run a CDC session for the first time, configure the restart token file to specify the point in the change stream from which PowerExchange begins to extract change data. You can also configure the restart token file to add new sources to a CDC session or to restart change data extraction from a specific point in the change stream.
Comment Statements
You can use the comment statement anywhere in the restart token file. Comment statements must begin with:
<!--
259
When you warm start a CDC session, an explicit override statement for a source overrides the restart tokens stored in the state table or file for that source. The explicit override statement has the following parameters: extraction_map_name=restart1_token and extraction_map_name=restart2_token The PowerExchange extraction map name and the sequence and restart tokens for the source. extraction_ map_name The extraction map name for the data source. To determine the extraction map name, check one of the following:
For CDC data map sources, the Schema Name Override and Map Name Override attributes in the
session properties. These attributes override the schema and map names of the source extraction map.
For CDC data map sources, the Schema Name and Map Name values in the source Metadata
Extensions in Designer.
For relational sources, the Extraction Map Name attribute in the session properties.
restart1_token The sequence token part of the restart token pair, which varies based on data source type. restart2_token The restart token part of the restart token pair, which varies based on data source type.
260
Restriction: You can only use CURRENT_RESTART for CDC sessions that use real-time and continuous extraction mode. You cannot use this option for CDC sessions that use batch extraction mode. You can also generate current restart tokens in the Database Row Test dialog box in the PowerExchange Navigator.
When you warm start the CDC session, PWXPC reads the restart token file to process any override statements for restart tokens. In this case, the restart token file overrides all restart tokens for all sources in the CDC session. After resolving the restart tokens for all sources, PWXPC writes message PWXPC_12060 to the session log with the following information:
=============================== Session restart information: =============================== Extraction Map Name Restart Token 1 d1dsn9.rrtb0001_RRTB_SRC_001 0000060D1DB2000000000000060D1DB20000000000000000 d1dsn9.rrtb0002_RRTB_SRC_002 000000A3719500000000000000A371950000000000000000 d1dsn9.rrtb0003_RRTB_SRC_003 000000AD775600000000000000AD77560000000000000000 override) d1dsn9.rrtb0004_RRTB_SRC_004 000006D84E7800000000000006D84E780000000000000000 d1dsn9.rrtb0005_RRTB_SRC_005 000000AD775600000000000000AD77560000000000000000 override) d1dsn9.rrtb0006_RRTB_SRC_006 000000AD775600000000000000AD77560000000000000000 override) d1dsn9.rrtb0007_RRTB_SRC_007 000000AD775600000000000000AD77560000000000000000 override)
Source Restart file Restart file Restart file (special Restart file Restart file (special Restart file (special Restart file (special
PWXPC indicates the source of the restart token values for each source. For the sources that had explicit override statements in the restart token file, PWXPC writes Restart file in the Source column. For the sources to which PWXPC assigns the special override restart tokens, PWXPC writes Restart file (special override) in the Source column.
261
CHAPTER 17
262
When you recover a CDC session, PWXPC reads the restart tokens from any applicable state tables or file. If necessary, PWXPC performs recovery processing. PWXPC updates the restart token file with the restart tokens for each source in the CDC session, and then the session ends. To begin extracting change data again, either cold start or warm start the session.
PWXPC reads the restart tokens from only the restart token file and associates a restart token with each source in the session. PWXPC creates the initialization restart token file with the initial restart tokens. PWXPC commits the restart tokens for each source to the appropriate state tables or file and then writes the message PWXPC_12104 to the session log. PWXPC passes the restart tokens to PowerExchange. PowerExchange begins extracting change data and passing the data to PWXPC for processing. PWXPC continues processing change data from PowerExchange and commits the data and restart tokens to the targets. This processing continues until the session ends or is stopped.
2. 3.
PWXPC queries the PowerCenter Integration Service about the commit levels of all targets. If all targets in the session have the same commit level, PWXPC skips recovery processing. PWXPC reconciles the restart tokens from the restart token file and from the state tables or file. Restriction: If a CDC session requires recovery processing, PWXPC does not use the restart token file. Consequently, you cannot override restart tokens for sources.
4. 5.
PWXPC creates the initialization restart token file with the reconciled restart tokens. If recovery is required, PWXPC re-reads the change data for the last unit-of-work (UOW) that was committed to the targets with the highest commit level and flushes the data to those targets with lower commit levels. The PowerCenter Integration Service commits flushed change data and restart tokens to any relational targets and updates any nonrelational files. If recovery is not required and the reconciled restart tokens differ from those in the state tables or file, PWXPC commits the reconciled restart tokens and then writes message PWXPC_12104 to the session log.
6.
263
7. 8.
PWXPC passes the restart tokens to PowerExchange. PowerExchange begins extracting change data and passing the data to PWXPC for processing. PWXPC continues processing change data from PowerExchange and commits the data and restart tokens to the targets. This processing continues until the session ends or is stopped.
Recovery Processing
Recover workflows and tasks by selecting the Recover command in Workflow Manager or Workflow Monitor. You can also use the pmcmd recoverworkflow command, or the starttask or startworkflow command with the recovery option. You can use recovery to populate the restart token file with the restart tokens for all sources in a CDC session so that you can then cold start the CDC session or to ensure that the targets and restart tokens are in a consistent state. However, you do not need to recover failed workflows and tasks before you restart them because PWXPC automatically performs recovery processing when you warm start a workflow or task. After you request recovery for a CDC session, the following processing occurs: 1. PWXPC writes the following message in the session log:
PWXPC_12093 [INFO] [CDCRestart] Recovery run requested. Targets will be resynchronized if required and processing will terminate
2. 3.
PWXPC queries the PowerCenter Integration Service about the commit levels of all targets. If all targets in the session have the same commit level, PWXPC skips recovery processing. PWXPC reads the restart tokens from the recovery state tables or file. Restriction: If a CDC session requires recovery processing, PWXPC does not use the restart token file. Consequently, you cannot override restart tokens for sources.
4. 5.
PWXPC creates the initialization restart token file with the reconciled restart tokens. If recovery is required, PWXPC re-reads the change data for the last UOW that was committed to the targets with the highest commit level and flushes the data to those targets with lower commit levels. The PowerCenter Integration Service commits any flushed change data and restart tokens to any relational targets, and updates any nonrelational files. PWXPC updates the restart token file with the final restart tokens, creates the termination restart token file, and ends.
6.
To process change data from the point of recovery, warm start or cold start the workflow or task.
264
STOPTASK Use the PowerExchange STOPTASK command. You can run the STOPTASK command on the source system that is extracting the change data, from the PowerExchange Navigator, or by using pwxcmd or the DTLUTSK utility. When you issue the STOPTASK command, PowerExchange stops the extraction task in the PowerExchange Listener and passes an EOF to the PowerCenter Integration Service, which ends the session. Abort Use the Abort command in Workflow Monitor or the pmcmd aborttask or abortworkflow commands. When you abort a CDC session, the PowerCenter Integration Service waits 60 seconds to allow the readers and the writers time to process all of the data in the pipeline and shut down. If the PowerCenter Integration Service cannot finish processing and committing data within this timeout period, it kills the DTM process and ends the session.
3. 4. 5. 6. 7.
Terminating Conditions
To stop a CDC session based on a user-defined event or at EOL, configure a termination condition in the session. A terminating condition determines when the PWXPC stops reading change data from the sources and ends the CDC session. After PWXPC reaches a terminating condition, it flushes the change data to the targets and passes an EOF to the PowerCenter Integration Service. The PowerCenter Integration Service commits the data to the targets and ends the session. You can configure the following termination conditions for CDC sessions:
Event table processing. If you specify an extraction map table in the Event Table attribute of the PWX CDC
Real Time application connection, PowerExchange, after it reads a change record for the event table, passes EOF to PWXPC to end the CDC session.
Idle Time. If you specify 0 for the Idle Time attribute on a PWX CDC Real Time application connection,
PowerExchange, after it reaches EOL, passes EOF to PWXPC to end the CDC session.
Batch extraction mode. If you use batch extraction mode by configuring a PWX CDC Change application
connection, PowerExchange, after it reads all closed PowerExchange Condense condense files or PowerExchange Logger for Linux, UNIX, and Windows log files, passes PWXPC EOF to end the CDC session.
265
RELATED TOPICS:
Idle Time on page 253 Event Table Processing on page 252
Adding a New Source and Use CURRENT_RESTART to Create Restart Tokens - Example
In this example, a new source table, RRTB_SRC_004, is added to an existing CDC session that contains three sources. The restart points for the existing sources are maintained. For the new source, the example uses the CURRENT_RESTART option in the restart token file to generate a restart token that represents the current end of the change stream. To add a new source and use CURRENT_RESTART to create restart tokens: 1. 2. To stop the workflow, select the Stop command in Workflow Monitor. After the workflow stops, select the Recover Task command in Workflow Monitor to run a recovery session. PWXPC writes the following messages in the session log:
PWXPC_12060 [INFO] [CDCRestart] =============================== Session restart information: ===============================
266
PWXPC also writes the restart tokens in the restart token file specified in the CDC application connection. 3. 4. Edit the mapping, session, and workflow to add the new source, RRTB_SRC_004. Edit the restart token file to specify the CURRENT_RESTART option for the new source. The updated file appears as follows:
<!-- existing sources d1dsn9.rrtb0001_RRTB_SRC_001=000000AD220F00000000000000AD220F0000000000000000 d1dsn9.rrtb0001_RRTB_SRC_001=C1E4E2D34040000000AD0D9C00000000 d1dsn9.rrtb0002_RRTB_SRC_002=000000AD220F00000000000000AD220F0000000000000000 d1dsn9.rrtb0002_RRTB_SRC_002=C1E4E2D34040000000AD0D9C00000000 d1dsn9.rrtb0003_RRTB_SRC_003=000000AD220F00000000000000AD220F0000000000000000 d1dsn9.rrtb0003_RRTB_SRC_003=C1E4E2D34040000000AD0D9C00000000 <!-- new source RESTART1=CURRENT_RESTART RESTART2=CURRENT_RESTART
5.
Cold start the session. PWXPC connects to PowerExchange and generates restart tokens that match the current end of the change stream for the new source, RRTB_SRC_004. PWXPC then passes the restart tokens to PowerExchange to begin change data extraction. Because the restart points for the other sources are earlier than the one just generated for RRTB_SRC_004, PWXPC does not pass any change data to this new source until the first change following its generated restart point is read.
Adding a New Source and Use DTLUAPPL to Create Restart Tokens - Example
In this example, a new source table, RRTB_SRC_004, is added to an existing CDC session containing three sources. The restart points for the existing sources are maintained. The DTLUAPPL utility is used to generate a restart token that represent the current end of the change stream. 1. 2. To stop the workflow, select the Stop command in Workflow Monitor. After the workflow stops, select the Recover Task command from Workflow Monitor to run a recovery session. PWXPC writes the following messages in the session log:
PWXPC_12060 [INFO] [CDCRestart] =============================== Session restart information: =============================== Extraction Map Name Restart Token 1 d1dsn9.rrtb0002_RRTB_SRC_002 000000AD220F00000000000000AD220F0000000000000000 d1dsn9.rrtb0001_RRTB_SRC_001 000000AD220F00000000000000AD220F0000000000000000 d1dsn9.rrtb0003_RRTB_SRC_003 000000AD220F00000000000000AD220F0000000000000000
PWXPC also writes the restart tokens in the restart token file specified in the CDC application connection. 3. 4. Edit the mapping, session, and workflow to add the new source, RRTB_SRC_004. Run DTLUAPPL with RSTTKN GENERATE to generate restart tokens for the current end of the change stream. Use the following DTLUAPPL control cards:
mod APPL dummy DSN7 rsttkn generate mod rsttkn rrtb004 end appl dummy print appl dummy
Add eight zeros to the end of the Sequence value to create the sequence value for the restart token file. 5. Edit the restart token file to add the new source and its tokens.
267
6.
Cold start the session. PWXPC passes these restart tokens to PowerExchange to begin change data extraction. Because the restart points for the other sources are earlier than the one just generated for RRTB_SRC_004, PWXPC does not pass any change data to this new source until the first change following the generated restart point is read.
issues If you run a session with a resume recovery strategy and the session fails, do not edit the state information or the mapping for the session before you restart the session. If a session fails because of transitory or environmental errors, restart the session after you have corrected the errors. When you warm start a CDC session, PWXPC automatically performs recovery, if required. Alternatively, you can recover a CDC session, and then restart the session. If a CDC session fails because of permanent errors, such as SQL or other database errors, you must correct the errors before restarting the CDC session. With some failures, you can correct the error and then restart the CDC session. In other cases, you might need to rematerialize the target table from the source table before you start extracting and applying change data again. If you rematerialize the target table, you should provide restart tokens that match the materialization point in the change stream, and then cold start the CDC session. Restriction: If a CDC session requires recovery processing, you cannot override the restart tokens because PWXPC does not read the restart token file.
268
PWXPC then reads the restart tokens from the state tables or file and writes the message PWXPC_12060 in the session log. The PWXPC_12060 message records the restart tokens for the session and its sources, as shown in the following example:
PWXPC_12060 [INFO] [CDCRestart] =============================== Session restart information: =============================== Extraction Map Name Restart Token 1 d1dsn8.rrtb0004_RRTB_SRC_004 00000FCA65840000000000000D2E004A00000000FFFFFFFF d1dsn8.rrtb0009_RRTB_SRC_009 00000FCA65840000000000000D2E004A00000000FFFFFFFF d1dsn8.rrtb0005_RRTB_SRC_005 00000FCA65840000000000000D2E004A00000000FFFFFFFF d1dsn8.rrtb0006_RRTB_SRC_006 00000FCA65840000000000000D2E004A00000000FFFFFFFF d1dsn8.rrtb0008_RRTB_SRC_008 00000FCA65840000000000000D2E004A00000000FFFFFFFF d1dsn8.rrtb0003_RRTB_SRC_003 00000FCA65840000000000000D2E004A00000000FFFFFFFF d1dsn8.rrtb0002_RRTB_SRC_002 00000FCA65840000000000000D2E004A00000000FFFFFFFF d1dsn8.rrtb0001_RRTB_SRC_001 00000FCA65840000000000000D2E004A00000000FFFFFFFF d1dsn8.rrtb0007_RRTB_SRC_007 00000FCA65840000000000000D2E004A00000000FFFFFFFF
Restart Token 2 C1E4E2D3404000000D21B1A500000000 C1E4E2D3404000000D21B1A500000000 C1E4E2D3404000000D21B1A500000000 C1E4E2D3404000000D21B1A500000000 C1E4E2D3404000000D21B1A500000000 C1E4E2D3404000000D21B1A500000000 C1E4E2D3404000000D21B1A500000000 C1E4E2D3404000000D21B1A500000000 C1E4E2D3404000000D21B1A500000000
Source GMD storage GMD storage GMD storage GMD storage GMD storage GMD storage GMD storage GMD storage GMD storage
If PWXPC detects that recovery is required, PWXPC writes the message PWXPC_12069 in the session log. This message usually includes the restart tokens for both the begin-UOW and the end-UOW for the oldest uncommitted UOW that PWXPC re-reads during recovery. PWXPC usually stores end-UOW restart tokens in the state table or file. However, if you specify a maximum rows threshold, PWXPC can commit change data and restart tokens between UOW boundaries. As a result, the restart tokens might not represent an end-UOW. The following example PWXPC_12069 message include from restart tokens that are the same as those displayed in the example PWXPC_12060 message:
PWXPC_12069 [INFO] [CDCRestart] Running in recovery mode. Reader will resend the the oldest uncommitted UOW to resync targets: from: Restart 1 [00000FCA65840000000000000D2E004A00000000FFFFFFFF] : Restart 2 [C1E4E2D3404000000D21B1A500000000] to: Restart 1 [00000FCA65840000000000000D300D8000000000FFFFFFFF] : Restart 2 [C1E4E2D3404000000D21B1A500000000].
Because this session specifies a maximum rows threshold, the restart token values in the Restart 2 fields in both the from and to restart tokens is the begin-UOW value. The sequence token values in the Restart 1 fields represent the start and end change records in the UOW that is displayed in the Restart 2 field. During recovery processing, PWXPC reads the change data records between the points defined by the two restart token values in the PWXPC_12069 message and then issues a commit for the data and the restart tokens. The PowerCenter Integration Service writes the flushed change data to the target tables and writes the restart tokens to the state table. Then the session ends.
269
CHAPTER 18
270
Where:
int_server is the name of the PowerCenter Integration Service. workflow_name is the name of the workflow that contains the CDC session. session_name is the name of the CDC session. num_records is the cumulative number of records read since the CDC session started.
For example, to direct PowerExchange to write read progress messages after 100 records, the DBMOVER configuration file contains the following parameters:
PRGIND=Y PRGINT=100
When a CDC session that has a session name of s_cdc_DB2_SQL_stats runs, PowerExchange writes the following messages to the PowerExchange log file:
PWX-04587 intserv/wf_cdc_mon_stats/s_cdc_DB2_SQL_stats: Records read=100 PWX-04587 intserv/wf_cdc_mon_stats/s_cdc_DB2_SQL_stats: Records read=200 PWX-04587 intserv/wf_cdc_mon_stats/s_cdc_DB2_SQL_stats: Records read=300
PowerExchange continues to write PWX-04587 messages for this CDC session until the session ends. In the PowerExchange log file, each of these messages has a date and timestamp. You can use this information to determine the speed with which PowerExchange processes change data from the change stream.
the number of insert, update, delete, commit, and total records read for the source.
PWX-04588. PowerExchange writes this message for the entire CDC session. This message includes the total
number of records read for that CDC session. Important: The statistical information in the PowerExchange messages represents the change data that PowerExchange read for a CDC session. This information might not reflect the data that was applied to the targets. For statistical information about the change data applied to the target, review the session log.
271
The messages that PowerExchange writes during each statistics interval contain the following information:
PWX-31255. Cycle time, which is the total time that PowerExchange on the PowerCenter Integration Service
machine spent processing the change data before passing it to PWXPC. This message includes the total percentage of time and average, minimum, and maximum times in microseconds.
PWX-31256. I/O time, which is the time that PowerExchange on the PowerCenter Integration Service machine
spent reading change data from the PowerExchange Listener on the source system. This message includes the I/O percentage of the total time and average, minimum, and maximum times in microseconds.
PWX-31257. Parsing time, which is the time that PowerExchange on the PowerCenter Integration Service
machine spent in column-level processing for the change records on all threads. This message includes the parsing percentage of the total time and average, minimum, and maximum times in microseconds.
PWX-31258. External time, which is the time that PowerExchange on the PowerCenter Integration Service
machine spent combining the change records from all threads back into a single UOW to pass to PWXPC and for PWXPC to flush the data to PowerCenter. This message includes the external percentage of the total time and average, minimum, and maximum times in microseconds.
PWX-31259. Delay time, which is the time that the PowerExchange on the PowerCenter Integration Service
machine waited to receive new change records to process from the PowerExchange Listener on the source system. This message includes the delay percentage of the total time and average, minimum, and maximum times in microseconds. If the parsing and external processing times are higher than the I/O time, you might improve throughput by increasing the number of threads for the CDC session. For the following example, SHOW_THREAD_PERF=10000 is specified in the DBMOVER configuration file. PowerExchange writes the following sample messages after 10,000 change records have been read and the next UOW boundary is reached:
PWX-31254 PowerExchange threading stats for last 10000 rows. Cycle (array) size is 25 rows. 0 out of array occured. PWX-31255 Cycle time: 100% (avg: 5709 min: 4741 max: 7996 usecs) PWX-31256 IO time: 4% (avg: 235 min: 51 max: 1021 usecs) PWX-31257 Parse time: 79% (avg: 4551 min: 4102 max: 5495 usecs) PWX-31258 Extern time: 20% (avg: 1145 min: 618 max: 3287 usecs) PWX-31259 Delay time: 0% (avg: 7 min: 4 max: 165 usecs) PWX-31254 PowerExchange threading stats for last 100000 rows. Cycle (array) size is 25 rows. 0 out of array occured. PWX-31255 Cycle time: 99% (avg: 5706 min: 4735 max: 7790 usecs) PWX-31256 IO time: 4% (avg: 234 min: 51 max: 950 usecs) PWX-31257 Parse time: 79% (avg: 4549 min: 4108 max: 5425 usecs) PWX-31258 Extern time: 20% (avg: 1144 min: 616 max: 3242 usecs) PWX-31259 Delay time: 0% (avg: 7 min: 4 max: 115 usecs)
For example, if two active CDC sessions are active, the command produces the following output:
PWX-00711 Active tasks: PWX-00712 TaskId=1, Partner=10.10.10.01, Port=2480, PwrCntrSess=intserv1/workflow1/cdc_sess1, Application=appl_name1, Status=Active, AM=CAPXRT, Mode=Read, Process=, SessId= PWX-00712 TaskId=2, Partner=10.10.10.02, Port=2480, PwrCntrSess=intserv2/workflow2/cdc_sess2, Application=appl_name2, Status=Active, AM=CAPXRT, Mode=Read, Process=, SessId=
272
You can use the restart tokens in the PWXPC flush messages to monitor the processing of the change data. For each PWXPC flush message, PowerCenter writes a WRT_8160 message after committing change data to the targets. This messages displays the source-based commit statistics. For more information about tuning CDC sessions, see the PowerCenter Performance Tuning Guide.
RELATED TOPICS:
Using Connection Options to Tune CDC Sessions on page 279 Tuning Commit Processing on page 280 Viewing Performance Details in Workflow Monitor on page 273
273
To view performance details in the Workflow Monitor: 1. 2. In Workflow Monitor, right-click a session and select Get Run Properties. In the Properties window, click the Performance area. The Performance Counter column displays a data source qualifier from the CDC session. The Counter Value column displays the PowerCenter node name. 3. To view performance details, select the data source qualifier. The following table describes the fields that PowerCenter displays in the Performance Counter column in the Performance area:
Performance Counter Field 1 PowerExchange CDC Reader Status: Description Current status of the PWXPC reader, as indicated by one of the following values: - No Data To Process. In the last read, PowerExchange did not pass data to PWXPC. - Restart Advance. PowerExchange passed restart tokens to PWXPC but did not pass change data. - Processing Data. PowerExchange passed change data and restart tokens to PWXPC for processing. 1.1 Time Last Data Row Read Time, in milliseconds, when PWXPC last received data from PowerExchange. Number of change records received from PowerExchange during the current statistics interval. Number of UOWs received from PowerExchange during the current statistics interval. Number of change records read per second by PowerExchange during the current statistics interval. The value varies, depending on the quantity of change data being processed: - If PowerExchange is reading large amounts of change data from the change stream, this value is usually large and reflects the maximum PowerExchange throughput. - If PowerExchange is waiting for change data at the end of the change stream, this value is small. The following factors can increase this value: - Large network bandwidth - CDC offload processing - Multithreaded processing 1.5 Mean Data Read Rate (rows/sec) Mean number of change records that PowerExchange read per second, from the start of the CDC session. Maximum number of change records that PowerExchange read per second during a statistics interval, from the start of the CDC session.
274
Description Overall status of the CDC session, as indicated by one of the following values: - Idle. Waiting for change data. - Processing Data. Data is being processed. - Recovery Disabled. If a resume recovery strategy is not selected, the PWXPC CDC reader cannot obtain PowerCenter status information.
2.1 Time Of Last Commit 2.2 Rows Processed To Commit In Current Interval
Timestamp of the last commit to a target. Number of change records flushed by the PWXPC reader during the current statistics interval. This count includes the change records in all committed UOWs. Some of these UOWs might have started before the current statistics interval began. Processing rate, in number of change records per second, for the change records for the UOW that was last committed during the current statistics interval. This rate includes reading the UOW from PowerExchange and committing the change data to the targets. The following factors can influence this rate: - Number of available DTM buffers - Responsiveness of the target - Number of transformations in the pipeline
Mean number of change records per second for the rate displayed in 2.3 Commit Rate In The Current Interval. This value differs from the 2.6 Mean Throughput Rate in that it takes into account only the time when the session is actively processing data and does not reflect processing overlap in PowerCenter.
Maximum number of change records per second for the commit rate displayed in 2.3 Commit Rate In The Current Interval, recorded from the start of the CDC session. Mean rate of processing for the CDC session. Maximum throughput for the CDC session. Number of commits processed to completion by the target during the current statistics interval. Number of commits that were issued by the PWXPC reader but that have not yet reached the targets. A large value might indicate problems with target responsiveness.
2.6 Mean Throughput (rows/sec) 2.7 Max Throughput (rows/sec) 2.8 Commits In Current Interval
3 Capture Timestamps 3.1 Timestamp On Last End Packet Read The capture timestamp, DTL__CAPXTIMESTAMP, from the last UOW read for a source in the CDC session. The capture timestamp, DTL__CAPXTIMESTAMP, from the last UOW committed to the target.
275
Performance Counter Field 4 Totals 4.1 Elapsed Time 4.2 Rows Read 4.3 End Packets Read 4.4 Time in PowerExchange Processing 4.5 Rows Processed
Description
Total elapsed time for the CDC session. Total number of change records read from PowerExchange. Total number of UOWs read. Total time of PowerExchange processing for the CDC session. Total number of change records processed through PowerCenter and committed to the targets. Total number of flushes that the PWXPC reader issued and that were committed to the targets. Value that results from subtracting 3.2 Timestamp On Last Target Commit value from the 2.1 Time Of Last Commit value. If this result is negative, the value is enclosed in parentheses.
processing for change data to the PowerCenter Integration Service machine that runs the CDC session. By distributing processing, you can reduce PowerExchange processing overhead on the system on which the change data resides. You can also use CDC offload processing with the PowerExchange Logger for Linux, UNIX, and Windows to capture change data on a different machine. CDC sessions can then extract change data from the PowerExchange Logger log files on that machine, rather than from the change stream on the original source machine.
Multithreaded processing. If you use CDC offload processing, you can optionally use multithreaded
processing to attempt to increase throughput. Multithreaded processing uses multiple threads on the PowerCenter Integration Service machine to perform the offloaded PowerExchange processing.
276
APPBUFSIZE=size Defines the maximum size, in bytes, of the buffer that PowerExchange uses to read or write data. This data buffer can exist on a source or target system. If you are applying change data from the change stream on the source system to a remote target system, PowerExchange usually writes change data to its application data buffer on the source system until the buffer is full. PowerExchange then sends the data to a sending TCP/IP buffer on the source system. TCP/IP transports the change data to a receiving TCP/IP buffer on the target system. PowerExchange on the target system reads the change data from the TCP/IP buffer into its application data buffer. PWXPC then reads the change data and passes it to PowerCenter. PowerCenter processes the data and applies it to the targets. Enter an APPBUFSIZE value that is greater than the maximum size of any single data row to be sent. Valid values are from 34816 through 1048576. Default is 128000. If the target system is remote, enter the same APPBUFSIZE value in the DBMOVER configuration files on the source and target systems. Also, verify that the APPBUFSIZE value matches the TCPIPBUFSIZE value in the same DBMOVER configuration file. The TCPIPBUFSIZE parameter specifies the maximum size of the TCP/IP buffer. If the APPBUFSIZE value is not optimal, PowerExchange writes the PWX-01295 message in the PowerExchange log file on the source system. This message includes a recommended minimum value. COMPRESS={Y|N} Defines whether PowerExchange uses its proprietary compression algorithm to compress data before it is sent to TCP/IP for transmission to the remote platform. Default is Y. PowerExchange uses the COMPRESS setting in the DBMOVER configuration file on the remote system that contacts the PowerExchange Listener. On the PWX CDC application connection, you can override the compression setting in the DBMOVER configuration file. If you enable compression, the CPU consumption of the PowerExchange Listener on the source system might increase. To avoid unnecessary CPU consumption, set COMPRESS to N in the PowerExchange DBMOVER configuration file on the PowerCenter Integration Service machine. CAPI_CONNECTION=( ...,MEMCACHE=cache_value, ...)) Amount of memory cache, in kilobytes, that is allocated to reconstruct complete UOWs. You can specify the MEMCACHE parameter on the following CAPI_CONNECTION statement types:
MSQL UDB UOWC
PowerExchange keeps all changes in each UOW in cache until it processes the end-UOW record, which is the commit record. If the MEMCACHE value is too small to hold all of the changes in a UOW in cache, the changes spill to a disk file. Valid values are from 1 through 519720. Default is 1024. You might need to increase this value if you have large UOWs. PowerExchange processes a UOW more efficiently if all of the changes are cached in memory. If a UOW might be larger than 1024 KB in size, increase this parameter. For most environments, a value of 10240 (10 MBs) is a good starting value. Tip: PowerExchange uses the MEMCACHE value to allocate cache memory to each connection for change data extractions. To prevent excessive memory use by a PowerExchange Listener, use a reasonable value for MEMCACHE based on your extraction processing needs and the number of CDC sessions that run concurrently.
277
CAPI_CONNECTION=( ...,RSTRADV=rstr_secs, ...)) Number of seconds that PowerExchange waits before advancing the restart tokens for a data source by returning an empty unit of work (UOW). You can specify the RSTRADV parameter on the following CAPI_CONNECTION statement types:
MSQL UDB UOWC
Empty UOWs contain restart tokens only, without any data. PowerExchange uses the restart tokens to determine the start point in the change stream for change data extractions. The wait period for the RSTRADV value starts after a UOW for a data source is processed. PowerExchange resets the wait period after it reads the next UOW for that source or when it returns an empty UOW because the wait period expires. For sources with low change activity, you can use the RSTSADV parameter to periodically advance to the restart tokens for those sources. Advancing the restart tokens speeds up restart processing for CDC sessions by minimizing the amount of change data that must be reprocessed. For example, if you specify RSTRADV=5 and changes are not made to the data source for five seconds, PowerExchange returns an empty UOW to advance the restart point for the data source. Valid values are from 0 through 86400. If you do not specify RSTRADV, PowerExchange does not return empty UOWs to advance the restart point. Consider the following issues when you set RSTRADV on CAPI_CONNECTION statements in the PowerExchange DBMOVER configuration file:
A value of 0 adversely affects performance. PowerExchange returns an empty UOW with restart tokens to
expected. When the UOW counter matches, PWXPC flushes its data buffer and commits restart tokens to the targets. Excessive flush activity can adversely affect performance on the PowerCenter Integration Service machine and target databases. LISTENER=(node_name,TCPIP,port,send_bufsize,receive_bufsize,send_msgsize,receive_msgsize, ...) Defines a port on which a PowerExchange Listener listens for local or remote connections. The positional parameters the send_bufsize, receive_bufsize, send_msgsize, and receive_msgsize define the send and receive buffer and message sizes. If you do not specify values for these parameters, PowerExchange uses the operating system defaults, which vary based on operating system. To maximize throughput, consider increasing the send and receive buffer and message sizes on the LISTENER statement on the source system. Contact your network administration to determine the best values to use on your system. Note: Do not specify values for the send and receive buffer and message sizes that exceed the TCP maximum receive buffer size. NODE=(node_name,TCPIP,hostname,port,send_bufsize,receive_bufsize,send_msgsize,receive_msgsize, ...) Defines a port the IP information that PowerExchange uses to communicate with a remote PowerExchange Listener. The positional parameters the send_bufsize, receive_bufsize, send_msgsize, and receive_msgsize define the send and receive buffer and message sizes. If you do not specify values for these parameters, PowerExchange uses the operating system defaults, which vary based on operating system. To maximize throughput, consider increasing the send and receive buffer and message sizes on the NODE statement on the target system. Contact your network administration to determine the best values to use on your system.
278
Note: Do not specify values for the send and receive buffer and message sizes that exceed the TCP maximum receive buffer size. TCPIP_ASYNC={Y|N} Defines whether PowerExchange uses asynchronous network I/O when reading change data. If you specify Y, PowerExchange writes change data to network buffers and reads change data from the change stream asynchronously, which might improve throughput for CDC sessions. Default is N. Restriction: This parameter is not supported for AIX, i5/OS, or Windows. TRACE=(trace_id,trace_level,99) Defines PowerExchange diagnostic traces that Informatica Global Customer Support uses to solve problems with PowerExchange code. TRACE statements can severely impact PowerExchange performance. You should use them only at the direction of Informatica Global Customer Support. To enhance performance, remove or comment out all TRACE statements in the DBMOVER configuration files on all systems.
RELATED TOPICS:
Using Connection Options to Tune CDC Sessions on page 279
Encryption Type
Image Type
Set to AI.
UOW Count
To improve efficiency on the PowerCenter Integration Service machine and the target databases, reduce commit processing.
To improve efficiency on the PowerCenter Integration Service machine and the target databases, reduce commit processing.
279
Description Select the maximum time, in seconds, that PowerExchange on the source platform waits for more change data before flushing data to PWXPC on the PowerCenter Integration Service platform. Default is 2. Maximum number of change records that PWXPC reads from the source before it flushes the data buffer to commit the change data to the targets. Default is 0, which means that PWXPC does not use maximum rows. Minimum number of change records that PowerExchange reads from the change stream before it passes any commit records to PWXPC. Default is 0, which means that PWXPC does not use minimum rows. Select this option to request CDC offload processing. Default is No. If you select Offload Processing, you can also set this option to have PowerExchange use multiple threads for the offloaded processing on the PowerCenter Integration Service machine. Enter the number of threads that you want PowerExchange to use. Valid values are from 1 through 64. Default is 0, which means that PowerExchange does not use multithreaded processing. If the Worker Threads value is greater than zero, the size of the storage array, in number of records, for the threads. Valid values are from 25 through 100000. Default is 25.
To improve efficiency on the PowerCenter Integration Service machine and the target databases, reduce commit processing.
If your UOWs contain only a few changes, select a larger value for this option to increase the size of the UOWs.
Offload Processing
For more information about offload processing, see CDC Offload and Multithreaded Processing on page 281. For more information about offload processing, see CDC Offload and Multithreaded Processing on page 281.
Worker Threads
Array Size
Use 25. Warning: If you specify a large value, have large records, or run many sessions that use multithreaded processing, you might experience memory shortages on the PowerCenter Integration Service machine.
For more information about connection options, see PowerExchange Interfaces for PowerCenter.
RELATED TOPICS:
Tuning Commit Processing on page 280 CDC Offload and Multithreaded Processing on page 281
280
the data can be processed and written to the targets. To resolve this issue, you can adjust the values that you set for following commitment control options on the PWX CDC connection:
UOW Count. If the session log contains mostly PWXPC_10081 flush messages, you might need to increase
need to increase the value for this option. PWXPC might also flush change data too frequently because the PWX CDC connection in the CDC session uses too many of the commitment control options. In this case, use a single option to control commit processing and disable the unused options. If your change data has many small UOWs, you can use the Minimum Rows Per commit option to create larger UOWs of more uniform size. PowerExchange and PWXPC can process a few UOWs of larger size more efficiently than many small UOWs. By using the Minimum Rows Per commit option to increase the size of UOWs, you can improve CDC processing efficiency. The following additional factors can also affect the efficiency with which change data is applied to the targets:
Buffer Memory. The DTM Buffer Size and Default Buffer Block Size values can impact the performance of
the CDC session. If you have enabled the collection of performance details in the CDC session, review the difference between performance counters 4.5 Time in PowerExchange Processing and 4.6 Elapsed Time. If the elapsed time is much larger that the PowerExchange processing time, buffer memory constraints might exist. For more information about tuning buffer memory, see the PowerCenter Performance Tuning Guide.
Target database. The performance of the target database can impact the performance of the CDC session.
Contact your database administrator to ensure that access to the database is optimized.
When you use CDC offload processing with real-time extractions, the change data remains on the source system and PowerExchange moves the column-level processing to the PowerCenter Integration Service machine that runs the CDC session. For MVS, DB2 for i5/OS, and Oracle sources, PowerExchange also moves the UOW Cleanser processing to the PowerCenter Integration Service machine. When you use CDC offload processing with the PowerExchange Logger for Linux, UNIX, and Windows, PowerExchange does the following processing:
Reads the change data from the source system For MVS, DB2 for i5/OS, and Oracle sources, moves the UOW Cleanser processing to the machine on which
the PowerExchange Logger is running The PowerExchange Logger stores the change data in log files on the Linux, UNIX, or Windows machine. CDC sessions can then use continuous extraction mode to extract the change data from the PowerExchange Logger log files instead of from the source system. You can use multithreaded processing for CDC sessions that select offload processing. By default, PowerExchange uses a single thread to process change data on the PowerCenter Integration Service machine.
281
When you select multithreaded processing, PowerExchange uses multiple threads to process the change records in each UOW.
the remote system. For real-time extraction mode, configure the CAPI_CONNECTION statements in the dbmover.cfg configuration file on the PowerCenter Integration Service machine. For the PowerExchange Logger for Linux, UNIX, and Windows, configure the CAPI_CONNECTION statements in the dbmover.cfg configuration file that the PowerExchange Logger uses.
If you select the Idle Time option on the connection, you can only select values -1 or 0. PWXPC sets values
larger than 0 to 0.
PowerExchange does not invoke MVS RACF security authorization for change data extraction. Specifically,
partial condense processing by selecting Part in the Condense list in the PowerExchange Navigator.
The PowerExchange Logger for Linux, UNIX, and Windows cannot process capture registrations from MVS or
i5/OS that are configured for full condense processing. You must either change these registrations to use partial condense processing or exclude them by using group definition files.
Each PowerExchange Logger for Linux, UNIX, and Windows process must read all of the capture registrations
that it uses from a single CCT file. Also, each PowerExchange Logger process must store the names of its log files in a unique CDCT file.
PowerExchange does not support batch extraction mode for change data that is stored in PowerExchange
Logger log files on a system that is remote from where the extraction maps reside. In this situation, you must use continuous extraction mode.
multi-CPU server on the PowerCenter Integration Service platform while processing change data. When a single CPU is consumed, spreading the PowerExchange processing across multiple threads improves throughput. Otherwise, additional threads do not improve throughput.
If the network processing between the source and PowerCenter Integration Service machines is slow, try
specifying 1 for the Worker Threads option to help improve throughput. When you specify one or more worker
282
threads, PowerExchange overlaps network processing with the processing of the change data on the PowerCenter Integration Service machine.
For optimal performance, the value for the Worker Threads option should not exceed the number of installed
Offload Processing
2.
Copy the CAPI_CONNECTION statements from the DBMOVER configuration file on the source system to the dbmover.cfg configuration file on the PowerCenter Integration Service machine. For MVS sources, remove all MVS-specific parameters from the UOWC CAPI_CONNECTION statement. Use the following table to select the correct CAPI_CONNECTION statement types to configure, based on source type:
CDC Source Type DB2 for i5/OS DB2 for Linux, UNIX, and Windows CAPI_CONNECTION Statements AS4J and UOWC UDB
283
RELATED TOPICS:
Extracting Change Data Captured on a Remote System on page 290
Configuring pwxccl.cfg
Configure the pwxccl.cfg configuration file for the PowerExchange Logger on the remote system where the PowerExchange Logger will run. PowerExchange provides a sample pwxccl.cfg file in the PowerExchange installation directory, which you can copy and then edit. For CDC offload processing, customize the following parameters: CAPTURE_NODE Specifies the node name of the system on which the change data was originally captured. This node name must match the node name in a NODE statement in the dbmover.cfg configuration file that the PowerExchange Logger uses. CAPTURE_NODE_EPWD Specifies an encrypted password for the CAPTURE_NODE_UID user ID.
284
If you specify CAPTURE_NODE_UID, you must specify a password for that user ID by using either CAPTURE_NODE_EPWD or CAPTURE_NODE_PWD. If you specify CAPTURE_NODE_EPWD, do not also specify CAPTURE_NODE_PWD. Tip: You can create an encrypted password in the PowerExchange Navigator by selecting File > Encrypt Password. CAPTURE_NODE_PWD Specifies a clear text password for the CAPTURE_NODE_UID user ID. If you specify CAPTURE_NODE_UID, you must specify a password for that user ID by using either CAPTURE_NODE_EPWD or CAPTURE_NODE_PWD. If you specify CAPTURE_NODE_PWD, do not also specify CAPTURE_NODE_EPWD. CAPTURE_NODE_UID Specifies a user ID that permits PowerExchange to read capture registrations and change data on the remote node that is specified in the CAPTURE_NODE parameter. Whether this parameter is required depends on the operating system of the remote node and the SECURITY setting in the DBMOVER configuration file for the PowerExchange Listener on that node. If the CAPTURE_NODE is an MVS or i5/OS system with a SECURITY setting of 1 or 2, you must specify a valid operating system user ID. If the SECURITY setting is 2, PowerExchange uses the specified user ID to control access to capture registrations and change data. However, if the SECURITY setting is 1, PowerExchange uses the user ID under which the PowerExchange Listener job runs. If the CAPTURE_NODE is an MVS or i5/OS system with a SECURITY setting of 0, do not specify this parameter. PowerExchange uses the user ID under which the PowerExchange Listener job runs to control access to capture registrations and change data. If the CAPTURE_NODE is a Linux, UNIX, or Windows system, specify a user ID that is valid for the data source type:
For a DB2 for Linux, UNIX, or Windows source, enter a valid operating system user ID that has DB2
LogMiner.
For a SQL Server instance that uses SQL Server Authentication, enter a database user ID that permits
access to the SQL Server distribution database. For a SQL Server instance that uses Windows Authentication, PowerExchange uses the user ID under which the PowerExchange Listener was started. In this case, do not specify this parameter unless you want to specify another user. CHKPT_BASENAME Specifies an existing path and base file name to use for generating the PowerExchange Logger checkpoint files. CONDENSENAME Optional. Specifies a name for the command-handling service for a PowerExchange Condense process to which pwxcmd commands are issued. You can issue pwxcmd commands from a Linux, UNIX, or Windows system to a PowerExchange Condense process running on a z/OS system. This service name must match the service name in the associated SVCNODE statement in the DBMOVER configuration file.
285
CONN_OVR Specifies the name of the CAPI_CONNECTION statement in the dbmover.cfg file that the PowerExchange Logger uses. This CAPI_CONNECTION statement defines the connection to the change stream for the data source type. For data sources that include UOW Cleanser (UOWC) CAPI_CONNECTION statements, specify the name of this statement. For all other data sources, specify the CAPI_CONNECTION name for the data source type. DB_TYPE Specifies the data source type. Use the following table to select the correct DB_TYPE to configure, based on source type:
CDC Source Type Adabas Datacom DB2 for i5/OS DB2 for Linux, UNIX, and Windows DB2 for z/OS IDMS log-based IMS Microsoft SQL Server Oracle VSAM DB_TYPE Value ADA DCM AS4 UDB DB2 IDL IMS MSS ORA VSM
DBID Specifies the source collection identifier that is defined in the registration group. The PowerExchange Navigator displays this value in the Resource Inspector when you open the registration group. When used with DB_TYPE, it defines selection criteria for capture registrations in the CCT file. Use the following table to select the correct DBID value, based on source type:
CDC Source Type Adabas DBID Value The Instance name that is displayed for the registration group in the PowerExchange Navigator. One of the following values: - The MUF Name value that is displayed for the registration group in the PowerExchange Navigator. - For Datacom synchronous CDC, the MUF parameter value in the DTLINPUT data set specified in the MUF JCL. - For Datacom table-based CDC, the REG_MUF parameter value in the ECCRDCMP member of the RUNLIB library.
Datacom
286
DBID Value One of the following values: - The Instance name that is displayed for the registration group in the PowerExchange Navigator. - The INST parameter value in the - AS4J CAPI_CONNECTION statement in the DBMOVER member of the CFG file. The Database name that is displayed for the registration group in the PowerExchange Navigator. One of the following values: - The Instance name that is displayed for the registration group in the PowerExchange Navigator. - The RN parameter value from the DB2 statement in the REPDB2OP member of the RUNLIB library. One of the following values: - The Logsid value that is displayed for the registration group in the PowerExchange Navigator. - The LOGSID parameter value in the ECCRIDLP member of the RUNLIB library. One of the following values: - The IMSID value that is displayed for the registration group in the PowerExchange Navigator. - For IMS log-based CDC, the first parameter of the IMSID statement in the CAPTIMS member of the RUNLIB library. The Instance name that is displayed for the registration group in the PowerExchange Navigator. ORCL and UOWC The Instance name that is displayed for the registration group in the PowerExchange Navigator.
IDMS Log-based
IMS
Oracle VSAM
EPWD A deprecated parameter. Use CAPTURE_NODE_EPWD instead. If both CAPTURE_NODE_EPWD and EPWD are specified, CAPTURE_NODE_EPWD takes precedence. EXT_CAPT_MASK Specifies an existing path and unique prefix to be used for generating the PowerExchange Logger log files. PWD A deprecated parameter. Use CAPTURE_NODE_PWD instead. If both CAPTURE_NODE_PWD and PWD are specified, CAPTURE_NODE_PWD takes precedence. RESTART_TOKEN and SEQUENCE_TOKEN Optionally, specifies a restart point for starting change data processing when the PowerExchange Logger is cold started. The format of the restart tokens varies based on data source type and, if specified, must match the format required by the DB_TYPE specified. If you do not specify these parameters, the PowerExchange Logger uses the end of the change stream as the restart point when cold started.
287
UID A deprecated parameter. Use CAPTURE_NODE_UID instead. If both CAPTURE_NODE_UID and UID are specified, CAPTURE_NODE_UID takes precedence. For more information about the pwxccl.cfg parameters, see the PowerExchange CDC Guide for Linux, UNIX, and Windows.
288
Copy the CAPI_CONNECTION statements from the DBMOVER configuration file on the source system where the change data resides. Use the following table to select the correct CAPI_CONNECTION statement types to configure, based on source type:
CDC Source Type DB2 for i5/OS DB2 for Linux, UNIX, and Windows Microsoft SQL Server MVS sources Oracle CAPI_CONNECTION Statements AS4J and UOWC UDB MSQL LRAP and UOWC ORCL and UOWC
For MVS sources, remove MVS-specific parameters from the UOWC CAPI_CONNECTION statement. SVCNODE Optional. Specifies the TCP/IP port on which a command-handling service for a PowerExchange Listener or PowerExchange Condense process listens for pwxcmd commands. TRACING Optional. Enables alternative logging. By using alternative logging, you can separate PowerExchange Logger messages from other PowerExchange messages.
289
Note: If the remote system also runs the PowerCenter Integration Service, you can use local mode to extract the data instead of a PowerExchange Listener.
the change data was originally captured. The PowerExchange Listener on the original source system stores the capture registrations.
Map Location User and Map Location Password. Specify a user ID and password that can access the
capture registrations for the change data. If the PowerExchange Listener on the source system is running on MVS or i5/OS and is configured with security, specify a valid operating system user ID. You do not need to specify this parameter if the PowerExchange Listener is running without security. If the PowerExchange Listener on the data source system is running on Linux, UNIX, or Windows, specify a valid database user ID.
CAPI Connection Name Override. Specify the name of the CAPX CAPI_CONNECTION in the dbmover.cfg
configuration file used by the PowerExchange Listener on the remote system where the change data is stored in PowerExchange Logger log files. For more information about configuring PWX CDC Real Time application connections, see PowerExchange Interfaces for PowerCenter.
To extract change data from MVS by using CDC offload processing: 1. Configure the dbmover.cfg configuration file on the PowerCenter Integration Service machine for CDC offload processing.
290
Copy the UOWC and LRAP CAPI_CONNECTION statements from the DBMOVER member on MVS to the dbmover.cfg configuration file on the PowerCenter Integration Service machine. Remove any MVS-specific parameters from the UOWC CAPI_CONNECTION. In this example, the following CAPI_CONNECTION statements are copied into the dbmover.cfg and the DATACLAS parameter is removed:
CAPI_CONNECTION=(NAME=MV2UOWC, TYPE=(UOWC,CAPINAME=M2_LRAP,RSTRADV=600,MEMCACHE=20480)) CAPI_CONNECTION=(NAME=MV2_LRAP, TYPE=(LRAP,LOG=MV2L,AGENT=MV2A))
2. 3.
Stop the CDC session. Update the following options on the PWX CDC Real Time application connection in the CDC session:
Select Yes for the Offload Processing option. In the CAPI Connection Name option, specify the name of the UOWC CAPI_CONNECTION statement. In
The DB2 subsystem on the MVS system that contains the tables that are registered for capture is called DSN9. The following procedure assumes that PowerExchange is installed and configured on the UNIX system where the PowerExchange Logger for Linux, UNIX, and Windows will run. To capture and extract change data from MVS on UNIX: 1. Configure the PowerExchange Logger for Linux, UNIX, and Windows on the UNIX system by performing the following actions:
Configure the pwxccl.cfg configuration file. Configure the dbmover.cfg configuration file on the PowerExchange Logger machine.
291
2. 3.
After you configure the dbmover.cfg and the pwxccl.cfg configuration files, start the PowerExchange Listener and PowerExchange Logger on the UNIX system. On the PowerCenter Integration Service machine, customize the following statements:
NODE statement to point to the PowerExchange Listener on the UNIX system NODE statement to point to the PowerExchange Listener on the MVS system
In this example, the following statements are added to the dbmover.cfg on the Integration Service machine:
NODE=(unix1,TCPIP,unix1,2480) NODE=(MVS2,TCPIP,prodmvs2,2480)
4. 5.
Create and configure the PowerCenter mapping, session, and workflow to extract the change data. To extract the change data from the UNIX systems, configure a PWX DB2zOS CDC Real Time application connection in the CDC session. In this example, specify the following options to point to the UNIX system for the change data, the MVS system for the extraction maps, and the CAPX CAPI_CONNECTION to use continuous extraction mode:
For the Location option, specify unix1 For the Map Location option, specify MVS2 For the CAPI Connection Name option, specify CAPXDSN9
6.
Cold start the CDC session to extract the change data from the PowerExchange Logger log files on the UNIX system.
RELATED TOPICS:
Configuring pwxccl.cfg on page 284 Configuring dbmover.cfg on the PowerExchange Logger Machine on page 288
292
APPENDIX A
PowerExchange repository and the capture process. PowerExchange writes this informational message to the log data set for the PowerExchange Agent each time the change interface component (CIC) checks the repository to determine whether to capture changed data for a specific file or database.
- For DB2, check message number PWXEDM172808I, which lists the source tables from which the ECCR is
capturing changes.
For DB2, verify that the source tables are defined with the DATA CAPTURE CHANGES option. Verify that your sources are registered correctly in the PowerExchange Navigator. Verify that the correct PowerExchange Agent repository is being used.
293
To determine which PowerExchange repository is allocated to the PowerExchange Agent, check the EDMSLOG associated with the PowerExchange agent's startup procedure. Search for message PWXEDM172119I to find the name of the PowerExchange repository that the PowerExchange agent is accessing.
Verify that the source is being updated with changes.
294
Information Needed Version number Source database type Target database type
PowerCenter Version
Copy of all output Copy of all output Description of the problem Record of all console messages Description of your troubleshooting procedure
295
INDEX
A
activating the CICS VSAM ECCR 124 active batch ECCR 117 ADASEL_DSN 108 adding active log data set definitions 57 Agent Security 34 AGENTGEN 25 AgentID 25 AGENTID 22 allocating restart data sets 56 altering the DB2 table structure 178 APPBUFSIZE configuration parameter for PowerExchange Listener 276 application name configuring for CDC sessions 254 application names 235 application recover considerations 121 APPLID EDMKOPER option 124 archive log rules and guidelines 53 archive_options statement 43 AVERAGE DELAY 169
B
backing up PowerExchange Condense files 102 BackToBackDelay 27 batch job requirements 117 batch mode 79 BYPASS 136
C
CA NAME 158 Cache1 27 Cache2 27 calculating the data set size 55 canceling the condense job 99 CAPI connection statements LRAP parameters 13 UOWC parameters 15 CAPT_IMAGE 85 CAPT_STATS 200 CAPTPARM 82, 84, 96 catalog tables data capture changes 174 CCERR 22 CCT DTLAMCPR 81 CCVACTIVE 25 CDC CICS/VSAM 122 CDC data map
extraction map 259 CDC sessions commit processing 241 default restart points 236 methods of starting 236, 262 offload processing 246 recovery example 268 restart points for warm starts 237 restart token file 259 stopping 264 CDC tables Datacom 141 CDCL program 141 CDCM program 141 CDCU program 141 CENTURY 22 changing IDMS structures 195 changing the size of existing active log data sets 58 changing VSAM structures 121, 129 checkpoint files 82, 85 checkpoint record type 82 CHKPT_BASENAME 85, 96 CHKPT_NUM 85 CHKPT_PRIM_ALLOC 85 CHKPT_SCND_ALLOC 85 CHKPT_VOLSERS 85 CHKSCHEM 160 CI_INTV 169 CI_PSEC 169 CI_TOT 169 CICS/VSAM CDC 122 CICS/VSAM ECCR controlling 127 stopping 128 CLOSE 205 close (pwxcmd) 19 closeforce (pwxcmd) 19 closing a VSAM dataset 120, 128 CmdAuthCheck 25 CmdPrefix 25 cold start 96 COLDSTART 108, 200 COLL_END_LOG 85, 108 commands DISPLAY SUBSYS 222 IMS 222 SSR xEDP-ABORT 221 SSR xEDP-CONTINUE 221 SSR xEDP-STAT 221 SSR xEDP-STATWTO 221 commit processing configuring for CDC sessions 255 controlling with connection attributes 242 examples 244 in CDC sessions 241
296
minimum and maximum rows per commit 243 target latency 243 COND_CDCT_RET_P 85 condense (pwxcmd) 102 CONDENSE command 79 Condense files 82 CONDENSE_SHUTDOWN_ TIMEOUT 85 CONDF_FULL_FILE_CTL 85 CONDF_PART_BLKSZ 85 CONDF_PART_DATACLAS 85 CONDF_PART_LRECL 85 CONDF_PART_MGMTCLAS 85 CONDF_PART_STORCLAS 85 CONDF_PRIM_ALLOC 85 CONDF_SCND_ALLOC 85 CONDF_TYPE 85 CONDF_UNIT 85 CONDF_VOL 85 Configuration Parameters 22 configuring MVS for the PowerExchange Logger 39 post-log merge 70 the edmuparm module options 40 the post-log merge job 72 the PowerExchange Logger 39 CONN_OVR 85 continuous mode 79 controlling the PowerExchange Logger 49 creating log and emergency restart data sets 46 CSMT queue 122 customizing the PowerExchange Logger JCL 47
D
data set size determination 54 data spaces SCOPE=COMMON 21 data-sharing environment 157, 177 Datacom table-based CDC 139 DATAMAP 204 DATE 22 DB_TYPE 85, 108, 200 DB2 V8 data capture changes requirement 157, 174 DB2-LOG LOCATION 169 DB2-LOG TIMESTAMP 169 DBID 85, 108, 200 DCOMDLF 136 DCOMPLF 136 DCPARMLF 136 DCT records 82 DDASSOR1 106 DDDATAR1 106 DDWORKR1 106 deactivating registrations 179 define statement syntax overview 40 define_log command 63 defining log data sets 46, 63 deleting log data sets 64 registrations 179 dispatching priorities 74 DISPLAY EDMC keyword 127
PowerExchange Agent command 118 DISPLAY TRACE 205 displaystatus (pwxcmd) 102 DRAIN 32 DSPACE_ID 133, 134 DTL__CAPXRESTART1 sequence token 258 DTL__CAPXRESTART2 restart token 258 DTLADKSD 106 DTLAMCPR CCT 81 DTLCACDC 81 DTLCACFG 106, 108, 111, 204 DTLCFG PowerExchange configuration file 81 DTLCUIML 207 DTLIDLC DTLULOGC utility 189 DTLIDLL DTLULOGC utility 189 DTLINPUT parameters 133 DTLKEY 204 DTLLOG 204 DTLMSG 204 DTLOUT 84 DTLUAPPL displaying restart tokens 258 DTLUCSR2 Utility scan program for SR2 and SR3 records 190 DTLULCAT catalog utility 189 DTLULOGC utility 189 DTLUTSK utility 264
E
EC PERMIL 160 ECCR cold start 165, 186 data capture changes 174 Datacom table-based 141 failure 171, 195 log-based 197 optimized processing messages 174 output 119 overview 20, 105, 117 performance 174 synchronous 209 ECCRIDLP ECCR parameter file 186 ECCRNAME 108, 195, 200 EDMCMUOW restart processing 118 EDMKOPER 124 edmlrprm parameters 49 EDMPARMS 28, 81 EDMSCTL 28 EDMSLOG 31 END 133, 134, 136 enqueues considerations 22 Environmental Change Capture Routine 105 environmental change capture routines 20 ERROR_LOG 200 ERT records 82 ESLLIB 22 EXEC 28
Index
297
EXT_CAPT_MASK 85 extraction map columns, PowerExchange-generated DTL__BI_columnname 228 DTL__CAPXACTION 228 DTL__CAPXCASDELIND 228 DTL__CAPXRESTART1 228 DTL__CAPXRESTART2 228 DTL__CAPXRRN 228 DTL__CAPXTIMESTAMP 228 DTL__CAPXUOW 228 DTL__CAPXUSER 228 DTL__CI_columnname 228 extraction maps PowerExchange-generated columns 228
J
JCL 107 JOBLIB 28 jobname EDMKOPER option 124
K
KEY_CHANGE_ALW 85
L
LAST DELAY 169 linkage index 21 listtask (pwxcmd) 19, 270, 272 LISTTASK command 19, 272 LNKLST 124 Local Mode adding log restrictions 185 Location 27 LOCATION 134 log catalog adding Logs in Order 185 Log Feeder 136 log start sample report CICS VSAM ECCR 126 log-based ECCR 197 LogBuffLimit 25 LogClass 25 LOGCLOSE 32 LOGGER 22 logging_options statement 45 LogHold 25 LogLimit 25 LOGOPEN 32 LOGRGRP 22 LOGSPIN 32 long names PowerExchange restrictions 158 LRAP CAPI_CONNECTION parameters parameters and syntax 13
F
FAKEIT 136 FILE_SWITCH_CRIT 79, 85 FILE_SWITCH_VAL 79, 85 FILE_TYPE DTLULCAT utility 189 FILESWITCH 82 fileswitch (pwxcmd) 82, 102 FILESWITCH command 79 formatting log data sets 62
G
GetIMSRBAByLevel synchronous ECCR 211 group source description 238 processing CDC data for multiple source definitions 240 GROUPDEFS 85
H
HELP EDMC keyword 127
I
idle time configuring for a CDC session 253 description 253 IDMS_VERSION DTLULCAT utility 189 IFI306OPT 160 IGNORENOCHANGEUPDATES 108 IMS databases GSAM 210 HSAM 210 MSDB 210 SHSAM 210 IMS fast path 210 IMS schema changes 207, 225 IMSID 200 INIT1 EDMC keyword 127 InitAuthCheck 25 INSTANCE_IDENTIFIER DTLULCAT utility 189
M
manage schema changes 138 managing log and restart data sets 52 maximum row count configuring for a CDC session 255 MEDIA_CONTENT DTLULCAT utility 189 MEDIA_TYPE DTLULCAT utility 189 message log 31 migrating to a DB2 data-sharing environment 176 minimum row count configuring for a CDC session 255 MNT table 141 moving log data sets to other devices 67 MSG_INTV 169 MSG_PSEC 169 MSG_TOT 169
298
Index
MUF 133, 134, 136 multiple Adabas databases 106 multiple instances of the PowerExchange Logger 38 multiple schemas restrictions 183 multithreaded processing overview 246 MVS MODIFY QUIESCE 167 MVS START Command 168 MVS STOP command 167 MVS STOP Command 168 MVS/DFP checkpoint/restart utility 121
N
NBR OF ERRORS 169 NO_DATA_WAIT 79, 85, 108, 200 NO_DATA_WAIT_2 200 NO_DATA_WAIT2 85, 108 number of data sets 56
close 19 close command 19 closeforce 19 closeforce command 19 condense command 79, 102 displaystatus 102 fileswitch 82, 102 fileswitch command 79 listtask 19 listtask command 270, 272 shutcond 102 shutcond command 79, 98 shutdown 102 shutdown command 79, 82, 98 stoptask 19
Q
QUIESCE 168
O
offload processing overview 246 ON_ERROR ABEND/DISABLE 133 OPER_WTO 85 operational modes 78 operational procedures adding logs to the catalog 185 optimized access IFI306OPT parameter 174 overriding log-read api timed defaults 49
R
real-time flush latency configuring for a CDC session 255 RECID 200 recovering the DB2 ECCR 171, 195 recovery example 268 PM_REC_STATE table 234 PM_RECOVERY table 234 PM_TGT_RUN_ID table 234 recovery information for nonrelational targets 235 recovery state file for nonrelational targets 235 recovery tables for relational targets 234 recovery scenarios 74 REFRESH 168 Refreshsscvt 25 REG_MUF 134 registrations deactivating 179 deleting 179 REPCLOSE 32 REPL2CTL 158, 171 REPL2OPT 160, 171, 195 REPOPEN 32 RepositoryDSN 25 REPOSITORYDSN 32 RepositoryMode 25 REPSTATUS 32 resolving in-doubt units of work 50 restart $PMRootDir/Restart 254, 258 application name 254 default restart points 236 earliest restart points 236 methods of starting CDC sessions 236, 262 null restart tokens 236 restart token file 232, 254 restart token file folder 254 RESTART1 260 RESTART2 260 restart points defaults 236 earliest 236 restart token DTL__CAPXRESTART2 258
P
PCAT 107 PLOG 107 PLT initialization list 124 point-in-time recovery 121 PowerExchange Agent commands 118 PowerExchange Condense backing up output files 102 condense job messages 99 PowerExchange configuration file DTLCFG 81 PowerExchange Listener LISTTASK command 19, 272 STOPTASK command 19 PowerExchange Logger overview 37 PowerExchange message data sets 83 PowerExchange-generated extraction map columns DTL__BI_columnname 228 DTL__CAPXACTION 228 DTL__CAPXCASDELIND 228 DTL__CAPXRESTART1 228 DTL__CAPXRESTART2 228 DTL__CAPXTIMESTAMP 228 DTL__CAPXUOW 228 DTL__CAPXUSER 228 DTL__CI_columnname 228 DTL__columnname_CNT 228 DTL__columnname_IND 228 pwxccl.cfg CONDENSENAME parameter 85 pwxcmd
Index
299
restart token file example 261 explicit override 259 overview 231 special override 260 syntax 259 restart tokens displaying with DTLUAPPL 258 DTL__CAPXRESTART1 258 DTL__CAPXRESTART2 258 null 236 overview 231 recovery state file 235 recovery state table 234 RESTART_TOKEN 96 restarting processing EDMCMUOW DD statement 118 RestartInterval 27 restrictions IFI306OPT processing 175 XPEDITER CICS 123 restrictions, post-log merge 70 RESUME 32 RUNLIB 200 running as part of a SHADOW-Plex 135
shutting down 99 stopping a VSAM ECCR 128 stopping change capture 138, 178 stopping the ECCR 120, 167 stopping the PowerExchange Logger 49 stoptask (pwxcmd) 19 STOPTASK command CDC sessions, stopping 264 synchronous ECCR considerations 211 IMS Batch Backout utility 224 MVS checkpoint and restart 224 non-keyed segments 211 overview 209 recovery considerations 224 restrictions 210 SYSOUT 22 SYSPRINT 28 SYSTEM LNKLST 124 system requirements 69 system_options statement 41
T
TABLE_NAME 169 TaskLimit 25 TERM 168 TERM1 EDMC keyword 127 terminating conditions idle time for CDC sessions 253 testing PowerExchange for Adabas CDC installation 111 TIME 22 timed checkpoint considerations for dormant member Loggers 73 TRACE 160 TRACEOFF 205 TRACEON 205 tracks per cylinder and bytes per track 55 TSN table 141
S
sample CICS ECCR log start 126 sample JCL procedure for the PowerExchange Logger 48 Sample Messages 30 schema change 147, 180 schema changes 195 schema verification 179 sequence token DTL__CAPXRESTART1 258 SEQUENCE_TOKEN 96 shutcond (pwxcmd) 102 SHUTCOND command 79, 98 SHUTDOWN 32, 82 shutdown (pwxcmd) 82, 102 SHUTDOWN command 79, 98 shutting down STOP command 99 shutting down Condense 98 SIGNALLING 85 size and number of active log data sets 53 SR2OUT DTLUCSR2 DD card 190 SR2TOTAL DTLUCSR2 DD card 190 SRT record 82 START PowerExchange Agent command 118 START COLD 158 START keyword 160 START WARM 158 starting the PowerExchange Logger 48 STARTTIME 200 Startup 25 STARTUP 28 STARTUP WARM 171, 195 STAT LEV 160 STATUS 134 STEPLIB 28 STOP PowerExchange Agent command 118 STOP command
U
unique connection identifier each CICS region 124 UOW count configuring for a CDC session 255 UOWC CAPI_CONNECTION parameters parameters and syntax 15 UpdateInterval 27 URID 168 using post-log merge 69
V
VERBOSE 85 VSAM batch change capture 114 VSAM batch ECCR output 119 stopping 120
W
warm starts CDC session restart points 237
300
Index
WRITE_RESTART_SECS 200
restrictions 123
X
XCF groups 39 XPEDITER CICS
Index
301