home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 29 Fixes_o / 29-Fixes_o.zip / db2sd71a.zip / RELEASE2.TXT < prev    next >
Text File  |  2000-05-10  |  400KB  |  9,137 lines

  1. Release Notes
  2.  
  3. IBM(R) DB2(R) Universal Database
  4. Release Notes
  5.  
  6. Version 7.1
  7.  
  8. ╕ Copyright International Business Machines Corporation 2000. All rights
  9. reserved.
  10. U.S. Government Users Restricted Rights -- Use, duplication or disclosure
  11. restricted by GSA ADP Schedule Contract with IBM Corp.
  12.   ------------------------------------------------------------------------
  13.  
  14. Table of Contents
  15.  
  16. Welcome to DB2 Universal Database Version 7.1!
  17.  
  18. Special Notes
  19.  
  20.    * 1.1 DB2 Universal Database Business Intelligence Quick Tour
  21.    * 1.2 Downloading Installation Packages for All Supported DB2 Clients
  22.    * 1.3 Installing DB2 on Windows 2000
  23.    * 1.4 Notes on Greater Than 8-Character User IDs and Schema Names
  24.    * 1.5 National Language Versions of DB2 Version 7.1
  25.         o 1.5.1 Control Center and Documentation Filesets
  26.    * 1.6 Accessibility Features of DB2 UDB Version 7.1
  27.         o 1.6.1 Keyboard Input and Navigation
  28.              + 1.6.1.1 Keyboard Input
  29.              + 1.6.1.2 Keyboard Focus
  30.         o 1.6.2 Features for Accessible Display
  31.              + 1.6.2.1 High-Contrast Mode
  32.              + 1.6.2.2 Font Settings
  33.              + 1.6.2.3 Non-dependence on Color
  34.         o 1.6.3 Alternative Alert Cues
  35.         o 1.6.4 Compatibility with Assistive Technologies
  36.         o 1.6.5 Accessible Documentation
  37.    * 1.7 DB2 Everywhere is Now DB2 Everyplace
  38.    * 1.8 Error Messages when Attempting to Launch Netscape
  39.    * 1.9 Mouse Required
  40.    * 1.10 Supported Web Browsers on the Windows 2000 Operating System
  41.    * 1.11 Opening External Web Links in Netscape Navigator From The
  42.      Information Center when Netscape is Already Open (UNIX Based Systems)
  43.    * 1.12 Problems Starting the Information Center
  44.    * 1.13 Configuration Requirement for Adobe Acrobat Reader on UNIX Based
  45.      Systems
  46.    * 1.14 Attempting to Bind from the DB2 Run-time Client Results in a
  47.      "Bind files not found" Error
  48.    * 1.15 Additional Required Solaris Patch Level
  49.    * 1.16 Supported CPUs on DB2 Version 7.1 for Solaris
  50.    * 1.17 Searching the DB2 Online Information on Solaris
  51.    * 1.18 Java Control Center on OS/2
  52.    * 1.19 Search Discovery
  53.    * 1.20 Problems When Adding Nodes to a Partitioned Database
  54.    * 1.21 Errors During Migration
  55.    * 1.22 Memory Windows for HP-UX 11
  56.    * 1.23 Spatial Extender is Unavailable
  57.    * 1.24 SQL Reference is Provided in One PDF File
  58.    * 1.25 Migration Issue Regarding Views Defined with Special Registers
  59.    * 1.26 User Action for dlfm client_conf Failure
  60.    * 1.27 In the Rare Event that the Copy Daemon Does Not Stop on dlfm stop
  61.    * 1.28 Chinese Locale Fix on Red Flag Linux
  62.    * 1.29 Uninstalling DB2 DFS Client Enabler
  63.    * 1.30 DB2 Install May Hang if a Removable Drive is Not Attached
  64.    * 1.31 Client Authentication on Windows NT
  65.    * 1.32 AutoLoader May Hang During a Fork
  66.    * 1.33 DATALINK Restore
  67.    * 1.34 Define User ID and Password in IBM Communications Server for
  68.      Windows NT (CS/NT)
  69.         o 1.34.1 Node Definition
  70.    * 1.35 Federated Systems Restrictions
  71.    * 1.36 DataJoiner Restriction
  72.    * 1.37 IPX/SPX Protocol Support on Windows 2000
  73.    * 1.38 Stopping DB2 Processes Before Upgrading a Previous Version of DB2
  74.    * 1.39 Run db2iupdt After Installing DB2 If Another DB2 Product is
  75.      Already Installed
  76.    * 1.40 JDK Level on OS/2
  77.    * 1.41 Setting up the Linux Environment to Run DB2
  78.    * 1.42 Hebrew Information Catalog Manager for Windows NT
  79.    * 1.43 Error While Creating an SQL Stored Procedure on the Server
  80.    * 1.44 Microsoft SNA Server and SNA Multisite Update (Two Phase Commit)
  81.      Support
  82.    * 1.45 DB2's SNA SPM Fails to Start After Booting Windows
  83.    * 1.46 Additional Locale Setting for DB2 for Linux in a Japanese and
  84.      Simplified Chinese Linux Environment
  85.    * 1.47 Locale Setting for the DB2 Administration Server
  86.    * 1.48 Java Method Signature in PARAMETER STYLE JAVA Procedures and
  87.      Functions
  88.    * 1.49 Shortcuts Not Working
  89.    * 1.50 Service Account Requirements for DB2 on Windows NT and Windows
  90.      2000
  91.  
  92. Administration Guide: Planning
  93.  
  94.    * 2.1 Chapter 14. DB2 and High Availability on Sun Cluster 2.2
  95.    * 2.2 Appendix E. National Language Support
  96.  
  97. Administration Guide: Implementation
  98.  
  99.    * 3.1 Chapter 4. Altering a Database
  100.         o 3.1.1 Adding a Container to an SMS Table Space on a Partition
  101.         o 3.1.2 Switching the State of a Table Space
  102.    * 3.2 Chapter 8. Recovering a Database
  103.    * 3.3 Appendix C. User Exit for Database Recovery
  104.    * 3.4 Appendix I. High Speed Inter-node Communications
  105.         o 3.4.1 Enabling DB2 to Run Using VI
  106.  
  107. Administration Guide: Performance
  108.  
  109.    * 4.1 Chapter 5. System Catalog Statistics
  110.         o 4.1.1 Collecting and Using Distribution Statistics
  111.    * 4.2 Chapter 6. Understanding the SQL Compiler
  112.         o 4.2.1 Replicated Summary Tables
  113.         o 4.2.2 Data Access Concepts and Optimization
  114.    * 4.3 Chapter 13. Configuring DB2
  115.         o 4.3.1 Sort Heap Size (sortheap)
  116.         o 4.3.2 Sort Heap Threshold (sheapthres)
  117.    * 4.4 Appendix A. DB2 Registry and Environment Variables
  118.         o 4.4.1 Table of New and Changed Registry Variables
  119.    * 4.5 Appendix C. SQL Explain Tools
  120.  
  121. Administrative API Reference
  122.  
  123.    * 5.1 db2ConvMonStream
  124.    * 5.2 db2XaGetInfo (new API)
  125.         o db2XaGetInfo - Get Information for Resource Manager
  126.    * 5.3 db2XaListIndTrans (new API that supercedes sqlxphqr)
  127.         o db2XaListIndTrans - List Indoubt Transactions
  128.    * 5.4 sqlaintp - Get Error Message
  129.  
  130. Application Building Guide
  131.  
  132.    * 6.1 Chapter 1. Introduction
  133.         o 6.1.1 Supported Software
  134.         o 6.1.2 Sample Programs
  135.    * 6.2 Chapter 3. General Information for Building DB2 Applications
  136.         o 6.2.1 Build Files, Makefiles, and Error-checking Utilities
  137.    * 6.3 Chapter 4. Building Java Applets and Applications
  138.         o 6.3.1 Setting the Environment
  139.    * 6.4 Chapter 5. Building SQL Procedures.
  140.         o 6.4.1 Setting the SQL Procedures Environment
  141.              + 6.4.1.1 Configuring the Compiler Environment
  142.              + 6.4.1.2 Customizing Compiler Options
  143.              + 6.4.1.3 Retaining Intermediate Files
  144.              + 6.4.1.4 Backup and Restore
  145.         o 6.4.2 Creating SQL Procedures
  146.         o 6.4.3 Calling Stored Procedures
  147.    * 6.5 Chapter 7. Building HP-UX Applications.
  148.         o 6.5.1 HP-UX C
  149.         o 6.5.2 HP-UX C++
  150.    * 6.6 Chapter 10. Building PTX Applications
  151.         o 6.6.1 ptx/C++
  152.    * 6.7 Chapter 12. Building Solaris Applications
  153.         o 6.7.1 SPARCompiler C++
  154.    * 6.8 VisualAge C++ Version 4.0 on OS/2 and Windows
  155.  
  156. Application Development Guide
  157.  
  158.    * 7.1 Writing OLE Automation Stored Procedures
  159.    * 7.2 Chapter 7. Stored Procedures
  160.         o 7.2.1 DECIMAL Type Not Supported in Linux Java Routines
  161.    * 7.3 Chapter 12. Working with Complex Objects: User-Defined Structured
  162.      Types
  163.         o 7.3.1 Inserting Structured Type Attributes Into Columns
  164.    * 7.4 Chapter 20. Programming in C and C++
  165.         o 7.4.1 C/C++ Types for Stored Procedures, Functions, and Methods
  166.    * 7.5 Appendix B. Sample Programs
  167.    * 7.6 Activating the IBM DB2 Universal Database Project and Tool Add-ins
  168.      for Microsoft Visual C++
  169.  
  170. CLI Guide and Reference
  171.  
  172.    * 8.1 CLI Unicode Functions and SQL_C_WCHAR Support on AIX Only
  173.    * 8.2 Binding Database Utilities Using the Run-Time Client
  174.    * 8.3 Addition to the "Using Compound SQL" Section
  175.    * 8.4 Writing a Stored Procedure in CLI
  176.    * 8.5 Appendix K. Using the DB2 CLI/ODBC/JDBC Trace Facility
  177.    * 8.6 Using Static SQL in CLI Applications
  178.    * 8.7 Limitations of JDBC/ODBC/CLI Static Profiling
  179.    * 8.8 Parameter Correction for SQLBindFileToParam() CLI Function
  180.    * 8.9 ADT Transforms
  181.  
  182. Command Reference
  183.  
  184.    * 9.1 db2batch - Benchmark Tool
  185.    * 9.2 db2cap (new command)
  186.         o db2cap - CLI/ODBC Static Package Binding Tool
  187.    * 9.3 db2gncol (new command)
  188.         o db2gncol - Update Generated Column Values
  189.    * 9.4 db2look - DB2 Statistics Extraction Tool
  190.    * 9.5 db2updv6 (new command)
  191.    * 9.6 New Command Line Processor Option (-x, Suppress printing of column
  192.      headings)
  193.    * 9.7 True Type Font Requirement for DB2 CLP
  194.    * 9.8 CALL
  195.    * 9.9 EXPORT
  196.    * 9.10 GET DATABASE CONFIGURATION
  197.    * 9.11 IMPORT
  198.    * 9.12 LOAD
  199.  
  200. Connectivity Supplement
  201.  
  202.    * 10.1 Setting Up the Application Server in a VM Environment
  203.    * 10.2 CLI/ODBC/JDBC Configuration PATCH1 and PATCH2 Settings
  204.  
  205. Data Links Manager Quick Beginnings
  206.  
  207.    * 11.1 Dlfm start Fails with Message: "Error in getting the afsfid for
  208.      prefix"
  209.    * 11.2 Setting Tivoli Storage Manager Class for Archive Files
  210.    * 11.3 Disk Space Requirements for DFS Client Enabler
  211.    * 11.4 Monitoring the Data Links File Manager Back-end Processes on AIX
  212.    * 11.5 Installing and Configuring DB2 Data Links Manger for AIX:
  213.      Additional Installation Considerations in DCE-DFS Environments
  214.    * 11.6 Failed "dlfm add_prefix" Command
  215.    * 11.7 Installing and Configuring DB2 Data Links Manger for AIX:
  216.      Installing DB2 Data Links Manager on AIX Using the db2setup Utility
  217.    * 11.8 Installing and Configuring DB2 Data Links Manager for AIX:
  218.      DCE-DFS Post-Installation Task
  219.    * 11.9 Installing and Configuring DB2 Data Links Manager for AIX:
  220.      Manually Installing DB2 Data Links Manager Using Smit
  221.    * 11.10 Installing and Configuring DB2 Data Links DFS Client Enabler
  222.    * 11.11 Choosing a Backup Method for DB2 Data Links Manager on AIX
  223.    * 11.12 Choosing a Backup Method for DB2 Data Links Manager on Windows
  224.      NT
  225.    * 11.13 Backing up a Journalized File System on AIX
  226.  
  227. Data Movement Utilities Guide and Reference
  228.  
  229.    * 12.1 Pending States After a Load Operation
  230.    * 12.2 Load Restrictions and Limitations
  231.  
  232. Installation and Configuration Supplement
  233.  
  234.    * 13.1 Binding Database Utilities Using the Run-Time Client
  235.    * 13.2 UNIX Client Access to DB2 Using ODBC
  236.    * 13.3 Switching NetQuestion for OS/2 to Use TCP/IP
  237.  
  238. Message Reference
  239.  
  240.    * 14.1 SQL0270N (New Reason Code 40)
  241.    * 14.2 SQL0301N (New Explanation Text)
  242.    * 14.3 SQL0303N (New Text)
  243.    * 14.4 SQL0358N (New User Response 26)
  244.    * 14.5 SQL0408N (New Text)
  245.    * 14.6 SQL0423N (Revised Text)
  246.    * 14.7 SQL0670N (Revised Text)
  247.    * 14.8 SQL1704N (New Reason Codes)
  248.    * 14.9 SQL4942N (New Text)
  249.    * 14.10 SQL20117N (Changed Reason Code 1)
  250.  
  251. Replication Guide and Reference
  252.  
  253.    * 15.1 Replication on Windows 2000
  254.    * 15.2 DATALINK Replication
  255.    * 15.3 LOB Restrictions
  256.    * 15.4 Replication and Non-IBM Servers
  257.    * 15.5 Update-anywhere Prerequisite
  258.    * 15.6 Planning for Replication
  259.    * 15.7 Setting Up Your Replication Environment
  260.    * 15.8 Problem Determination
  261.    * 15.9 Capture and Apply for AS/400
  262.    * 15.10 Table Structures
  263.    * 15.11 Capture and Apply Messages
  264.    * 15.12 Starting the Capture and Apply Programs from Within an
  265.      Application
  266.  
  267. SQL Reference
  268.  
  269.    * 16.1 IDENTITY_VAL_LOCAL
  270.    * 16.2 OLAP Functions
  271.    * 16.3 SQL Procedures/Compound Statement
  272.    * 16.4 LCASE and UCASE (Unicode)
  273.    * 16.5 WEEK_ISO
  274.    * 16.6 Naming Conventions and Implicit Object Name Qualifications
  275.    * 16.7 Queries (select-statement/fetch-first-clause)
  276.    * 16.8 Libraries Used by the CREATE WRAPPER Statement on Linux
  277.  
  278. System Monitor Guide and Reference
  279.  
  280.    * 17.1 db2ConvMonStream
  281.  
  282. Troubleshooting Guide
  283.  
  284.    * 18.1 Starting DB2 on Windows 95 and Windows 98 When the User Is Not
  285.      Logged On
  286.  
  287. Control Center
  288.  
  289.    * 19.1 Ability to Administer DB2 Server for VSE and VM Servers
  290.    * 19.2 Java 1.2 Support for the Control Center
  291.    * 19.3 "Invalid shortcut" Error when Using the Online Help on the
  292.      Windows Operating System
  293.    * 19.4 "File access denied" Error when Attempting to View a Completed
  294.      Job in the Journal on the Windows Operating System
  295.    * 19.5 Multisite Update Test Connect
  296.    * 19.6 Control Center for DB2 for OS/390
  297.    * 19.7 Required Fix for Control Center for OS/390
  298.    * 19.8 Change to the Create Spatial Layer Dialog
  299.    * 19.9 Troubleshooting Information for the DB2 Control Center
  300.    * 19.10 Control Center Troubleshooting on UNIX Based Systems
  301.    * 19.11 Possible Infopops Problem on OS/2
  302.    * 19.12 Launching More Than One Control Center Applet
  303.    * 19.13 Help for the jdk11_path Configuration Parameter
  304.    * 19.14 Solaris System Error (SQL10012N) when Using the Script Center or
  305.      the Journal
  306.    * 19.15 Help for the DPREPL.DFT File
  307.    * 19.16 Online Help for the Control Center Running as an Applet
  308.    * 19.17 Running the Control Center in Applet Mode (Windows 95)
  309.  
  310. Data Warehouse Center
  311.  
  312.    * 20.1 Data Warehouse Center Publications
  313.         o 20.1.1 Data Warehouse Center Application Integration Guide
  314.         o 20.1.2 Data Warehouse Center Administration Guide
  315.         o 20.1.3 Data Warehouse Center Messages
  316.         o 20.1.4 Data Warehouse Center Online Help
  317.    * 20.2 Warehouse Control Database
  318.         o 20.2.1 The default warehouse control database
  319.         o 20.2.2 The Warehouse Control Database Management window
  320.         o 20.2.3 Changing the active warehouse control database
  321.         o 20.2.4 Creating and initializing a warehouse control database
  322.         o 20.2.5 Migrating IBM Visual Warehouse control databases
  323.    * 20.3 Setting up and running replication with Data Warehouse Center
  324.    * 20.4 Troubleshooting tips
  325.    * 20.5 Correction to RUNSTATS and REORGANIZE TABLE Online Help
  326.    * 20.6 Notification Page (Warehouse Properties Notebook and Schedule
  327.      Notebook)
  328.    * 20.7 Agent Module Field in the Agent Sites Notebook
  329.    * 20.8 Accessing DB2 Version 5 data with the DB2 Version 7.1 warehouse
  330.      agent
  331.         o 20.8.1 Migrating DB2 Version 5 servers
  332.         o 20.8.2 Changing the agent configuration
  333.              + 20.8.2.1 UNIX warehouse agents
  334.              + 20.8.2.2 Microsoft Windows NT, Windows 2000, and OS/2
  335.                warehouse agents
  336.    * 20.9 Accessing warehouse control databases
  337.    * 20.10 Accessing sources and targets
  338.    * 20.11 Accessing DB2 Version 5 information catalogs with the DB2
  339.      Version 7.1 Information Catalog Manager
  340.    * 20.12 Additions to supported non-IBM database sources
  341.    * 20.13 Information Catalog Manager Initialization Utility
  342.    * 20.14 Information Catalog Manager Administration Guide
  343.  
  344. DB2 Stored Procedure Builder
  345.  
  346.    * 21.1 Java 1.2 Support for the DB2 Stored Procedure Builder
  347.    * 21.2 Remote Debugging of DB2 Stored Procedures
  348.    * 21.3 Building SQL Procedures on the Intel and UNIX Platforms
  349.    * 21.4 Using the DB2 Stored Procedure Builder on the Solaris Platform
  350.    * 21.5 Known Problems and Limitations
  351.    * 21.6 Using DB2 Stored Procedure Builder with Traditional Chinese
  352.      Locale
  353.    * 21.7 UNIX (AIX, Sun Solaris, Linux) Installations and the Stored
  354.      Procedure Builder
  355.  
  356. DB2 Warehouse Manager
  357.  
  358.    * 22.1 "Warehouse Manager" Should Be "DB2 Warehouse Manager"
  359.    * 22.2 DB2 Warehouse Manager Publications
  360.         o 22.2.1 Information Catalog Manager Administration Guide
  361.         o 22.2.2 Information Catalog Manager Programming Guide and
  362.           Reference
  363.              + 22.2.2.1 Information Catalog Manager Reason Codes
  364.         o 22.2.3 Information Catalog Manager: Online Messages
  365.         o 22.2.4 Information Catalog Manager: Online Help
  366.         o 22.2.5 Query Patroller Administration Guide
  367.              + 22.2.5.1 DB2 Query Patroller Client is a Separate Component
  368.              + 22.2.5.2 Manual Installation of Query Patroller on AIX and
  369.                Solaris
  370.              + 22.2.5.3 Enabling Query Management
  371.              + 22.2.5.4 Starting Query Administrator
  372.              + 22.2.5.5 User Administration
  373.              + 22.2.5.6 Creating a Job Queue
  374.              + 22.2.5.7 Using the Command Line Interface
  375.              + 22.2.5.8 Query Enabler Notes
  376.  
  377. Information Center
  378.  
  379.    * 23.1 "Invalid shortcut" Error on the Windows Operating System
  380.  
  381. OLAP Starter Kit
  382.  
  383.    * 24.1 Completing the DB2 OLAP Starter Kit Setup on AIX and Solaris
  384.    * 24.2 Logging in from OLAP Integration Server Desktop
  385.         o 24.2.1 Starter Kit Login Example
  386.    * 24.3 Manually creating and configuring the sample databases for OLAP
  387.      Integration Server
  388.    * 24.4 Known problems and limitations
  389.         o 24.4.1 DB2 OLAP Starter Kit
  390.         o 24.4.2 DB2 OLAP Desktop Client
  391.         o 24.4.3 Spreadsheet Clients
  392.         o 24.4.4 DB2 OLAP Integration Server
  393.    * 24.5 OLAP Starter Kit Spreadsheet Needs Current Windows svc.pack
  394.    * 24.6 OLAP Spreadsheet Add-in EQD Files Missing
  395.  
  396. Wizards
  397.  
  398.    * 25.1 Setting Extent Size in the Create Database Wizard
  399.  
  400. Additional Information
  401.  
  402.    * 26.1 DB2 Universal Database and DB2 Connect Online Support
  403.    * 26.2 DB2 magazine
  404.  
  405. Appendix A. Notices
  406.  
  407.    * A.1 Trademarks
  408.  
  409.   ------------------------------------------------------------------------
  410.  
  411. Welcome to DB2 Universal Database Version 7.1!
  412.  
  413. This file contains information about the following products that was not
  414. available when the DB2 manuals were printed:
  415.  
  416.    IBM DB2 Universal Database Personal Edition, Version 7.1
  417.    IBM DB2 Universal Database Workgroup Edition, Version 7.1
  418.    IBM DB2 Universal Database Enterprise Edition, Version 7.1
  419.    IBM DB2 Data Links Manager, Version 7.1
  420.    IBM DB2 Universal Database Enterprise - Extended Edition, Version 7.1
  421.    IBM DB2 Query Patroller, Version 7.1
  422.    IBM DB2 Personal Developer's Edition, Version 7.1
  423.    IBM DB2 Universal Developer's Edition, Version 7.1
  424.    IBM DB2 Data Warehouse Manager, Version 7.1
  425.    IBM DB2 Relational Connect, Version 7.1
  426.  
  427. A separate Release Notes file, installed as READCON.TXT, is provided for
  428. the following products:
  429.  
  430.    IBM DB2 Connect Personal Edition, Version 7.1
  431.    IBM DB2 Connect Enterprise Edition, Version 7.1
  432.  
  433. The What's New book contains both an overview of some of the major DB2
  434. enhancements for Version 7.1, and a detailed description of these new
  435. features and enhancements.
  436.   ------------------------------------------------------------------------
  437.  
  438. Special Notes
  439.  
  440.   ------------------------------------------------------------------------
  441.  
  442. 1.1 DB2 Universal Database Business Intelligence Quick Tour
  443.  
  444. The Quick Tour is not available on DB2 for Linux.
  445.  
  446. The Quick Tour is optimized to run with small system fonts. You may have to
  447. adjust your Web browser's font size to correctly view the Quick Tour on
  448. OS/2. Refer to your Web browser's help for information on adjusting font
  449. size. To view the Quick Tour correctly (SBCS only), it is recommended that
  450. you use an 8-point Helv font. For Japanese and Korean customers, it is
  451. recommended that you use an 8-point Mincho font. When you set font
  452. preferences, be sure to select the "Use my default fonts, overriding
  453. document-specified fonts" option in the Fonts page of the Preference
  454. window.
  455.  
  456. In some cases the Quick Tour may launch behind a secondary browser window.
  457. To correct this problem, close the Quick Tour, and follow the steps in 1.8,
  458. Error Messages when Attempting to Launch Netscape.
  459.  
  460. When launching the Quick Tour, you may receive a JavaScript error similar
  461. to the following:
  462.  
  463.    JavaScript Error: file:/C/Program Files/SQLLIB/doc/html/db2qt/index4e.htm, line 65:
  464.  
  465.    Window is not defined.
  466.  
  467. This JavaScript error prevents the Quick Tour launch page, index4e.htm,
  468. from closing automatically after the Quick Tour is launched. You can close
  469. the Quick Tour launch page by closing the browser window in which
  470. index4e.htm is displayed.
  471.   ------------------------------------------------------------------------
  472.  
  473. 1.2 Downloading Installation Packages for All Supported DB2 Clients
  474.  
  475. To download installation packages for all supported DB2 clients, which
  476. include all the pre-Version 7.1 clients, connect to the IBM DB2 Client
  477. Application Enabler Pack Web site at
  478. http://www.ibm.com/software/data/db2/db2tech/clientpak.html
  479.   ------------------------------------------------------------------------
  480.  
  481. 1.3 Installing DB2 on Windows 2000
  482.  
  483. On Windows 2000, when installing over a previous version of DB2 or when
  484. reinstalling the current version, ensure that the recovery options for all
  485. of the DB2 services are set to "Take No Action".
  486.   ------------------------------------------------------------------------
  487.  
  488. 1.4 Notes on Greater Than 8-Character User IDs and Schema Names
  489.  
  490.    * DB2 Version 7.1 products on Windows 32-bit platforms support user IDs
  491.      that are up to 30 characters long. However, because of native support
  492.      of Windows NT and Windows 2000, the practical limit for user ID is 20
  493.      characters.
  494.    * DB2 Version 7.1 supports non-Windows 32-bit clients connecting to
  495.      Windows NT and Windows 2000 with user IDs longer than 8 characters
  496.      when user ID and password are being specified explicitly. This
  497.      excludes connections using Client or DCE authentication.
  498.    * DCE authentication on all platforms continues to have the 8-character
  499.      user ID limit.
  500.    * The authid returned in the SQLCA from a successful CONNECT or ATTACH
  501.      is truncated to 8 characters. The SQLWARN fields contain warnings when
  502.      truncation occurs. For more information, refer to the description of
  503.      the CONNECT statement in the SQL Reference.
  504.    * The authid returned by the command line processor (CLP) from a
  505.      successful CONNECT or ATTACH is truncated to 8 characters. An ellipsis
  506.      (...) is appended to the authid to indicate truncation.
  507.    * DB2 Version 7.1 supports schema names with length up to 30 bytes, with
  508.      the following exceptions:
  509.         o Tables with schema names longer than 18 bytes cannot be
  510.           replicated.
  511.         o User defined types (UDTs) cannot have schema names longer than 8
  512.           bytes.
  513.  
  514.   ------------------------------------------------------------------------
  515.  
  516. 1.5 National Language Versions of DB2 Version 7.1
  517.  
  518. DB2 Version 7.1 is available in English, French, German, Italian, Spanish,
  519. Brazilian Portuguese, Japanese, Korean, Simplified Chinese, Traditional
  520. Chinese, Danish, Finnish, Norwegian, Swedish, Czech, Dutch, Hungarian,
  521. Polish, Turkish, Russian, Bulgarian and Slovenian.
  522.  
  523. On UNIX-based platforms, the DB2 product messages and library can be
  524. installed in several different languages. The DB2 installation utility will
  525. lay down the message catalog filesets into the most commonly used locale
  526. directory for a given platform as shown in the following chart.
  527.  
  528.  Operating  AIX           HPUX                Solaris          Linux          SGI           Dynix
  529.  System
  530.  Language   Locale  Cde   Locale         Cde  Locale      Cde  Locale     Cde Locale    Cde Locale    Cde
  531.                     Pg                   Pg               Pg              Pg            Pg            Pg
  532.  French     fr_FR   819   fr_FR.iso88591 819  fr          819  fr         819               fr        819
  533.             Fr_FR   850   fr_FR.roman8   1051
  534.  German     de_DE   819   de_DE.iso88591 819  de          819  de         819               de        819
  535.             De_DE   850   de_DE.roman8   1051
  536.  Italian    it_IT   819   it_IT.iso88591 819  it          819  it         819               es        819
  537.             It_IT   850   it_IT.roman8   1051
  538.  Spanish    es_ES   819   es_ES.iso88591 819  es          819  es         819
  539.             Es_ES   850   es_ES.roman8   1051
  540.  Brazilian  pt_BR   819                       pt_BR       819  pt_BR      819
  541.  Portu-
  542.  guese
  543.  Japanese   ja_JP   924   ja_JP.eucJP    954  ja          954  ja_JP.ujis 954               ja_JP.EUC 954
  544.             Ja_JP   932
  545.  Korean     ko_KR   970   ko_KR.eucKR    970  ko          970                 ko_KO.euc 970
  546.  Simplified zh_CN   1383  zh_CN.hp15CN   1383 zh          1383 zh         1386
  547.  Chinese    Zh_     1386                                       zh_CN.GBK
  548.             CN.GBK
  549.  Traditionalzh_TW   964   zh_TW.eucTW    964  zh_TW       964
  550.  Chinese    Ah_TW   950   zh_TW.big5     950  zh_TW.BIG5  950
  551.  Danish     da_DK   819   da_DK.iso88591 819  da          819
  552.             Da_DK   850   da_DK.roman8   1051
  553.  Finnish    fi_FI   819   fi_FI.iso88591 819  fi          819
  554.             Fi_FI   850   fi_FI.roman8   1051
  555.  Norwegian  no_NO   819   no_NO.iso88591 819  no          819
  556.             No_NO   850   no_NO.roman8   1051
  557.  Sweden     sv_SE   819   sv_SE.iso88591 819  sv          819
  558.             Sv_SE   850   sv_SE.roman8   1051
  559.  Czech      cs_CZ   912
  560.  Hungarian  hu_HU   912
  561.  Polish     pl_PL   912
  562.  Dutch      nl_NL   819                                                                     nl        819
  563.             Nl_NL   850
  564.  Turkish    tr_TR   920
  565.  Russian    ru_RU   915
  566.  Bulgarian  bg_BG   915   bg_BG.iso88595 915
  567.  Slovenian  sl_SI   912   sl_SI.iso88592 912  sl_SI       912
  568.  
  569. If your system uses the same code pages but different locale names than
  570. those provided above, you can still see the translated messages by creating
  571. a link to the appropriate message directory.
  572.  
  573. For example, if your AIX machine default locale is ja_JP.IBM-eucJP and the
  574. codepage of ja_JP.IBM-eucJP is 954, you can create a link from
  575. /usr/lpp/db2_07_01/msg/ja_JP.IBM-eucJP to /usr/lpp/db2_07_01/msg/ja_JP by
  576. issuing the following command:
  577.  
  578. ln -s /usr/lpp/db2_07_01/msg/ja_JP /usr/lpp/db2_07_01/msg/ja_JP.IBM-eucJP
  579.  
  580. After the execution of this command, all DB2 messages will come up in
  581. Japanese.
  582.  
  583. 1.5.1 Control Center and Documentation Filesets
  584.  
  585. The Control Center, Control Center Help and documentation filesets are
  586. placed in the following directories on the target workstation:
  587.  
  588.    * DB2 for AIX:
  589.         o /usr/lpp/db2_07_01/cc/%L
  590.         o /usr/lpp/db2_07_01/java/%L
  591.         o /usr/lpp/db2_07_01/doc/%L
  592.         o /usr/lpp/db2_07_01/qp/$L
  593.         o /usr/lpp/db2_07_01/spb/%L
  594.    * DB2 for HP-UX:
  595.         o /opt/IBMdb2/V7.1/cc/%L
  596.         o /opt/IBMdb2/V7.1/java/%L
  597.         o /opt/IBMdb2/V7.1/doc/%L
  598.    * DB2 for Linux:
  599.         o /usr/IBMdb2/V7.1/cc/%L
  600.         o /usr/IBMdb2/V7.1/java/%L
  601.         o /usr/IBMdb2/V7.1/doc/%L
  602.    * DB2 for Solaris:
  603.         o /opt/IBMdb2/V7.1/cc/%L
  604.         o /usr/IBMdb2/V7.1/java/%L
  605.         o /opt/IBMdb2/V7.1/doc/%L
  606.  
  607. Control Center filesets are in Unicode codepage. Documentation and Control
  608. Center help filesets are in a browser-recognized codeset. If your system
  609. uses a different locale name than the one provided, you can still run the
  610. translated version of Control Center and see the translated version of help
  611. by creating links to the appropriate language directories.
  612.  
  613. For example, if your AIX machine default locale is ja_JP.IBM-eucJP, you can
  614. create links from /usr/lpp/db2_07_01/cc/ja_JP.IBM-eucJP to
  615. /usr/lpp/db2_07_01/cc/ja_JP and from /usr/lpp/db2_07_01/doc/ja_JP.IBM-eucJP
  616. to /usr/lpp/db2_07_01/doc/ja_JP by issuing the following commands:
  617.  
  618.    * ln -s /usr/lpp/db2_07_01/cc/ja_JP
  619.      /usr/lpp/db2_07_01/cc/ja_JP.IBM-eucJP
  620.    * ln -s /usr/lpp/db2_07_01/doc/ja_JP
  621.      /usr/lpp/db2_07_01/doc/ja_JP.IBM-eucJP
  622.  
  623. After the execution of these commands, the Control Center and help text
  624. will come up in Japanese.
  625.   ------------------------------------------------------------------------
  626.  
  627. 1.6 Accessibility Features of DB2 UDB Version 7.1
  628.  
  629. The DB2 UDB family of products includes a number of features that make the
  630. products more accessible for people with disabilities. These features
  631. include:
  632.  
  633.    * Features that facilitate keyboard input and navigation
  634.    * Features that enhance display properties
  635.    * Options for audio and visual alert cues
  636.    * Compatibility with assistive technologies
  637.    * Compatibility with accessibility features of the operating system
  638.    * Accessible documentation formats
  639.  
  640. 1.6.1 Keyboard Input and Navigation
  641.  
  642. 1.6.1.1 Keyboard Input
  643.  
  644. The DB2 Control Center can be operated using only the keyboard. Menu items
  645. and controls provide access keys that allow users to activate a control or
  646. select a menu item directly from the keyboard. These keys are
  647. self-documenting, in that the access keys are underlined on the control or
  648. menu where they appear.
  649.  
  650. 1.6.1.2 Keyboard Focus
  651.  
  652. In UNIX-based systems, the position of the keyboard focus is highlighted,
  653. indicating which area of the window is active and where the user's
  654. keystrokes will have an effect.
  655.  
  656. 1.6.2 Features for Accessible Display
  657.  
  658. The DB2 Control Center has a number of features that enhance the user
  659. interface and improve accessibility for users with low vision. These
  660. accessibility enhancements include support for high-contrast settings and
  661. customizable font properties.
  662.  
  663. 1.6.2.1 High-Contrast Mode
  664.  
  665. The Control Center interface supports the high-contrast-mode option
  666. provided by the operating system. This feature assists users who require a
  667. higher degree of contrast between background and foreground colors.
  668.  
  669. 1.6.2.2 Font Settings
  670.  
  671. The Control Center interface allows users to select the color, size, and
  672. font for the text in menus and dialog windows.
  673.  
  674. 1.6.2.3 Non-dependence on Color
  675.  
  676. Users do not need to distinguish between colors in order to use any of the
  677. functions in this product.
  678.  
  679. 1.6.3 Alternative Alert Cues
  680.  
  681. The user can opt to receive alerts through audio or visual cues.
  682.  
  683. 1.6.4 Compatibility with Assistive Technologies
  684.  
  685. The DB2 Control Center interface is compatible with screen reader
  686. applications such as Via Voice. When in application mode, the Control
  687. Center interface has the properties required for these accessibility
  688. applications to make onscreen information available to blind users.
  689.  
  690. 1.6.5 Accessible Documentation
  691.  
  692. Documentation for the DB2 family of products is available in HTML format.
  693. This allows users to view documentation according to the display
  694. preferences set in their browsers. It also allows the use of screen readers
  695. and other assistive technologies.
  696.   ------------------------------------------------------------------------
  697.  
  698. 1.7 DB2 Everywhere is Now DB2 Everyplace
  699.  
  700. The name of DB2 Everywhere has changed to DB2 Everyplace.
  701.   ------------------------------------------------------------------------
  702.  
  703. 1.8 Error Messages when Attempting to Launch Netscape
  704.  
  705. If you encounter the following error messages when attempting to launch
  706. Netscape:
  707.  
  708.    Cannot find file <file path> (or one of its components).
  709.      Check to ensure the path and filename are correct and that all
  710.      required libraries are available.
  711.  
  712.    Unable to open "D:\Program Files\SQLLIB\CC\..\doc\html\db2help\XXXXX.htm"
  713.  
  714. you should take the following steps to correct this problem on Windows NT,
  715. 95, or 98 (see below for what to do on Windows 2000):
  716.  
  717.   1. From the Start menu, select Programs --> Windows Explorer. Windows
  718.      Explorer opens.
  719.   2. From Windows Explorer, select View --> Options. The Options Notebook
  720.      opens.
  721.   3. Click the File types tab. The File types page opens.
  722.   4. Highlight Netscape Hypertext Document in the Registered file types
  723.      field and click Edit. The Edit file type window opens.
  724.   5. Highlight "Open" in the Actions field.
  725.   6. Click the Edit button. The Editing action for type window opens.
  726.   7. Uncheck the Use DDE check box.
  727.   8. In the Application used to perform action field, make sure that "%1"
  728.      appears at the very end of the string (include the quotation marks,
  729.      and a blank space before the first quotation mark).
  730.  
  731. If you encounter the messages on Windows 2000, you should take the
  732. following steps:
  733.  
  734.   1. From the Start menu, select Windows Explorer. Windows Explorer opens.
  735.   2. From Windows Explorer, select Tools --> Folder Options. The Folder
  736.      Options notebook opens.
  737.   3. Click the File Types tab.
  738.   4. On the File Types page, in the Registered file types field, highlight:
  739.      HTM Netscape Hypertext Document and click Advanced. The Edit File Type
  740.      window opens.
  741.   5. Highlight "open" in the Actions field.
  742.   6. Click the Edit button. The Editing Action for Type window opens.
  743.   7. Uncheck the Use DDE check box.
  744.   8. In the Application used to perform action field, make sure that "%1"
  745.      appears at the very end of the string (include the quotation marks,
  746.      and a blank space before the first quotation mark).
  747.   9. Click OK.
  748.  10. Repeat steps 4 through 8 for the HTML Netscape Hypertext Document and
  749.      SHTML Netscape Hypertext Document file types.
  750.  
  751.   ------------------------------------------------------------------------
  752.  
  753. 1.9 Mouse Required
  754.  
  755. For all platforms except Windows, a mouse is required to use the tools.
  756.   ------------------------------------------------------------------------
  757.  
  758. 1.10 Supported Web Browsers on the Windows 2000 Operating System
  759.  
  760. We recommend that you use Microsoft Internet Explorer on Windows 2000.
  761.  
  762. If you use Netscape, please be aware of the following:
  763.  
  764.    * DB2 online information searches may take a long time to complete on
  765.      Windows 2000 using Netscape. Netscape will use all available CPU
  766.      resources and appear to run indefinitely. While the search results may
  767.      eventually return, we recommend that you change focus by clicking on
  768.      another window after submitting the search. The search results will
  769.      then return in a reasonable amount of time.
  770.    * You may also run into this problem: in the Control Center, when you
  771.      request help it is displayed correctly in a Netscape browser window,
  772.      but if you leave the browser window open and request help later on
  773.      from a different part of the Control Center, nothing changes in the
  774.      browser. If you close the browser window and request help again, the
  775.      correct help comes up. You may be able to fix this problem by
  776.      following the steps in 1.8, Error Messages when Attempting to Launch
  777.      Netscape. You can also get around the problem by closing the browser
  778.      window before requesting help for the Control Center.
  779.    * When you request Control Center help, or a topic from the Information
  780.      Center, you may get an error message. To fix this, follow the steps in
  781.      1.8, Error Messages when Attempting to Launch Netscape.
  782.  
  783.   ------------------------------------------------------------------------
  784.  
  785. 1.11 Opening External Web Links in Netscape Navigator From The Information
  786. Center when Netscape is Already Open (UNIX Based Systems)
  787.  
  788. If Netscape Navigator is already open and displaying either a local DB2
  789. HTML document or an external Web site, an attempt to open an external Web
  790. site from the Information Center will result in a Netscape error. The error
  791. will state that "Netscape is unable to find the file or directory named
  792. <external site>."
  793.  
  794. To work around this problem, close the open Netscape browser before opening
  795. the external Web site. Netscape will restart and bring up the external Web
  796. site.
  797.  
  798. Note that this error does not occur when attempting to open a local DB2
  799. HTML document with Netscape already open.
  800.   ------------------------------------------------------------------------
  801.  
  802. 1.12 Problems Starting the Information Center
  803.  
  804. On some systems, the Information Center can be slow to start if you invoke
  805. it using the Start Menu, First Steps, or the db2ic command. If you
  806. experience this problem, start the Control Center, then select Help -->
  807. Information Center.
  808.   ------------------------------------------------------------------------
  809.  
  810. 1.13 Configuration Requirement for Adobe Acrobat Reader on UNIX Based
  811. Systems
  812.  
  813. Acrobat Reader is only offered in English on UNIX based platforms, and
  814. errors may be returned when attempting to open PDF files with language
  815. locales other than English. These errors suggest font access or extraction
  816. problems with the PDF file, but are actually due to the fact that the
  817. English Acrobat Reader cannot function correctly within a UNIX non-English
  818. language locale.
  819.  
  820. To view such PDF files, switch to the English locale by performing one of
  821. the following steps before launching the English Acrobat Reader:
  822.  
  823.    * Edit the Acrobat Reader's launch script, by adding the following line
  824.      after the #!/bin/sh statement in the launch script file:
  825.  
  826.      LANG=C;export LANG
  827.  
  828.      This approach will ensure correct behavior when Acrobat Reader is
  829.      launched by other applications, such as Netscape Navigator, or an
  830.      application help menu.
  831.    * Enter LANG=C at the command prompt to set the Acrobat Reader's
  832.      application environment to English.
  833.  
  834. For further information, contact Adobe Systems (http://www.Adobe.com).
  835.   ------------------------------------------------------------------------
  836.  
  837. 1.14 Attempting to Bind from the DB2 Run-time Client Results in a "Bind
  838. files not found" Error
  839.  
  840. Because the DB2 Run-time Client does not have the full set of bind files,
  841. the binding of GUI tools cannot be done from the DB2 Run-time Client, and
  842. can only be done from the DB2 Administration Client.
  843.   ------------------------------------------------------------------------
  844.  
  845. 1.15 Additional Required Solaris Patch Level
  846.  
  847. DB2 Universal Database Version 7.1 for Solaris Version 2.6 requires patch
  848. 106285-02 or higher, in addition to the patches listed in the DB2 for UNIX
  849. Quick Beginnings manual.
  850.   ------------------------------------------------------------------------
  851.  
  852. 1.16 Supported CPUs on DB2 Version 7.1 for Solaris
  853.  
  854. CPU versions previous to UltraSparc are not supported.
  855.   ------------------------------------------------------------------------
  856.  
  857. 1.17 Searching the DB2 Online Information on Solaris
  858.  
  859. If you are having problems searching the DB2 online information on your
  860. Solaris system, check your system's kernel parameters in /etc/system. Here
  861. are the minimum kernel parameters required by DB2's search system,
  862. NetQuestion:
  863.  
  864.    semsys:seminfo_semmni 256
  865.    semsys:seminfo_semmap 258
  866.    semsys:seminfo_semmns 512
  867.    semsys:seminfo_semmnu 512
  868.    semsys:seminfo_semmsl 50
  869.    shmsys:shminfo_shmmax 6291456
  870.    shmsys:shminfo_shmseg 16
  871.    shmsys:shminfo_shmmni 300
  872.  
  873. To set a kernel parameter, add a line at the end of /etc/system as follows:
  874.  
  875.    set <semaphore_name> = value
  876.  
  877. You must reboot your system for any new or changed values to take effect.
  878.   ------------------------------------------------------------------------
  879.  
  880. 1.18 Java Control Center on OS/2
  881.  
  882. The Control Center must be installed on an HPFS-formatted drive.
  883.   ------------------------------------------------------------------------
  884.  
  885. 1.19 Search Discovery
  886.  
  887. Search discovery is only supported on broadcast media. For example, search
  888. discovery will not function through an ATM adapter. However, this
  889. restriction does not apply to known discovery.
  890.   ------------------------------------------------------------------------
  891.  
  892. 1.20 Problems When Adding Nodes to a Partitioned Database
  893.  
  894. When adding nodes to a partitioned database that has one or more system
  895. temporary table spaces with a page size that is different from the default
  896. page size (4 KB), you may encounter the error message: "SQL6073N Add Node
  897. operation failed" and an SQLCODE. This occurs because only the IBMDEFAULTBP
  898. buffer pool exists with a page size of 4 KB when the node is created.
  899.  
  900. For example, you can use the db2start command to add a node to the current
  901. partitioned database:
  902.  
  903.    DB2START NODENUM 2 ADDNODE HOSTNAME newhost PORT 2
  904.  
  905. If the partitioned database has system temporary table spaces with the
  906. default page size, the following message is returned:
  907.  
  908.    SQL6075W The Start Database Manager operation successfully added the node.
  909.         The node is not active until all nodes are stopped and started again.
  910.  
  911. However, if the partitioned database has system temporary table spaces that
  912. are not the default page size, the returned message is:
  913.  
  914.    SQL6073N Add Node operation failed. SQLCODE = "<-902>"
  915.  
  916. In a similar example, you can use the ADD NODE command after manually
  917. updating the db2nodes.cfg file with the new node description. After editing
  918. the file and running the ADD NODE command with a partitioned database that
  919. has system temporary table spaces with the default page size, the following
  920. message is returned:
  921.  
  922.    DB20000I The ADD NODE command completed successfully.
  923.  
  924. However, if the partitioned database has system temporary table spaces that
  925. are not the default page size, the returned message is:
  926.  
  927.    SQL6073N Add Node operation failed. SQLCODE = "<-902>"
  928.  
  929. One way to prevent the problems outlined above is to run:
  930.  
  931.    DB2SET DB2_HIDDENBP=16
  932.  
  933. before issuing db2start or the ADD NODE command. This registry variable
  934. enables DB2 to allocate hidden buffer pools of 16 pages each using a page
  935. size different from the default. This enables the ADD NODE operation to
  936. complete successfully.
  937.  
  938. Another way to prevent these problems is to specify the WITHOUT TABLESPACES
  939. clause on the ADD NODE or the db2start command. After doing this, you will
  940. have to create the buffer pools using the CREATE BUFFERPOOL statement, and
  941. associate the system temporary table spaces to the buffer pool using the
  942. ALTER TABLESPACE statement.
  943.  
  944. When adding nodes to an existing nodegroup that has one or more table
  945. spaces with a page size that is different from the default page size (4
  946. KB), you may encounter the error message: "SQL0647N Bufferpool "" is
  947. currently not active.". This occurs because the non-default page size
  948. buffer pools created on the new node have not been activated for the table
  949. spaces.
  950.  
  951. For example, you can use the ALTER NODEGROUP statement to add a node to a
  952. nodegroup:
  953.  
  954.    DB2START
  955.    CONNECT TO mpp1
  956.    ALTER NODEGROUP ng1 ADD NODE (2)
  957.  
  958. If the nodegroup has table spaces with the default page size, the following
  959. message is returned:
  960.  
  961.    SQL1759W Redistribute nodegroup is required to change data positioning for
  962.         objects in nodegroup "<ng1>" to include some added nodes or exclude
  963.         some drop nodes.
  964.  
  965. However, if the nodegroup has table spaces that are not the default page
  966. size, the returned message is:
  967.  
  968.    SQL0647N Bufferpool "" is currently not active.
  969.  
  970. One way to prevent this problem is to create buffer pools for each page
  971. size and then to reconnect to the database before issuing the ALTER
  972. NODEGROUP statement:
  973.  
  974.    DB2START
  975.    CONNECT TO mpp1
  976.    CREATE BUFFERPOOL bp1 SIZE 1000 PAGESIZE 8192
  977.    CONNECT RESET
  978.    CONNECT TO mpp1
  979.    ALTER NODEGROUP ng1 ADD NODE (2)
  980.  
  981. A second way to prevent the problem is to run:
  982.  
  983.    DB2SET DB2_HIDDENBP=16
  984.  
  985. before issuing the db2start command, and the CONNECT and ALTER NODEGROUP
  986. statements.
  987.  
  988. Another problem can occur when the ALTER TABLESPACE statement is used to
  989. add a table space to a node. For example:
  990.  
  991.    DB2START
  992.    CONNECT TO mpp1
  993.    ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES
  994.    ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2)
  995.  
  996. This series of commands and statements generates the error message SQL0647N
  997. (not the expected message SQL1759W).
  998.  
  999. To complete this change correctly, you should reconnect to the database
  1000. after the ALTER NODEGROUP... WITHOUT TABLESPACES statement.
  1001.  
  1002.    DB2START
  1003.    CONNECT TO mpp1
  1004.    ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES
  1005.    CONNECT RESET
  1006.    CONNECT TO mpp1
  1007.    ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2)
  1008.  
  1009. Another way to prevent the problem is to run:
  1010.  
  1011.    DB2SET DB2_HIDDENBP=16
  1012.  
  1013. before issuing the db2start command, and the CONNECT, ALTER NODEGROUP, and
  1014. ALTER TABLESPACE statements.
  1015.   ------------------------------------------------------------------------
  1016.  
  1017. 1.21 Errors During Migration
  1018.  
  1019. During migration, error entries in the db2diag.log file (database not
  1020. migrated) appear even when migration is successful, and can be ignored.
  1021.   ------------------------------------------------------------------------
  1022.  
  1023. 1.22 Memory Windows for HP-UX 11
  1024.  
  1025. Memory windows is for users on large HP 64-bit machines, who want to take
  1026. advantage of greater than 1.75 GB of shared memory for 32-bit applications.
  1027. Memory windows makes available a separate 1 GB of shared memory per process
  1028. or group of processes. This allows an instance to have its own 1 GB of
  1029. shared memory, plus the 0.75 GB of global shared memory. If users want to
  1030. take advantage of this, they can run multiple instances, each in its own
  1031. window. Following are prerequisites and conditions for using memory
  1032. windows:
  1033.  
  1034.    * DB2 EE environment
  1035.         o Patches: Extension Software 12/98, and PHKL_17795.
  1036.         o The $DB2INSTANCE variable must be set for the instance.
  1037.         o There must be an entry in the /etc/services.window file for each
  1038.           DB2 instance that you want to run under memory windows. For
  1039.           example:
  1040.  
  1041.              db2instance1 50
  1042.              db2instance2 60
  1043.  
  1044.              Note:  There can only be a single space between the name and the ID.
  1045.  
  1046.         o Any DB2 commands that you want to run on the server, and that
  1047.           require more than a single statement, must be run using a TCP/IP
  1048.           loopback method. This is because the shell will terminate when
  1049.           memory windows finishes processing the first statement. DB2
  1050.           Service knows how to accomplish this.
  1051.         o Any DB2 command that you want to run against an instance that is
  1052.           running in memory windows must be prefaced with db2win (located
  1053.           in sqllib/bin). For example:
  1054.  
  1055.              db2win db2start
  1056.              db2win db2stop
  1057.  
  1058.         o Any DB2 command that is run outside of memory windows (but when
  1059.           memory windows is running) should return a 1042. For example:
  1060.  
  1061.              db2win db2start <== OK
  1062.              db2 connect to db  <==SQL1042
  1063.              db2stop <==SQL1042
  1064.              db2win db2stop   <== OK
  1065.  
  1066.    * DB2 EEE environment
  1067.         o Patches: Extension Software 12/98, and PHKL_17795.
  1068.         o The $DB2INSTANCE variable must be set for the instance.
  1069.         o The DB2_ENABLE_MEM_WINDOWS registry variable must be set to TRUE.
  1070.         o There must be an entry in the /etc/services.window file for each
  1071.           logical node of each instance that you want to run under memory
  1072.           windows. The first field of each entry should be the instance
  1073.           name concatenated with the port number. For example:
  1074.  
  1075.                === $HOME/sqllib/db2nodes.cfg for db2instance1 ===
  1076.                5 host1 0
  1077.                7 host1 1
  1078.                9 host2 0
  1079.  
  1080.                === $HOME/sqllib/db2nodes.cfg for db2instance2 ===
  1081.                1 host1 0
  1082.                2 host2 0
  1083.                3 host2 1
  1084.  
  1085.                === /etc/services.window on host1 ===
  1086.                db2instance10 50
  1087.                db2instance11 55
  1088.                db2instance20 60
  1089.  
  1090.                === /etc/services.window on host2 ===
  1091.                db2instance10 30
  1092.                db2instance20 32
  1093.                db2instance21 34
  1094.  
  1095.         o You must not preface any DB2 command with db2win, which is to be
  1096.           used in an EE environment only.
  1097.  
  1098.   ------------------------------------------------------------------------
  1099.  
  1100. 1.23 Spatial Extender is Unavailable
  1101.  
  1102. DB2 Spatial Extender functionality will be available in a future release.
  1103. Updates to DB2 Spatial Extender information will be included in the Release
  1104. Notes on the DB2 Spatial Extender CD-ROM.
  1105.   ------------------------------------------------------------------------
  1106.  
  1107. 1.24 SQL Reference is Provided in One PDF File
  1108.  
  1109. The "Using the DB2 Library" appendix in each book indicates that the SQL
  1110. Reference is available in PDF format as two separate volumes. This is
  1111. incorrect.
  1112.  
  1113. Although the printed book appears in two volumes, and the two corresponding
  1114. form numbers are correct, there is only one PDF file, and it contains both
  1115. volumes. The PDF file name is db2s0x70.
  1116.   ------------------------------------------------------------------------
  1117.  
  1118. 1.25 Migration Issue Regarding Views Defined with Special Registers
  1119.  
  1120. Views become unusable after database migration if the special register USER
  1121. or CURRENT SCHEMA is used to define a view column. For example:
  1122.  
  1123.    create view v1 (c1) as values user
  1124.  
  1125. In Version 5, USER and CURRENT SCHEMA were of data type CHAR(8), but since
  1126. Version 6, they have been defined as VARCHAR(128). In this example, the
  1127. data type for column c1 is CHAR if the view is created in Version 5, and it
  1128. will remain CHAR after database migration. When the view is used after
  1129. migration, it will compile at run time, but will then fail because of the
  1130. data type mismatch.
  1131.  
  1132. The solution is to drop and then recreate the view.
  1133.   ------------------------------------------------------------------------
  1134.  
  1135. 1.26 User Action for dlfm client_conf Failure
  1136.  
  1137. If, on a DLFM client, dlfm client_conf fails for some reason, "stale"
  1138. entries in DB2 catalogs may be the reason. The solution is to issue the
  1139. following commands:
  1140.  
  1141.    db2 uncatalog db <dbname>
  1142.    db2 uncatalog node <node alias>
  1143.    db2 terminate
  1144.  
  1145. Then try dlfm client_conf again.
  1146.   ------------------------------------------------------------------------
  1147.  
  1148. 1.27 In the Rare Event that the Copy Daemon Does Not Stop on dlfm stop
  1149.  
  1150. It could happen in very rare situations that dlfm_copyd (the copy daemon)
  1151. does not stop when a user issues a dlfm stop, or there is an abnormal
  1152. shutdown. If this happens, issue a dlfm shutdown before trying to restart
  1153. dlfm.
  1154.   ------------------------------------------------------------------------
  1155.  
  1156. 1.28 Chinese Locale Fix on Red Flag Linux
  1157.  
  1158. If you are using Simplified Chinese Red Flag Linux Server Version 1.1,
  1159. visit http://www.redflag-linux.com.cn/downloads.htm to download the
  1160. Simplified Chinese locale fix.
  1161.   ------------------------------------------------------------------------
  1162.  
  1163. 1.29 Uninstalling DB2 DFS Client Enabler
  1164.  
  1165. Before the DB2 DFS Client Enabler is uninstalled, root should ensure that
  1166. no DFS file is in use, and that no user has a shell open in DFS file space.
  1167. As root, issue the command:
  1168.  
  1169.    stop.dfs dfs_cl
  1170.  
  1171. Check that /... is no longer mounted:
  1172.  
  1173.    mount | grep -i dfs
  1174.  
  1175. If this is not done, and DB2 DFS Client Enabler is uninstalled, the machine
  1176. will need to be rebooted.
  1177.   ------------------------------------------------------------------------
  1178.  
  1179. 1.30 DB2 Install May Hang if a Removable Drive is Not Attached
  1180.  
  1181. During DB2 installation, the install may hang after selecting the install
  1182. type when using a computer with a removable drive that is not attached. To
  1183. solve this problem, run setup, specifying the -a option:
  1184.  
  1185.    setup.exe -a
  1186.  
  1187.   ------------------------------------------------------------------------
  1188.  
  1189. 1.31 Client Authentication on Windows NT
  1190.  
  1191. A new DB2 registry variable DB2DOMAINLIST is introduced to complement the
  1192. existing client authentication mechanism in the Windows NT environment.
  1193. This variable is used on the DB2 for Windows NT server to define one or
  1194. more Windows NT domains. Only connection or attachment requests from users
  1195. belonging to the domains defined in this list will be accepted.
  1196.  
  1197. This registry variable should only be used under a pure Windows NT domain
  1198. environment with DB2 servers and clients running at Version 7.1 (or
  1199. higher).
  1200.  
  1201. For information about setting this registry variable, refer to the "DB2
  1202. Registry and Environment Variables" section in the Administration Guide:
  1203. Performance.
  1204.   ------------------------------------------------------------------------
  1205.  
  1206. 1.32 AutoLoader May Hang During a Fork
  1207.  
  1208. AIX 4.3.3 contains a fix for a libc problem that could cause the AutoLoader
  1209. to hang during a fork. The AutoLoader is a multithreaded program. One of
  1210. the threads forks( ) off another process. Forking off a child process
  1211. causes an image of the parent's memory to be created in the child.
  1212.  
  1213. It is possible that locks used by libc.a to manage multiple threads
  1214. allocating memory from the heap within the same process have been held by a
  1215. non-forking thread. Since the non-forking thread will not exist in the
  1216. child process, this lock will never be released in the child, causing the
  1217. parent to sometimes hang.
  1218.   ------------------------------------------------------------------------
  1219.  
  1220. 1.33 DATALINK Restore
  1221.  
  1222. Restore of any offline backup that was taken after a database restore, with
  1223. or without rollforward, will not involve fast reconcile processing. In such
  1224. cases, all tables with DATALINK columns under file link control will be put
  1225. in datalink reconcile pending (DRP) state.
  1226.   ------------------------------------------------------------------------
  1227.  
  1228. 1.34 Define User ID and Password in IBM Communications Server for Windows
  1229. NT (CS/NT)
  1230.  
  1231. If you are using APPC as the communication protocol for remote DB2 clients
  1232. to connect to your DB2 server and if you use CS/NT as the SNA product, make
  1233. sure that the following keyword is set correctly in the CS/NT configuration
  1234. file. This file is commonly found in the x:\ibmcs\private directory.
  1235.  
  1236. 1.34.1 Node Definition
  1237.  
  1238. TG_SECURITY_BEHAVIOR
  1239.      This parameter allows the user to determine how the node is to handle
  1240.      security information present in the ATTACH if the TP is not configured
  1241.      for security
  1242.  
  1243. IGNORE_IF_NOT_DEFINED
  1244.      This parameter allows the user to determine if security parameters are
  1245.      present in the ATTACH and to ignore them if the TP is not configured
  1246.      for security.
  1247.  
  1248.      If you use IGNORE_IF_NOT_DEFINED, you don't have to define a User ID
  1249.      and password in CS/NT.
  1250.  
  1251. VERIFY_EVEN_IF_NOT_DEFINED
  1252.      This parameter allows the user to determine if security parameters are
  1253.      present in the ATTACH, verify them even if the TP is not configured
  1254.      for security. This is the default.
  1255.  
  1256.      If you use VERIFY_EVEN_IF_NOT_DEFINED, you have to define User ID and
  1257.      password in CS/NT.
  1258.  
  1259. To define the CS/NT User ID and password, perform the following steps:
  1260.  
  1261.   1. Start --> Programs --> IBM Communications Server --> SNA Node
  1262.      Configuration. The Welcome to Communications Server Configuration
  1263.      window opens.
  1264.   2. Choose the configuration file you want to modify. Click Next. The
  1265.      Choose a Configuration Scenario window opens.
  1266.   3. Highlight CPI-C, APPC or 5250 Emulation. Click Finish. The
  1267.      Communications Server SNA Node Window opens.
  1268.   4. Click the [+] beside CPI-C and APPC.
  1269.   5. Click the [+] beside LU6.2 Security.
  1270.   6. Right click on User Passwords and select Create. The Define a User ID
  1271.      Password window opens.
  1272.   7. Fill in the User ID and password. Click OK. Click Finish to accept the
  1273.      changes.
  1274.  
  1275.   ------------------------------------------------------------------------
  1276.  
  1277. 1.35 Federated Systems Restrictions
  1278.  
  1279. Following are restrictions that apply to federated systems:
  1280.  
  1281.    * The Oracle data types NCHAR, NVARCHAR2, BLOB, CLOB, NCLOB, and BFILE
  1282.      are not supported in queries involving nicknames.
  1283.    * The Create Server Option, Alter Server Option, and Drop Server Option
  1284.      commands are not supported from the Control Center. To issue any of
  1285.      these commands, you must use the command line processor (CLP).
  1286.    * For queries involving nicknames, DB2 UDB does not always abide by the
  1287.      DFT_SQLMATHWARN database configuration option. Instead, DB2 UDB
  1288.      returns the arithmetic errors or warnings directly from the remote
  1289.      data source regardless of the DFT_SQLMATHWARN setting.
  1290.    * The CREATE SERVER OPTION statement does not allow the COLSEQ server
  1291.      option to be set to 'I' for data sources with case-insensitive
  1292.      collating sequences.
  1293.    * The ALTER NICKNAME statement returns SQL0901N when an invalid option
  1294.      is specified.
  1295.    * For Oracle data sources, numeric data types cannot be mapped to DB2's
  1296.      BIGINT data type. By default, Oracle's number(p,s) data type, where 10
  1297.      <= p <= 18, and s = 0, maps to DB2's DECIMAL data type.
  1298.  
  1299.   ------------------------------------------------------------------------
  1300.  
  1301. 1.36 DataJoiner Restriction
  1302.  
  1303. Distributed requests issued within a federated environment are limited to
  1304. read-only operations.
  1305.   ------------------------------------------------------------------------
  1306.  
  1307. 1.37 IPX/SPX Protocol Support on Windows 2000
  1308.  
  1309. The published protocol support chart is not completely correct. A Windows
  1310. 2000 client connected to any OS/2 or UNIX based server using IPX/SPX is not
  1311. supported. Also, any OS/2 or UNIX based client connected to a Windows 2000
  1312. server using IPX/SPX is not supported.
  1313.   ------------------------------------------------------------------------
  1314.  
  1315. 1.38 Stopping DB2 Processes Before Upgrading a Previous Version of DB2
  1316.  
  1317. If you are upgrading a previous version of DB2 that is running on your
  1318. Windows machine, the installation program provides a warning containing a
  1319. list of processes that are holding DB2 DLLs in memory. At this point, you
  1320. have the option to manually stop the processes that appear in that list, or
  1321. you can let the installation program shut down these processes
  1322. automatically. It is recommended that you manually stop all DB2 processes
  1323. before installing to avoid loss of data. The best way to ensure that DB2
  1324. processes are not running is to view your system's processes through the
  1325. Windows Services panel. In the Windows Services panel, ensure that there
  1326. are no DB2 services, OLAP services, or Data warehouse services running.
  1327.  Note:You can only have one version of DB2 running on Windows platforms at
  1328.       any one time. For example, you cannot have DB2 Version 7.1 and DB2
  1329.       Version 6 running on the same Windows machine. If you install DB2
  1330.       Version 7.1 on a machine that has DB2 Version 6 installed, the
  1331.       installation program will delete DB2 Version 6 during the
  1332.       installation. Refer to the appropriate Quick Beginnings manual for
  1333.       more information on migrating from previous versions of DB2.
  1334.   ------------------------------------------------------------------------
  1335.  
  1336. 1.39 Run db2iupdt After Installing DB2 If Another DB2 Product is Already
  1337. Installed
  1338.  
  1339. When installing DB2 UDB Version 7.1 on UNIX based systems, and a DB2
  1340. product is already installed, you will need to run the db2iupdt command to
  1341. update those instances with which you intend to use the new features of
  1342. this product. Some features will not be available until this command is
  1343. run.
  1344.   ------------------------------------------------------------------------
  1345.  
  1346. 1.40 JDK Level on OS/2
  1347.  
  1348. Some messages will not display on OS/2 running versions of JDK 1.1.8
  1349. released prior to 09/99. Ensure that you have the latest JDK Version 1.1.8.
  1350.   ------------------------------------------------------------------------
  1351.  
  1352. 1.41 Setting up the Linux Environment to Run DB2
  1353.  
  1354. After leaving the DB2 installer on Linux and returning to the terminal
  1355. window, type the following commands to set the correct environment to run
  1356. the DB2 Control Center:
  1357.  
  1358.    su -l <instance name>
  1359.    export JAVA_HOME=/usr/jdk118
  1360.    export DISPLAY=<your machine name>:0
  1361.  
  1362. Then, open another terminal window and type:
  1363.  
  1364.    su root
  1365.    xhost +<your machine name>
  1366.  
  1367. Close that terminal window and return to the terminal where you are logged
  1368. in as the instance owner ID, and type the command:
  1369.  
  1370.    db2cc
  1371.  
  1372. to start the Control Center.
  1373.   ------------------------------------------------------------------------
  1374.  
  1375. 1.42 Hebrew Information Catalog Manager for Windows NT
  1376.  
  1377. The Information Catalog Manager component is available in Hebrew and is
  1378. provided on the DB2 Warehouse Manager for Windows NT CD.
  1379.  
  1380. The Hebrew translation is provided in a zip file called IL_ICM.ZIP and is
  1381. located in the DB2\IL directory on the DB2 Warehouse Manager for Windows NT
  1382. CD.
  1383.  
  1384. To install the Hebrew translation of Information Catalog Manger, first
  1385. install the English version of DB2 Warehouse Manager for Windows NT and all
  1386. prerequisites on a Hebrew Enabled version of Windows NT.
  1387.  
  1388. After DB2 Warehouse Manager for Windows NT has been installed, unzip the
  1389. IL_ICM.ZIP file from the DB2\IL directory into the same directory where DB2
  1390. Warehouse Manager for Windows NT was installed. Ensure that the correct
  1391. options are supplied to the unzip program to create the directory structure
  1392. in the zip file.
  1393.  
  1394. After the file has been unzipped, the global environment variable LC_ALL
  1395. must be changed from En_US to Iw_IL. To change the setting:
  1396.  
  1397.   1. Open the Windows NT "Control Panel" and double click on the "System"
  1398.      icon.
  1399.   2. In the "System Properties" window, click on the "Environment" tab,
  1400.      then locate the variable "LC_ALL" in the "System Variables" section.
  1401.   3. Click on the variable to display the value in the "Value:" edit box.
  1402.      Change the value from En_US to Iw_IL.
  1403.   4. Click on the "Set" button.
  1404.   5. Close the "System Properties" window and the "Control Panel".
  1405.  
  1406. The Hebrew version of Information Catalog Manager should now be installed.
  1407.   ------------------------------------------------------------------------
  1408.  
  1409. 1.43 Error While Creating an SQL Stored Procedure on the Server
  1410.  
  1411. To create SQL stored procedures on the server, the application development
  1412. client (as well as a compiler) must be installed on the server. Otherwise,
  1413. the create operation will fail with a message indicating that db2udp.dll
  1414. cannot be loaded.
  1415.   ------------------------------------------------------------------------
  1416.  
  1417. 1.44 Microsoft SNA Server and SNA Multisite Update (Two Phase Commit)
  1418. Support
  1419.  
  1420. Host and AS/400 applications cannot access DB2 UDB servers using SNA two
  1421. phase commit when Microsoft SNA Server is the SNA product in use. Any DB2
  1422. UDB publications indicating this is supported are incorrect. IBM
  1423. Communications Server for Windows NT Version 5.02 or greater is required.
  1424.  Note:Applications accessing host and AS/400 database servers using DB2
  1425.       UDB for Windows can use SNA two phase commit using Microsoft SNA
  1426.       Server Version 4 Service Pack 3 or greater.
  1427.   ------------------------------------------------------------------------
  1428.  
  1429. 1.45 DB2's SNA SPM Fails to Start After Booting Windows
  1430.  
  1431. If you are using Microsoft SNA Server Version 4 SP3 or later, please verify
  1432. that DB2's SNA SPM started properly after a reboot. Check the
  1433. \sqllib\<instance name>\db2diag.log file for entries that are similar to
  1434. the following:
  1435.  
  1436. 2000-04-20-13.18.19.958000   Instance:DB2   Node:000
  1437. PID:291(db2syscs.exe)   TID:316   Appid:none
  1438. common_communication  sqlccspmconnmgr_APPC_init   Probe:19
  1439. SPM0453C  Sync point manager did not start because Microsoft SNA Server has not
  1440. been started.
  1441.  
  1442. 2000-04-20-13.18.23.033000   Instance:DB2   Node:000
  1443. PID:291(db2syscs.exe)   TID:302   Appid:none
  1444. common_communication  sqlccsna_start_listen   Probe:14
  1445. DIA3001E "SNA SPM" protocol support was not successfully started.
  1446.  
  1447. 2000-04-20-13.18.23.603000   Instance:DB2   Node:000
  1448. PID:291(db2syscs.exe)   TID:316   Appid:none
  1449. common_communication  sqlccspmconnmgr_listener   Probe:6
  1450. DIA3103E Error encountered in APPC protocol support. APPC verb "APPC(DISPLAY 1
  1451. BYTE)". Primary rc was "F004". Secondary rc was "00000000".
  1452.  
  1453. If such entries exist in your db2diag.log, and the time stamps match your
  1454. most recent reboot time, you must:
  1455.  
  1456.   1. Invoke db2stop.
  1457.   2. Start the SnaServer service (if not already started).
  1458.   3. Invoke db2start.
  1459.  
  1460. Check the db2diag.log file again to verify that the entries are no longer
  1461. appended.
  1462.   ------------------------------------------------------------------------
  1463.  
  1464. 1.46 Additional Locale Setting for DB2 for Linux in a Japanese and
  1465. Simplified Chinese Linux Environment
  1466.  
  1467. An additional locale setting is required when you want to use the Java GUI
  1468. tools, such as the Control Center, on a Japanese or Simplified Chinese
  1469. Linux system. Japanese or Chinese characters cannot be displayed correctly
  1470. without this setting. Please include the following setting in your user
  1471. profile, or run it from the command line before every invocation of the
  1472. Control Center.
  1473.  
  1474.    For a Japanese system:
  1475.       export LC_ALL=ja_JP
  1476.  
  1477.    For a Simplified Chinese system:
  1478.      export LC_ALL=zh_CN
  1479.  
  1480.   ------------------------------------------------------------------------
  1481.  
  1482. 1.47 Locale Setting for the DB2 Administration Server
  1483.  
  1484. Please ensure that the locale of the DB2 Administration Server instance is
  1485. compatible to the locale of the DB2 instance. Otherwise, the DB2 instance
  1486. cannot communicate with the DB2 Administration Server.
  1487.  
  1488. If the LANG environment variable is not set in the user profile of the DB2
  1489. Administration Server, the DB2 Administration Server will be started with
  1490. the default system locale. If the default system locale is not defined, the
  1491. DB2 Administration Server will be started with code page 819. If the DB2
  1492. instance uses one of the DBCS locales, and the DB2 Administration Server is
  1493. started with code page 819, the instance will not be able to communicate
  1494. with the DB2 Administration Server. The locale of the DB2 Administration
  1495. Server and the locale of the DB2 instance must be compatible. For example,
  1496. on a Simplified Chinese Linux system, "LANG=zh_CN" should be set in the DB2
  1497. Administration Server's user profile.
  1498.   ------------------------------------------------------------------------
  1499.  
  1500. 1.48 Java Method Signature in PARAMETER STYLE JAVA Procedures and Functions
  1501.  
  1502. If specified after the Java method name in the EXTERNAL NAME clause of the
  1503. CREATE PROCEDURE or CREATE FUNCTION statement, the Java method signature
  1504. must correspond to the default Java type mapping for the signature
  1505. specified after the procedure or function name. For example, the default
  1506. Java mapping of the SQL type INTEGER is "int", not "java.lang.Integer".
  1507.   ------------------------------------------------------------------------
  1508.  
  1509. 1.49 Shortcuts Not Working
  1510.  
  1511. In some languages, for the Control Center on UNIX based systems and on
  1512. OS/2, some keyboard shortcuts do not work. Please use the mouse to select
  1513. options.
  1514.   ------------------------------------------------------------------------
  1515.  
  1516. 1.50 Service Account Requirements for DB2 on Windows NT and Windows 2000
  1517.  
  1518. During the installation of DB2 for Windows NT or Windows 2000, the setup
  1519. program creates several Windows services and assigns a service account for
  1520. each service. To run DB2 properly, the setup program grants the following
  1521. user rights to the service account that is associated with the DB2 service:
  1522.  
  1523.    * Act as part of the operating system
  1524.    * Create a token object
  1525.    * Increase quotas
  1526.    * Log on as a service
  1527.    * Replace a process level token.
  1528.  
  1529. If you want to use a different service account for the DB2 services, you
  1530. must grant these user rights to the service account.
  1531.  
  1532. In addition to these user rights, the service account must also have write
  1533. access to the directory where the DB2 product is installed.
  1534.  
  1535. The service account for the DB2 Administration Server service (DB2DAS00
  1536. service) must also have the authority to start and stop other DB2 services
  1537. (that is, the service account must belong to the Power Users group) and
  1538. have DB2 SYSADM authority against any DB2 instances that it administers.
  1539.   ------------------------------------------------------------------------
  1540.  
  1541. Administration Guide: Planning
  1542.  
  1543.   ------------------------------------------------------------------------
  1544.  
  1545. 2.1 Chapter 14. DB2 and High Availability on Sun Cluster 2.2
  1546.  
  1547. DB2 Connect is supported on Sun Cluster 2.2 if:
  1548.  
  1549.    * The protocol to the host is TCP/IP (not SNA)
  1550.    * Two-phase commit is not used. This restriction is relaxed if the user
  1551.      configures the SPM log to be on a shared disk (this can be done
  1552.      through the spm_log_path database manager configuration parameter),
  1553.      and the failover machine has an identical TCP/IP configuration (the
  1554.      same host name, IP address, and so on).
  1555.  
  1556.   ------------------------------------------------------------------------
  1557.  
  1558. 2.2 Appendix E. National Language Support
  1559.  
  1560. The first paragraph in the section entitled "Deriving Code Page Values"
  1561. states the following:
  1562.  
  1563.    The application code page is derived from the active environment
  1564.    when the database connection is made. If the DB2CODEPAGE
  1565.    registry variable is set, its value is taken as the application code page.
  1566.  
  1567. This is not always true for applications coded to use the CLI interface.
  1568. The CLI code layer will use the locale settings in some cases, even if the
  1569. user has set the DB2CODEPAGE registry variable.
  1570.   ------------------------------------------------------------------------
  1571.  
  1572. Administration Guide: Implementation
  1573.  
  1574.   ------------------------------------------------------------------------
  1575.  
  1576. 3.1 Chapter 4. Altering a Database
  1577.  
  1578. Under the section "Altering a Table Space", the following new sections are
  1579. to be added:
  1580.  
  1581. 3.1.1 Adding a Container to an SMS Table Space on a Partition
  1582.  
  1583. You can add a container to an SMS table space on a partition (or node) that
  1584. currently has no containers.
  1585.  
  1586. The contents of the table space are rebalanced across all containers.
  1587. Access to the table space is not restricted during the rebalancing. If you
  1588. need to add more than one container, you should add them all at the same
  1589. time.
  1590.  
  1591. To add a container to an SMS table space using the command line, enter the
  1592. following:
  1593.  
  1594.    ALTER TABLESPACE <name>
  1595.       ADD ('<path>')
  1596.       ON NODE (<partition_number>)
  1597.  
  1598. The partition specified by number, and every partition (or node) in the
  1599. range of partitions, must exist in the nodegroup on which the table space
  1600. is defined. A partition_number may only appear explicitly or within a range
  1601. in exactly one on-nodes-clause for the statement.
  1602.  
  1603. The following example shows how to add a new container to partition number
  1604. 3 of the nodegroup used by table space "plans" on a UNIX based operating
  1605. system:
  1606.  
  1607.    ALTER TABLESPACE plans
  1608.       ADD ('/dev/rhdisk0')
  1609.       ON NODE (3)
  1610.  
  1611. 3.1.2 Switching the State of a Table Space
  1612.  
  1613. The SWITCH ONLINE clause of the ALTER TABLESPACE statement can be used to
  1614. move table spaces in an OFFLINE state to an ONLINE state if the containers
  1615. associated with that table space have become accessible. The table space is
  1616. moved to an ONLINE state while the rest of the database is still up and
  1617. being used.
  1618.  
  1619. An alternative to the use of this clause is to disconnect all applications
  1620. from the database and then to have the applications connect to the database
  1621. again. This moves the table space from an OFFLINE state to an ONLINE state.
  1622.  
  1623. To switch the table space to an ONLINE state using the command line, enter:
  1624.  
  1625.    ALTER TABLESPACE <name>
  1626.       SWITCH ONLINE
  1627.  
  1628.   ------------------------------------------------------------------------
  1629.  
  1630. 3.2 Chapter 8. Recovering a Database
  1631.  
  1632. Under the section "Tivoli Storage Manager", subsection "Managing Backups
  1633. and Log Archives on TSM", the third paragraph just before "Examples of
  1634. Using db2adutl:" and the last sentence in that paragraph is missing
  1635. information on the right-hand side of the page. The missing information is:
  1636.  
  1637.    You can also qualify the command with OLDER [THAN] <timestamp>
  1638.    or <n> DAYS. This will delete backups older than the given date (timestamp)
  1639.    or older than the days specified. You can also select a range of logs to be
  1640.    listed instead of seeing all of the logs. A specific backup for deletion can
  1641.    be selected by using the TAKEN AT <timestamp> parameter.
  1642.  
  1643.   ------------------------------------------------------------------------
  1644.  
  1645. 3.3 Appendix C. User Exit for Database Recovery
  1646.  
  1647. Under the section "Archive and Retrieve Considerations", the following
  1648. paragraph is no longer true and should be removed from the list:
  1649.  
  1650.    A user exit may be interrupted if a remote client loses its connection
  1651.    to the DB2 server. That is, while handling the archiving of logs
  1652.    through a user exit, one of the other SNA-connected clients dies
  1653.    or powers off resulting in a signal (SIGUSR1) being sent to the server.
  1654.    The server passes the signal to the user exit causing an interrupt.
  1655.    The user exit program can be modified to check for an interrupt
  1656.    and then continue.
  1657.  
  1658. The Error Handling section has a Notes list that should replace the
  1659. contents of Note 3 with the following information:
  1660.  
  1661.    * User exit program requests are suspended for five minutes. During this
  1662.      time, all requests are ignored including the log file request that
  1663.      caused the return code.
  1664.  
  1665.      Following the five minute suspension in processing requests, the next
  1666.      request is processed. If no error occurs with the processing of this
  1667.      request, then processing of new user exit program requests continues
  1668.      and DB2 will reissue the archive request for the log files that either
  1669.      failed to archive previously, or were suspended. If a return code of
  1670.      greater than 8 is generated during the retry, requests are suspended
  1671.      for an additional five minutes. The five minute suspensions continue
  1672.      until the problem is corrected or the database is stopped and
  1673.      restarted.
  1674.  
  1675.      Once all applications disconnect from the database and the database is
  1676.      reopened, DB2 will issue the archive request for any log file that
  1677.      might not have been successfully archived in the previous use of the
  1678.      database.
  1679.  
  1680.      If the user exit program fails to archive log files, your disk can be
  1681.      filled with log files and performance may be degraded because of extra
  1682.      work to format these log files. Once the disk becomes full, the
  1683.      database manager will not accept further application requests for
  1684.      database changes.
  1685.  
  1686.      If the user exit program was called to retrieve log files,
  1687.      roll-forward recovery is suspended but not stopped unless a stop was
  1688.      specified in the ROLLFORWARD DATABASE utility. If a stop was not
  1689.      specified, you can correct the problem and resume recovery.
  1690.  
  1691.   ------------------------------------------------------------------------
  1692.  
  1693. 3.4 Appendix I. High Speed Inter-node Communications
  1694.  
  1695. The following section has been updated:
  1696.  
  1697. 3.4.1 Enabling DB2 to Run Using VI
  1698.  
  1699. Detailed installation information is found in DB2 Enterprise - Extended
  1700. Edition for Windows Quick Beginnings.
  1701.  
  1702. After completing the installation of DB2 as documented in DB2 Enterprise -
  1703. Extended Edition for Windows Quick Beginnings, set the following DB2
  1704. registry variables and carry out the following tasks on each database
  1705. partition server in the instance:
  1706.  
  1707.    * Set DB2_VI_ENABLE=ON
  1708.  
  1709.      Use the db2set command to modify the value for the registry variable.
  1710.      Use the db2_all command to run the db2set command on all database
  1711.      partition servers in the instance. You must be logged on with a user
  1712.      account that is a member of the Administrators group to run the
  1713.      db2_all command.
  1714.  
  1715.      In the following example, the ; character is placed inside the double
  1716.      quotation marks to allow the request to run concurrently on all the
  1717.      database partition servers in the instance:
  1718.  
  1719.         db2_all ";db2set DB2_VI_ENABLE=ON"
  1720.  
  1721.      For more information about the db2_all command, see "Issuing Commands
  1722.      to Multiple Database Partition Servers" in the Administration Guide:
  1723.      Implementation.
  1724.    * Set DB2_VI_DEVICE=nic0
  1725.  
  1726.      For example:
  1727.  
  1728.         db2_all ";db2set DB2_VI_DEVICE=nic0"
  1729.  
  1730.       Note:With Synfinity Interconnect, this variable should be set
  1731.            DB2_VI_DEVICE=VINIC. The device name (VINIC) must be in upper
  1732.            case.
  1733.    * Set DB2_VI_VIPL=vipl.dll
  1734.  
  1735.      For example:
  1736.  
  1737.         db2_all ";db2set DB2_VI_VIPL=vipl.dll"
  1738.  
  1739.       Note:The value used in the example is the default for the registry
  1740.            variable. For more information on the registry variables, see
  1741.            Administration Guide: Performance.
  1742.    * Enter db2start on the MPP instance.
  1743.    * Review the db2diag.log file. There should be one message for each
  1744.      partition stating that "VI is enabled."
  1745.    * Fast Communications Manager (FCM) configuration parameters may need to
  1746.      be updated. Should you encounter a problem as a result of resource
  1747.      constraints involving FCM, you should raise the values of the FCM
  1748.      configuration parameters. If you are moving from another high speed
  1749.      interconnect environment where you have increased the values for the
  1750.      FCM configuration parameters, you may need to lower these values.
  1751.      Also, on Windows NT, you may be required to set the DB2NTMEMSIZE
  1752.      registry variable to override the DB2 defaults. Refer to
  1753.      Administration Guide: Performance for more information on the registry
  1754.      variables.
  1755.  
  1756.   ------------------------------------------------------------------------
  1757.  
  1758. Administration Guide: Performance
  1759.  
  1760.   ------------------------------------------------------------------------
  1761.  
  1762. 4.1 Chapter 5. System Catalog Statistics
  1763.  
  1764. The following section requires a change:
  1765.  
  1766. 4.1.1 Collecting and Using Distribution Statistics
  1767.  
  1768. In the subsection called "Example of Impact on Equality Predicates", there
  1769. is a discussion of a predicate C <= 10. The error is stated as being -86%.
  1770. This is incorrect. The sentence at the end of the paragraph should read:
  1771.  
  1772.    Assuming a uniform data distribution and using formula (1), the number of
  1773.    rows that satisfy the predicate is estimated as 1, an error of -87.5%.
  1774.  
  1775. In the subsection called "Example of Impact on Equality Predicates", there
  1776. is a discussion of a predicate C > 8.5 AND C <= 10. The estimate of the r_2
  1777. value using linear interpolation must be changed to the following:
  1778.  
  1779.           10 - 8.5
  1780.    r_2 *= ---------- x (number of rows with value > 8.5 and <= 100.0)
  1781.           100 - 8.5
  1782.           10 - 8.5
  1783.    r_2 *= ---------- x (10 - 7)
  1784.           100 - 8.5
  1785.           1.5
  1786.    r_2 *= ---- x (3)
  1787.           91.5
  1788.    r_2 *= 0
  1789.  
  1790. The paragraph following this new example must also be modified to read as
  1791. follows:
  1792.  
  1793.    The final estimate is r_1 + r_2 *= 7,
  1794.    and the error is only -12.5%.
  1795.  
  1796.   ------------------------------------------------------------------------
  1797.  
  1798. 4.2 Chapter 6. Understanding the SQL Compiler
  1799.  
  1800. The following sections require changes:
  1801.  
  1802. 4.2.1 Replicated Summary Tables
  1803.  
  1804. The following information will replace or be added to the existing
  1805. information already in this section:
  1806.  
  1807. Replicated summary tables can be used to assist in the collocation of
  1808. joins. For example, if you had a star schema where there is a large fact
  1809. table spread across twenty nodes, then the joins between the fact table and
  1810. the dimension tables are most efficient if these tables are collocated.
  1811.  
  1812. By placing all of the tables in the same nodegroup, at most there would one
  1813. dimension table partitioned correctly for a collocated join. All other
  1814. dimension tables would not be able to be used in a collocated join because
  1815. the join column(s) on the fact table would not correspond to the fact
  1816. table's partitioning key.
  1817.  
  1818. For example, you could have a table called FACT (C1, C2, C3, ...)
  1819. partitioned on C1; and a table called DIM1 (C1, dim1a, dim1b, ...)
  1820. partitioned on C1; and a table called DIM2 (C2, dim2a, dim2b, ...)
  1821. partitioned on C2; and so on.
  1822.  
  1823. From this example, you could see that the join between FACT and DIM1 is
  1824. perfect because the predicate DIM1.C1 = FACT.C1 would be collocated. Both
  1825. of these tables are partitioned on column C1.
  1826.  
  1827. The join between DIM2 with the predicate WHERE DIM2.C2 = FACT.C2 cannot be
  1828. collocated because FACT is partitioned on column C1 and not on column C2.
  1829.  
  1830. In this case, it would be good to replicate DIM2 in the fact table's
  1831. nodegroup. In this way we can do the join locally on each partition.
  1832.  Note:The replicated summary tables discussion here has to do with
  1833.       intra-database replication. Inter-database replication has to do
  1834.       with subscriptions, control tables, and data located in different
  1835.       databases and on different operating systems. If you are interested
  1836.       in inter-database replication refer to the Replication Guide and
  1837.       Reference for more information.
  1838.  
  1839. When creating a replicated summary table, the source table could be a
  1840. single-node nodegroup table or a multi-node nodegroup table. In most cases,
  1841. the table is small and can be placed in a single-node nodegroup. You may
  1842. place a limit on the data to be replicated by specifying only a subset of
  1843. the columns from the table, or by limiting the number of rows through the
  1844. predicates used, or by using both methods when creating the replicated
  1845. summary table.
  1846.  Note:The data capture option is not required for replicated summary
  1847.       tables to function.
  1848.  
  1849. The replicated summary table could also be created in a multi-node
  1850. nodegroup. The nodegroup is the same as the nodegroup in which you have
  1851. placed your large tables. In this case, copies of the source table are
  1852. created on all of the partitions of the nodegroup. Joins between a large
  1853. fact table and the dimension tables have a better chance of being done
  1854. locally in this environment rather than having to broadcast the source
  1855. table to all partitions.
  1856.  
  1857. Indexes on replicated tables are not created automatically. Indexes are
  1858. created and may be different from those identified in the source table.
  1859.  Note:You cannot create unique indexes (or put on any constraints) on the
  1860.       replicated tables. This will prevent constraint violations that are
  1861.       not present on the source tables. These constraints are disallowed
  1862.       even if there is the same constraint on the source table.
  1863.  
  1864. After using the REFRESH statement, you should run RUNSTATS on the
  1865. replicated table as you would any other table.
  1866.  
  1867. The replicated tables can be referenced directly within a query. However,
  1868. you cannot use the NODENUMBER() predicate with a replicated table to see
  1869. the table data on a particular partition.
  1870.  
  1871. To see if a created replicated summary table was used (given a query that
  1872. referenced the source table), you can use the EXPLAIN facility. First, you
  1873. would ensure the EXPLAIN tables existed. Then, you would create an explain
  1874. plan for the SELECT statement you are interested in. Finally, you would use
  1875. db2exfmt utility to format the EXPLAIN output.
  1876.  
  1877. The access plan chosen by the optimizer may or may not use the replicated
  1878. summary table depending on the information that needs to be joined. Not
  1879. using the replicated summary table could occur if the optimizer determined
  1880. that it would be cheaper to broadcast the original source table to the
  1881. other partitions in the nodegroup.
  1882.  
  1883. 4.2.2 Data Access Concepts and Optimization
  1884.  
  1885. The section "Multiple Index Access" under "Index Scan Concepts" has
  1886. changed.
  1887.  
  1888. Add the following information before the note at the end of the section:
  1889.  
  1890. To realize the performance benefits of dynamic bitmaps when scanning
  1891. multiple indexes, it may be necessary to change the value of the sort heap
  1892. size (sortheap) database configuration parameter, and the sort heap
  1893. threshold (sheapthres) database manager configuration parameter.
  1894.  
  1895. Additional sort heap space is required when dynamic bitmaps are used in
  1896. access plans. When sheapthres is set to be relatively close to sortheap
  1897. (that is, less than a factor of two or three times per concurrent query),
  1898. dynamic bitmaps with multiple index access must work with much less memory
  1899. than the optimizer anticipated.
  1900.  
  1901. The solution is to increase the value of sheapthres relative to sortheap.
  1902.  
  1903. The section "Search Strategies for Star Join" under "Predicate Terminology"
  1904. has changed.
  1905.  
  1906. Add the following information at the end of the section:
  1907.  
  1908. The dynamic bitmaps created and used as part of the Star Join technique
  1909. uses sort heap memory. See Chapter 13, "Configuring DB2" in the
  1910. Administration Guide: Performance manual for more information on the Sort
  1911. Heap Size (sortheap) database configuration parameter.
  1912.   ------------------------------------------------------------------------
  1913.  
  1914. 4.3 Chapter 13. Configuring DB2
  1915.  
  1916. The following parameters require changes:
  1917.  
  1918. 4.3.1 Sort Heap Size (sortheap)
  1919.  
  1920. The "Recommendation" section has changed. The information here should now
  1921. read:
  1922.  
  1923. When working with the sort heap, you should consider the following:
  1924.  
  1925.    * Appropriate indexes can minimize the use of the sort heap.
  1926.    * Hash join buffers and dynamic bitmaps (used for index ANDing and Star
  1927.      Joins) use sort heap memory. Increase the size of this parameter when
  1928.      these techniques are used.
  1929.    * Increase the size of this parameter when frequent large sorts are
  1930.      required.
  1931.    * ... (the rest of the items are unchanged)
  1932.  
  1933. 4.3.2 Sort Heap Threshold (sheapthres)
  1934.  
  1935. The second last paragraph in the description of this parameter has changed.
  1936. The paragraph should now read:
  1937.  
  1938. Examples of those operations that use the sort heap include: sorts, dynamic
  1939. bitmaps (used for index ANDing and Star Joins), and operations where the
  1940. table is in memory.
  1941.  
  1942. The following information is to be added to the description of this
  1943. parameter:
  1944.  
  1945. There is no reason to increase the value of this parameter when moving from
  1946. a single-node to a multi-node environment. Once you have tuned the database
  1947. and database manager configuration parameters on a single node (in a DB2
  1948. EE) environment, the same values will in most cases work well in a
  1949. multi-node (in a DB2 EEE) environment.
  1950.  
  1951. The Sort Heap Threshold parameter, as a database manager configuration
  1952. parameter, applies across the entire DB2 instance. The only way to set this
  1953. parameter to different values on different nodes or partitions, is to
  1954. create more than one DB2 instance. This will require managing different DB2
  1955. databases over different nodegroups. Such an arrangement defeats the
  1956. purpose of many of the advantages of a partitioned database environment.
  1957.   ------------------------------------------------------------------------
  1958.  
  1959. 4.4 Appendix A. DB2 Registry and Environment Variables
  1960.  
  1961. The following registry variables are new or require changes:
  1962.  
  1963. 4.4.1 Table of New and Changed Registry Variables
  1964.  
  1965. Table 1. Registry Variables
  1966.  Variable Name                 Operating      Values
  1967.                                System
  1968.  Description
  1969.  DB2MAXFSCRSEARCH              All            Default=5
  1970.  
  1971.                                               Values: -1, 1 to 33554
  1972.  Specifies the number of free space control records to search when adding
  1973.  a record to a table. The default is to search five free space control
  1974.  records. Modifying this value allows you to balance insert speed with
  1975.  space reuse. Use large values to optimize for space reuse. Use small
  1976.  values to optimize for insert speed. Setting the value to -1 forces the
  1977.  database manager to search all free space control records.
  1978.  DLFM_TSM_MGMTCLASS            AIX, Windows   Default: the default TSM
  1979.                                NT             management class
  1980.  
  1981.                                               Values: any valid TSM
  1982.                                               management class
  1983.  Specifies which TSM management class to use to archive and retrieve
  1984.  linked files. If there is no value set for this variable, the default TSM
  1985.  management class is used.
  1986.  DB2_CORRELATED_PREDICATES     All            Default=ON
  1987.  
  1988.                                               Values: ON or OFF
  1989.  The default for this variable is ON. When there are unique indexes on
  1990.  correlated columns in a join, and this registry variable is ON, the
  1991.  optimizer attempts to detect and compensate for correlation of join
  1992.  predicates. When this registry variable is ON, the optimizer uses the
  1993.  KEYCARD information of unique index statistics to detect cases of
  1994.  correlation, and dynamically adjusts the combined selectivities of the
  1995.  correlated predicates, thus obtaining a more accurate estimate of the
  1996.  join size and cost.
  1997.  DB2_VI_DEVICE                 Windows NT     Default=null
  1998.  
  1999.                                               Values: nic0 or VINIC
  2000.  Specifies the symbolic name of the device or Virtual Interface Provider
  2001.  Instance associated with the Network Interface Card (NIC). Independent
  2002.  hardware vendors (IHVs) each produce their own NIC. Only one (1) NIC is
  2003.  allowed per Windows NT machine; Multiple logical nodes on the same
  2004.  physical machine will share the same NIC. The symbolic device name
  2005.  "VINIC" must be in upper case and can only be used with Synfinity
  2006.  Interconnect. All other currently supported implementations use "nic0" as
  2007.  the symbolic device name.
  2008.   ------------------------------------------------------------------------
  2009.  
  2010. 4.5 Appendix C. SQL Explain Tools
  2011.  
  2012. The section titled "Running db2expln and dynexpln" should have the last
  2013. paragraph replaced with the following:
  2014.  
  2015. To run db2expln, you must have SELECT privilege to the system catalog views
  2016. as well as EXECUTE authority for the db2expln package. To run dynexpln, you
  2017. must have BINDADD authority for the database, the schema you are using to
  2018. connect to the database must exist or you must have the EXPLICIT_SCHEMA
  2019. authority for the database, and you must have any privileges needed for the
  2020. SQL statements being explained. (Note that if you have SYSADM or DBADM
  2021. authority, you will automatically have all these authorization levels.)
  2022.   ------------------------------------------------------------------------
  2023.  
  2024. Administrative API Reference
  2025.  
  2026.   ------------------------------------------------------------------------
  2027.  
  2028. 5.1 db2ConvMonStream
  2029.  
  2030. In the Usage Notes, the structure for the snapshot variable datastream type
  2031. SQLM_ELM_SUBSECTION should be sqlm_subsection.
  2032.   ------------------------------------------------------------------------
  2033.  
  2034. 5.2 db2XaGetInfo (new API)
  2035.  
  2036. db2XaGetInfo - Get Information for Resource Manager
  2037.  
  2038. Extracts information for a particular resource manager once an xa_open call
  2039. has been made.
  2040.  
  2041. Authorization
  2042.  
  2043. None
  2044.  
  2045. Required Connection
  2046.  
  2047. Database
  2048.  
  2049. Version
  2050.  
  2051. sqlxa.h
  2052.  
  2053. C API Syntax
  2054.  
  2055.     /* File: sqlxa.h */
  2056.     /* API: Get Information for Resource Manager */
  2057.     /* ... */
  2058.     SQL_API_RC SQL_API_FN
  2059.     db2XaGetInfo (
  2060.        db2Uint32 versionNumber,
  2061.        void * pParmStruct,
  2062.        struct sqlca * pSqlca);
  2063.  
  2064.     typedef SQL_STRUCTURE db2XaGetInfoStruct
  2065.     {
  2066.       db2int32 iRmid;
  2067.       struct sqlca oLastSqlca;
  2068.     } db2XaGetInfoStruct;
  2069.  
  2070. API Parameters
  2071.  
  2072. versionNumber
  2073.      Input. Specifies the version and release level of the structure passed
  2074.      in as the second parameter, pParmStruct.
  2075.  
  2076. pParmStruct
  2077.      Input. A pointer to the db2XaGetInfoStruct structure.
  2078.  
  2079. pSqlca
  2080.      Output. A pointer to the sqlca structure. For more information about
  2081.      this structure, see the Administrative API Reference.
  2082.  
  2083. iRmid
  2084.      Input. Specifies the resource manager for which information is
  2085.      required.
  2086.  
  2087. oLastSqlca
  2088.      Output. Contains the sqlca for the last XA API call.
  2089.       Note:Only the sqlca that resulted from the last failing XA API can
  2090.            be retrieved.
  2091.  
  2092.   ------------------------------------------------------------------------
  2093.  
  2094. 5.3 db2XaListIndTrans (new API that supercedes sqlxphqr)
  2095.  
  2096. db2XaListIndTrans - List Indoubt Transactions
  2097.  
  2098. Provides a list of all indoubt transactions for the currently connected
  2099. database.
  2100.  
  2101. Scope
  2102.  
  2103. This API affects only the node on which it is issued.
  2104.  
  2105. Authorization
  2106.  
  2107. One of the following:
  2108.  
  2109.    * sysadm
  2110.    * dbadm
  2111.  
  2112. Required Connection
  2113.  
  2114. Database
  2115.  
  2116. Version
  2117.  
  2118. db2ApiDf.h
  2119.  
  2120. C API Syntax
  2121.  
  2122.     /* File: db2ApiDf.h */
  2123.     /* API: List Indoubt Transactions */
  2124.     /* ... */
  2125.     SQL_API_RC SQL_API_FN
  2126.     db2XaListIndTrans (
  2127.        db2Uint32 versionNumber,
  2128.        void * pParmStruct,
  2129.        struct sqlca * pSqlca);
  2130.  
  2131.     typedef SQL_STRUCTURE db2XaListIndTransStruct
  2132.     {
  2133.       db2XaRecoverStruct * piIndoubtData;
  2134.       db2Uint32            iIndoubtDataLen;
  2135.       db2Uint32            oNumIndoubtsReturned;
  2136.       db2Uint32            oNumIndoubtsTotal;
  2137.       db2Uint32            oReqBufferLen;
  2138.     } db2XaListIndTransStruct;
  2139.  
  2140.     typedef SQL_STRUCTURE db2XaRecoverStruct
  2141.     {
  2142.       sqluint32      timestamp;
  2143.       SQLXA_XID      xid;
  2144.       char           dbalias[SQLXA_DBNAME_SZ];
  2145.       char           applid[SQLXA_APPLID_SZ];
  2146.       char           sequence_no[SQLXA_SEQ_SZ];
  2147.       char           auth_id[SQL_USERID_SZ];
  2148.       char           log_full;
  2149.       char           connected;
  2150.       char           indoubt_status;
  2151.       char           originator;
  2152.       char           reserved[8];
  2153.     } db2XaRecoverStruct;
  2154.  
  2155. API Parameters
  2156.  
  2157. versionNumber
  2158.      Input. Specifies the version and release level of the structure passed
  2159.      in as the second parameter, pParmStruct.
  2160.  
  2161. pParmStruct
  2162.      Input. A pointer to the db2XaListIndTransStruct structure.
  2163.  
  2164. pSqlca
  2165.      Output. A pointer to the sqlca structure. For more information about
  2166.      this structure, see the Administrative API Reference.
  2167.  
  2168. piIndoubtData
  2169.      Input. A pointer to the application supplied buffer where indoubt data
  2170.      will be returned. The indoubt data is in db2XaRecoverStruct format.
  2171.      The application can traverse the list of indoubt transactions by using
  2172.      the size of the db2XaRecoverStruct structure, starting at the address
  2173.      provided by this parameter.
  2174.  
  2175.      If the value is NULL, DB2 will calculate the size of the buffer
  2176.      required and return this value in oReqBufferLen. oNumIndoubtsTotal
  2177.      will contain the total number of indoubt transactions. The application
  2178.      may allocate the required buffer size and issue the API again.
  2179.  
  2180. oNumIndoubtsReturned
  2181.      Output. The number of indoubt transaction records returned in the
  2182.      buffer specified by pIndoubtData.
  2183.  
  2184. oNumIndoubtsTotal
  2185.      Output. The Total number of indoubt transaction records available at
  2186.      the time of API invocation. If the piIndoubtData buffer is too small
  2187.      to contain all the records, oNumIndoubtsTotal will be greater than the
  2188.      total for oNumIndoubtsReturned. The application may reissue the API in
  2189.      order to obtain all records.
  2190.       Note:This number may change between API invocations as a result of
  2191.            automatic or heuristic indoubt transaction resynchronisation,
  2192.            or as a result of other transactions entering the indoubt
  2193.            state.
  2194.  
  2195. oReqBufferLen
  2196.      Output. Required buffer length to hold all indoubt transaction records
  2197.      at the time of API invocation. The application can use this value to
  2198.      determine the required buffer size by calling the API with
  2199.      pIndoubtData set to NULL. This value can then be used to allocate the
  2200.      required buffer, and the API can be issued with pIndoubtData set to
  2201.      the address of the allocated buffer.
  2202.       Note:The required buffer size may change between API invocations as
  2203.            a result of automatic or heuristic indoubt transaction
  2204.            resynchronisation, or as a result of other transactions
  2205.            entering the indoubt state. The application may allocate a
  2206.            larger buffer to account for this.
  2207.  
  2208. timestamp
  2209.      Output. Specifies the time when the transaction entered the indoubt
  2210.      state. This is the number of seconds the local time zone is displaced
  2211.      from Coordinated Universal Time.
  2212.  
  2213. xid
  2214.      Output. Specifies the XA identifier assigned by the transaction
  2215.      manager to uniquely identify a global transaction.
  2216.  
  2217. dbalias
  2218.      Output. Specifies the alias of the database where the indoubt
  2219.      transaction is found.
  2220.  
  2221. applid
  2222.      Output. Specifies the application identifier assigned by the database
  2223.      manager for this transaction.
  2224.  
  2225. sequence_no
  2226.      Output. Specifies the sequence number assigned by the database manager
  2227.      as an extension to the applid.
  2228.  
  2229. auth_id
  2230.      Output. Specifies the authorization ID of the user who ran the
  2231.      transaction.
  2232.  
  2233. log_full
  2234.      Output. Indicates whether or not this transaction caused a log full
  2235.      condition. Valid values are:
  2236.  
  2237.      SQLXA_TRUE
  2238.           This indoubt transaction caused a log full condition.
  2239.  
  2240.      SQLXA_FALSE
  2241.           This indoubt transaction did not cause a log full condition.
  2242.  
  2243. connected
  2244.      Output. Indicates whether or not the application is connected. Valid
  2245.      values are:
  2246.  
  2247.      SQLXA_TRUE
  2248.           The transaction is undergoing normal syncpoint processing, and is
  2249.           waiting for the second phase of the two-phase commit.
  2250.  
  2251.      SQLXA_FALSE
  2252.           The transaction was left indoubt by an earlier failure, and is
  2253.           now waiting for resynchronisation from the transaction manager.
  2254.  
  2255. indoubt_status
  2256.      Output. Indicates the status of this indoubt transaction. Valid values
  2257.      are:
  2258.  
  2259.      SQLXA_TS_PREP
  2260.           The transaction is prepared. The connected parameter can be used
  2261.           to determine whether the transaction is waiting for the second
  2262.           phase of normal commit processing or whether an error occurred
  2263.           and resynchronisation with the transaction manager is required.
  2264.  
  2265.      SQLXA_TS_HCOM
  2266.           The transaction has been heuristically committed.
  2267.  
  2268.      SQLXA_TS_HROL
  2269.           The transaction has been heuristically rolled back.
  2270.  
  2271.      SQLXA_TS_MACK
  2272.           The transaction is missing commit acknowledgement from a node in
  2273.           a partitioned database.
  2274.  
  2275.      SQLXA_TS_END
  2276.           The transaction has ended at this database. This transaction may
  2277.           be re-activated, committed, or rolled back at a later time. It is
  2278.           also possible that the transaction manager encountered an error
  2279.           and the transaction will not be completed. If this is the case,
  2280.           this transaction requires heuristic actions, because it may be
  2281.           holding locks and preventing other applications from accessing
  2282.           data.
  2283.  
  2284. Usage Notes
  2285.  
  2286. A typical application will perform the following steps after setting the
  2287. current connection to the database or to the partitioned database
  2288. coordinator node:
  2289.  
  2290.   1. Call db2XaListIndTrans with piIndoubtData set to NULL. This will
  2291.      return values in oReqBufferLen and oNumIndoubtsTotal.
  2292.   2. Use the returned value in oReqBufferLen to allocate a buffer. This
  2293.      buffer may not be large enough if there are additional indoubt
  2294.      transactions because the initial invocation of this API to obtain
  2295.      oReqBufferLen. The application may provide a buffer larger than
  2296.      oReqBufferLen.
  2297.   3. Determine if all indoubt transaction records have been obtained. This
  2298.      can be done by comparing oNumIndoubtsReturned to oNumIndoubtTotal. If
  2299.      oNumIndoubtsTotal is greater than oNumIndoubtsReturned, the
  2300.      application can repeat the above steps.
  2301.  
  2302. See Also
  2303.  
  2304. "sqlxhfrg - Forget Transaction Status", "sqlxphcm - Commit an Indoubt
  2305. Transaction", and "sqlxphrl - Roll Back an Indoubt Transaction" in the
  2306. Administrative API Reference.
  2307.   ------------------------------------------------------------------------
  2308.  
  2309. 5.4 sqlaintp - Get Error Message
  2310.  
  2311. The following usage note is to be added to the description of this API:
  2312.  
  2313.    In a multi-threaded application, sqlaintp must be attached to a valid context;
  2314.    otherwise, the message text for SQLCODE -1445 cannot be obtained.
  2315.  
  2316.   ------------------------------------------------------------------------
  2317.  
  2318. Application Building Guide
  2319.  
  2320.   ------------------------------------------------------------------------
  2321.  
  2322. 6.1 Chapter 1. Introduction
  2323.  
  2324. 6.1.1 Supported Software
  2325.  
  2326. AIX
  2327.  
  2328. DB2 for AIX 7.1 supports stored procedures built with Micro Focus COBOL
  2329. compiler 4.1.30 on AIX 4.2.1. For information on DB2 support for Micro
  2330. Focus COBOL stored procedures on AIX 4.3, please see the DB2 Application
  2331. Development Web page:
  2332.  
  2333.    http://www.ibm.com/software/data/db2/udb/ad
  2334.  
  2335. HP-UX
  2336.  
  2337. The listed version for the C++ compiler should be the following:
  2338.  
  2339.    HP aC++, Version A.03.13
  2340.  
  2341.  Note:HP does not support binary compatibility among objects compiled with
  2342.       old and new compilers, so this will force recompiles of any C++
  2343.       application built to access DB2 on HP-UX. C++ applications must also be
  2344.       built to handle exceptions with this new compiler.
  2345.  
  2346.       Following is the URL for the aCC transition guide:
  2347.       http://www.hp.com/esy/lang/cpp/tguide. The C++ incompatibility portion
  2348.       is here:
  2349.  
  2350.          http://www.hp.com/esy/lang/cpp/tguide/transcontent.html#RN.CVT.1.2
  2351.          http://www.hp.com/esy/lang/cpp/tguide/transcontent.html#RN.CVT.3.3
  2352.  
  2353.       The C vs C++ portion is here:
  2354.  
  2355.          http://www.hp.com/esy/lang/cpp/tguide/transcontent.html#RN.CVT.3.3.1
  2356.  
  2357.       Even though C and aCC are compatible, when using the two different
  2358.       object types, the object containing "main" must be compiled with aCC,
  2359.       and the final executable must be linked with aCC.
  2360.  
  2361. OS/2
  2362.  
  2363. The listed versions for C/C++ compiler should be the following:
  2364.  
  2365.    IBM VisualAge C++ for OS/2 Version 3.0, Version 3.6.5, and Version 4.0
  2366.  
  2367. Windows 32-bit Operating Systems
  2368.  
  2369. The listed versions for the IBM VisualAge C++ compiler should be the
  2370. following:
  2371.  
  2372.  
  2373.    IBM VisualAge C++ for Windows Versions 3.6.5 and 4.0
  2374.  
  2375. 6.1.2 Sample Programs
  2376.  
  2377. The following should be added to the "Object Linking and Embedding Samples"
  2378. section:
  2379.  
  2380. salarycltvc
  2381.      A Visual C++ DB2 CLI sample that calls the Visual Basic stored
  2382.      procedure, salarysrv.
  2383.  
  2384. SALSVADO
  2385.      A sample OLE automation stored procedure (SALSVADO) and a SALCLADO
  2386.      client (SALCLADO), implemented in 32-bit Visual Basic and ADO, that
  2387.      calculates the median salary in table staff2.
  2388.  
  2389. The following should be added to the "Log Management User Exit Samples"
  2390. section:
  2391.  
  2392. Applications on AIX using the ADSM API Client at level 3.1.6 and higher
  2393. must be built with the xlc_r or xlC_r compiler invocations, not with xlc or
  2394. xlC, even if the applications are single-threaded. This ensures that the
  2395. libraries are thread-safe. This applies to the Log Management User Exit
  2396. Sample, db2uext2.cadsm.
  2397.  
  2398. If you have an application that is compiled with a non thread-safe library,
  2399. you can apply fixtest IC21925E or contact your application provider. The
  2400. fixtest is available on the index.storsys.ibm.com anonymous ftp server.
  2401. This will regress the ADSM API level to 3.1.3.
  2402.   ------------------------------------------------------------------------
  2403.  
  2404. 6.2 Chapter 3. General Information for Building DB2 Applications
  2405.  
  2406. 6.2.1 Build Files, Makefiles, and Error-checking Utilities
  2407.  
  2408. The entry for bldevm in table 16 should read:
  2409.  
  2410. bldevm
  2411.      The event monitor sample program, evm (only available on AIX, OS/2,
  2412.      and Windows 32-bit operating systems).
  2413.  
  2414. Table 17 should include the entries:
  2415.  
  2416. bldmevm
  2417.      The event monitor sample program, evm, with the Microsoft Visual C++
  2418.      compiler.
  2419.  
  2420. bldvevm
  2421.      The event monitor sample program, evm, with the VisualAge C++
  2422.      compiler.
  2423.  
  2424.   ------------------------------------------------------------------------
  2425.  
  2426. 6.3 Chapter 4. Building Java Applets and Applications
  2427.  
  2428. 6.3.1 Setting the Environment
  2429.  
  2430. If you are using IBM JDK 1.1.8 on supported platforms to build SQLJ
  2431. programs, a JDK build date of November 24, 1999 (or later) is required.
  2432. Otherwise you may get JNI panic errors during compilation.
  2433.  
  2434. If you are using IBM JDK 1.2.2 on supported platforms to build SQLJ
  2435. programs, a JDK build date of April 17, 2000 (or later) is required.
  2436. Otherwise, you may get Invalid Java type errors during compilation.
  2437.  
  2438. For sub-sections AIX and Solaris, replace the information on JDBC 2.0 with
  2439. the following:
  2440.  
  2441. Using the JDBC 2.0 Driver with Java Applications
  2442.  
  2443. The JDBC 1.22 driver is still the default driver on all operating systems.
  2444. To take advantage of the new features of JDBC 2.0, you must install JDK 1.2
  2445. support. Before executing an application that takes advantage of the new
  2446. features of JDBC 2.0, you must set your environment by issuing the usejdbc2
  2447. command from the sqllib/java12 directory. If you want your applications to
  2448. always use the JDBC 2.0 driver, consider adding the following line to your
  2449. login profile, such as .profile, or your shell initialization script, such
  2450. as .bashrc, .cshrc, or .kshrc:
  2451.  
  2452.    . sqllib/java12/usejdbc2
  2453.  
  2454. Ensure that this command is placed after the command to run db2profile, as
  2455. usejdbc2 should be run after db2profile.
  2456.  
  2457. To switch back to the JDBC 1.22 driver, execute the following command from
  2458. the sqllib/java12 directory:
  2459.  
  2460.    . usejdbc1
  2461.  
  2462. Using the JDBC 2.0 Driver with Java Stored Procedures and UDFs
  2463.  
  2464. To use the JDBC 2.0 driver with Java stored procedures and UDFs, you must
  2465. set the environment for the fenced user ID for your instance. The default
  2466. fenced user ID is db2fenc1. To set the environment for the fenced user ID,
  2467. perform the following steps:
  2468.  
  2469.   1. Add the following line to the fenced user ID profile, such as
  2470.      .profile, or the fenced user ID shell initialization script, such as
  2471.      .bashrc, .cshrc, or .kshrc:
  2472.  
  2473.         . sqllib/java12/usejdbc2
  2474.  
  2475.   2. Issue the following command from the CLP:
  2476.  
  2477.         db2set DB2_USE_JDK12=1
  2478.  
  2479. To switch back to the JDBC 1.22 driver support for Java UDFs and stored
  2480. procedures, perform the following steps:
  2481.  
  2482.   1. Remove the following line from the fenced user ID profile, such as
  2483.      .profile, or the fenced user ID shell initialization script, such as
  2484.      .bashrc, .cshrc, or .kshrc:
  2485.  
  2486.         . sqllib/java12/usejdbc2
  2487.  
  2488.   2. Issue the following command from the CLP:
  2489.  
  2490.         db2set DB2_USE_JDK12=
  2491.  
  2492. If you want your applications to always use the JDBC 2.0 driver, you can
  2493. add the following line to your login profile, such as .profile, or your
  2494. shell initialization script, such as .bashrc, .cshrc, or .kshrc:
  2495.  
  2496.    . sqllib/java12/usejdbc2
  2497.  
  2498. Ensure that this command is placed after the command to run db2profile, as
  2499. usejdbc2 should be run after db2profile.
  2500.  
  2501. For sub-section Silicon Graphics IRIX, add the following:
  2502.  
  2503. When building SQLJ applications with the -o32 object type, using the Java
  2504. JIT compiler with JDK 1.2.2, if the SQLJ translator fails with a
  2505. segmentation fault, try turning off the JIT compiler with this command:
  2506.  
  2507.    export JAVA_COMPILER=NONE
  2508.  
  2509. For sub-section Windows 32-bit Operating Systems, add the following:
  2510.  
  2511. Using the JDBC 2.0 Driver with Java Stored Procedures and UDFs
  2512.  
  2513. To use the JDBC 2.0 driver with Java stored procedures and UDFs, you must
  2514. set the environment by performing the following steps:
  2515.  
  2516.   1. Issue the following command in the sqllib\java12 directory:
  2517.  
  2518.         usejdbc2
  2519.  
  2520.   2. Issue the following command from the CLP:
  2521.  
  2522.         db2set DB2_USE_JDK12=1
  2523.  
  2524. To switch back to the JDBC 1.22 driver support for Java UDFs and stored
  2525. procedures, perform the following steps:
  2526.  
  2527.   1. Issue the following command in the sqllib\java12 directory:
  2528.  
  2529.         usejdbc2
  2530.  
  2531.   2. Issue the following command from the CLP:
  2532.  
  2533.         db2set DB2_USE_JDK12=
  2534.  
  2535.   ------------------------------------------------------------------------
  2536.  
  2537. 6.4 Chapter 5. Building SQL Procedures.
  2538.  
  2539. 6.4.1 Setting the SQL Procedures Environment
  2540.  
  2541. The following replaces the corresponding sections in the book.
  2542.  
  2543. 6.4.1.1 Configuring the Compiler Environment
  2544.  
  2545. To create SQL procedures, configure DB2 to use a supported C or C++
  2546. compiler on the server by the following steps:
  2547.  
  2548.   1. Set the DB2_SQLROUTINE_COMPILER_PATH DB2 registry variable to the
  2549.      executable file with the following command:
  2550.  
  2551.         db2set DB2_SQLROUTINE_COMPILER_PATH=executable_file
  2552.  
  2553.      where executable_file is the full path name for the C compiler
  2554.      environment file. For example,
  2555.  
  2556.      OS2:
  2557.  
  2558.      for IBM VisualAge C++ for OS/2 Version 3.6:
  2559.  
  2560.         db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcxxo\bin\setenv.cmd"
  2561.  
  2562.      for IBM VisualAge C++ for OS/2 Version 4:
  2563.  
  2564.         db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcpp40\bin\setenv.cmd"
  2565.  
  2566.      Windows 32-bit operating systems
  2567.  
  2568.      for Microsoft Visual C++ Versions 5.0:
  2569.  
  2570.         db2set DB2_SQLROUTINE_COMPILER_PATH="c:\devstudio\vc\bin\vcvars32.bat"
  2571.  
  2572.      for Microsoft Visual C++ Versions 6.0:
  2573.  
  2574.         db2set DB2_SQLROUTINE_COMPILER_PATH="c:\Micros~1\vc98\bin\vcvars32.bat"
  2575.  
  2576.      for IBM VisualAge C++ for Windows Version 3.6:
  2577.  
  2578.         db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcxxw\bin\setenv.cmd"
  2579.  
  2580.      for IBM VisualAge C++ for Windows Version 4:
  2581.  
  2582.         db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcppw40\bin\setenv.cmd"
  2583.  
  2584.   2. Create an executable file that sets the environment for the compiler.
  2585.      This will be a command file on OS/2, a script file on UNIX, or a batch
  2586.      file on Windows. The compiler may require path, include, and library
  2587.      environment variables.
  2588.  
  2589.      If you do not set the DB2_SQLROUTINE_COMPILER_PATH DB2 registry
  2590.      variable, DB2 will create a default file at the first attempt of
  2591.      creating any SQL procedure. Depending on your operating system, this
  2592.      file will have one of the following paths and file names:
  2593.  
  2594.      OS/2
  2595.           %DB2PATH%\function\routine\sr_cpath.cmd
  2596.  
  2597.      UNIX
  2598.           $HOME/sqllib/function/routine/sr_cpath
  2599.  
  2600.      Windows
  2601.           %DB2PATH%\function\routine\sr_cpath.bat
  2602.  
  2603.      You can use this default file as long as you update it to reflect the
  2604.      settings required for the server operating system and the C or C++
  2605.      compiler you are using.
  2606.       Note:On Windows NT and Windows 2000, you do not have to set the
  2607.            DB2_SQLROUTINE_COMPILER_PATH DB2 registry variable if you store
  2608.            the environment variables for your compiler as SYSTEM
  2609.            variables.
  2610.  
  2611. 6.4.1.2 Customizing Compiler Options
  2612.  
  2613. DB2 provides default values for one of the compilers it supports on each
  2614. platform. To use other compilers, set the SQL procedure compiler options
  2615. using the DB2_SQLROUTINE_COMPILE_COMMAND DB2 registry variable. To specify
  2616. customized C or C++ compiler options for SQL procedures, store the entire
  2617. command line, including all options, in the DB2 registry with the following
  2618. command:
  2619.  
  2620.    db2set DB2_SQLROUTINE_COMPILE_COMMAND=compiler_command
  2621.  
  2622. where compiler_command is the C or C++ compile command, including the
  2623. options and parameters required to create stored procedures.
  2624.  
  2625. In the compiler command, use the keyword SQLROUTINE_FILENAME to replace the
  2626. filename for the generated SQC, C, PDB, DEF, EXP, messages log and shared
  2627. library files. For AIX only, use the keyword SQLROUTINE_ENTRY to replace
  2628. the entry point name.
  2629.  
  2630. The following are the default values for the DB2_SQLROUTINE_COMPILE_COMMAND
  2631. for C or C++ compilers on supported server platforms.
  2632.  
  2633. AIX
  2634.  
  2635. To use IBM C for AIX Version 3.6.6:
  2636.  
  2637.    db2set DB2_SQLROUTINE_COMPILE_COMMAND=xlc -H512 -T512 \
  2638.    -I$HOME/sqllib/include SQLROUTINE_FILENAME.c -bE:SQLROUTINE_FILENAME.exp \
  2639.    -e SQLROUTINE_ENTRY -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -lc -ldb2
  2640.  
  2641. To use IBM C Set++ for AIX Version 3.6.6:
  2642.  
  2643.    db2set DB2_SQLROUTINE_COMPILE_COMMAND=xlC -H512 -T512 \
  2644.    -I$HOME/sqllib/include SQLROUTINE_FILENAME.c -bE:SQLROUTINE_FILENAME.exp \
  2645.    -e SQLROUTINE_ENTRY -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -lc -ldb2
  2646.  
  2647. This is the default compile command if the DB2_SQLROUTINE_COMPILE_COMMAND
  2648. DB2 registry variable is not set.
  2649.  Note:To compile 64-bit SQL procedures on AIX, add the -q64 option to the
  2650.       above commands.
  2651. To use IBM VisualAge C++ for AIX Version 4:
  2652.  
  2653.    db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld"
  2654.  
  2655. If you do not specify the configuration file after vacbld command, DB2 will
  2656. create the following default configuration file at the first attempt of
  2657. creating any SQL procedure:
  2658.  
  2659.    $HOME/sqllib/function/routine/sqlproc.icc
  2660.  
  2661. If you want to use your own configuration file, you can specify your own
  2662. configuration file when setting the DB2 registry value for
  2663. DB2_SQLROUTINE_COMPILE_COMMAND:
  2664.  
  2665.    db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld
  2666.    %DB2PATH%/function/sqlproc.icc"
  2667.  
  2668. HP-UX
  2669.  
  2670. To use HP C Compiler Version A.11.00.03:
  2671.  
  2672.    db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc +DAportable +ul -Aa +z \
  2673.    -I$HOME/sqllib/include -c SQLROUTINE_FILENAME.c; \
  2674.    ld -b -o SQLROUTINE_FILENAME SQLROUTINE_FILENAME.o \
  2675.    -L$HOME/sqllib/lib -ldb2
  2676.  
  2677. To use HP-UX C++ Version A.12.00:
  2678.  
  2679.    db2set DB2_SQLROUTINE_COMPILE_COMMAND=CC +DAportable +a1 +z -ext \
  2680.    -I$HOME/sqllib/include -c SQLROUTINE_FILENAME.c; \
  2681.    ld -b -o SQLROUTINE_FILENAME SQLROUTINE_FILENAME.o \
  2682.    -L$HOME/sqllib/lib -ldb2
  2683.  
  2684. This is the default compile command if the DB2_SQLROUTINE_COMPILE_COMMAND
  2685. DB2 registry variable is not set.
  2686.  
  2687. Linux
  2688.  
  2689. To use GNU/Linux gcc Version 2.7.2.3:
  2690.  
  2691.    db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc \
  2692.    -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \
  2693.    -shared -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -ldb2
  2694.  
  2695. To use GNU/Linux g++ Version egcs-2.90.27 980315 (egcs-1.0.2 release):
  2696.  
  2697.    db2set DB2_SQLROUTINE_COMPILE_COMMAND=g++ \
  2698.    -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \
  2699.    -shared -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -ldb2
  2700.  
  2701. This is the default compile command if the DB2_SQLROUTINE_COMPILE_COMMAND
  2702. DB2 registry variable is not set.
  2703.  
  2704. PTX
  2705.  
  2706. To use ptx/C Version 4.5:
  2707.  
  2708.    db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc -KPIC \
  2709.    -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \
  2710.    -G -o SQLROUTINE_FILENAME.so -L$HOME/sqllib/lib -ldb2 ; \
  2711.    cp SQLROUTINE_FILENAME.so SQLROUTINE_FILENAME
  2712.  
  2713. To use ptx/C++ Version 5.2:
  2714.  
  2715.    db2set DB2_SQLROUTINE_COMPILE_COMMAND=c++ -KPIC \
  2716.    -D_RWSTD_COMPILE_INSTANTIATE=0
  2717.    -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \
  2718.    -G -o SQLROUTINE_FILENAME.so -L$HOME/sqllib/lib -ldb2 ; \
  2719.    cp SQLROUTINE_FILENAME.so SQLROUTINE_FILENAME
  2720.  
  2721. This is the default compile command if the DB2_SQLROUTINE_COMPILE_COMMAND
  2722. DB2 registry variable is not set.
  2723.  
  2724. OS/2
  2725.  
  2726. To use IBM VisualAge C++ for OS/2 Version 3:
  2727.  
  2728.    db2set DB2_SQLROUTINE_COMPILE_COMMAND="icc -Ge- -Gm+ -W2
  2729.    -I%DB2PATH%\include SQLROUTINE_FILENAME.c
  2730.    /B\"/NOFREE /NOI /ST:64000\" SQLROUTINE_FILENAME.def
  2731.    %DB2PATH%\lib\db2api.lib"
  2732.  
  2733. This is the default compile command if the DB2_SQLROUTINE_COMPILE_COMMAND
  2734. DB2 registry variable is not set.
  2735.  
  2736. To use IBM VisualAge C++ for OS/2 Version 4:
  2737.  
  2738.    db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld"
  2739.  
  2740. If you do not specify the configuration file after vacbld command, DB2 will
  2741. create the following default configuration file at the first attempt of
  2742. creating any SQL procedure:
  2743.  
  2744.    %DB2PATH%\function\routine\sqlproc.icc
  2745.  
  2746. If you want to use your own configuration file, you can specify your own
  2747. configuration file when setting the DB2 registry value for
  2748. DB2_SQLROUTINE_COMPILE_COMMAND:
  2749.  
  2750.    db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld
  2751.    %DB2PATH%\function\sqlproc.icc"
  2752.  
  2753. Solaris
  2754.  
  2755. To use SPARCompiler C Versions 4.2 and 5.0:
  2756.  
  2757.    db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc -xarch=v8plusa -Kpic \
  2758.    -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \
  2759.    -G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib \
  2760.    -R$HOME/sqllib/lib -ldb2
  2761.  
  2762. To use SPARCompiler C++ Versions 4.2 and 5.0:
  2763.  
  2764.    db2set DB2_SQLROUTINE_COMPILE_COMMAND=CC -xarch=v8plusa -Kpic \
  2765.    -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \
  2766.    -G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib \
  2767.    -R$HOME/sqllib/lib -ldb2
  2768.  
  2769. This is the default compile command if the DB2_SQLROUTINE_COMPILE_COMMAND
  2770. DB2 registry variable is not set.
  2771.  
  2772. Notes:
  2773.  
  2774.   1. The compiler option -xarch=v8plusa has been added to the default
  2775.      compiler command. For details on why this option has been added, see
  2776.      6.7, "Chapter 12. Building Solaris Applications".
  2777.  
  2778.   2. To compile 64-bit SQL procedures on Solaris, take out the
  2779.      -xarch=v8plusa option and add the -xarch=v9 option to the above
  2780.      commands.
  2781.  
  2782. Windows NT and Windows 2000
  2783.  Note:SQL procedures are not supported on Windows 98 or Windows 95.
  2784.  
  2785. To use Microsoft Visual C++ Versions 5.0 and 6.0:
  2786.  
  2787.    db2set DB2_SQLROUTINE_COMPILE_COMMAND=cl -Od -W2 /TC -D_X86_=1
  2788.    -I%DB2PATH%\include SQLROUTINE_FILENAME.c /link -dll
  2789.    -def:SQLROUTINE_FILENAME.def /out:SQLROUTINE_FILENAME.dll
  2790.    %DB2PATH%\lib\db2api.lib
  2791.  
  2792. This is the default compile command if the DB2_SQLROUTINE_COMPILE_COMMAND
  2793. DB2 registry variable is not set.
  2794.  
  2795. To use IBM VisualAge C++ for Windows Version 3.6:
  2796.  
  2797.    db2set DB2_SQLROUTINE_COMPILE_COMMAND="ilib /GI
  2798.    SQLROUTINE_FILENAME.def & icc -Ti -Ge- -Gm+ -W2
  2799.    -I%DB2PATH%\include SQLROUTINE_FILENAME.c
  2800.    /B\"/ST:64000 /PM:VIO /DLL\" SQLROUTINE_FILENAME.exp
  2801.    %DB2PATH%\lib\db2api.lib"
  2802.  
  2803. To use IBM VisualAge C++ for Windows Version 4:
  2804.  
  2805.    db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld"
  2806.  
  2807. If you do not specify the configuration file after vacbld command, DB2 will
  2808. create the following default configuration file at the first attempt of
  2809. creating any SQL procedure:
  2810.  
  2811.    %DB2PATH%\function\routine\sqlproc.icc
  2812.  
  2813. If you want to use your own configuration file, you can specify your own
  2814. configuration file when setting the DB2 registry value for
  2815. DB2_SQLROUTINE_COMPILE_COMMAND:
  2816.  
  2817.    db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld
  2818.    %DB2PATH%\function\sqlproc.icc"
  2819.  
  2820. To return to the default compiler options, set the DB2 registry value for
  2821. DB2_SQLROUTINE_COMPILE_COMMAND to null with the following command:
  2822.  
  2823.    db2set DB2_SQLROUTINE_COMPILE_COMMAND=
  2824.  
  2825. 6.4.1.3 Retaining Intermediate Files
  2826.  
  2827. You have to manually delete intermediate files that may be left when an SQL
  2828. procedure is not created successfully. These files are in the following
  2829. directories:
  2830.  
  2831. UNIX
  2832.      $DB2PATH/function/routine/sqlproc/$DATABASE/$SCHEMA/tmp
  2833.  
  2834.      where $DB2PATH represents the directory in which the instance was
  2835.      created, $DATABASE represents the database name, and $SCHEMA
  2836.      represents the schema name with which the SQL procedures were created.
  2837.  
  2838. OS/2 and Windows
  2839.      %DB2PATH%\function\routine\sqlproc\%DATABASE%\%SCHEMA%\tmp
  2840.  
  2841.      where %DB2PATH% represents the directory in which the instance was
  2842.      created, %DATABASE% represents the database name, and %SCHEMA%
  2843.      represents the schema name with which the SQL procedures were created.
  2844.  
  2845. 6.4.1.4 Backup and Restore
  2846.  
  2847. The executables of SQL procedures on the filesystem should be backed up and
  2848. restored at the same time as the database. This must be done manually. The
  2849. executables are in the following directory:
  2850.  
  2851. UNIX
  2852.      $DB2PATH/function/routine/sqlproc/$DATABASE
  2853.  
  2854.      where $DB2PATH represents the directory in which the instance was
  2855.      created and $DATABASE represents the database name with which the SQL
  2856.      procedures were created.
  2857.  
  2858. OS/2 and Windows
  2859.      %DB2PATH%\function\routine\sqlproc\%DATABASE%
  2860.  
  2861.      where %DB2PATH% represents the directory in which the instance was
  2862.      created and %DATABASE% represents the database name with which the SQL
  2863.      procedures were created.
  2864.  
  2865. 6.4.2 Creating SQL Procedures
  2866.  
  2867. Set the database manager configuration parameter KEEPDARI to 'NO' for
  2868. developing SQL procedures. If an SQL procedure is kept loaded once it is
  2869. executed, you may have problems dropping and recreating the stored
  2870. procedure with the same name, as the library cannot be refreshed and the
  2871. executables cannot be dropped from the filesystem. You will also have
  2872. problems when you try to rollback the changes or drop the database because
  2873. the executables cannot be deleted.
  2874.  
  2875. See 'Updating the Database Manager Configuration File' in "Chapter 2.
  2876. Setup" of the 'Application Building Guide' for more information on setting
  2877. the KEEPDARI parameter.
  2878.  Note:SQL procedures do not support the following data types for
  2879.       parameters:
  2880.  
  2881.          * GRAPHIC
  2882.          * VARGRAPHIC
  2883.          * LONG VARGRAPHIC
  2884.          * Binary Large Object (BLOB)
  2885.          * Character Large Object (CLOB)
  2886.          * Double-byte Character Large Object (DBCLOB)
  2887.  
  2888. 6.4.3 Calling Stored Procedures
  2889.  
  2890. The first paragraph in 'Using the CALL Command' should read:
  2891.  
  2892. To use the call command, you must enter the stored procedure name plus any
  2893. IN or INOUT parameters, as well as '?' as a place-holder for each OUT
  2894. parameter. For details on the syntax of the CALL command, see 9.8, "CALL".
  2895.   ------------------------------------------------------------------------
  2896.  
  2897. 6.5 Chapter 7. Building HP-UX Applications.
  2898.  
  2899. 6.5.1 HP-UX C
  2900.  
  2901. In "Multi-threaded Applications", the bldmt script file has been revised
  2902. with different compile options. The new version is in the sqllib/samples/c
  2903. directory.
  2904.  
  2905. 6.5.2 HP-UX C++
  2906.  
  2907. In the build scripts, the C++ compiler variable CC has been replaced by
  2908. aCC, for the HP aC++ compiler. The revised build scripts are in the
  2909. sqllib/samples/cpp directory.
  2910.  
  2911. In "Multi-threaded Applications", the bldmt script file has been revised
  2912. with different compile options. The new version is in the
  2913. sqllib/samples/cpp directory.
  2914.   ------------------------------------------------------------------------
  2915.  
  2916. 6.6 Chapter 10. Building PTX Applications
  2917.  
  2918. 6.6.1 ptx/C++
  2919.  
  2920. Libraries need to be linked with the -shared option to build stored
  2921. procedures and user-defined functions. In the sqllib/samples directory, the
  2922. makefile, the build scripts bldsrv, and bldudf have been updated to include
  2923. this option, as in the following link step from bldsrv:
  2924.  
  2925.    c++ -shared -G -o $1 $1.o -L$DB2PATH/lib -ldb2
  2926.  
  2927.   ------------------------------------------------------------------------
  2928.  
  2929. 6.7 Chapter 12. Building Solaris Applications
  2930.  
  2931. 6.7.1 SPARCompiler C++
  2932.  
  2933. Problems with executing C/C++ Applications and running SQL Procedures on
  2934. Solaris
  2935.  
  2936. When using the Sun WorkShop Compiler C/C++, if you experience problems with
  2937. your executable where you receive errors like the following:
  2938.  
  2939.   1. syntax error at line 1: `(' unexpected
  2940.   2. ksh: <application name>: cannot execute (where application name is the
  2941.      name of the compiled executable)
  2942.  
  2943. you may be experiencing a problem that the compiler does not produce valid
  2944. executables when linking with libdb2.so. One suggestion to fix this is to
  2945. add the following compiler option to your compile and link commands:
  2946.  
  2947.    -xarch=v8plusa
  2948.  
  2949. for example, when compiling the sample application, dynamic.sqc:
  2950.  
  2951.    embprep dynamic sample
  2952.    embprep utilemb sample
  2953.    cc -c utilemb.c -xarch=v8plusa -I/export/home/db2inst1/sqllib/include
  2954.    cc -o dynamic dynamic.c utilemb.o -xarch=v8plusa -I/export/home/db2inst1/sqllib/include \
  2955.       -L/export/home/db2inst1/sqllib/lib -R/export/home/db2inst1/sqllib/lib -l db2
  2956.  
  2957. Notes:
  2958.  
  2959.   1. If you are using SQL Procedures on Solaris, and you are using your own
  2960.      compile string via the DB2_SQLROUTINE_COMPILE_COMMAND profile
  2961.      variable, please ensure that you include the compiler option given
  2962.      above. The default compiler command includes this option:
  2963.  
  2964.         db2set DB2_SQLROUTINE_COMPILE_COMMAND="cc -# -Kpic  -xarch=v8plusa -I$HOME/sqllib/include \
  2965.            SQLROUTINE_FILENAME.c -G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -R$HOME/sqllib/lib -ldb2
  2966.  
  2967.   2. To compile 64-bit SQL procedures on Solaris, take out the
  2968.      -xarch=v8plusa option and add the -xarch=v9 option to the above
  2969.      commands.
  2970.  
  2971.   ------------------------------------------------------------------------
  2972.  
  2973. 6.8 VisualAge C++ Version 4.0 on OS/2 and Windows
  2974.  
  2975.  Note:This updates the section "VisualAge C++ Version 4.0" in "Chapter 6.
  2976.       Building AIX Applications". That section contains information common
  2977.       to AIX, OS/2, and Windows 32-bit operating systems.
  2978.  
  2979. For OS/2 and Windows, use the set command instead of the export command.
  2980. For example, set CLI=tbinfo.
  2981.  
  2982. In "DB2 CLI Applications", subsection "Building and Running Embedded SQL
  2983. Applications", for OS/2 and Windows, the cliapi.icc file must be used
  2984. instead of the cli.icc file, because embedded SQL applications need the
  2985. db2api.lib library linked in by cliapi.icc.
  2986.   ------------------------------------------------------------------------
  2987.  
  2988. Application Development Guide
  2989.  
  2990.   ------------------------------------------------------------------------
  2991.  
  2992. 7.1 Writing OLE Automation Stored Procedures
  2993.  
  2994. The last sentence in the following paragraph is missing from the second
  2995. paragraph under section "Writing OLE automation Stored Procedures:
  2996.  
  2997.    After you code an OLE automation object, you must register the
  2998.    methods of the object as stored procedures using the CREATE
  2999.    PROCEDURE statement. To register an OLE automation stored
  3000.    procedure, issue a CREATE PROCEDURE statement with the LANGUAGE
  3001.    OLE clause. The external name consists of the OLE progID identifying
  3002.    the OLE automation object and the method name separated
  3003.    by ! (exclamation mark). The OLE automation object needs to be
  3004.    implemented as an in-process server (.DLL).
  3005.  
  3006.   ------------------------------------------------------------------------
  3007.  
  3008. 7.2 Chapter 7. Stored Procedures
  3009.  
  3010. 7.2.1 DECIMAL Type Not Supported in Linux Java Routines
  3011.  
  3012. The DECIMAL SQL data type is not supported in Java stored procedures,
  3013. user-defined functions, or methods on the Linux platform.
  3014.   ------------------------------------------------------------------------
  3015.  
  3016. 7.3 Chapter 12. Working with Complex Objects: User-Defined Structured Types
  3017.  
  3018. 7.3.1 Inserting Structured Type Attributes Into Columns
  3019.  
  3020. The following rule applies to embedded static SQL statements: To insert an
  3021. attribute of a user-defined structured type into a column that is of the
  3022. same type as the attribute, enclose the host variable that represents the
  3023. instance of the type in parentheses, and append the double-dot operator and
  3024. attribute name to the closing parenthesis. For example, consider the
  3025. following situation:
  3026.  
  3027.    - PERSON_T is a structured type that includes the attribute NAME of type VARCHAR(30).
  3028.    - T1 is a table that includes a column C1 of type VARCHAR(30).
  3029.    - personhv is the host variable declared for type PERSON_T in the programming language.
  3030.  
  3031. The proper syntax for inserting the NAME attribute into column C1 is:
  3032.  
  3033.    EXEC SQL INSERT INTO T1 (C1) VALUES ((:personhv)..NAME)
  3034.  
  3035.   ------------------------------------------------------------------------
  3036.  
  3037. 7.4 Chapter 20. Programming in C and C++
  3038.  
  3039. The following table supplements the information included in chapter 7,
  3040. "Stored Procedures", chapter 15, "Writing User-Defined Functions and
  3041. Methods", and chapter 20, "Programming in C and C++. The table lists the
  3042. supported mappings between SQL data types and C data types for stored
  3043. procedures, UDFs, and methods.
  3044.  
  3045. 7.4.1 C/C++ Types for Stored Procedures, Functions, and Methods
  3046.  
  3047. Table 2. SQL Data Types Mapped to C/C++ Declarations
  3048.  SQL Column Type       C/C++ Data Type        SQL Column Type Description
  3049.                        sqlint16               16-bit signed integer
  3050.  SMALLINT
  3051.  (500 or 501)
  3052.  
  3053.                        sqlint32               32-bit signed integer
  3054.  INTEGER
  3055.  (496 or 497)
  3056.  
  3057.                        sqlint64               64-bit signed integer
  3058.  BIGINT
  3059.  (492 or 493)
  3060.  
  3061.                        float                  Single-precision floating
  3062.  REAL                                         point
  3063.  (480 or 481)
  3064.  
  3065.                        double                 Double-precision floating
  3066.  DOUBLE                                       point
  3067.  (480 or 481)
  3068.  
  3069.                        Not supported.         To pass a decimal value,
  3070.  DECIMAL(p,s)                                 define the parameter to be
  3071.  (484 or 485)                                 of a data type castable from
  3072.                                               DECIMAL (for example CHAR or
  3073.                                               DOUBLE) and explicitly cast
  3074.                                               the argument to this type.
  3075.                        char[n+1] where n is   Fixed-length,
  3076.  CHAR(n)               large enough to hold   null-terminated character
  3077.  (452 or 453)          the data               string
  3078.                        1<=n<=254
  3079.                        char[n+1] where n is   Fixed-length character
  3080.  CHAR(n) FOR BIT DATA  large enough to hold   string
  3081.  (452 or 453)          the data
  3082.                        1<=n<=254
  3083.                        char[n+1] where n is   Null-terminated varying
  3084.  VARCHAR(n)            large enough to hold   length string
  3085.  (448 or 449) (460 or  the data
  3086.  461)                  1<=n<=32 672
  3087.  
  3088.                                               Not null-terminated varying
  3089.  VARCHAR(n) FOR BIT    struct {               length character string
  3090.  DATA                    sqluint16 length;
  3091.  (448 or 449)            char[n]
  3092.                        }
  3093.  
  3094.                        1<=n<=32 672
  3095.  
  3096.                                               Not null-terminated varying
  3097.  LONG VARCHAR          struct {               length character string
  3098.  (456 or 457)            sqluint16 length;
  3099.                          char[n]
  3100.                        }
  3101.  
  3102.                        32 673<=n<=32 700
  3103.  
  3104.                                               Non null-terminated varying
  3105.  CLOB(n)               struct {               length character string with
  3106.  (408 or 409)            sqluint32 length;    4-byte string length
  3107.                          char data[n];        indicator
  3108.                        }
  3109.  
  3110.                        1<=n<=2 147 483 647
  3111.  
  3112.                                               Non null-terminated varying
  3113.  BLOB(n)               struct {               binary string with 4-byte
  3114.  (404 or 405)            sqluint32 length;    string length indicator
  3115.                          char data[n];
  3116.                        }
  3117.  
  3118.                        1<=n<=2 147 483 647
  3119.  
  3120.                        char[11]               null-terminated character
  3121.  DATE                                         form
  3122.  (384 or 385)
  3123.  
  3124.                        char[9]                null-terminated character
  3125.  TIME                                         form
  3126.  (388 or 389)
  3127.  
  3128.                        char[27]               null-terminated character
  3129.  TIMESTAMP                                    form
  3130.  (392 or 393)
  3131.  
  3132.  Note: The following data types are only available in the DBCS or EUC
  3133.        environment when precompiled with the WCHARTYPE NOCONVERT option.
  3134.  
  3135.                        sqldbchar[n+1] where n Fixed-length,
  3136.  GRAPHIC(n)            is large enough to     null-terminated double-byte
  3137.  (468 or 469)          hold the data          character string
  3138.                        1<=n<=127
  3139.                        sqldbchar[n+1] where n Not null-terminated,
  3140.  VARGRAPHIC(n)         is large enough to     variable-length double-byte
  3141.  (400 or 401)          hold the data          character string
  3142.                        1<=n<=16 336
  3143.                                               Not null-terminated,
  3144.  LONG VARGRAPHIC       struct {               variable-length double-byte
  3145.  (472 or 473)            sqluint16 length;    character string
  3146.                          sqldbchar[n]
  3147.                        }
  3148.  
  3149.                        16 337<=n<=16 350
  3150.  
  3151.                                               Non null-terminated varying
  3152.  DBCLOB(n)             struct {               length character string with
  3153.  (412 or 413)            sqluint32 length;    4-byte string length
  3154.                          sqldbchar data[n];   indicator
  3155.                        }
  3156.  
  3157.                        1<=n<=1 073 741 823
  3158.  
  3159.   ------------------------------------------------------------------------
  3160.  
  3161. 7.5 Appendix B. Sample Programs
  3162.  
  3163. The following should be added to the "Object Linking and Embedding Samples"
  3164. section:
  3165.  
  3166.    salarycltvc A Visual C++ DB2 CLI sample that calls the
  3167.                Visual Basic stored procedure, salarysrv.
  3168.  
  3169.    SALSVADO A sample OLE automation stored procedure (SALSVADO) and a
  3170.    SALCLADO client (SALCLADO), implemented in 32-bit Visual Basic and ADO,
  3171.             that calculates the median salary in table staff2.
  3172.  
  3173.   ------------------------------------------------------------------------
  3174.  
  3175. 7.6 Activating the IBM DB2 Universal Database Project and Tool Add-ins for
  3176. Microsoft Visual C++
  3177.  
  3178. Before running the db2vccmd command (step 1), please ensure that you have
  3179. started and stopped Visual C++ at least once with your current login ID.
  3180. The first time you run Visual C++, a profile is created for your user ID,
  3181. and that is what gets updated by the db2vccmd command. If you have not
  3182. started it once, and you try to run db2vccmd, you may see errors like the
  3183. following:
  3184.  
  3185.    "Registering DB2 Project add-in ...Failed! (rc = 2)"
  3186.  
  3187.   ------------------------------------------------------------------------
  3188.  
  3189. CLI Guide and Reference
  3190.  
  3191.   ------------------------------------------------------------------------
  3192.  
  3193. 8.1 CLI Unicode Functions and SQL_C_WCHAR Support on AIX Only
  3194.  
  3195. CLI Unicode functions accept pointers to character strings or to SQLPOINTER
  3196. in their arguments. The argument strings are in UCS2 format. These
  3197. functions are implemented as functions with a W suffix.
  3198.  
  3199. In Unicode functions that return or take strings, length arguments are
  3200. passed as count of characters. For functions that return length information
  3201. for server data, the display size and precision are described in number of
  3202. characters. When a length can refer to string or to non-string data, the
  3203. length is described in octet lengths. The function prototypes for the
  3204. Unicode functions can be found in sqlcli1.h.
  3205.  
  3206. The following is a list of Unicode functions:
  3207.  
  3208.      SQLColAttributeW
  3209.      SQLColAttributesW
  3210.      SQLColumnPrivilegesW
  3211.      SQLColumnsW
  3212.      SQLConnectW
  3213.      SQLDataSourcesW
  3214.      SQLDescribeColW
  3215.      SQLDriverConnectW
  3216.      SQLBrowseConnectW
  3217.      SQLErrorW
  3218.      SQLExecDirectW
  3219.      SQLForeignKeysW
  3220.      SQLGetCursorNameW
  3221.      SQLGetInfoW
  3222.      SQLNativeSqlW
  3223.      SQLPrepareW
  3224.      SQLPrimaryKeysW
  3225.      SQLProcedureColumnsW
  3226.      SQLProceduresW
  3227.      SQLSetCursorNameW
  3228.      SQLSpecialColumnsW
  3229.      SQLStatisticsW
  3230.      SQLTablePrivilegesW
  3231.      SQLTablesW
  3232.      SQLGetDiagFieldW
  3233.      SQLGetDiagRecW
  3234.      SQLSetConnectAttrW
  3235.      SQLSetStmtAttrW
  3236.      SQLGetDescFieldW
  3237.      SQLSetDescFieldW
  3238.  
  3239. An application can be written so that it can be compiled as either a
  3240. Unicode application or an ANSI application. The application is compiled as
  3241. a Unicode application by turning on the UNICODE define. In this case,
  3242. character data types can be declared SQL_C_TCHAR. This is a macro found in
  3243. sqlcli1.h. The macro inserts SQL_C_WCHAR if the application is compiled as
  3244. a Unicode application, or SQL_C_CHAR if it is compiled as an ANSI
  3245. application. The function prototypes for the Unicode functions can be found
  3246. in sqlcli1.h. Function calls without the W suffix will be mapped to the
  3247. corresponding function with the W suffix if the application is compiled
  3248. with the UNICODE define turned on.
  3249.  
  3250. Unicode and Ansi function calls cannot be mixed.
  3251.  
  3252. All SQL data types that can be converted to SQL_C_CHAR can also be
  3253. converted to SQL_C_WCHAR; the converse is also true.
  3254.  
  3255. The following restrictions apply:
  3256.  
  3257.    * From an ODBC perspective, CLI is not a UNICODE driver. However,
  3258.      because SQLConnectW is not exported, it is mapped to SQLConnectWInt in
  3259.      sqlcli1.h.
  3260.    * Currently, Unicode functions and SQL_C_WCHAR are only supported on
  3261.      AIX. To use the CLI Unicode functions and SQL_C_WCHAR in applications
  3262.      on AIX, use sqlcli1.h and compile with the UNICODE define. For Windows
  3263.      NT applications requiring Unicode functions and SQL_C_WCHAR, use the
  3264.      ODBC 3.5 driver. The ODBC 3.5 driver manager will treat the DB2 UDB
  3265.      CLI driver as an ANSI driver. The ODBC 3.5 driver manager will convert
  3266.      Unicode function (with the W suffix) to an ANSI function call and pass
  3267.      it to the CLI driver. The ODBC 3.5 driver manager will also map
  3268.      SQL_C_WCHAR to SQL_C_CHAR.
  3269.    * Currently SQL_C_WCHAR support is provided by converting data to and
  3270.      from UCS2 to an application code page.
  3271.    * There is no SQL_WCHAR, SQL_WVARCHAR, or SQL_WLONGVARCHAR support.
  3272.    * WCHARTYPE NOCONVERT is not supported for the Unicode functions or for
  3273.      SQL_C_CHAR.
  3274.  
  3275.   ------------------------------------------------------------------------
  3276.  
  3277. 8.2 Binding Database Utilities Using the Run-Time Client
  3278.  
  3279. The Run-Time Client cannot be used to bind the database utilities (import,
  3280. export, reorg, the command line processor) and DB2 CLI bind files to each
  3281. database before they can be used with that database. You must use the DB2
  3282. Administration Client or the DB2 Application Development Client instead.
  3283.  
  3284. You must bind these database utilities and DB2 CLI bind files to each
  3285. database before they can be used with that database. In a network
  3286. environment, if you are using multiple clients that run on different
  3287. operating systems, or are at different versions or service levels of DB2,
  3288. you must bind the utilities once for each operating system and DB2-version
  3289. combination.
  3290.   ------------------------------------------------------------------------
  3291.  
  3292. 8.3 Addition to the "Using Compound SQL" Section
  3293.  
  3294. The following note is missing from the book:
  3295.  
  3296.    Any SQL statement that can be prepared dynamically, other than a query,
  3297.    can be executed as a statement inside a compound statement.
  3298.  
  3299.    Note: Inside Atomic Compound SQL, savepoint, release savepoint, and
  3300.    rollback to savepoint SQL statements are also disallowed. Conversely,
  3301.    Atomic Compound SQL is disallowed in savepoint.
  3302.  
  3303.   ------------------------------------------------------------------------
  3304.  
  3305. 8.4 Writing a Stored Procedure in CLI
  3306.  
  3307. Following is an undocumented limitation on CLI stored procedures:
  3308.  
  3309.    If you are making calls to multiple CLI stored procedures,
  3310.    the application must close the open cursors from one stored procedure
  3311.    before calling the next stored procedure. More specifically, the first
  3312.    set of open cursors must be closed before the next stored procedure
  3313.    tries to open a cursor.
  3314.  
  3315.   ------------------------------------------------------------------------
  3316.  
  3317. 8.5 Appendix K. Using the DB2 CLI/ODBC/JDBC Trace Facility
  3318.  
  3319. The sections within this appendix have been updated. See the "Traces"
  3320. chapter in the Troubleshooting Guide for the most up-to-date information on
  3321. this trace facility.
  3322.   ------------------------------------------------------------------------
  3323.  
  3324. 8.6 Using Static SQL in CLI Applications
  3325.  
  3326. For more information on using static SQL in CLI applications, see the Web
  3327. page at: http://www.ibm.com/software/data/db2/udb/staticcli/
  3328.   ------------------------------------------------------------------------
  3329.  
  3330. 8.7 Limitations of JDBC/ODBC/CLI Static Profiling
  3331.  
  3332. JDBC/ODBC/CLI static profiling currently targets straightforward
  3333. applications. It is not meant for complex applications with many functional
  3334. components and complex program logic during execution.
  3335.  
  3336. An SQL statement must have successfully executed for it to be captured in a
  3337. profiling session. In a statement matching session, unmatched dynamic
  3338. statements will continue to execute as dynamic JDBC/ODBC/CLI calls.
  3339.  
  3340. An SQL statement must be identical character-by-character to the one that
  3341. was captured and bound to be a valid candidate for statement matching.
  3342. Spaces are significant: for example, "COL = 1" is considered different than
  3343. "COL=1". Use parameter markers in place of literals to improve match hits.
  3344.  
  3345. When executing an application with pre-bound static SQL statements, dynamic
  3346. registers that control the dynamic statement behavior will have no effect
  3347. on the statements that are converted to static.
  3348.  
  3349. If an application issues DDL statements for objects that are referenced in
  3350. subsequent DML statements, you will find all of these statements in the
  3351. capture file. The JDBC/ODBC/CLI Static Profiling Bind Tool will attempt to
  3352. bind them. The bind attempt will be successful with DBMSs that support the
  3353. VALIDATE(RUN) bind option, but it fail with ones that do not. In this case,
  3354. the application should not use Static Profiling.
  3355.  
  3356. The Database Administrator may edit the capture file to add, change, or
  3357. remove SQL statements, based on application-specific requirements.
  3358.   ------------------------------------------------------------------------
  3359.  
  3360. 8.8 Parameter Correction for SQLBindFileToParam() CLI Function
  3361.  
  3362. The last parameter - IndicatorValue - in the SQLBindFileToParam() CLI
  3363. function is currently documented as "output (deferred)". It should be
  3364. "input (deferred)".
  3365.   ------------------------------------------------------------------------
  3366.  
  3367. 8.9 ADT Transforms
  3368.  
  3369. The following supercedes existing information in the book.
  3370.  
  3371.    * There is a new descriptor type (smallint)
  3372.      SQL_DESC_USER_DEFINED_TYPE_CODE, with values:
  3373.  
  3374.         SQL_TYPE_BASE 0      (this is not a USER_DEFINED_TYPE)
  3375.         SQL_TYPE_DISTINCT 1
  3376.         SQL_TYPE_STRUCTURED  2
  3377.         This value can be queried with either SQLColAttribute
  3378.           or SQLGetDescField (IRD only).
  3379.  
  3380.         The following attributes are added to obtain the actual type names:
  3381.              SQL_DESC_REFERENCE_TYPE
  3382.              SQL_DESC_STRUCTURED_TYPE
  3383.              SQL_DESC_USER_TYPE
  3384.         The above values can be queried using SQLColAttribute
  3385.           or SQLGetDescField (IRD only).
  3386.  
  3387.    * Add SQL_DESC_BASE_TYPE in case the application needs it. For example,
  3388.      the application may not recognize the structured type, but intends to
  3389.      fetch or insert it, and let other code deal with the details.
  3390.    * Add a new connection attribute called SQL_ATTR_TRANSFORM_GROUP to
  3391.      allow an application to set the transform group (rather than use the
  3392.      SQL "SET CURRENT DEFAULT TRANSFORM GROUP" statement).
  3393.    * Add a new statement/connection attribute called
  3394.      SQL_ATTR_RETURN_USER_DEFINED_TYPES that can be set or queried using
  3395.      SQLSetConnectAttr, which causes CLI to return the value
  3396.      SQL_DESC_USER_DEFINED_TYPE_CODE as a valid SQL Type. This attribute is
  3397.      required before using any of the transforms.
  3398.         o By default, the attribute is off, and causes the base type
  3399.           information to be returned as the SQL type.
  3400.         o When enabled, SQL_DESC_USER_DEFINED_TYPE_CODE will be returned as
  3401.           the SQL_TYPE. The application is expected to check for
  3402.           SQL_DESC_USER_DEFINED_TYPE_CODE, and then to retrieve the
  3403.           appropriate type name. This will be available to SQLColAttribute,
  3404.           SQLDescribeCol, and SQLGetDescField.
  3405.    * The SQLBindParameter does not give an error when you bind
  3406.      SQL_C_DEFAULT, because there is no code to allow SQLBindParameter to
  3407.      specify the type SQL_USER_DEFINED_TYPE. The standard default C types
  3408.      will be used, based on the base SQL type flowed to the server. For
  3409.      example:
  3410.  
  3411.         sqlrc = SQLBindParameter (hstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 30,
  3412.                                                        0, &c2, 30, NULL);
  3413.  
  3414.    * SQLDescribeParam and SQLGetDescField for parameter markers do not yet
  3415.      return structured type information. (This support will be added in the
  3416.      first Version 7.1 FixPak.)
  3417.  
  3418.   ------------------------------------------------------------------------
  3419.  
  3420. Command Reference
  3421.  
  3422.   ------------------------------------------------------------------------
  3423.  
  3424. 9.1 db2batch - Benchmark Tool
  3425.  
  3426. The last sentence in the description of the PERF_DETAIL parameter should
  3427. read:
  3428.  
  3429.    A value greater than 1 is only valid on DB2 Version 2 and DB2 UDB servers,
  3430.    and is not currently supported on host machines.
  3431.  
  3432.   ------------------------------------------------------------------------
  3433.  
  3434. 9.2 db2cap (new command)
  3435.  
  3436. db2cap - CLI/ODBC Static Package Binding Tool
  3437.  
  3438. Binds a CLI/ODBC capture file to generate a static package. A capture file
  3439. contains the captured SQL statements that are executed by a CLI/ODBC
  3440. application. This utility processes the capture file so that it can be used
  3441. by the CLI/ODBC driver to run static SQL for the application.
  3442.  
  3443. For more information on how to use static SQL in CLI/ODBC applications, see
  3444. the Using Static SQL in CLI Web page at
  3445. http://www.ibm.com/software/data/db2/udb/staticcli/
  3446.  
  3447. Authorization
  3448.  
  3449.    * Access privileges to any database objects referenced by SQL statements
  3450.      recorded in the capture file.
  3451.    * Sufficient authority to set bind options such as OWNER and QUALIFIER
  3452.      if they are different from the connect ID used to invoke the db2cap
  3453.      command.
  3454.    * BINDADD authority if the package is being bound for the first time;
  3455.      otherwise, BIND authority is required.
  3456.  
  3457. Command Syntax
  3458.  
  3459. >>-db2cap----+----+--bind--capture-file----d--database_alias---->
  3460.              +--h-+
  3461.              '--?-'
  3462.  
  3463. >-----+--------------------------------+-----------------------><
  3464.       '--u--userid--+---------------+--'
  3465.                     '--p--password--'
  3466.  
  3467.  
  3468. Command Parameters
  3469.  
  3470. -h/-?
  3471.      Displays help text for the command syntax.
  3472.  
  3473. bind capture-file
  3474.      Binds the statements from the capture file and creates one or more
  3475.      packages.
  3476.  
  3477. -d database_alias
  3478.      Specifies the database alias for the database that will contain one or
  3479.      more packages.
  3480.  
  3481. -u userid
  3482.      Specifies the user ID to be used to connect to the data source.
  3483.       Note:If a user ID is not specified, a trusted authorization ID is
  3484.            obtained from the system.
  3485.  
  3486. -p password
  3487.      Specifies the password to be used to connect to the data source.
  3488.  
  3489. Usage Notes
  3490.  
  3491. The command must be entered in lowercase on UNIX platforms, but can be
  3492. entered in either lowercase or uppercase on Windows operating systems and
  3493. OS/2.
  3494.  
  3495. This utility supports a number of user-specified bind options that can be
  3496. found in the capture file. For performance and security reasons, the file
  3497. can be examined and edited with a text editor to change these options.
  3498.  
  3499. The SQLERROR(CONTINUE) and the VALIDATE(RUN) bind options can be used to
  3500. create a package.
  3501.  
  3502. When using this utility to create a package, static profiling must be
  3503. disabled.
  3504.   ------------------------------------------------------------------------
  3505.  
  3506. 9.3 db2gncol (new command)
  3507.  
  3508. db2gncol - Update Generated Column Values
  3509.  
  3510. Updates generated columns in tables that are in check pending mode and have
  3511. limited log space. This tool is used to prepare for a SET INTEGRITY
  3512. statement on a table that has columns which are generated by expressions.
  3513.  
  3514. Authorization
  3515.  
  3516. One of the following
  3517.  
  3518.    * sysadm
  3519.    * dbadm
  3520.  
  3521. Command Syntax
  3522.  
  3523. >>-db2gncol----d--database----s--schema_name----t--table_name--->
  3524.  
  3525. >-----c--commit_count----+---------------------------+---------->
  3526.                          '--u--userid---p--password--'
  3527.  
  3528. >-----+-----+--------------------------------------------------><
  3529.       '--h--'
  3530.  
  3531.  
  3532. Command Parameters
  3533.  
  3534. -d database
  3535.      Specifies an alias name for the database in which the table is
  3536.      located.
  3537.  
  3538. -s schema_name
  3539.      Specifies the schema name for the table. The schema name is case
  3540.      sensitive.
  3541.  
  3542. -t table_name
  3543.      Specifies the table for which new column values generated by
  3544.      expressions are to be computed. The table name is case sensitive.
  3545.  
  3546. -c commit_count
  3547.      Specifies the number of rows updated between commits. This parameter
  3548.      influences the size of the log space required to generate the column
  3549.      values.
  3550.  
  3551. -u userid
  3552.      Specifies a user ID with system administrator or database
  3553.      administrator privileges. If this option is omitted, the current user
  3554.      is assumed.
  3555.  
  3556. -p password
  3557.      Specifies the password for the specified user ID.
  3558.  
  3559. -h
  3560.      Displays help information. When this option is specified, all other
  3561.      options are ignored, and only the help information is displayed.
  3562.  
  3563. Usage Notes
  3564.  
  3565. Using this tool instead of the FORCE GENERATED option on the SET INTEGRITY
  3566. statement may be necessary if a table is large and the following conditions
  3567. exist:
  3568.  
  3569.    * All column values must be regenerated after altering the generation
  3570.      expression of a generated column.
  3571.    * An external UDF used in a generated column was changed, causing many
  3572.      column values to change.
  3573.    * A generated column was added to the table.
  3574.    * A large load or load append was performed that did not provide values
  3575.      for the generated columns.
  3576.    * The log space is too small due to long-running concurrent transactions
  3577.      or the size of the table.
  3578.  
  3579. This tool will regenerate all column values that were created based on
  3580. expressions. While the table is being updated, intermittent commits are
  3581. performed to avoid using up all of the log space. Once db2gncol has been
  3582. run, the table can be taken out of check pending mode using the SET
  3583. INTEGRITY statement.
  3584.   ------------------------------------------------------------------------
  3585.  
  3586. 9.4 db2look - DB2 Statistics Extraction Tool
  3587.  
  3588. The syntax diagram should appear as follows:
  3589.  
  3590. >>-db2look---d--DBname----+--------------+---+-----+---+-----+-->
  3591.                           '--u--Creator--'   '--s--'   '--g--'
  3592.  
  3593. >-----+-----+---+-----+---+-----+---+-----+---+-----+----------->
  3594.       '--a--'   '--h--'   '--r--'   '--c--'   '--p--'
  3595.  
  3596. >-----+------------+---+-------------------+-------------------->
  3597.       '--o--Fname--'   '--e--+----------+--'
  3598.                              '--t Tname-'
  3599.  
  3600. >-----+-------------------+---+-----+---+-----+----------------->
  3601.       '--m--+----------+--'   '--l--'   '--x--'
  3602.             '--t Tname-'
  3603.  
  3604. >-----+---------------------------+---+-----+------------------><
  3605.       '--i--userid---w--password--'   '--f--'
  3606.  
  3607.  
  3608.   ------------------------------------------------------------------------
  3609.  
  3610. 9.5 db2updv6 (new command)
  3611.  
  3612. Purpose
  3613.    Initializes a packed descriptor field for user tables.
  3614.    This utility should be run against any Version 6 database
  3615.    that is moving to a Version 7.1 instance, but only if that database
  3616.    has previously migrated from Version 2 to Version 6.
  3617.  
  3618. Authorization
  3619.    sysadm
  3620.  
  3621. Command Syntax
  3622.    db2updv6 -d dbname ----------------->
  3623.                        |             |
  3624.                        ----- -h ------
  3625.  
  3626.    where:
  3627.       -d dbname specifies a database name, and
  3628.       -h        displays usage help.
  3629.  
  3630.   ------------------------------------------------------------------------
  3631.  
  3632. 9.6 New Command Line Processor Option (-x, Suppress printing of column
  3633. headings)
  3634.  
  3635. A new option, -x, tells the command line processor to return data without
  3636. any headers, including column names. The default setting for this command
  3637. option is OFF.
  3638.   ------------------------------------------------------------------------
  3639.  
  3640. 9.7 True Type Font Requirement for DB2 CLP
  3641.  
  3642. To display the national characters for single byte (SBCS) languages
  3643. correctly from the DB2 command line processor (CLP) window, change the font
  3644. to True Type.
  3645.   ------------------------------------------------------------------------
  3646.  
  3647. 9.8 CALL
  3648.  
  3649. The syntax for the CALL command should appear as follows:
  3650.  
  3651.                         .-,---------------.
  3652.                         V                 |
  3653. >>-CALL--proc-name---(-----+-----------+--+---)----------------><
  3654.                            '-argument--'
  3655.  
  3656.  
  3657. The description of the argument parameter has been changed to:
  3658.  
  3659.    Specifies one or more arguments for the stored procedure.
  3660.    All input and output arguments must be specified in the order
  3661.    defined by the procedure. Output arguments are specified
  3662.    using the "?" character. For example, a stored procedure foo
  3663.    with one integer input parameter and one output parameter
  3664.    would be invoked as "call foo (4, ?)".
  3665.  
  3666. Notes:
  3667.  
  3668.   1. When invoking this utility from an operating system prompt, it may be
  3669.      necessary to delimit the command as follows:
  3670.  
  3671.         "call DEPT_MEDIAN (51)"
  3672.  
  3673.      A single quotation mark (') can also be used.
  3674.  
  3675.   2. The stored procedure being called must be uniquely named in the
  3676.      database.
  3677.  
  3678.   3. The stored procedure must be cataloged. If an uncataloged procedure is
  3679.      called, a DB21036 error message is returned.
  3680.  
  3681.   4. A DB21101E message is returned if not enough parameters are specified
  3682.      on the command line, or the command line parameters are not in the
  3683.      correct order (input, output), according to the stored procedure
  3684.      definition.
  3685.  
  3686.   5. There is a maximum of 1023 characters for a result column.
  3687.  
  3688.   6. LOBS and binary data (FOR BIT DATA, VARBINARY, LONGVARBINARY, GRAPHIC,
  3689.      VARGAPHIC, or LONGVARGRAPHIC) are not supported.
  3690.  
  3691.   7. CALL supports result sets.
  3692.  
  3693.   8. If an SP with an OUTPUT variable of an unsupported type is called, the
  3694.      CALL fails, and message DB21036 is returned.
  3695.  
  3696.   9. The maximum length for an INPUT parameter to CALL is 1024.
  3697.  
  3698.   ------------------------------------------------------------------------
  3699.  
  3700. 9.9 EXPORT
  3701.  
  3702. In the section "DB2 Data Links Manager Considerations", Step 3 of the
  3703. procedure to ensure that a consistent copy of the table and the
  3704. corresponding files referenced by DATALINK columns are copied for export
  3705. should read:
  3706.  
  3707.    3. Run the dlfm_export utility at each Data Links server. Input to the
  3708.       dlfm_export utility is the control file name, which is generated by the
  3709.       export utility. This produces a tar (or equivalent) archive of the files listed
  3710.       within the control file. For Distributed File Systems (DFS), the dlfm_export
  3711.       utility will get the DCE network root credentials before archiving the files
  3712.       listed in the control file. dlfm_export does not capture the ACLs information
  3713.       of the files that are archived.
  3714.  
  3715. In the same section, the bullets following "Successful execution of EXPORT
  3716. results in the generation of the following files" should be modified as
  3717. follows:
  3718.  
  3719. The second sentence in the first bullet should read:
  3720.  
  3721.    A DATALINK column value in this file has the same format
  3722.    as that used by the import and load utilities.
  3723.  
  3724. The first sentence in the second bullet should read:
  3725.  
  3726.    Control files server_name, which are generated for
  3727.    each Data Links server. (On the Windows NT operating system,
  3728.    a single control file, ctrlfile.lst, is used by all Data Links
  3729.    servers. For DFS, there is one control file for each cell.)
  3730.  
  3731. The following sentence should be added to the paragraph before Table 5:
  3732.  
  3733.    For more information about dlfm_export, refer to the "Data Movement
  3734.    Utilities Guide and Reference" under "Using Export to move DB2 Data
  3735.    Links Manager Data".
  3736.  
  3737.   ------------------------------------------------------------------------
  3738.  
  3739. 9.10 GET DATABASE CONFIGURATION
  3740.  
  3741. The description of the DL_TIME_DROP configuration parameter should be
  3742. changed to the following:
  3743.  
  3744.    Applies to DB2 Data Links Manager only. This parameter specifies
  3745.    the interval of time (in days) files would be retained on an
  3746.    archive server (such as a TSM server) after a DROP DATABASE command
  3747.    is issued.
  3748.  
  3749.   ------------------------------------------------------------------------
  3750.  
  3751. 9.11 IMPORT
  3752.  
  3753. In the section "DB2 Data Links Manager Considerations", the following
  3754. sentence should be added to Step 3:
  3755.  
  3756.    For Distributed File Systems (DFS), update the cell name
  3757.    information in the URLs (of the DATALINK columns) from the
  3758.    exported data for the SQL table, if required.
  3759.  
  3760. The following sentence should be added to Step 4:
  3761.  
  3762.    For DFS, define the cells at the target configuration
  3763.    in the DB2 Data Links Manager configuration file.
  3764.  
  3765. The paragraph following Step 4 should read:
  3766.  
  3767.    When the import utility runs against the target database,
  3768.    files referred to by DATALINK column data are linked on
  3769.    the appropriate Data Links servers.
  3770.  
  3771.   ------------------------------------------------------------------------
  3772.  
  3773. 9.12 LOAD
  3774.  
  3775. In the section "DB2 Data Links Manager Considerations", add the following
  3776. sentence to Step 1 of the procedure that is to be performed before invoking
  3777. the load utility, if data is being loaded into a table with a DATALINK
  3778. column that is defined with FILE LINK CONTROL:
  3779.  
  3780.    For Distributed File Systems (DFS), ensure that the DB2 Data Links Managers
  3781.    within the target cell are registered.
  3782.  
  3783. The following sentence should be added to Step 5:
  3784.  
  3785.    For DFS, register the cells at the target configuration
  3786.    referred to by DATALINK data (to be loaded) in the DB2
  3787.    Data Links Manager configuration file.
  3788.  
  3789. In the section "Representation of DATALINK Information in an Input File",
  3790. the first note following the parameter description for urlname should read:
  3791.  
  3792.    Currently "http", "file", "unc", and "dfs" are permitted as a scheme name.
  3793.  
  3794. The first sentence of the second note should read:
  3795.  
  3796.    The prefix (scheme, host, and port) of the URL
  3797.    name is optional. For DFS, the prefix refers to the
  3798.    scheme cellname filespace-junction portion.
  3799.  
  3800. In the DATALINK data examples for both the delimited ASCII (DEL) file
  3801. format and the non-delimited ASCII (ASC) file format, the third examples
  3802. should be removed.
  3803.  
  3804. The DATALINK data examples in which the load or import specification for
  3805. the column is assumed to be DL_URL_DEFAULT_PREFIX should be removed and
  3806. replaced with the following:
  3807.  
  3808. Following are DATALINK data examples in which the load or import
  3809. specification for the column is assumed to be DL_URL_REPLACE_PREFIX
  3810. ("http://qso"):
  3811.  
  3812.    * http://www.almaden.ibm.com/mrep/intro.mpeg
  3813.  
  3814.      This is stored with the following parts:
  3815.         o scheme = http
  3816.         o server = qso
  3817.         o path = /mrep/intro.mpeg
  3818.         o comment = NULL string
  3819.    * /u/me/myfile.ps
  3820.  
  3821.      This is stored with the following parts:
  3822.         o scheme = http
  3823.         o server = qso
  3824.         o path = /u/me/myfile.ps
  3825.         o comment = NULL string
  3826.  
  3827.   ------------------------------------------------------------------------
  3828.  
  3829. Connectivity Supplement
  3830.  
  3831.   ------------------------------------------------------------------------
  3832.  
  3833. 10.1 Setting Up the Application Server in a VM Environment
  3834.  
  3835. Add the following sentence after the first (and only) sentence in the
  3836. section "Provide Network Information", subsection "Defining the Application
  3837. Server":
  3838.  
  3839.    The RDB_NAME is provided on the SQLSTART EXEC as the DBNAME parameter.
  3840.  
  3841.   ------------------------------------------------------------------------
  3842.  
  3843. 10.2 CLI/ODBC/JDBC Configuration PATCH1 and PATCH2 Settings
  3844.  
  3845. The CLI/ODBC/JDBC driver can be configured through the Client Configuration
  3846. Assistant or the ODBC Driver Manager (if it is installed on the system), or
  3847. by manually editing the db2cli.ini file. For more details, see either the
  3848. Installation and Configuration Supplement, or the CLI Guide and Reference.
  3849.  
  3850. The DB2 CLI/ODBC driver default behavior can be modified by specifying
  3851. values for both the PATCH1 and PATCH2 keyword through either the db2cli.ini
  3852. file or through the SQLDriverConnect() or SQLBrowseConnect() CLI API.
  3853.  
  3854. The PATCH1 keyword is specified by adding together all keywords that the
  3855. user wants to set. For example, if patch 1, 2, and 8 were specified, then
  3856. PATCH1 would have a value of 11. Following is a description of each keyword
  3857. value and its effect on the driver:
  3858.  
  3859.  1 - This makes the driver search for "count(exp)" and replace it with
  3860.      "count(distinct exp)". This is needed because some versions of DB2
  3861.      support the "count(exp)" syntax, and that syntax is generated by some
  3862.      ODBC applications. Needed by Microsoft applications when the server
  3863.      does not support the "count(exp)" syntax.
  3864.  
  3865.  2 - Some ODBC applications are trapped when SQL_NULL_DATA is returned in
  3866.      the SQLGetTypeInfo() function for either the LITERAL_PREFIX or LITERAL_SUFFIX
  3867.      column. This forces the driver to return an empty string instead. Needed
  3868.      by Impromptu 2.0.
  3869.  
  3870.  4 - This forces the driver to treat the input time stamp data as date data
  3871.      if the time and the fraction part of the time stamp are zero. Needed by
  3872.      Microsoft Access.
  3873.  
  3874.  8 - This forces the driver to treat the input time stamp data as time data
  3875.      if the date part of the time stamp is 1899-12-30. Needed by Microsoft Access.
  3876.  
  3877.  16 - Not used.
  3878.  
  3879.  32 - This forces the driver to not return information about SQL_LONGVARCHAR,
  3880.       SQL_LONGVARBINARY, and SQL_LONGVARGRAPHIC columns. To the application
  3881.       it appears as though long fields are not supported. Needed by Lotus 123.
  3882.  
  3883.  64 - This forces the driver to NULL terminate graphic output strings. Needed
  3884.       by Microsoft Access in a double byte environment.
  3885.  
  3886.  128 - This forces the driver to let the query "SELECT Config, nValue FROM MSysConf"
  3887.        go to the server. Currently the driver returns an error with associated
  3888.        SQLSTATE value of S0002 (table not found). Needed if the user has created
  3889.        this configuration table in the database and wants the application
  3890.        to access it.
  3891.  
  3892.  256 - This forces the driver to return the primary key columns first in
  3893.        the SQLStatistics() call. Currently, the driver returns the indexes sorted
  3894.        by index name, which is standard ODBC behavior.
  3895.  
  3896.  512 - This forces the driver to return FALSE in SQLGetFunctions() for both
  3897.        SQL_API_SQLTABLEPRIVILEGES and SQL_API_SQLCOLUMNPRIVILEGES.
  3898.  
  3899.  1024 - This forces the driver to return SQL_SUCCESS instead of SQL_NO_DATA_FOUND
  3900.         in SQLExecute() or SQLExecDirect() if the executed UPDATE or DELETE
  3901.         statement affects no rows. Needed by Visual Basic applications.
  3902.  
  3903.  2048 - Not used.
  3904.  
  3905.  4096 - This forces the driver to not issue a COMMIT after closing a cursor
  3906.         when in autocommit mode.
  3907.  
  3908.  8192 - This forces the driver to return an extra result set after invoking
  3909.         a stored procedure. This result set is a one row result set consisting
  3910.         of the output values of the stored procedure. Can be accessed by
  3911.         Powerbuild applications.
  3912.  
  3913.  32768 - This forces the driver to make Microsoft Query applications work
  3914.          with DB2 MVS synonyms.
  3915.  
  3916.  65536 - This forces the driver to manually insert a "G" in front of character
  3917.          literals which are in fact graphic literals. This patch should always
  3918.          be supplied when working in an double byte environment.
  3919.  
  3920.  131072 - This forces the driver to describe a time stamp column as a CHAR(26)
  3921.           column instead, when it is part of an unique index. Needed by
  3922.           Microsoft applications.
  3923.  
  3924.  262144 - This forces the driver to use the pseudo-catalog table
  3925.           db2cli.procedures instead of the SYSCAT.PROCEDURES and
  3926.           SYSCAT.PROCPARMS tables.
  3927.  
  3928.  524288 - This forces the driver to use SYSTEM_TABLE_SCHEMA instead of TABLE_SCHEMA
  3929.           when doing a system table query to a DB2/400 V3.x system. This
  3930.           results in better performance.
  3931.  
  3932.  1048576 - This forces the driver to treat a zero length string through
  3933.            SQLPutData() as SQL_NULL_DATA.
  3934.  
  3935. The PATCH2 keyword differs from the PATCH1 keyword. In this case, multiple
  3936. patches are specified using comma separators. For example, if patch 1, 4,
  3937. and 5 were specified, then PATCH2 would have a value of "1,4,5". Following
  3938. is a description of each keyword value and its effect on the driver:
  3939.  
  3940.  1 - This forces the driver to convert the name of the stored procedure
  3941.      in a CALL statement to uppercase.
  3942.  
  3943.  2 - Not used.
  3944.  
  3945.  3 - This forces the driver to convert all arguments to schema calls to uppercase.
  3946.  
  3947.  4 - This forces the driver to return the Version 2.1.2 like result set for
  3948.      schema calls (that is, SQLColumns(), SQLProcedureColumns(), and so on),
  3949.      instead of the Version 5 like result set.
  3950.  
  3951.  5 - This forces the driver to not optimize the processing of input VARCHAR
  3952.      columns, where the pointer to the data and the pointer to the length
  3953.      are consecutive in memory.
  3954.  
  3955.  6 - This forces the driver to return a message that scrollable cursors are not
  3956.      supported. This is needed by Visual Basic programs if the DB2 client
  3957.      is Version 5 and the server is DB2 UDB Version 5.
  3958.  
  3959.  7 - This forces the driver to map all GRAPHIC column data types to the CHAR
  3960.      column data type. This is needed in a double byte environment.
  3961.  
  3962.  8 - This forces the driver to ignore catalog search arguments in schema calls.
  3963.  9 - Do not commit on Early Close of a cursor
  3964.  10 - Not Used
  3965.  11 - Report that catalog name is supported, (VB stored procedures)
  3966.  12 - Remove double quotes from schema call arguments, (Visual Interdev)
  3967.  13 - Do not append keywords from db2cli.ini to output connection string
  3968.  14 - Ignore schema name on SQLProcedures() and SQLProcedureColumns()
  3969.  15 - Always use period for decimal separator in character output
  3970.  16 - Force return of describe information for each open
  3971.  17 - Do not return column names on describe
  3972.  18 - Attempt to replace literals with parameter markers
  3973.  19 - Currently, DB2 MVS V4.1 does not support the ODBC syntax where parenthesis
  3974.       are allowed in the ON clause in an Outer join clause.
  3975.       Turning on this PATCH2 will cause IBM DB2 ODBC driver to strip the parenthesis
  3976.       when the outer join clause is in an ODBC escape sequence. This PATCH2
  3977.       should only be used when going against DB2 MVS 4.1.
  3978.  20 - Currently, DB2 on MVS does not support BETWEEN predicate with parameter
  3979.       markers as both operands (expression ? BETWEEN ?). Turning on this patch
  3980.       will cause the IBM ODBC Driver to rewrite the predicate to
  3981.       (expression >= ? and expression <= ?).
  3982.  21 - Set all OUTPUT only parameters for stored procedures to SQL_NULL_DATA
  3983.  22 - This PATCH2 causes the IBM ODBC driver to report OUTER join as not supported.
  3984.       This is for application that generates SELECT DISTINCT col1 or ORDER BY col1
  3985.       when using outer join statement where col1 has length greater than 254
  3986.       characters and causes DB2 UDB to return an error (since DB2 UDB does
  3987.       not support greater-than-254 byte column in this usage
  3988.  23 - Do not optimize input for parameters bound with cbColDef=0
  3989.  24 - Access workaround for mapping Time values as Characters
  3990.  25 - Access workaround for decimal columns - removes trailing zeros in char representation
  3991.  26 - Do not return sqlcode 464 to application - indicates result sets are returned
  3992.  27 - Force SQLTables to use TABLETYPE keyword value, even if the application
  3993.       specifies a valid value
  3994.  28 - Describe real columns as double columns
  3995.  29 - ADO workaround for decimal columns - removes leading zeroes
  3996.       for values x, where 1 > x > -1 (Only needed for some MDAC versions)
  3997.  30 - Disable the Stored Procedure caching optimization
  3998.  31 - Report statistics for aliases on SQLStatistics call
  3999.  32 - Override the sqlcode -727 reason code 4 processing
  4000.  33 - Return the ISO version of the time stamp when converted to char
  4001.       (as opposed to the ODBC version)
  4002.  34 - Report CHAR FOR BIT DATA columns as CHAR
  4003.  35 - Report an invalid TABLENAME when SQL_DESC_BASE_TABLE_NAME
  4004.       is requested - ADO readonly optimization
  4005.  36 - Reserved
  4006.  37 - Reserved
  4007.  
  4008.   ------------------------------------------------------------------------
  4009.  
  4010. Data Links Manager Quick Beginnings
  4011.  
  4012.   ------------------------------------------------------------------------
  4013.  
  4014. 11.1 Dlfm start Fails with Message: "Error in getting the afsfid for
  4015. prefix"
  4016.  
  4017. For a Data Links Manager running in the DCE-DFS environment, if dlfm start
  4018. fails with the error:
  4019.  
  4020.    Error in getting the afsfid for prefix
  4021.  
  4022. contact IBM Service. The error may occur when a DFS file set that had been
  4023. registered to the Data Links Manager using "dlfm add_prefix" was
  4024. subsequently deleted.
  4025.   ------------------------------------------------------------------------
  4026.  
  4027. 11.2 Setting Tivoli Storage Manager Class for Archive Files
  4028.  
  4029. To specify which TSM management class to use for the archive files, set the
  4030. DLFM_TSM_MGMTCLASS DB2 registry entry to the appropriate management class
  4031. name.
  4032.   ------------------------------------------------------------------------
  4033.  
  4034. 11.3 Disk Space Requirements for DFS Client Enabler
  4035.  
  4036. The DFS Client Enabler is an optional component that you can select during
  4037. DB2 Universal Database client or server installation. You cannot install a
  4038. DFS Client Enabler without installing a DB2 Universal Database client or
  4039. server product, even though the DFS Client Enabler runs on its own without
  4040. the need for a DB2 UDB client or server. In addition to the 2 MB of disk
  4041. space required for the DFS Client Enabler code, you should set aside an
  4042. additional 40 MB if you are installing the DFS Client Enabler as part of a
  4043. DB2 Run-Time Client installation. You will need more disk space if you
  4044. install the DFS Client Enabler as part of a DB2 Administration Client or
  4045. DB2 server installation. For more information about disk space requirements
  4046. for DB2 Universal Database products, refer to the DB2 for UNIX Quick
  4047. Beginnings manual.
  4048.   ------------------------------------------------------------------------
  4049.  
  4050. 11.4 Monitoring the Data Links File Manager Back-end Processes on AIX
  4051.  
  4052. There has been a change to the output of the dlfm see command. When this
  4053. command is issued to monitor the Data Links File Manager back-end processes
  4054. on AIX, the output that is returned will be similar to the following:
  4055.  
  4056.      PID     PPID     PGID   RUNAME    UNAME        ETIME DAEMON NAME
  4057.    17500    60182    40838     dlfm     root        12:18 dlfm_copyd_(dlfm)
  4058.    41228    60182    40838     dlfm     root        12:18 dlfm_chownd_(dlfm)
  4059.    49006    60182    40838     dlfm     root        12:18 dlfm_upcalld_(dlfm)
  4060.    51972    60182    40838     dlfm     root        12:18 dlfm_gcd_(dlfm)
  4061.    66850    60182    40838     dlfm     root        12:18 dlfm_retrieved_(dlfm)
  4062.    67216    60182    40838     dlfm     dlfm        12:18 dlfm_delgrpd_(dlfm)
  4063.    60182        1    40838     dlfm     dlfm        12:18 dlfmd_(dlfm)
  4064.  
  4065. DLFM SEE request was successful.
  4066.  
  4067. The name that is enclosed within the parentheses is the name of the dlfm
  4068. instance, in this case "dlfm".
  4069.   ------------------------------------------------------------------------
  4070.  
  4071. 11.5 Installing and Configuring DB2 Data Links Manger for AIX: Additional
  4072. Installation Considerations in DCE-DFS Environments
  4073.  
  4074. In the section called "Installation prerequisites", there is new
  4075. information that should be added:
  4076.  
  4077.    You must also install either an e-fix for DFS 3.1,
  4078.    or PTF set 1 (when it becomes available). The e-fix is available from:
  4079.  
  4080.    http://www.transarc.com/Support/dfs/datalinks/efix_dfs31_main_page.html
  4081.  
  4082. Also:
  4083.  
  4084.    The dfs client must be running before you install the Data Links Manager.
  4085.    Use db2setup or smitty.
  4086.  
  4087. In the section called "Keytab file", there is an error that should be
  4088. corrected as:
  4089.  
  4090.    The keytab file, which contains the principal and password information,
  4091.    should be called datalink.ktb and ....
  4092.  
  4093. The example below this paragraph uses the correct name: datalink.ktb The
  4094. "Keytab file" section should be moved under "DCE-DFS Post-Installation
  4095. Task", because the creation of this file cannot occur until after the
  4096. DLMADMIN instance has been created.
  4097.  
  4098. In the section called "Data Links File Manager servers and clients", it
  4099. should be noted that the Data Links Manager server must be installed before
  4100. any of the Data Links Manager clients.
  4101.  
  4102. A new section, "Backup directory", should be added:
  4103.  
  4104.    If the backup method is to a local file system,
  4105.    this must be a directory in the DFS file system.
  4106.    Ensure that this DFS file set has been created by a
  4107.    DFS administrator. This should not be a DMLFS file set.
  4108.  
  4109.   ------------------------------------------------------------------------
  4110.  
  4111. 11.6 Failed "dlfm add_prefix" Command
  4112.  
  4113. For a Data Links Manager running in the DCE/DFS environment, the dlfm
  4114. add_prefix command might fail with a return code of -2061 (backup failed).
  4115. If this occurs, perform the following steps:
  4116.  
  4117.   1. Stop the Data Links Manager daemon processes by issuing the dlfm stop
  4118.      command.
  4119.   2. Stop the DB2 processes by issuing the dlfm stopdbm command.
  4120.   3. Get dce root credentials by issuing the dce_login root command.
  4121.   4. Start the DB2 processes by issuing the dlfm startdbm command.
  4122.   5. Register the file set with the Data Links Manager by issuing the dlfm
  4123.      add_prefix command.
  4124.   6. Start the Data Links Manager daemon processes by issuing the dlfm
  4125.      start command.
  4126.  
  4127.   ------------------------------------------------------------------------
  4128.  
  4129. 11.7 Installing and Configuring DB2 Data Links Manger for AIX: Installing
  4130. DB2 Data Links Manager on AIX Using the db2setup Utility
  4131.  
  4132. In the section "DB2 database DLFM_DB created", the DLFM_DB is not created
  4133. in the DCE_DFS environment. This must be done as a post-installation step.
  4134.  
  4135. In the section "DCE-DFS pre-start registration for DMAPP", Step 2 should be
  4136. changed to the following:
  4137.  
  4138.    2. Commands are added to /opt/dcelocal/tcl/user_cmd.tcl to
  4139.       ensure that the DMAPP is started when DFS is started.
  4140.  
  4141.   ------------------------------------------------------------------------
  4142.  
  4143. 11.8 Installing and Configuring DB2 Data Links Manager for AIX: DCE-DFS
  4144. Post-Installation Task
  4145.  
  4146. The following new section, "Complete the Data Links Manager Install",
  4147. should be added:
  4148.  
  4149. On the Data Links Manager server, the following steps must be performed to
  4150. complete the installation:
  4151.  
  4152.   1. Create the keytab file as outlined under "Keytab file" in the section
  4153.      "Additional Installation Considerations in DCE-DFS Environment", in
  4154.      the chapter "Installing and Configuring DB2 Data Links Manger for
  4155.      AIX".
  4156.   2. As root, enter the following commands to start the DMAPP:
  4157.  
  4158.         stop.dfs all
  4159.         start.dfs all
  4160.  
  4161.   3. Run "dlfm setup" using dce root credentials as follows:
  4162.        a. Login as the Data Links Manager administrator, DLMADMIN.
  4163.        b. As root, issue dce_login.
  4164.        c. Enter the command: dlfm setup.
  4165.  
  4166. On the Data Links Manager client, the following steps must be performed to
  4167. complete the installation:
  4168.  
  4169.   1. Create the keytab file as outlined under "Keytab file" in the section
  4170.      "Additional Installation Considerations in DCE-DFS Environment", in
  4171.      the chapter "Installing and Configuring DB2 Data Links Manger for
  4172.      AIX".
  4173.   2. As root, enter the following commands to start the DMAPP:
  4174.  
  4175.         stop.dfs all
  4176.         start.dfs all
  4177.  
  4178.   ------------------------------------------------------------------------
  4179.  
  4180. 11.9 Installing and Configuring DB2 Data Links Manager for AIX: Manually
  4181. Installing DB2 Data Links Manager Using Smit
  4182.  
  4183. Under the section, "SMIT Post-installation Tasks", modify step 7 to
  4184. indicate that the command "dce_login root" must be issued before "dlfm
  4185. setup". Step 11 is not needed. This step is performed automatically when
  4186. Step 6 (dlfm server_conf) or Step 8 (dlfm client_conf) is done. Also remove
  4187. step 12 (dlfm start). To complete the installation, perform the following
  4188. steps:
  4189.  
  4190.   1. Create the keytab file as outlined under "Keytab file" in the section
  4191.      "Additional Installation Considerations in DCE-DFS Environment", in
  4192.      the chapter "Installing and Configuring DB2 Data Links Manger for
  4193.      AIX".
  4194.   2. As root, enter the following commands to start the DMAPP:
  4195.  
  4196.         stop.dfs all
  4197.         start.dfs all
  4198.  
  4199.   ------------------------------------------------------------------------
  4200.  
  4201. 11.10 Installing and Configuring DB2 Data Links DFS Client Enabler
  4202.  
  4203. In the section "Configuring a DFS Client Enabler", add the following to
  4204. Step 2:
  4205.  
  4206.    Performing the "secval" commands will usually complete the configuration.
  4207.    It may, however, be necessary to reboot the machine as well.
  4208.    If problems are encountered in accessing READ PERMISSION DB files,
  4209.    reboot the machine where the DB2 DFS Client Enabler has just been installed.
  4210.  
  4211.   ------------------------------------------------------------------------
  4212.  
  4213. 11.11 Choosing a Backup Method for DB2 Data Links Manager on AIX
  4214.  
  4215. In addition to Disk Copy and XBSA, you can also use Tivoli Storage Manager
  4216. (TSM) for backing up files that reside on a Data Links server.
  4217.  
  4218. To use Tivoli Storage Manager as an archive server:
  4219.  
  4220.   1. Install Tivoli Storage Manager on the Data Links server. For more
  4221.      information, refer to your Tivoli Storage Manager product
  4222.      documentation.
  4223.   2. Register the Data Links server client application with the Tivoli
  4224.      Storage Manager server. For more information, refer to your Tivoli
  4225.      Storage Manager product documentation.
  4226.   3. Add the following environment variables to the Data Links Manager
  4227.      Administrator's db2profile or db2cshrc script files:
  4228.  
  4229.         (for Bash, Bourne, or Korn shell)
  4230.         export DSMI_DIR=/usr/lpp/tsm/bin
  4231.         export DSMI_CONFIG=$HOME/tsm/dsm.opt
  4232.         export DSMI_LOG=$HOME/dldump
  4233.         export PATH=$PATH:/usr/lpp/tsm/bin
  4234.  
  4235.         (for C shell)
  4236.         setenv DSMI_DIR /usr/lpp/tsm/bin
  4237.         setenv DSMI_CONFIG ${HOME}/tsm/dsm.opt
  4238.         setenv DSMI_LOG ${HOME}/dldump
  4239.         setenv PATH=${PATH}:/usr/lpp/tsm/bin
  4240.  
  4241.  
  4242.   4. Ensure that the dsm.sys TSM system options file is located in the
  4243.      /usr/lpp/tsm/bin directory.
  4244.   5. Ensure that the dsm.opt TSM user options file is located in the
  4245.      INSTHOME/tsm directory, where INSTHOME is the home directory of the
  4246.      Data Links Manager Administrator.
  4247.   6. Set the PASSWORDACCESS option to generate in the
  4248.      /usr/lpp/tsm/bin/dsm.sys Tivoli Storage Manager system options file.
  4249.   7. Register TSM password with the generate option before starting the
  4250.      Data Links File Manager for the first time. This way, you will not
  4251.      need to provide a password when the Data Links File Manager initiates
  4252.      a connection to the TSM server. For more information, refer to your
  4253.      TSM product documentation.
  4254.   8. Set the DLFM_BACKUP_TARGET registry variable to TSM. The value of
  4255.      DLFM_BACKUP_DIR_NAME registry variable will be ignored in this case.
  4256.      This will activate the Tivoli Storage Manager backup option.
  4257.  
  4258.      Notes:
  4259.  
  4260.        1. If you change the setting of the DLFM_BACKUP_TARGET registry
  4261.           variable between TSM and disk at run time, you should be aware
  4262.           that the archived files are not moved to the newly specified
  4263.           archive location. For example, if you start the Data Links File
  4264.           Manager with the DLMF_BACKUP_TARGET registry value set to TSM,
  4265.           and change the registry value to a disk location, all newly
  4266.           archived files will be stored in the new location on the disk.
  4267.           The files that were previously archived to TSM will not be moved
  4268.           to the new disk location.
  4269.  
  4270.        2. To override the default TSM management class there is a new
  4271.           registry variable called DLFM_TSM_MGMTCLASS. If this registry
  4272.           variable is left unset then the default TSM management class will
  4273.           be used.
  4274.   9. Stop the Data Links File Manager by entering the dlfm stop command.
  4275.  10. Start the Data Links File Manager by entering the dlfm start command.
  4276.  
  4277.   ------------------------------------------------------------------------
  4278.  
  4279. 11.12 Choosing a Backup Method for DB2 Data Links Manager on Windows NT
  4280.  
  4281. Whenever a DATALINK value is inserted into a table with a DATALINK column
  4282. that is defined for recovery, the corresponding DATALINK files on the Data
  4283. Links server are scheduled to be backed up to an archive server. Currently,
  4284. Disk Copy (default method) and Tivoli Storage Manager are the two options
  4285. that are supported for file backup to an archive server. Future releases of
  4286. DB2 Data Links Manager for Windows NT will support other vendors' backup
  4287. media and software.
  4288.  
  4289. Disk Copy (default method)
  4290.  
  4291.      When the backup command is entered on the DB2 server, it ensures that
  4292.      the linked files in the database are backed up on the Data Links
  4293.      server to the directory specified by the DLFM_BACKUP_DIR_NAME
  4294.      environment variable. The default value for this variable is
  4295.      c:\dlfmbackup, where c:\ represents the Data Links Manager backup
  4296.      installation drive.
  4297.  
  4298.      To set this variable to c:\dlfmbackup, enter the following command:
  4299.  
  4300.         db2set -g DLFM_BACKUP_DIR_NAME=c:\dlfmbackup
  4301.  
  4302.  
  4303.      The location specified by the DLFM_BACKUP_DIR_NAME environment
  4304.      variable must not located on a file system using a Data Links
  4305.      Filesystem Filter and that the required space is available in the
  4306.      directory you specified for the backup files.
  4307.  
  4308.      Also, ensure that the DLFM_BACKUP_TARGET variable is set to LOCAL by
  4309.      entering the following command:
  4310.  
  4311.         db2set -g DLFM_BACKUP_TARGET=LOCAL
  4312.  
  4313.      After setting or changing these variables, stop and restart the Data
  4314.      Links File Manager using the dlfm stop and dlfm start commands.
  4315.  
  4316. Tivoli Storage Manager
  4317.  
  4318.      To use Tivoli Storage Manager as an archive server:
  4319.        1. Install Tivoli Storage Manager on the Data Links server. For more
  4320.           information, refer to your Tivoli Storage Manager product
  4321.           documentation.
  4322.        2. Register the Data Links server client application with the Tivoli
  4323.           Storage Manager server. For more information, refer to your
  4324.           Tivoli Storage Manager product documentation.
  4325.        3. Click on Start and select Settings --> Control Panel --> System.
  4326.           The System Properties window opens. Select the Environment tab
  4327.           and enter the following environment variables and corresponding
  4328.           values:
  4329.            Variable                Value
  4330.            DSMI_DIR                c:\tsm\baclient
  4331.            DSMI_CONFIG             c:\tsm\baclient\dsm.opt
  4332.            DSMI_LOG                c:\tsm\dldump
  4333.        4. Ensure that the dsm.sys TSM system options file is located in the
  4334.           c:\tsm\baclient directory.
  4335.        5. Ensure that the dsm.opt TSM user options file is located in the
  4336.           c:\tsm\baclient directory.
  4337.        6. Set the PASSWORDACCESS option to generate in the
  4338.           c:\tsm\baclient\dsm.sys Tivoli Storage Manager system options
  4339.           file.
  4340.        7. Register TSM password with the generate option before starting
  4341.           the Data Links File Manager for the first time. This way, you
  4342.           will not need to provide a password when the Data Links File
  4343.           Manager initiates a connection to the TSM server. For more
  4344.           information, refer to your TSM product documentation.
  4345.        8. Set the DLFM_BACKUP_TARGET environment variable to TSM using the
  4346.           following command:
  4347.  
  4348.              db2set -g DLFM_BACKUP_TARGET=TSM
  4349.  
  4350.           The value of the DLFM_BACKUP_DIR_NAME environment variable will
  4351.           be ignored in this case. This will activate the Tivoli Storage
  4352.           Manager backup option.
  4353.  
  4354.           Notes:
  4355.  
  4356.             1. If you change the setting of the DLFM_BACKUP_TARGET
  4357.                environment variable between TSM and LOCAL at run time, you
  4358.                should be aware that the archived files are not moved to the
  4359.                newly specified archive location. For example, if you start
  4360.                the Data Links File Manager with the DLMF_BACKUP_TARGET
  4361.                environment variable set to TSM, and change its value to
  4362.                LOCAL, all newly archived files will be stored in the new
  4363.                location on the disk. The files that were previously
  4364.                archived to TSM will not be moved to the new disk location.
  4365.  
  4366.             2. To override the default TSM management class there is a new
  4367.                environment variable called DLFM_TSM_MGMTCLASS. If this
  4368.                variable is left unset then the default TSM management class
  4369.                will be used.
  4370.        9. Stop the Data Links File Manager by entering the dlfm stop
  4371.           command.
  4372.       10. Start the Data Links File Manager by entering the dlfm start
  4373.           command.
  4374.  
  4375.   ------------------------------------------------------------------------
  4376.  
  4377. 11.13 Backing up a Journalized File System on AIX
  4378.  
  4379. The book states that the Data Links Manager must be stopped, and that an
  4380. offline backup should be made of the file system. The following approach,
  4381. which removes the requirement of stopping the Data Links Manager, is
  4382. suggested for users who require higher availability.
  4383.  
  4384.   1. Extract the attached (see below) CLI source file quiesce.c and the
  4385.      shell script online.sh.
  4386.   2. Compile quiesce.c:
  4387.  
  4388.         xlC -o quiesce  -L$HOME/sqllib/lib --I$HOME/sqllib/include -c quiesce.c
  4389.  
  4390.   3. Run the script on the node that has the DLFS file system.
  4391.  
  4392. The shell script online.sh assumes that you have a catalog entry on the
  4393. Data Link Manager node for each database that is registered with the Data
  4394. Link Manager. It also assumes that /etc/filesystem has the complete entry
  4395. for the DLFS file system. The shell script does the following:
  4396.  
  4397.    * Quiesces all the tables in databases that are registered with the Data
  4398.      Links Manager. This will stop any new activity.
  4399.    * Unmounts and remounts the file system as a read-only file system.
  4400.    * Performs a file system backup.
  4401.    * Unmounts and remounts the file system as a read-write file system.
  4402.    * Resets the DB2 tables; that is, brings them out of the quiesce state.
  4403.  
  4404. The script must be modified to suit your environment as follows:
  4405.  
  4406.   1. Select the backup command and put in the do_backup function of the
  4407.      script.
  4408.   2. Set the following environment variables within the script:
  4409.         o DLFM_INST: set this to the DLFM instance name.
  4410.         o PATH_OF_EXEC: set this to the path where the "quiesce" executable
  4411.           resides.
  4412.  
  4413. Invoke the script as follows:
  4414.  
  4415.    online.sh <filesystem_name>
  4416.  
  4417. ------------------------- start of 'online.sh' script ----------------------
  4418. #!/bin/ksh
  4419.  
  4420. # Sample script for performing a filesystem backup without bringing it
  4421. # offline for most of the duration of the backup
  4422. # Some sections of the script need to be modified by the users to suit their
  4423. # specific needs including replacing some of the parameters with their own.
  4424. #  Usage: onlineb <filesystem name>
  4425.  
  4426. #The dlfs filesystem being backed up would remain accessible in read-only mode
  4427. #for most of the time that the filesystem backup is going on.
  4428. #For a short while in between it may be necessary to have all users off the
  4429. #filesystem. This would be required at two points; the first, when switching
  4430. #the filesystem to read-only (an unmount followed by re-mount as read-only)
  4431. #and the second when switching it back to read-write (unmount again followed by
  4432. #re-mount as read-write)
  4433.  
  4434. # Environment dependent variables ...
  4435. # To be changed according to needs ...
  4436. DLFM_INST=sharada
  4437. PATH_OF_EXEC=/home/sharada/amit
  4438.  
  4439.  
  4440. # Local environment variables.
  4441. EXEC=quiesce
  4442. DLFM_DB_NAME=dlfm_db
  4443.  
  4444.  
  4445. # Function to check if root
  4446. check_id()  {
  4447. if [ `id -u` -ne 0 ]
  4448. then
  4449.         echo "You need to be root to run this"
  4450.         exit 1
  4451. fi
  4452. }
  4453.  
  4454. #
  4455. # Function to quiesce the tables with Datalinks value in databases registered
  4456. # with DLFM_DB
  4457. #
  4458. quiesce_tables()
  4459. {
  4460.     echo "Starting DB2 ..."
  4461.     su - $DLFM_INST "-c db2start | tail -n 1"  # Print just the last line
  4462.     su - $DLFM_INST "-c $PATH_OF_EXEC/$EXEC -q $DLFM_DB_NAME"
  4463. }
  4464.  
  4465. #
  4466. # Function to make the dlfs filesystem read-only
  4467. #
  4468. # [The filesystem should not be in use during this time; no user should even
  4469. # have 'cd'-ied into the filesystem]
  4470. #       - If the filesystem is NFS exported, unexport it
  4471. #
  4472. unexport_fs() {
  4473.     if exportfs | grep -w $filesystem_name
  4474.     then
  4475.         echo $filesystem_name " is NFS exported"
  4476.         nfs_export_existed=1
  4477.         echo "Unexporting " $filesystem_name
  4478.         exportfs -u $filesystem_name
  4479.         result=$?
  4480.         if [ $result -ne 0 ]
  4481.         then
  4482.             echo "Failed to unexport " $filesystem_name
  4483.             reset_tables
  4484.             exit 1
  4485.         fi
  4486.     else
  4487.         echo $filesystem_name " is not NFS exported"
  4488.     fi
  4489. }
  4490.  
  4491. #
  4492. # Function to Unmount the filesystem
  4493. #
  4494. umount_fs() {
  4495.     echo "Unmounting " $filesystem_name
  4496.     umount $filesystem_name
  4497.     result=$?
  4498.     if [ $result -ne 0 ]
  4499.     then
  4500.         echo "Unable to unmount " $filesystem_name
  4501.         echo "Filesystem " $filesystem_name " may be in use"
  4502.         echo "Please make sure that no one is using the filesystem and"
  4503.         echo "and then press a key"
  4504.         read $ans
  4505.         umount $filesystem_name
  4506.         result=$?
  4507.     fi
  4508.     if [ $result -ne 0 ]
  4509.     then
  4510.         echo "Unable to unmount " $filesystem_name
  4511.         echo "Aborting ..."
  4512.         echo "Resetting the quiesced tables ..."
  4513.         reset_tables
  4514.         exit 1
  4515.     fi
  4516.  
  4517.     echo "Successfully unmounted " $filesystem_name
  4518. }
  4519.  
  4520. #
  4521. # Function to remount the same filesystem back as read-only or
  4522. # read-write depending on the value of "RO" variable.
  4523. #
  4524. remount_fs()
  4525. {
  4526.     if [ $RO -eq 1 ]
  4527.     then
  4528.         echo "Now re-mounting " $filesystem_name " as read-only"
  4529.         mount -v dlfs -r $filesystem_name
  4530.     else
  4531.         echo "Now re-mounting " $filesystem_name " as read-write"
  4532.         mount -v dlfs $filesystem_name
  4533.     fi
  4534.     result=$?
  4535.     if [ $result -ne 0 ]
  4536.     then
  4537.         echo "Failed to remount " $filesystem_name
  4538.         echo "Aborting ..."
  4539.         reset_tables
  4540.         exit 1
  4541.     fi
  4542.     echo "Successfully re-mounted " $filesystem_name " as read-only"
  4543. }
  4544.  
  4545.  
  4546. #
  4547. # Function: If this was NFS exported, then export it a read-only now
  4548. #
  4549. make_fs_ro() {
  4550.     if [ $nfs_export_existed ]
  4551.     then
  4552.         echo "Re-exporting for NFS as read-only"
  4553.         chnfsexp -d $filesystem_name -N -t ro
  4554.         result=$?
  4555.         if [ $result -ne 0 ]
  4556.         then
  4557.             echo "Warning: Unable to NFS export " $filesystem_name
  4558.             # Not aborting here - continuing with a warning
  4559.             # at least the filesystem is available locally
  4560.             ## TBD: Or perhaps it would be better to exit
  4561.         else
  4562.             echo "Successfully exported " $filesystem_name " as read-only"
  4563.         fi
  4564.     fi
  4565. }
  4566.  
  4567.  
  4568. #
  4569. # Function to do the backup.
  4570. # Update this function with the backup command that you want to use.
  4571. #
  4572. do_backup()  {
  4573.  
  4574.     echo "Initiating backup of " $filesystem_name
  4575.  
  4576. #  [ Add lines here to issue your favourite backup command with the right
  4577. #    parameters, or uncomment one of the following ]
  4578.  
  4579. #  To invoke backup via smit, uncomment the following line
  4580. #       smit fs #  Select Backup a Filesystem
  4581.  
  4582. #       OR
  4583. #  To issue the backup command directly, uncomment and modify the following
  4584. #  line with your own options (for example full/incremental) and the
  4585. #  appropriate parameters (you might want to replace /dev/rmt0 by the name of
  4586. #  your backup device)
  4587. #       /usr/sbin/backup -f'/dev/rmt0' -'0' $filesystem_name
  4588. #       result=$?
  4589. #       if [ $result -ne 0 ]
  4590. #       then
  4591. #               echo "Backup failed"
  4592. #               # Do we exit here ? Or cleanup ?
  4593. #       else
  4594. #               echo "Successful backup"
  4595. #       fi
  4596.  
  4597. #       OR
  4598. # Put in your own backup script here
  4599. #
  4600. }
  4601.  
  4602.  
  4603. #
  4604. # Function to remount the filesystem as read-write. And NFS export it, if it
  4605. # was NFS exported to start with.
  4606. export_fs()  {
  4607.     if [ $nfs_export_existed ]
  4608.     then
  4609.         echo "Exporting back for NFS as read-write"
  4610.         chnfsexp -d $filesystem_name -N -t rw
  4611.         result=$?
  4612.         if [ $result -ne 0 ]
  4613.         then
  4614.             echo "Warning: Unable to NFS export " $filesystem_name
  4615.             # Not aborting here - continuing with a warning
  4616.             # at least the filesystem is available locally
  4617.             # TBD: Or perhaps it would be better to exit
  4618.         else
  4619.             echo "Successfully exported " $filesystem_name " as read-write"
  4620.         fi
  4621.     fi
  4622. }
  4623.  
  4624. # Function to reset Quiesced tables
  4625. reset_tables()  {
  4626.   su - $DLFM_INST "-c $PATH_OF_EXEC/$EXEC -r $DLFM_DB_NAME"
  4627. }
  4628.  
  4629.  
  4630. #***************** MAIN PORTION  starts here ...*****************
  4631.  
  4632. #Check args
  4633. #
  4634. if [ $# -lt 1 ]
  4635. then
  4636.     echo "Usage: " $0 " <filesystem_name>"
  4637.     exit 1
  4638. fi
  4639.  
  4640. check_id
  4641.  
  4642. #  Quiesce tables ( after waiting for all transactions to get over ...)
  4643. quiesce_tables
  4644.  
  4645. # (i)  umount and remount the filesystem as read-only
  4646.  
  4647. filesystem_name=$1
  4648. unexport_fs
  4649. umount_fs
  4650. RO=1
  4651. remount_fs        # READ_ONLY
  4652. make_fs_ro
  4653.  
  4654. # (ii) Start BackUp
  4655.  
  4656. do_backup
  4657.  
  4658. # (iii) unmount and remount the filesystem as read-write
  4659.  
  4660. umount_fs
  4661. RO=0
  4662. remount_fs  # READ_WRITE
  4663. export_fs
  4664.  
  4665. # Reset all Quiesced tables ...
  4666.  
  4667. reset_tables
  4668. # Now the filesystem is ready for normal operation of Datalinks
  4669. echo "Done"
  4670. exit 0
  4671. ------------------------- end of 'online.sh' script ------------------------
  4672.  
  4673. ------------------------- start of 'quiesce.c' script ------------------------
  4674. /**********************************************************************
  4675. *
  4676. *  OCO SOURCE MATERIALS
  4677. *
  4678. *  COPYRIGHT:  P#2 P#1
  4679. *              (C) COPYRIGHT IBM CORPORATION Y1, Y2
  4680. *
  4681. *  The source code for this program is not published or otherwise divested of
  4682. *  its trade secrets, irrespective of what has been deposited with the U.S.
  4683. *  Copyright Office.
  4684. *
  4685. *  Source File Name = quiesce.c                                (%W%)
  4686. *
  4687. *  Descriptive Name = Quiesce or Reset tables.
  4688. *
  4689. *  Function:  It quiesces ( OR resets ) the tables ( with datalinks column ) of
  4690. *             the databases which are registered with DLFM_DB
  4691. *
  4692. *                This program expects the databases registered with DLFM_DB are
  4693. *                catalogued. It also expects that db2 is started.
  4694. *
  4695. *  Dependencies:
  4696. *
  4697. *  Restrictions:
  4698. *
  4699. ***********************************************************************/
  4700.  
  4701. #include <stdio.h>
  4702. #include <stdlib.h>
  4703. #include <unistd.h>
  4704. #include <sqlcli1.h>
  4705. #include <sqlutil.h>
  4706. #include <sqlca.h>
  4707.  
  4708. #define MAX_UID_LENGTH 20
  4709. #define MAX_PWD_LENGTH 20
  4710. #define MAXCOLS 255
  4711.  
  4712. struct sqlca sqlca;
  4713. struct SQLB_TBSPQRY_DATA *sqlb;
  4714. #ifndef max
  4715.   #define max(a,b) (a > b ? a : b)
  4716. #endif
  4717.  
  4718.  
  4719. #define CHECK_HANDLE( htype, hndl, RC ) if ( RC != SQL_SUCCESS ) \
  4720.    { check_error( htype, hndl, RC, __LINE__, __FILE__ ) ; }
  4721.  
  4722. SQLRETURN check_error( SQLSMALLINT, SQLHANDLE, SQLRETURN, int, char * ) ;
  4723.  
  4724. SQLRETURN DBconnect( SQLHANDLE, SQLHANDLE * ) ;
  4725.  
  4726. SQLRETURN print_error( SQLSMALLINT, SQLHANDLE, SQLRETURN, int, char * ) ;
  4727.  
  4728. SQLRETURN prompted_connect( SQLHANDLE, SQLHANDLE * ) ;
  4729.  
  4730. SQLRETURN terminate( SQLHANDLE, SQLRETURN ) ;
  4731.  
  4732. SQLCHAR server[SQL_MAX_DSN_LENGTH + 1] ;
  4733. SQLCHAR uid[MAX_UID_LENGTH + 1] ;
  4734. SQLCHAR pwd[MAX_PWD_LENGTH + 1] ;
  4735.  
  4736. /* check_error - calls print_error(), checks severity of return code */
  4737.  
  4738. SQLRETURN check_error( SQLSMALLINT htype, /* A handle type identifier */
  4739.              SQLHANDLE   hndl,  /* A handle */
  4740.              SQLRETURN   frc,   /* Return code to be included with error msg  */
  4741.              int         line,  /* Used for output message, indicate where    */
  4742.              char *      file   /* the error was reported from  */
  4743.            ) {
  4744.  
  4745.     print_error( htype, hndl, frc, line, file ) ;
  4746.  
  4747.     switch ( frc ) {
  4748.       case SQL_SUCCESS:
  4749.         break ;
  4750.       case SQL_INVALID_HANDLE:
  4751.         printf( "\n>------ ERROR Invalid Handle --------------------------\n");
  4752.       case SQL_ERROR:
  4753.         printf( "\n>--- FATAL ERROR, Attempting to rollback transaction --\n");
  4754.         if ( SQLEndTran( htype, hndl, SQL_ROLLBACK ) != SQL_SUCCESS )
  4755.            printf( ">Rollback Failed, Exiting application\n" ) ;
  4756.         else
  4757.            printf( ">Rollback Successful, Exiting application\n" ) ;
  4758.         return( terminate( hndl, frc ) ) ;
  4759.       case SQL_SUCCESS_WITH_INFO:
  4760.         printf( "\n> ----- Warning Message,
  4761.  application continuing ------- \n");
  4762.         break ;
  4763.       case SQL_NO_DATA_FOUND:
  4764.         printf( "\n> ----- No Data Found, application continuing --------- \n");
  4765.         break ;
  4766.       default:
  4767.         printf( "\n> ----------- Invalid Return Code --------------------- \n");
  4768.         printf( "> --------- Attempting to rollback transaction ---------- \n");
  4769.         if ( SQLEndTran( htype, hndl, SQL_ROLLBACK ) != SQL_SUCCESS )
  4770.            printf( ">Rollback Failed, Exiting application\n" ) ;
  4771.         else
  4772.            printf( ">Rollback Successful, Exiting application\n" ) ;
  4773.         return( terminate( hndl, frc ) ) ;
  4774.     }
  4775.  
  4776.     return ( frc ) ;
  4777.  
  4778. }
  4779.  
  4780. /* connect without prompt */
  4781.  
  4782. SQLRETURN DBconnect( SQLHANDLE henv,
  4783.                      SQLHANDLE * hdbc
  4784.                    ) {
  4785.  
  4786.     /* allocate a connection handle */
  4787.     if ( SQLAllocHandle( SQL_HANDLE_DBC,
  4788.                          henv,
  4789.                          hdbc
  4790.                        ) != SQL_SUCCESS ) {
  4791.         printf( ">---ERROR while allocating a connection handle-----\n" ) ;
  4792.         return( SQL_ERROR ) ;
  4793.     }
  4794.  
  4795.     /* Set AUTOCOMMIT OFF */
  4796.     if ( SQLSetConnectAttr( * hdbc,
  4797.                             SQL_ATTR_AUTOCOMMIT,
  4798.                             ( void * ) SQL_AUTOCOMMIT_OFF, SQL_NTS
  4799.                           ) != SQL_SUCCESS ) {
  4800.         printf( ">---ERROR while setting AUTOCOMMIT OFF ------------\n" ) ;
  4801.         return( SQL_ERROR ) ;
  4802.     }
  4803.  
  4804.     if ( SQLConnect( * hdbc,
  4805.                      server, SQL_NTS,
  4806.                      uid,    SQL_NTS,
  4807.                      pwd,    SQL_NTS
  4808.                    ) != SQL_SUCCESS ) {
  4809.         printf( ">--- Error while connecting to database: %s -------\n",
  4810.                 server
  4811.               ) ;
  4812.         SQLDisconnect( * hdbc ) ;
  4813.         SQLFreeHandle( SQL_HANDLE_DBC, * hdbc ) ;
  4814.         return( SQL_ERROR ) ;
  4815.     }
  4816.     else      /* Print Connection Information */
  4817.         printf( "\nConnected to %s\n", server ) ;
  4818.  
  4819.     return( SQL_SUCCESS ) ;
  4820.  
  4821. }
  4822.  
  4823.  
  4824. /*--> SQLL1X32.SCRIPT */
  4825. /* print_error - calls SQLGetDiagRec(), displays SQLSTATE and message **
  4826. **             - called by check_error                                */
  4827.  
  4828. SQLRETURN print_error( SQLSMALLINT htype, /* A handle type identifier */
  4829.              SQLHANDLE   hndl,  /* A handle */
  4830.              SQLRETURN   frc,   /* Return code to be included with error msg  */
  4831.              int         line,  /* Used for output message, indicate where    */
  4832.              char *      file   /* the error was reported from  */
  4833.             ) {
  4834.  
  4835.     SQLCHAR     buffer[SQL_MAX_MESSAGE_LENGTH + 1] ;
  4836.     SQLCHAR     sqlstate[SQL_SQLSTATE_SIZE + 1] ;
  4837.     SQLINTEGER  sqlcode ;
  4838.     SQLSMALLINT length, i ;
  4839.  
  4840.     printf( ">--- ERROR -- RC = %d Reported from %s, line %d ------------\n",
  4841.             frc,
  4842.             file,
  4843.             line
  4844.           ) ;
  4845.  
  4846.     i = 1 ;
  4847.     while ( SQLGetDiagRec( htype,
  4848.                            hndl,
  4849.                            i,
  4850.                            sqlstate,
  4851.                            &sqlcode,
  4852.                            buffer,
  4853.                            SQL_MAX_MESSAGE_LENGTH + 1,
  4854.                            &length
  4855.                          ) == SQL_SUCCESS ) {
  4856.        printf( "         SQLSTATE: %s\n", sqlstate ) ;
  4857.        printf( "Native Error Code: %ld\n", sqlcode ) ;
  4858.        printf( "%s \n", buffer ) ;
  4859.        i++ ;
  4860.     }
  4861.  
  4862.     printf( ">--------------------------------------------------\n" ) ;
  4863.  
  4864.     return( SQL_ERROR ) ;
  4865.  
  4866. }
  4867. /*<-- */
  4868.  
  4869.  
  4870. /* prompted_connect - prompt for connect options and connect */
  4871.  
  4872. SQLRETURN prompted_connect( SQLHANDLE henv,
  4873.                             SQLHANDLE * hdbc
  4874.                           ) {
  4875.  
  4876.     /* allocate a connection handle     */
  4877.     if ( SQLAllocHandle( SQL_HANDLE_DBC,
  4878.                          henv,
  4879.                          hdbc
  4880.                        ) != SQL_SUCCESS ) {
  4881.         printf( ">---ERROR while allocating a connection handle-----\n" ) ;
  4882.         return( SQL_ERROR ) ;
  4883.     }
  4884.  
  4885.     /* Set AUTOCOMMIT OFF */
  4886.     if ( SQLSetConnectAttr( * hdbc,
  4887.                             SQL_ATTR_AUTOCOMMIT,
  4888.                             ( void * ) SQL_AUTOCOMMIT_OFF, SQL_NTS
  4889.                           ) != SQL_SUCCESS ) {
  4890.        printf( ">---ERROR while setting AUTOCOMMIT OFF ------------\n" ) ;
  4891.        return( SQL_ERROR ) ;
  4892.     }
  4893.  
  4894.     if ( SQLConnect( * hdbc,
  4895.                      server, SQL_NTS,
  4896.                      uid,    SQL_NTS,
  4897.                      pwd,    SQL_NTS
  4898.                    ) != SQL_SUCCESS ) {
  4899.         printf( ">--- ERROR while connecting to %s -------------\n",
  4900.                 server
  4901.               ) ;
  4902.  
  4903.         SQLDisconnect( * hdbc ) ;
  4904.         SQLFreeHandle( SQL_HANDLE_DBC, * hdbc ) ;
  4905.         return( SQL_ERROR ) ;
  4906.     }
  4907.     else              /* Print Connection Information */
  4908.         printf( "\nConnected to %s\n", server ) ;
  4909.  
  4910.     return( SQL_SUCCESS ) ;
  4911.  
  4912. }
  4913.  
  4914. /* terminate and free environment handle */
  4915.  
  4916. SQLRETURN terminate( SQLHANDLE henv,
  4917.                      SQLRETURN rc
  4918.                    ) {
  4919.  
  4920.     SQLRETURN lrc ;
  4921.  
  4922.     printf( ">Terminating ....\n" ) ;
  4923.     print_error( SQL_HANDLE_ENV,
  4924.                  henv,
  4925.                  rc,
  4926.                  __LINE__,
  4927.                  __FILE__
  4928.                ) ;
  4929.  
  4930.     /* Free environment handle */
  4931.     if ( ( lrc = SQLFreeHandle( SQL_HANDLE_ENV, henv ) ) != SQL_SUCCESS )
  4932.        print_error( SQL_HANDLE_ENV,
  4933.                     henv,
  4934.                     lrc,
  4935.                     __LINE__,
  4936.                     __FILE__
  4937.                   ) ;
  4938.  
  4939.     return( rc ) ;
  4940.  
  4941. }
  4942. void show_progress()
  4943.         {
  4944.         int i;
  4945.         for(i=0;i<3;i++)
  4946.         {
  4947.         printf("...");
  4948. /*        sleep(1);*/
  4949.         }
  4950.         printf("...  DONE.\n");
  4951.         }
  4952. void wrong_input(char *str)
  4953.         {
  4954.          printf("\n\n\t****************************************************************\n");
  4955.              printf("\t*   usage:  %s -q <DB-NAME> ( to Quiesce tables ..)       *\n",str);
  4956.              printf("\t*                         OR                                    *\n");
  4957.              printf("\t*   usage:  %s -r <DB-NAME> ( to reset Quiesced tables ..)*\n",str);
  4958.              printf("\t****************************************************************\n\n\n");
  4959.  
  4960.          exit(0);
  4961.         }
  4962.  
  4963. extern SQLCHAR server[SQL_MAX_DSN_LENGTH + 1] ;
  4964. extern SQLCHAR uid[MAX_UID_LENGTH + 1] ;
  4965. extern SQLCHAR pwd[MAX_PWD_LENGTH + 1] ;
  4966.  
  4967. #define MAX_STMT_LEN 500
  4968.  
  4969. int        reset=-1;
  4970.  
  4971. /*******************************************************************
  4972. ** main
  4973. *******************************************************************/
  4974.  
  4975. int main( int argc, char * argv[] ) {
  4976.  
  4977.     SQLHANDLE henv,hdbc[3], hstmt,hstmt1,hstmt2 ;
  4978.     SQLRETURN rc ;
  4979.  
  4980.     SQLCHAR * sqlstmt = ( SQLCHAR * ) "SELECT dbname,dbinst,password from dfm_dbid" ;/* for the primary db */
  4981.     SQLCHAR * stmt = ( SQLCHAR * ) "SELECT COLS.TBCREATOR, COLS.TBNAME FROM SYSIBM.SYSCOLUMNS COLS, "
  4982.           " SYSIBM.SYSCOLPROPERTIES PROPS WHERE COLS.TBCREATOR = PROPS.TABSCHEMA AND "
  4983.           " COLS.TBNAME = PROPS.TABNAME AND  COLS.TYPENAME='DATALINK' AND  SUBSTR(PROPS.DL_FEATURES, 2, 1) "
  4984.           " = 'F' GROUP BY COLS.TBCREATOR, COLS.TBNAME";/*test for the secondary db's*/
  4985.     SQLCHAR * stmt2 = ( SQLCHAR * ) "SELECT count(*) from dfm_xnstate where xn_state=3" ;/* for the primary db */
  4986.  
  4987.     SQLCHAR v_dbname[20] ;
  4988.     SQLINTEGER v_xnstate ;
  4989.     SQLCHAR v_usernm[20] ;
  4990.     SQLCHAR v_passwd[20] ;
  4991.     SQLINTEGER nullind;
  4992.     SQLVARCHAR v_tbname[128];
  4993.     SQLCHAR v_tbcreator[20];
  4994.     SQLINTEGER rowcount;
  4995.     int i,count;
  4996.     char state[6],v_tb[100];
  4997.     int flag=0;
  4998.     int xxx,tong=0;
  4999.  
  5000.     if( (argc != 2 && argc!=3)  || argv[1][0]!='-' || strlen(argv[1]) !=2) wrong_input(argv[0]);
  5001.  
  5002. /***  NOTE :   If argc==2 then DB-NAME the program would ask user to enter
  5003.  DB-Name else it would take the second argument to this program ( argv[2] )
  5004.  as DB-NAME ***/
  5005.  
  5006.  
  5007. if(argv[1][1]=='q' || argv[1][1]=='Q')
  5008. {
  5009.     reset=0;
  5010. }
  5011. else
  5012. {
  5013.     if(argv[1][1]!='r' || argv[1][1]!='R')
  5014.     {
  5015.       reset=1;
  5016.     }
  5017.     else
  5018.     {
  5019.       wrong_input(argv[0]);
  5020.     }
  5021.     if(reset==-1) wrong_input(argv[0]);
  5022. }
  5023.  
  5024.  
  5025.     SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv ) ;
  5026.  
  5027.         /*
  5028.      Before allocating any connection handles, set Environment wide
  5029.      Connect Options
  5030.      Set to Connect Type 2, Syncpoint 1
  5031.     */
  5032.     if ( SQLSetEnvAttr( henv,
  5033.                         SQL_CONNECTTYPE,
  5034.                         ( SQLPOINTER ) SQL_COORDINATED_TRANS,
  5035.                         0
  5036.                       ) != SQL_SUCCESS ) {
  5037.        printf( ">---ERROR while setting Connect Type 2 -------------\n" ) ;
  5038.        return( SQL_ERROR ) ;
  5039.     }
  5040. /*<-- */
  5041. /*--> */
  5042.     if ( SQLSetEnvAttr( henv,
  5043.                         SQL_SYNC_POINT,
  5044.                         ( SQLPOINTER ) SQL_ONEPHASE,
  5045.                         0
  5046.                       ) != SQL_SUCCESS ) {
  5047.        printf( ">---ERROR while setting Syncpoint One Phase -------------\n" ) ;
  5048.        return( SQL_ERROR ) ;
  5049.     }
  5050.  
  5051.         if(argc==3)
  5052.         {
  5053.                 strcpy(server,argv[2]);
  5054.         }
  5055.         else
  5056.         {
  5057.                 printf( ">Enter database Name:\n" ) ;
  5058.                 gets( ( char * ) server ) ;
  5059.         }
  5060.  
  5061.  
  5062.         /*prompted_connect(henv,&hdbc[0]);*/
  5063.  
  5064.  
  5065.     /* allocate an environment handle */
  5066.     rc = SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv ) ;
  5067.     if ( rc != SQL_SUCCESS ) return( terminate( henv, rc ) ) ;
  5068.  
  5069.     /* allocate a connect handle, and connect to the primary database*/
  5070.  
  5071.         rc = DBconnect( henv, &hdbc[0] ) ;
  5072.     if ( rc != SQL_SUCCESS ) return( terminate( henv, rc ) ) ;
  5073.  
  5074.  
  5075.         flag=1;
  5076.         if(reset!=1)
  5077.         {
  5078.         printf("\nWaiting for XNs to get over ...");
  5079.         while(flag)                         /* Outer While */
  5080.         {
  5081.  
  5082.         rc = SQLAllocHandle( SQL_HANDLE_STMT, hdbc[0], &hstmt2 ) ;
  5083.     CHECK_HANDLE( SQL_HANDLE_DBC, hdbc[0], rc ) ;
  5084.  
  5085.  
  5086.     rc = SQLExecDirect( hstmt2, stmt2, SQL_NTS ) ;
  5087.     CHECK_HANDLE( SQL_HANDLE_STMT, hstmt, rc ) ;
  5088.  
  5089.  
  5090.  
  5091.         rc = SQLBindCol( hstmt2, 1, SQL_C_LONG, &v_xnstate, 0, &nullind) ;
  5092.     CHECK_HANDLE( SQL_HANDLE_STMT, hstmt2, rc ) ;
  5093.  
  5094.         while ( ( rc = SQLFetch( hstmt2 ) ) == SQL_SUCCESS )
  5095.         {
  5096.                 /*printf( "\nCount of XNs Pending : %d \n",v_xnstate) ;*/
  5097.  
  5098.                 if (v_xnstate > 0)
  5099.                 {
  5100.                 fflush(stdout);
  5101.                 printf(".");
  5102.                         sleep(1);
  5103.                         break;
  5104.                 }
  5105.                 else flag=0;
  5106.  
  5107.         }  /* Inner While */
  5108.  
  5109.         /* Deallocation */
  5110.  
  5111.                 rc = SQLFreeHandle( SQL_HANDLE_STMT, hstmt2 ) ;
  5112.                 CHECK_HANDLE( SQL_HANDLE_STMT, hstmt2, rc ) ;
  5113.  
  5114.  
  5115.         }  /* Outer While */
  5116.         } /*  IF */
  5117.  
  5118.         if(!reset) printf("XNs OVER !!\n");
  5119.  
  5120.  
  5121.     rc = SQLAllocHandle( SQL_HANDLE_STMT, hdbc[0], &hstmt ) ;
  5122.     CHECK_HANDLE( SQL_HANDLE_DBC, hdbc[0], rc ) ;
  5123.  
  5124.     rc = SQLExecDirect( hstmt, sqlstmt, SQL_NTS ) ;
  5125.     CHECK_HANDLE( SQL_HANDLE_STMT, hstmt, rc ) ;
  5126.  
  5127.     rc = SQLBindCol( hstmt, 1, SQL_C_CHAR, v_dbname, sizeof(v_dbname), NULL) ;
  5128.     CHECK_HANDLE( SQL_HANDLE_STMT, hstmt, rc ) ;
  5129.  
  5130.     rc = SQLBindCol( hstmt, 2, SQL_C_CHAR, v_usernm, sizeof(v_usernm), NULL) ;
  5131.     CHECK_HANDLE( SQL_HANDLE_STMT, hstmt, rc ) ;
  5132.         v_passwd[0]='\0';
  5133.  
  5134.  
  5135.     rc = SQLBindCol( hstmt, 3, SQL_C_CHAR, v_passwd, sizeof(v_passwd), NULL) ;
  5136.     CHECK_HANDLE( SQL_HANDLE_STMT, hstmt, rc ) ;
  5137.  
  5138.  
  5139.  
  5140.     /* Counter for number of rows fetched from the primary db*/
  5141.     count=1;
  5142.  
  5143.     for (i=1;i<=count;i++)  /* For the FOR LOOP */
  5144.     {
  5145.         while ( ( rc = SQLFetch( hstmt ) ) == SQL_SUCCESS )
  5146.         {
  5147.             printf( "\nDatabase Name : %s \n",v_dbname) ;
  5148.  
  5149.             count=count+1;
  5150.             /* Depending on the no. of rows fetched from the primary db connect to the sec db's */
  5151.  
  5152.  
  5153.             if ( SQLAllocHandle( SQL_HANDLE_DBC,henv,&hdbc[i]) != SQL_SUCCESS )
  5154.             {
  5155.                 printf(">---ERROR while allocating a connection handle-----\n");
  5156.                 return( SQL_ERROR ) ;
  5157.             }
  5158.  
  5159.     /* Set AUTOCOMMIT ON */
  5160.             if ( SQLSetConnectAttr( * hdbc,SQL_ATTR_AUTOCOMMIT,( void * ) SQL_AUTOCOMMIT_ON, SQL_NTS) != SQL_SUCCESS )
  5161.             {
  5162.                 printf(">---ERROR while setting AUTOCOMMIT OFF ------------\n");
  5163.                 return( SQL_ERROR ) ;
  5164.             }
  5165.  
  5166.  
  5167.             rc = SQLConnect(hdbc[i],v_dbname,SQL_NTS,((v_passwd[0]=='\0') ? NULL : v_usernm),SQL_NTS,v_passwd,SQL_NTS);
  5168.             if ( rc != SQL_SUCCESS ) return( terminate( henv, rc ) ) ;
  5169.  
  5170.             /* tRYING OUT FOR SELECTION FROM THESE DB'S*/
  5171.  
  5172.             rc = SQLAllocHandle( SQL_HANDLE_STMT, hdbc[i], &hstmt1 ) ;
  5173.             CHECK_HANDLE( SQL_HANDLE_DBC, hdbc[i], rc ) ;
  5174.  
  5175.             rc = SQLExecDirect( hstmt1, stmt, 276 ) ;
  5176.             CHECK_HANDLE( SQL_HANDLE_STMT, hstmt1, rc ) ;
  5177.  
  5178.             rc = SQLBindCol( hstmt1, 1, SQL_C_CHAR, v_tbcreator, sizeof(v_tbcreator), NULL) ;
  5179.             CHECK_HANDLE( SQL_HANDLE_STMT, hstmt1, rc ) ;
  5180.  
  5181.             rc = SQLBindCol( hstmt1, 2, SQL_C_CHAR, v_tbname, sizeof(v_tbname), NULL) ;
  5182.             CHECK_HANDLE( SQL_HANDLE_STMT, hstmt1, rc ) ;
  5183.  
  5184.  
  5185.  
  5186.             while ( ( rc = SQLFetch( hstmt1 ) ) == SQL_SUCCESS )
  5187.             {
  5188.  
  5189.                 v_tb[0]= '\0';
  5190.                 strcat(v_tb,v_tbcreator);
  5191.                 strcat(v_tb,".");
  5192.                 strcat(v_tb,v_tbname);
  5193.                 printf("\tTABLE : %s ",v_tb);
  5194.                 sqluvqdp (v_tb,(reset==1) ? 9 : 2, NULL, &sqlca);
  5195.  
  5196.         /** 9 -> to RESET        2 -> to Quiesce ( exclusive) */
  5197.  
  5198.                 if (sqlca.sqlcode==0)
  5199.                 {
  5200.                     if (reset==1)
  5201.                     {
  5202.                      /* printf("The quiesced tablespace successfully reset.\n");        */
  5203.                         show_progress();
  5204.                     }
  5205.                     else
  5206.                     {
  5207.             /*          printf("The tablespace successfully quiesced\n");*/
  5208.                         show_progress();
  5209.                     }
  5210.                 }
  5211.                 else if (sqlca.sqlcode== -3805 ||sqlca.sqlcode==01004)
  5212.                 {
  5213.  
  5214.                     if(reset==1)
  5215.                     {
  5216.                     /*  printf("The quiesced tablespace could not be reset.\n");*/
  5217.                         show_progress();
  5218.                     }
  5219.                     else
  5220.                     {
  5221.             /*        printf("The tablespace has already been quiesced\n");*/
  5222.                         show_progress();
  5223.                     }
  5224.  
  5225.                 }
  5226.                 else
  5227.                 {
  5228.                     if(reset==1)
  5229.                     {
  5230.                       printf("The quiesced tablespace could not be reset.\n");
  5231.                     }
  5232.                     else
  5233.                     {
  5234.                         printf("The tablespace could not be quiesced. \n");
  5235.                     }
  5236.  
  5237.                 printf("\t\tSQLCODE = %ld\n", sqlca.sqlcode);
  5238.                 strncpy(state, sqlca.sqlstate, 5);
  5239.                 state[5] = '\0';
  5240.                 printf("\t\tSQLSTATE = %s\n", state);
  5241.                 }
  5242.               }
  5243.  
  5244.                 rc = SQLFreeHandle( SQL_HANDLE_STMT, hstmt1 ) ;
  5245.                 CHECK_HANDLE( SQL_HANDLE_STMT, hstmt1, rc ) ;
  5246.  
  5247.                 rc = SQLDisconnect( hdbc[i] );
  5248.                 CHECK_HANDLE( SQL_HANDLE_DBC, hdbc[i], rc ) ;
  5249.  
  5250.                 rc = SQLFreeHandle( SQL_HANDLE_DBC, hdbc[i] ) ;
  5251.                 CHECK_HANDLE( SQL_HANDLE_DBC, hdbc[i], rc ) ;
  5252.  
  5253.         }
  5254.  
  5255.  
  5256.     }
  5257.  
  5258.     printf("The NO. of DATABASES is %d \n",count-1);
  5259.  
  5260.  
  5261.     if ( rc != SQL_NO_DATA_FOUND )
  5262.     CHECK_HANDLE( SQL_HANDLE_STMT, hstmt, rc ) ;
  5263.  
  5264.     /*  Commit the changes.  */
  5265.     rc = SQLEndTran( SQL_HANDLE_DBC, hdbc[0], SQL_COMMIT ) ;
  5266.     CHECK_HANDLE( SQL_HANDLE_DBC, hdbc[0], rc ) ;
  5267.  
  5268.  
  5269.     /*  Disconnect and free up CLI resources.  */
  5270.     rc = SQLFreeHandle( SQL_HANDLE_STMT, hstmt ) ;
  5271.     CHECK_HANDLE( SQL_HANDLE_STMT, hstmt, rc ) ;
  5272.  
  5273.  
  5274.  
  5275.   /* ******************************************************/
  5276.  
  5277.     printf( "\n>Disconnecting .....\n" ) ;
  5278.     rc = SQLDisconnect( hdbc[0] );
  5279.     CHECK_HANDLE( SQL_HANDLE_DBC, hdbc[0], rc ) ;
  5280.  
  5281.     rc = SQLFreeHandle( SQL_HANDLE_DBC, hdbc[0] ) ;
  5282.     CHECK_HANDLE( SQL_HANDLE_DBC, hdbc[0], rc ) ;
  5283.  
  5284.     /**********************************************************/
  5285.  
  5286.     rc = SQLFreeHandle( SQL_HANDLE_ENV,  henv ) ;
  5287.     if ( rc != SQL_SUCCESS ) return( terminate( henv, rc ) ) ;
  5288.  
  5289.     return( SQL_SUCCESS ) ;
  5290.  
  5291. }                                  /* end main */
  5292. ------------------------- end of 'quiesce.c' script ------------------------
  5293.  
  5294.   ------------------------------------------------------------------------
  5295.  
  5296. Data Movement Utilities Guide and Reference
  5297.  
  5298.   ------------------------------------------------------------------------
  5299.  
  5300. 12.1 Pending States After a Load Operation
  5301.  
  5302. The first two sentences in the last paragraph in this section have been
  5303. changed to the following:
  5304.  
  5305.    The fourth possible state associated with the load process (check pending state)
  5306.  
  5307.    pertains to referential and check constraints, DATALINKS constraints,
  5308.    AST constraints, or generated column constraints. For example, if an existing table
  5309.    is a parent table containing a primary key referenced by a foreign key
  5310.    in a dependent table, replacing data in the parent table places both tables (not the
  5311.    table space) in check pending state.
  5312.  
  5313.   ------------------------------------------------------------------------
  5314.  
  5315. 12.2 Load Restrictions and Limitations
  5316.  
  5317. The following restrictions apply to generated columns and the load utility:
  5318.  
  5319.    * It is not possible to load a table having a generated column in a
  5320.      unique index unless the generated column is an "include column" of the
  5321.      index or the generatedoverride file type modifier is used. If this
  5322.      modifier is used, it is expected that all values for the column will
  5323.      be supplied in the input data file.
  5324.    * It is not possible to load a table having a generated column in the
  5325.      partitioning key unless the generatedoverride file type modifier is
  5326.      used. If this modifier is used, it is expected that all values for the
  5327.      column will be supplied in the input data file.
  5328.  
  5329.   ------------------------------------------------------------------------
  5330.  
  5331. Installation and Configuration Supplement
  5332.  
  5333.   ------------------------------------------------------------------------
  5334.  
  5335. 13.1 Binding Database Utilities Using the Run-Time Client
  5336.  
  5337. The Run-Time Client cannot be used to bind the database utilities (import,
  5338. export, reorg, the command line processor) and DB2 CLI bind files to each
  5339. database before they can be used with that database. You must use the DB2
  5340. Administration Client or the DB2 Application Development Client instead.
  5341.  
  5342. You must bind these database utilities and DB2 CLI bind files to each
  5343. database before they can be used with that database. In a network
  5344. environment, if you are using multiple clients that run on different
  5345. operating systems, or are at different versions or service levels of DB2,
  5346. you must bind the utilities once for each operating system and DB2-version
  5347. combination.
  5348.   ------------------------------------------------------------------------
  5349.  
  5350. 13.2 UNIX Client Access to DB2 Using ODBC
  5351.  
  5352. Chapter 12 ("Running Your Own Applications") states that you need to update
  5353. odbcinst.ini if you install an ODBC Driver Manager with your ODBC client
  5354. application or ODBC SDK. This is partially incorrect. You do not need to
  5355. update odbcinst.ini if you install a Merant ODBC Driver Manager product.
  5356.   ------------------------------------------------------------------------
  5357.  
  5358. 13.3 Switching NetQuestion for OS/2 to Use TCP/IP
  5359.  
  5360. The instructions for switching NetQuestion to use TCP/IP on OS/2 systems
  5361. are incomplete. The location of the *.cfg files mentioned in those
  5362. instructions is the data subdirectory of the NetQuestion installation
  5363. directory. You can determine the NetQuestion installation directory by
  5364. entering one of the following commands:
  5365.  
  5366.    echo %IMNINSTSRV%   //for SBCS installations
  5367.    echo %IMQINSTSRV%   //for DBCS installations
  5368.  
  5369.   ------------------------------------------------------------------------
  5370.  
  5371. Message Reference
  5372.  
  5373.   ------------------------------------------------------------------------
  5374.  
  5375. 14.1 SQL0270N (New Reason Code 40)
  5376.  
  5377. The following reason code has been added to message SQL0270N:
  5378.  
  5379.    Reason code 40
  5380.    Under "Cause": The function IDENTITY_VAL_LOCAL cannot be used
  5381.                   in a trigger or SQL function.
  5382.    Under "Action": Remove the invocation of the IDENTITY_VAL_LOCAL function
  5383.                    from the trigger definition or the SQL function definition.
  5384.  
  5385.   ------------------------------------------------------------------------
  5386.  
  5387. 14.2 SQL0301N (New Explanation Text)
  5388.  
  5389. The Explanation section for this message has been extended. It now reads as
  5390. follows:
  5391.  
  5392.    Explanation: A host variable could not be used as specified
  5393.                 in the statement because its data type is incompatible
  5394.                 with the intended use of its value.
  5395.  
  5396.                 This error can occur as a result of specifying an incorrect
  5397.                 host variable or an incorrect SQLTYPE value in a SQLDA
  5398.                 on an EXECUTE or OPEN statement. In the case of a user-defined
  5399.                 structured type, it may be that the associated built-in type
  5400.                 of the host variable or SQLTYPE is not compatible with the parameter
  5401.                 of the TO SQL transform function defined in the transform group
  5402.                 for the statement.
  5403.  
  5404.                 The statement cannot be processed.
  5405.  
  5406.   ------------------------------------------------------------------------
  5407.  
  5408. 14.3 SQL0303N (New Text)
  5409.  
  5410. The Explanation and User Response sections for this message have been
  5411. extended. They now read as follows:
  5412.  
  5413.    Explanation: An embedded SELECT or VALUES statement selects into a host variable,
  5414.                 but the data type of the variable is not compatible with the data type
  5415.                 of the corresponding SELECT-list or VALUES-list element.
  5416.                 Both must be numeric, character, or graphic. For a user-defined data type,
  5417.                 it is possible that the host variable is defined with an associated
  5418.                 built-in data type that is not compatible with the result type
  5419.                 of the FROM SQL transform function defined in the transform group
  5420.                 for the statement. For example, if the data type of the column is date
  5421.                 or time, the data type of the variable must be character
  5422.                 with an appropriate minimum length.
  5423.  
  5424.                 The statement cannot be processed.
  5425.  
  5426.    User Response: Verify that the table definitions are current and that the host variable
  5427.                   has the correct data type. For a user-defined data type, verify
  5428.                   that the associated built-in type of the host variable is compatible
  5429.                   with the result type of the FROM SQL transform function defined
  5430.                   in the transform group for the statement.
  5431.  
  5432.   ------------------------------------------------------------------------
  5433.  
  5434. 14.4 SQL0358N (New User Response 26)
  5435.  
  5436.    Reason code 26
  5437.    Explanation: DATALINK value referenced file cannot be accessed for linking.
  5438.                 It may be a directory, a symbolic link, a file with permission
  5439.                 bit for set user ID (SUID) on, or set group ID (SGID) on, or a file
  5440.                 owned by user nobody (uid = -2).
  5441.    User Response: Linking of directories is not allowed. Use the actual file
  5442.                   name, not the symbolic link. If SUID or SGID is on, this file
  5443.                   cannot be linked using a DATALINK type. If the file was owned
  5444.                   by user nobody (uid = -2), this file cannot be linked using a
  5445.                   DATALINK type with the READ PERMISSION DB option.
  5446.  
  5447.   ------------------------------------------------------------------------
  5448.  
  5449. 14.5 SQL0408N (New Text)
  5450.  
  5451. The Explanation and User Response sections for this message have been
  5452. extended. They now read as follows:
  5453.  
  5454.    Explanation: The data type of the value to be assigned to the column, parameter,
  5455.                 SQL variable, or transition variable by the SQL statement
  5456.                 is incompatible with the declared data type of the assignment target.
  5457.                 Both must be:
  5458.                 - Numeric
  5459.                 - Character
  5460.                 - Graphic
  5461.                 - Dates or character
  5462.                 - Times or character
  5463.                 - Timestamps or character
  5464.                 - Datalinks
  5465.                 - The same distinct types
  5466.                 - Reference types, where the target type of the value is a subtype
  5467.                   of the target type of the column.
  5468.                 - The same user-defined structured types. Or, the static type
  5469.                   of the value must be a subtype of the static type (declared type)
  5470.                   of the target. If a host variable is involved, the associated built-in
  5471.                   type of the host variable must be compatible with the parameter
  5472.                   of the TO SQL transform function defined in the transform group
  5473.                   for the statement.
  5474.  
  5475.                 The statement cannot be processed.
  5476.  
  5477.    User Response: Examine the statement and possibly the target table or view to determine
  5478.                   the target data type. Ensure that the variable, expression, or literal value
  5479.                   assigned has the proper data type for the assignment target.
  5480.                   For a user-defined structured type, also consider the parameter
  5481.                   of the TO SQL transform function defined in the transform group
  5482.                   for the statement as an assignment target.
  5483.  
  5484.   ------------------------------------------------------------------------
  5485.  
  5486. 14.6 SQL0423N (Revised Text)
  5487.  
  5488.    Locator variable "<variable-position>" does not currently represent any value.
  5489.  
  5490.    Explanation: A locator variable is in error. Either it has not
  5491.                 had a LOB value assigned to it, the locator
  5492.                 associated with the variable has been freed,
  5493.                 or the result set cursor has been closed.
  5494.  
  5495.                 If "<variable-position>" is provided, it gives
  5496.                 the ordinal position of the variable in error
  5497.                 in the set of variables specified. Depending on when
  5498.                 the error is detected, the database manager may not
  5499.                 be able to determine "<variable-position>".
  5500.  
  5501.                 Instead of an ordinal position, "<variable-position>"
  5502.                 may have the value "function-name RETURNS", which
  5503.                 means that the locator value returned from the user-defined
  5504.                 function identified by function-name is in error.
  5505.  
  5506.    User Response: If this was a LOB locator, correct the program
  5507.                   so that the LOB locator variables
  5508.                   used in the SQL statement have valid LOB values before
  5509.                   the statement is executed. A LOB value can be assigned
  5510.                   to a locator variable by means of a SELECT INTO statement,
  5511.                   a VALUES INTO statement, or a FETCH statement.
  5512.  
  5513.                   If this was a with return cursor, you must ensure that
  5514.                   the cursor is opened before attempting to allocate it.
  5515.  
  5516.    sqlcode: -423
  5517.    sqlstate: 0F001
  5518.  
  5519.   ------------------------------------------------------------------------
  5520.  
  5521. 14.7 SQL0670N (Revised Text)
  5522.  
  5523. Message SQL0670N refers to row length limits for tables defined in a CREATE
  5524. TABLE or an ALTER TABLE statement, and to the regular table space in which
  5525. these tables are created. However, SQL0670N also applies to the row lengths
  5526. of declared temporary tables defined in a DECLARE GLOBAL TEMPORARY TABLE
  5527. statement, and to the user temporary table spaces in which these declared
  5528. temporary tables are created. If a DECLARE GLOBAL TEMPORARY TABLE statement
  5529. fails with SQL0670N, it means that the user temporary table space cannot
  5530. accommodate the row length defined in the DECLARE TEMPORARY TABLE
  5531. statement.
  5532.  
  5533. Following is the revised message text:
  5534.  
  5535.    The row length of the table exceeded a limit of "<length>" bytes.
  5536.    (Table space "<tablespace-name>".)
  5537.  
  5538.    Explanation: The row length of a table in the database manager cannot exceed:
  5539.                 - 4005 bytes in a table space with a 4K page size.
  5540.                 - 8101 bytes in a table space with an 8K page size.
  5541.                 - 16293 bytes in a table space with an 16K page size.
  5542.                 - 32677 bytes in a table space with an 32K page size.
  5543.  
  5544.                 The length is calculated by adding the internal lengths
  5545.                 of the columns. Details of internal column lengths
  5546.                 can be found under CREATE TABLE in the SQL Reference.
  5547.  
  5548.                 One of the following conditions can occur:
  5549.                 - The row length for the table defined in
  5550.                   the CREATE TABLE or ALTER TABLE statement exceeds
  5551.                   the limit for the page size of the table space.
  5552.                   The regular table space name "<tablespace-name>"
  5553.                   identifies the table space from which the page size
  5554.                   was used to determine the limit on the row length.
  5555.                 - The row length for the table defined in the DECLARE
  5556.                   GLOBAL TEMPORARY TABLE statement exceeds the limit
  5557.                   for the page size of the table space. The user temporary
  5558.                   table space name "<tablespace-name>" identifies
  5559.                   the table space from which the page size was used
  5560.                   to determine the limit on the row length.
  5561.  
  5562.                 The statement cannot be processed.
  5563.  
  5564.    User Response: Depending on the cause, do one of the following:
  5565.                   - In the case of CREATE TABLE, ALTER TABLE,
  5566.                     or DECLARE GLOBAL TEMPORARY TABLE, specify
  5567.                     a table space with a larger pagesize, if possible.
  5568.                   - Otherwise, reduce the row length by eliminating
  5569.                     one or more columns, or reducing the lengths
  5570.                     of one or more columns.
  5571.  
  5572.    sqlcode:  -670
  5573.    sqlstate:  54010
  5574.  
  5575.   ------------------------------------------------------------------------
  5576.  
  5577. 14.8 SQL1704N (New Reason Codes)
  5578.  
  5579.    Reason code 14
  5580.    Explanation: Table has an invalid primary key or unique constraint.
  5581.    User Response: Table has an index that was erroneously used for a primary key
  5582.                   or unique constraint. Drop the primary key or unique constraint that uses the index.
  5583.                   This must be done in the release of the database manager in use prior
  5584.                   to the current release. Resubmit the database migration command
  5585.                   under the current release and then recreate the primary key or unique constraint.
  5586.  
  5587.    Reason code 15
  5588.    Explanation: Table does not have a unique index on the REF IS column.
  5589.    User Response: Create a unique index on the REF IS column of the typed table
  5590.                   using the release of the database manager in use prior to the current release.
  5591.                   Resubmit the database migration command under the current release.
  5592.  
  5593.    Reason code 16
  5594.    Explanation: Table is not logged but has a DATALINK column with file link control.
  5595.    User Response: Drop the table and then create the table without the not logged property.
  5596.                   This must be done in the release of the database manager in use prior
  5597.                   to the current release. Resubmit the database migration command
  5598.                   under the current release.
  5599.  
  5600.    Reason Code 17
  5601.    Explanation: Fail to allocate new page from the DMS system catalog table space.
  5602.    User Response: Restore database backup onto its previous database manager system.
  5603.                   Add more containers to the table space. It is recommended to allocate 70%
  5604.                   free space for database migration. Move back to the current release and
  5605.                   migrate the database.
  5606.  
  5607.   ------------------------------------------------------------------------
  5608.  
  5609. 14.9 SQL4942N (New Text)
  5610.  
  5611. The Explanation and User Response sections for this message have been
  5612. extended. They now read as follows:
  5613.  
  5614.    Explanation: An embedded SELECT statement selects into a host variable
  5615.                 "<name>", but the data type of the variable
  5616.                 and the corresponding SELECT list element are not compatible.
  5617.                 If the data type of the column is date and time, the data type
  5618.                 of the variable must be character with an appropriate minimum length.
  5619.                 Both must either be numeric, character, or graphic.
  5620.                 For a user-defined data type, it is possible that the host variable
  5621.                 is defined with an associated built-in data type that is not compatible
  5622.                 with the result type of the FROM SQL transform function defined
  5623.                 in the transform group for the statement.
  5624.  
  5625.                 The function cannot be completed.
  5626.  
  5627.    User Response: Verify that the table definitions are current, and that the host
  5628.                   variable has the proper data type. For a user-defined data type,
  5629.                   it is possible that the host variable is defined with an associated
  5630.                   built-in data type that is not compatible with the result type
  5631.                   of the FROM SQL transform function defined in the transform group
  5632.                   for the statement.
  5633.  
  5634.   ------------------------------------------------------------------------
  5635.  
  5636. 14.10 SQL20117N (Changed Reason Code 1)
  5637.  
  5638. The following reason code has been changed for message SQL20117N:
  5639.  
  5640.    Reason code 1
  5641.    Under "Explanation": RANGE or ROWS is specified without an ORDER BY
  5642.                         in the window specification.
  5643.    Under "User Response": Add a window ORDER BY clause to each window
  5644.                           specification that specifies RANGE or ROWS.
  5645.  
  5646.   ------------------------------------------------------------------------
  5647.  
  5648. Replication Guide and Reference
  5649.  
  5650.   ------------------------------------------------------------------------
  5651.  
  5652. 15.1 Replication on Windows 2000
  5653.  
  5654. DB2 DataPropagator Version 7.1 is compatible with the Windows 2000
  5655. operating system.
  5656.   ------------------------------------------------------------------------
  5657.  
  5658. 15.2 DATALINK Replication
  5659.  
  5660. You cannot replicate DATALINK columns between DB2 databases on AS/400 and
  5661. DB2 databases on other platforms.
  5662.  
  5663. On the AS/400 platform, there is no support for the replication of the
  5664. "comment" attribute of DATALINK values.
  5665.  
  5666. If you are running AIX 4.2, before you run the default user exit program
  5667. (ASNDLCOPY) you must install the PTF for APAR IY03101 (AIX 4210-06
  5668. RECOMMENDED MAINTENANCE FOR AIX 4.2.1). This PTF contains a Y2K fix for the
  5669. "modtime/MDTM" command in the FTP daemon. To verify the fix, check the last
  5670. modification time returned from the "modtime <file>" command, where <file>
  5671. is a file that was modified after January 1, 2000.
  5672.  
  5673. If the target table is an external CCD table, DB2 DataPropagator calls the
  5674. ASNDLCOPY routine to replicate DATALINK files. For the latest information
  5675. about how to use the ASNDLCOPY and ASNDLCOPYD programs, see the prologue
  5676. section of each program's source code. The following restrictions apply:
  5677.  
  5678.    * Internal CCD tables can contain DATALINK indicators, but not DATALINK
  5679.      values.
  5680.    * Condensed external CCD tables can contain DATALINK values.
  5681.    * Noncondensed CCD target tables cannot contain any DATALINK columns.
  5682.    * When the source and target servers are the same, the subscription set
  5683.      must not contain any members with DATALINK columns.
  5684.  
  5685.   ------------------------------------------------------------------------
  5686.  
  5687. 15.3 LOB Restrictions
  5688.  
  5689. Condensed internal CCD tables cannot contain references to LOB columns or
  5690. LOB indicators.
  5691.   ------------------------------------------------------------------------
  5692.  
  5693. 15.4 Replication and Non-IBM Servers
  5694.  
  5695. You must use DataJoiner Version 2 or later to replicate data to or from
  5696. non-IBM servers such as Informix, Microsoft SQL Server, Oracle, Sybase, and
  5697. Sybase SQL Anywhere. You cannot use the relational connect function for
  5698. this type of replication because DB2 Relational Connect Version 7.1 does
  5699. not have update capability. Also, you must use DJRA (DataJoiner Replication
  5700. Administration) to administer such heterogeneous replication on all
  5701. platforms (AS/400, OS/2, OS/390, UNIX, and Windows) for all existing
  5702. versions of DB2 and DataJoiner.
  5703.   ------------------------------------------------------------------------
  5704.  
  5705. 15.5 Update-anywhere Prerequisite
  5706.  
  5707. If you want to set up update-anywhere replication with conflict detection
  5708. and with more than 150 subscription set members in a subscription set, you
  5709. must run the following DDL to create the ASN.IBMSNAP_COMPENSATE table on
  5710. the control server:
  5711.  
  5712.    CREATE TABLE ASN.IBMSNAP_COMPENSATE (
  5713.            APPLY_QUAL char(18) NOT NULL,
  5714.            MEMBER SMALLINT,
  5715.            INTENTSEQ CHAR(10) FOR BIT DATA,
  5716.            OPERATION CHAR(1));
  5717.  
  5718.   ------------------------------------------------------------------------
  5719.  
  5720. 15.6 Planning for Replication
  5721.  
  5722. On page 65, "Connectivity" should include the following fact:
  5723.  
  5724.    If the Apply program cannot connect to the control server,
  5725.    the Apply program terminates.
  5726.  
  5727. When using data blocking for AS/400, you must ensure that the total amount
  5728. of data to be replicated during the interval does not exceed "4 million
  5729. rows", not "4 MB" as stated on page 69 of the book.
  5730.   ------------------------------------------------------------------------
  5731.  
  5732. 15.7 Setting Up Your Replication Environment
  5733.  
  5734. On page 95, "Customizing CD table, index, and tablespace names" says that
  5735. the DPREPL.DFT file is in either the \sqllib\bin directory or the
  5736. \sqllib\java directory. Actually DPREPL.DFT is in the \sqllib\cc directory.
  5737.   ------------------------------------------------------------------------
  5738.  
  5739. 15.8 Problem Determination
  5740.  
  5741. The Replication Analyzer runs on Windows 32-bit systems and AIX. To run the
  5742. Analyzer on AIX, ensure that the sqllib/bin directory appears before
  5743. /usr/local/bin in your PATH environment variable to avoid conflicts with
  5744. /usr/local/bin/analyze.
  5745.  
  5746. The Replication Analyzer has two additional optional keywords: CT and AT.
  5747.  
  5748. CT=n
  5749.      Show only those entries from the Capture trace table that are newer
  5750.      than n days old. This keyword is optional. If you do not specify this
  5751.      keyword, the default is 7 days.
  5752.  
  5753. AT=n
  5754.      Show only those entries from the Apply trail table that are newer than
  5755.      n days old. This keyword is optional. If you do not specify this
  5756.      keyword, the default is 7 days.
  5757.  
  5758. Example:
  5759.  
  5760. analyze mydb1 mydb2 f=mydirectory ct=4 at=2 deepcheck q=applyqual1
  5761.  
  5762. For the Replication Analyzer, the following keyword information is updated:
  5763.  
  5764. deepcheck
  5765.      Specifies that the Analyzer perform a more complete analysis,
  5766.      including the following information: CD and UOW table pruning
  5767.      information, DB2 for OS/390 tablespace-partitioning and compression
  5768.      detail, analysis of target indexes with respect to subscription keys,
  5769.      subscription timelines, and subscription-set SQL-statement errors. The
  5770.      analysis includes all servers. This keyword is optional.
  5771.  
  5772. l ightcheck
  5773.      Specifies that the following information be excluded from the report:
  5774.      all column detail from the ASN.IBMSNAP_SUBS_COLS table, subscription
  5775.      errors or anomalies or omissions, and incorrect or inefficient
  5776.      indexes. This reduction in information saves resources and produces a
  5777.      smaller HTML output file. This keyword is optional and is mutually
  5778.      exclusive with the deepcheck keyword.
  5779.  
  5780. Analyzer tools are available in PTFs for replication on AS/400 platforms.
  5781. These tools collect information about your replication environment and
  5782. produce an HTML file that can be sent to your IBM Service Representative to
  5783. aid in problem determination. To get the AS/400 tools, download the
  5784. appropriate PTF (for example, for product 5769DP2, you must download PTF
  5785. SF61798 or its latest replacement).
  5786.  
  5787. Add the following problem and solution to the "Troubleshooting" section:
  5788.  
  5789.    Problem:  The Apply program loops without replicating changes; the Apply trail
  5790.    table shows STATUS=2.
  5791.  
  5792.    The subscription set includes multiple source tables. To improve the handling
  5793.    of hotspots for one source table in the set, an internal CCD table is defined
  5794.    for that source table, but in a different subscription set. Updates are made
  5795.    to the source table but the Apply process that populates the internal CCD table
  5796.    runs asynchronously (for example, the Apply program might not be started or an
  5797.    event not triggered, and so on). The Apply program that replicates updates from
  5798.    the source table to the target table loops because it is waiting for the internal
  5799.    CCD table to be updated.
  5800.  
  5801.    To stop the looping, start the Apply program (or trigger the event that causes
  5802.    replication) for the internal CCD table. The Apply program will populate the
  5803.    internal CCD table and allow the looping Apply program to process changes from
  5804.    all source tables.
  5805.  
  5806.    A similar situation could occur for a subscription set that contains source tables
  5807.    with internal CCD tables that are populated by multiple Apply programs.
  5808.  
  5809.   ------------------------------------------------------------------------
  5810.  
  5811. 15.9 Capture and Apply for AS/400
  5812.  
  5813. On page 178, "A note on work management" should read as follows:
  5814.  
  5815.    You can alter the default definitions or provide your own definitions.
  5816.    If you create your own subsystem description, you must name the
  5817.    subsystem QZSNDPR and create it in a library other than QDPR.
  5818.    See "OS/400 Work Management V4R3", SC41-5306 for more information
  5819.    about changing these definitions.
  5820.  
  5821. Add the following to page 178, "Verifying and customizing your installation
  5822. of DB2 DataPropagator for AS/400":
  5823.  
  5824.    If you have problems with lock contention due to high volume of transactions, you can
  5825.    increase the default wait timeout value from 30 to 120. You can change the job every
  5826.    time the Capture job starts or you can use the following procedure to change the default
  5827.    wait timeout value for all jobs running in your subsystem:
  5828.  
  5829.    1. Issue the following command to create a new class object by duplicating QGPL/QBATCH:
  5830.  
  5831.          CRTDUPOBJ OBJ(QBATCH) FROMLIB(QGPL) OBJTYPE(*CLS) TOLIB(QDPR) NEWOBJ(QZSNDPR)
  5832.  
  5833.    2. Change the wait timeout value for the newly created class (for example, to 300 seconds):
  5834.  
  5835.       CHGCLS CLS(QDPR/QZSNDPR) DFTWAIT(300)
  5836.  
  5837.    3. Update the routing entry in subsystem description QDPR/QZSNDPR to use the newly
  5838.       created class:
  5839.  
  5840.       CHGRTGE SBSD(QDPR/QZSNDPR) SEQNBR(9999) CLS(QDPR/QZSNDPR)
  5841.  
  5842. On page 195, the ADDEXITPGM command parameters should read:
  5843.  
  5844.    ADDEXITPGM EXITPNT(QIBM_QJO_DLT_JRNRCV)
  5845.                 FORMAT(DRCV0100)
  5846.                 PGM(QDPR/QZSNDREP)
  5847.                 PGMNBR(*LOW)
  5848.                 CRTEXITPNT(*NO)
  5849.                 PGMDTA(65535 10 QSYS)
  5850.  
  5851.   ------------------------------------------------------------------------
  5852.  
  5853. 15.10 Table Structures
  5854.  
  5855. On page 339, append the following sentence to the STATUS column description
  5856. for the value "2":
  5857.  
  5858.    If you use internal CCD tables and you repeatedly get a value of "2" in
  5859.    the status column of the Apply trail table, go to "Chapter 8: Problem Determination"
  5860.    and refer to "Problem: The Apply program loops without replicating changes,
  5861.    the Apply trail table shows STATUS=2".
  5862.  
  5863.   ------------------------------------------------------------------------
  5864.  
  5865. 15.11 Capture and Apply Messages
  5866.  
  5867. Message ASN1027S should be added:
  5868.  
  5869.    ASN1027S
  5870.    There are too many large object (LOB) columns specified. The error code is
  5871.    "<error_code>".
  5872.  
  5873.    Explanation: Too many large object (BLOB, CLOB, or DBCLOB) columns are specified
  5874.    for a subscription set member. The maximum number of columns allowed is 10.
  5875.  
  5876.    User response: Remove the excess large object columns from the
  5877.    subscription set member.
  5878.  
  5879. Message ASN1048E should read as follows:
  5880.  
  5881.    ASN1048E
  5882.    The execution of an Apply cycle failed. See the Apply trail table
  5883.    for full details: "<text>"
  5884.  
  5885.    Explanation: An Apply cycle failed.  In the message, "<text>"
  5886.    identifies the "<target_server>", "<target_owner, target_table,
  5887.    stmt_number>", and "<cntl_server>".
  5888.  
  5889.    User response: Check the APPERRM fields in the audit trail table to
  5890.    determine why the Apply cycle failed.
  5891.  
  5892.   ------------------------------------------------------------------------
  5893.  
  5894. 15.12 Starting the Capture and Apply Programs from Within an Application
  5895.  
  5896. On page 399 of the book, a few errors appear in the comments of the Sample
  5897. routine that starts the Capture and Apply programs; however the code in the
  5898. sample is correct. The latter part of the sample pertains to the Apply
  5899. parameters, despite the fact that the comments indicate that it pertains to
  5900. the Capture parameters.
  5901.  
  5902. You can get samples of the Apply and Capture API, and their respective
  5903. makefiles, in the following directories:
  5904.  
  5905.    For NT - sqllib\samples\repl
  5906.    For UNIX - sqllib/samples/repl
  5907.  
  5908.   ------------------------------------------------------------------------
  5909.  
  5910. SQL Reference
  5911.  
  5912.   ------------------------------------------------------------------------
  5913.  
  5914. 16.1 IDENTITY_VAL_LOCAL
  5915.  
  5916. >>-IDENTITY_VAL_LOCAL--(--)------------------------------------><
  5917.  
  5918.  
  5919. The schema is SYSIBM.
  5920.  
  5921. The IDENTITY_VAL_LOCAL function is a non-deterministic function that
  5922. returns the most recently assigned value for an identity column, where the
  5923. assignment occurred as a result of a single row INSERT statement using a
  5924. VALUES clause. The function has no input parameters.
  5925.  
  5926. The result is a DECIMAL(31,0), regardless of the actual data type of the
  5927. identity column to which the result value corresponds.
  5928.  
  5929. The value returned is the value assigned to the identity column of the
  5930. table identified in the most recent single row INSERT statement with a
  5931. VALUES clause for a table containing an identity column. Note that the
  5932. INSERT statement must be issued at the same level 1 (that is, the value is
  5933. available locally at the level it was assigned, until it is replaced by the
  5934. next assigned value).
  5935.  
  5936. The assigned value could be a value supplied by the user (if the identity
  5937. column is defined as GENERATED BY DEFAULT), or an identity value generated
  5938. by DB2.
  5939.  
  5940. The function returns the null value in the following situations:
  5941.  
  5942.    * when a single row INSERT statement with a VALUES clause has not been
  5943.      issued for a table containing an identity column at the current
  5944.      processing level
  5945.    * when a COMMIT or ROLLBACK of a unit of work has occurred since the
  5946.      most recent INSERT statement that assigned a value. 2
  5947.  
  5948. The result of the function is not affected by the following statements:
  5949.  
  5950.    * a single row INSERT statement with a VALUES clause for a table that
  5951.      does not contain an identity column
  5952.    * a multiple row INSERT statement with a VALUES clause
  5953.    * an INSERT statement with a fullselect
  5954.    * a ROLLBACK TO SAVEPOINT statement.
  5955.  
  5956. Notes:
  5957.  
  5958.    * Expressions in the VALUES clause of an INSERT statement are evaluated
  5959.      prior to the assignments for the target columns of the INSERT
  5960.      statement. Thus, an invocation of an IDENTITY_VAL_LOCAL function
  5961.      invoked in the VALUES clause of an INSERT statement uses the most
  5962.      recently assigned value for an identity column from a previous INSERT
  5963.      statement. The function returns the null value if no previous single
  5964.      row INSERT statement with a VALUES clause for a table containing an
  5965.      identity column has been executed within the same level as the
  5966.      IDENTITY_VAL_LOCAL function.
  5967.    * The IDENTITY_VAL_LOCAL function cannot be used in a trigger or an SQL
  5968.      function (SQLSTATE 42997).
  5969.    * The identity column value of the table for which the trigger is
  5970.      defined can be determined within a trigger, by referencing the trigger
  5971.      transition variable for the identity column.
  5972.    * Since the results of the IDENTITY_VAL_LOCAL function are not
  5973.      deterministic, the result of an invocation of the IDENTITY_VAL_LOCAL
  5974.      function within the SELECT statement of a cursor can vary for each
  5975.      FETCH statement.
  5976.    * The assigned value is the value actually assigned to the identity
  5977.      column (that is, the value that would be returned on a subsequent
  5978.      SELECT statement). This value is not necessarily the value provided in
  5979.      the VALUES clause of the INSERT statement, or a value generated by
  5980.      DB2. The assigned value could be a value specified in a SET transition
  5981.      variable statement within the body of a before insert trigger, for a
  5982.      trigger transition variable associated with the identity column.
  5983.    * The value returned by the function is unpredictable following a failed
  5984.      single row INSERT with a VALUES clause into a table with an identity
  5985.      column. The value may be the value that would have been returned from
  5986.      the function had it been invoked prior to the failed INSERT, or it may
  5987.      be the value that would have been assigned had the INSERT succeeded.
  5988.      The actual value returned depends on the point of failure and is
  5989.      therefore unpredictable.
  5990.  
  5991. Examples:
  5992.  
  5993.    * Set the variable IVAR to the value assigned to the identity column in
  5994.      the EMPLOYEE table. If this insert is the first into the EMPLOYEE
  5995.      table, then IVAR would have a value of 1.
  5996.  
  5997.      CREATE TABLE EMPLOYEE
  5998.      (EMPNO   INTEGER GENERATED ALWAYS AS IDENTITY,
  5999.       NAME    CHAR(30),
  6000.       SALARY  DECIMAL(5,2),
  6001.       DEPTNO  SMALLINT)
  6002.  
  6003.    * An IDENTITY_VAL_LOCAL function invoked in an INSERT statement returns
  6004.      the value associated with the previous single row INSERT statement,
  6005.      with a VALUES clause for a table with an identity column. Assume for
  6006.      this example that there are two tables, T1 and T2. Both T1 and T2 have
  6007.      an identity column named C1. DB2 generates values in sequence starting
  6008.      with 1 for the C1 column in table T1, and values in sequence starting
  6009.      with 10 for the C1 column in table T2.
  6010.  
  6011.      CREATE TABLE T1 (C1 INTEGER GENERATED ALWAYS AS IDENTITY,
  6012.                       C2 INTEGER),
  6013.      CREATE TABLE T2 (C1 DECIMAL(15,0) GENERATED BY DEFAULT AS IDENTITY
  6014.                                         (START WITH 10),
  6015.                       C2 INTEGER),
  6016.      INSERT INTO T1 (C2) VALUES (5),
  6017.      INSERT INTO T1 (C2) VALUES (6),
  6018.      SELECT * FROM T1
  6019.  
  6020.            C1            C2
  6021.            -----------   ----------
  6022.                      1            5
  6023.                      2            6
  6024.  
  6025.      VALUES IDENTITY_VAL_LOCAL() INTO :IVAR
  6026.  
  6027.      At this point, the IDENTITY_VAL_LOCAL function would return a value of
  6028.      2 in IVAR, because that was the value most recently assigned by DB2.
  6029.      The following INSERT statement inserts a single row into T2, where
  6030.      column C2 gets a value of 2 from the IDENTITY_VAL_LOCAL function.
  6031.  
  6032.      INSERT INTO T2 (C2) VALUES (IDENTITY_VAL_LOCAL()),
  6033.      SELECT * FROM T2
  6034.         WHERE C1 = DECIMAL(IDENTITY_VAL_LOCAL(),15,0)
  6035.  
  6036.            C1                  C2
  6037.            -----------------   ----------
  6038.                          10.            2
  6039.  
  6040.      Invoking the IDENTITY_VAL_LOCAL function after this insert results in
  6041.      a value of 10, which is the value generated by DB2 for column C1 of
  6042.      T2.
  6043.  
  6044.   ------------------------------------------------------------------------
  6045.  
  6046. 16.2 OLAP Functions
  6047.  
  6048. The following represents a correction to the "OLAP Functions" section under
  6049. "Expressions" in Chapter 3.
  6050.  
  6051.  
  6052. aggregation-function
  6053.  
  6054. |--column-function--OVER---(--+------------------------------+-->
  6055.                               '-| window-partition-clause |--'
  6056.  
  6057. >----+--------------------------------------------------------------------+>
  6058.      '-| window-order-clause |--+--------------------------------------+--'
  6059.                                 '-| window-aggregation-group-clause |--'
  6060.  
  6061. >---------------------------------------------------------------|
  6062.  
  6063. window-order-clause
  6064.  
  6065.               .-,-------------------------------------------.
  6066.               V                       .-| asc option |---.  |
  6067. |---ORDER BY-----sort-key-expression--+------------------+--+---|
  6068.                                       '-| desc option |--'
  6069.  
  6070. asc option
  6071.  
  6072.          .-NULLS LAST--.
  6073. |---ASC--+-------------+----------------------------------------|
  6074.          '-NULLS FIRST-'
  6075.  
  6076. desc option
  6077.  
  6078.           .-NULLS FIRST--.
  6079. |---DESC--+--------------+--------------------------------------|
  6080.           '-NULLS LAST---'
  6081.  
  6082. window-aggregation-group-clause
  6083.  
  6084. |---+-ROWS--+---+-| group-start |---+---------------------------|
  6085.     '-RANGE-'   +-| group-between |-+
  6086.                 '-| group-end |-----'
  6087.  
  6088. group-end
  6089.  
  6090. |---+-UNBOUNDED FOLLOWING-----------+---------------------------|
  6091.     '-unsigned-constant--FOLLOWING--'
  6092.  
  6093.  
  6094. In the window-order-clause description:
  6095.  
  6096. NULLS FIRST
  6097.      The window ordering considers null values before all non-null values
  6098.      in the sort order.
  6099.  
  6100. NULLS LAST
  6101.      The window ordering considers null values after all non-null values in
  6102.      the sort order.
  6103.  
  6104. In the window-aggregation-group-clause description:
  6105.  
  6106. window-aggregation-group-clause
  6107.      The aggregation group of a row R is a set of rows, defined relative to
  6108.      R in the ordering of the rows of R's partition. This clause specifies
  6109.      the aggregation group. If this clause is not specified, the default is
  6110.      the same as RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW,
  6111.      providing a cumulative aggregation result.
  6112.  
  6113.      ROWS
  6114.           Indicates the aggregation group is defined by counting rows.
  6115.  
  6116.      RANGE
  6117.           Indicates the aggregation group is defined by an offset from a
  6118.           sort key.
  6119.  
  6120.      group-start
  6121.           Specifies the starting point for the aggregation group. The
  6122.           aggregation group end is the current row. Specification of the
  6123.           group-start clause is equivalent to a group-between clause of the
  6124.           form "BETWEEN group-start AND CURRENT ROW".
  6125.  
  6126.      group-between
  6127.           Specifies the aggregation group start and end based on either
  6128.           ROWS or RANGE.
  6129.  
  6130.      group-end
  6131.           Specifies the ending point for the aggregation group. The
  6132.           aggregation group start is the current row. Specification of the
  6133.           group-end clause is equivalent to a group-between clause of the
  6134.           form "BETWEEN CURRENT ROW AND group-end".
  6135.  
  6136.      UNBOUNDED PRECEDING
  6137.           Includes the entire partition preceding the current row. This can
  6138.           be specified with either ROWS or RANGE. Also, this can be
  6139.           specified with multiple sort-key-expressions in the
  6140.           window-order-clause.
  6141.  
  6142.      UNBOUNDED FOLLOWING
  6143.           Includes the entire partition following the current row. This can
  6144.           be specified with either ROWS or RANGE. Also, this can be
  6145.           specified with multiple sort-key-expressions in the
  6146.           window-order-clause.
  6147.  
  6148.      CURRENT ROW
  6149.           Specifies the start or end of the aggregation group based on the
  6150.           current row. If ROWS is specified, the current row is the
  6151.           aggregation group boundary. If RANGE is specified, the
  6152.           aggregation group boundary includes the set of rows with the same
  6153.           values for the sort-key-expressions as the current row. This
  6154.           clause cannot be specified in group-bound2 if group-bound1
  6155.           specifies value FOLLOWING.
  6156.  
  6157.      value PRECEDING
  6158.           Specifies either the range or number of rows preceding the
  6159.           current row. If ROWS is specified, then value is a positive
  6160.           integer indicating a number of rows. If RANGE is specified, then
  6161.           the data type of value must be comparable to the type of the
  6162.           sort-key-expression of the window-order-clause. There can only be
  6163.           one sort-key-expression, and the data type of the
  6164.           sort-key-expression must allow subtraction. This clause cannot be
  6165.           specified in group-bound2 if group-bound1 is CURRENT ROW or value
  6166.           FOLLOWING.
  6167.  
  6168.      value FOLLOWING
  6169.           Specifies either the range or number of rows following the
  6170.           current row. If ROWS is specified, then value is a positive
  6171.           integer indicating a number of rows. If RANGE is specified, then
  6172.           the data type of value must be comparable to the type of the
  6173.           sort-key-expression of the window-order-clause. There can only be
  6174.           one sort-key-expression, and the data type of the
  6175.           sort-key-expression must allow addition.
  6176.  
  6177.   ------------------------------------------------------------------------
  6178.  
  6179. 16.3 SQL Procedures/Compound Statement
  6180.  
  6181. Following is a revised syntax diagram for the Compound Statement:
  6182.  
  6183.                          .-NOT ATOMIC--.
  6184. >>-+---------+--BEGIN----+-------------+------------------------>
  6185.    '-label:--'           '-ATOMIC------'
  6186.  
  6187. >-----+-----------------------------------------------+--------->
  6188.       |  .-----------------------------------------.  |
  6189.       |  V                                         |  |
  6190.       '-----+-| SQL-variable-declaration |-+---;---+--'
  6191.             +-| condition-declaration |----+
  6192.             '-| return-codes-declaration |-'
  6193.  
  6194. >-----+--------------------------------------+------------------>
  6195.       |  .--------------------------------.  |
  6196.       |  V                                |  |
  6197.       '----| statement-declaration |--;---+--'
  6198.  
  6199. >-----+-------------------------------------+------------------->
  6200.       |  .-------------------------------.  |
  6201.       |  V                               |  |
  6202.       '----DECLARE-CURSOR-statement--;---+--'
  6203.  
  6204. >-----+------------------------------------+-------------------->
  6205.       |  .------------------------------.  |
  6206.       |  V                              |  |
  6207.       '----| handler-declaration |--;---+--'
  6208.  
  6209.       .-------------------------------.
  6210.       V                               |
  6211. >--------SQL-procedure-statement--;---+---END--+--------+------><
  6212.                                                '-label--'
  6213.  
  6214. SQL-variable-declaration
  6215.  
  6216.                .-,--------------------.
  6217.                V                      |
  6218. |---DECLARE-------SQL-variable-name---+------------------------->
  6219.  
  6220.                      .-DEFAULT NULL-------.
  6221. >-----+-data-type----+--------------------+-+-------------------|
  6222.       |              '-DEFAULT--constant--' |
  6223.       '-RESULT_SET_LOCATOR--VARYING---------'
  6224.  
  6225. condition-declaration
  6226.  
  6227. |---DECLARE--condition-name--CONDITION--FOR--------------------->
  6228.  
  6229.                  .-VALUE-.
  6230.      .-SQLSTATE--+-------+---.
  6231. >----+-----------------------+---string-constant----------------|
  6232.  
  6233. statement-declaration
  6234.  
  6235.              .-,-----------------.
  6236.              V                   |
  6237. |---DECLARE-----statement-name---+---STATEMENT------------------|
  6238.  
  6239. return-codes-declaration
  6240.  
  6241. |---DECLARE----+-SQLSTATE--CHAR (5)--+---+--------------------+-|
  6242.                '-SQLCODE--INTEGER----'   '-DEFAULT--constant--'
  6243.  
  6244. handler-declaration
  6245.  
  6246. |---DECLARE----+-CONTINUE-+---HANDLER--FOR---------------------->
  6247.                +-EXIT-----+
  6248.                '-UNDO-----'
  6249.  
  6250.       .-,-----------------------------------.
  6251.       V               .-VALUE-.             |
  6252. >---------+-SQLSTATE--+-------+--string--+--+------------------->
  6253.           +-condition-name---------------+
  6254.           +-SQLEXCEPTION-----------------+
  6255.           +-SQLWARNING-------------------+
  6256.           '-NOT FOUND--------------------'
  6257.  
  6258. >----SQL-procedure-statement------------------------------------|
  6259.  
  6260.  
  6261. A statement-declaration declares a list of one or more names that are local
  6262. to the compound statement. A statement name cannot be the same as another
  6263. statement name within the same compound statement.
  6264.   ------------------------------------------------------------------------
  6265.  
  6266. 16.4 LCASE and UCASE (Unicode)
  6267.  
  6268. In a Unicode database, the entire repertoire of Unicode characters is
  6269. uppercased (or lowercased) based on the Unicode properties of these
  6270. characters. Double-wide versions of ASCII characters, as well as Roman
  6271. numerals, now case convert correctly.
  6272.   ------------------------------------------------------------------------
  6273.  
  6274. 16.5 WEEK_ISO
  6275.  
  6276. Change the description of this function to the following:
  6277.  
  6278.    The schema is SYSFUN.
  6279.  
  6280.    Returns the week of the year of the argument as an integer value
  6281.    in range 1-53. The week starts with Monday and always includes 7 days.
  6282.    Week 1 is the first week of the year to contain a Thursday,
  6283.    which is equivalent to the first week containing January 4.
  6284.    It is therefore possible to have up to 3 days at the beginning of a year
  6285.    appear as the last week of the previous year. Conversely, up to 3 days
  6286.    at the end of a year may appear as the first week of the next year.
  6287.  
  6288.    The argument must be a date, timestamp, or a valid character string
  6289.    representation of a date or timestamp that is neither
  6290.    a CLOB nor a LONG VARCHAR.
  6291.  
  6292.    The result of the function is INTEGER. The result can be null;
  6293.    if the argument is null, the result is the null value.
  6294.  
  6295.    Example:
  6296.  
  6297.    The following list shows examples of the result of WEEK_ISO and DAYOFWEEK_ISO.
  6298.  
  6299.    DATE       WEEK_ISO    DAYOFWEEK_ISO
  6300.    ---------- ----------- -------------
  6301.    1997-12-28          52             7
  6302.    1997-12-31           1             3
  6303.    1998-01-01           1             4
  6304.    1999-01-01          53             5
  6305.    1999-01-04           1             1
  6306.    1999-12-31          52             5
  6307.    2000-01-01          52             6
  6308.    2000-01-03           1             1
  6309.  
  6310.   ------------------------------------------------------------------------
  6311.  
  6312. 16.6 Naming Conventions and Implicit Object Name Qualifications
  6313.  
  6314. Add the following note to this section in Chapter 3:
  6315.  
  6316.    The following names, when used in the context of SQL Procedures,
  6317.    are restricted to the characters allowed in an
  6318.    ordinary identifier, even if the names are delimited:
  6319.  
  6320.    - condition-name
  6321.    - label
  6322.    - parameter-name
  6323.    - procedure-name
  6324.    - SQL-variable-name
  6325.    - statement-name
  6326.  
  6327.   ------------------------------------------------------------------------
  6328.  
  6329. 16.7 Queries (select-statement/fetch-first-clause)
  6330.  
  6331. The last paragraph in the description of the fetch-first-clause:
  6332.  
  6333.    Specification of the fetch-first-clause in a select-statement
  6334.    makes the cursor not deletable (read-only). This clause
  6335.    cannot be specified with the FOR UPDATE clause.
  6336.  
  6337. is incorrect and should be removed.
  6338.   ------------------------------------------------------------------------
  6339.  
  6340. 16.8 Libraries Used by the CREATE WRAPPER Statement on Linux
  6341.  
  6342. Linux uses libraries called LIBDRDA.SO and LIBSQLNET.SO, not LIBDRDA.A and
  6343. LIBSQLNET.A as may have been documented previously.
  6344.   ------------------------------------------------------------------------
  6345.  
  6346. System Monitor Guide and Reference
  6347.  
  6348.   ------------------------------------------------------------------------
  6349.  
  6350. 17.1 db2ConvMonStream
  6351.  
  6352. In the Usage Notes, the structure for the snapshot variable datastream type
  6353. SQLM_ELM_SUBSECTION should be sqlm_subsection.
  6354.   ------------------------------------------------------------------------
  6355.  
  6356. Troubleshooting Guide
  6357.  
  6358.   ------------------------------------------------------------------------
  6359.  
  6360. 18.1 Starting DB2 on Windows 95 and Windows 98 When the User Is Not Logged
  6361. On
  6362.  
  6363. For a db2start command to be successful in a Windows 95 or a Windows 98
  6364. environment, you must either:
  6365.  
  6366.    * Log on using the Windows logon window or the Microsoft Networking
  6367.      logon window
  6368.    * Issue the db2logon command (see note (NOTE1) for information about the
  6369.      db2logon command).
  6370.  
  6371. In addition, the user ID that is specified either during the logon or for
  6372. the db2logon command must meet DB2's requirements (see note (NOTE2)).
  6373.  
  6374. When the db2start command starts, it first checks to see if a user is
  6375. logged on. If a user is logged on, the db2start command uses that user's
  6376. ID. If a user is not logged on, the db2start command checks whether a
  6377. db2logon command has been run, and, if so, the db2start command uses the
  6378. user ID that was specified for the db2logon command. If the db2start
  6379. command cannot find a valid user ID, the command terminates.
  6380.  
  6381. During the installation of DB2 Universal Database Version 6 on Windows 95
  6382. and Windows 98, the installation software, by default, adds a shortcut to
  6383. the Startup folder that runs the db2start command when the system is booted
  6384. (see note (NOTE1) for more information). If the user of the system has
  6385. neither logged on nor issued the db2logon command, the db2start command
  6386. will terminate.
  6387.  
  6388. If you or your users do not normally log on to Windows or to a network, you
  6389. can hide the requirement to issue the db2logon command before a db2start
  6390. command by running commands from a batch file as follows:
  6391.  
  6392.   1. Create a batch file that issues the db2logon command followed by the
  6393.      db2start.exe command. For example:
  6394.  
  6395.        @echo off
  6396.        db2logon  db2local /p:password
  6397.        db2start
  6398.        cls
  6399.        exit
  6400.  
  6401.   2. Name the batch file db2start.bat, and store it in the /bin directory
  6402.      that is under the drive and path where you installed DB2. You store
  6403.      the batch file in this location to ensure that the operating system
  6404.      can find the path to the batch file.
  6405.  
  6406.      The drive and path where DB2 is installed is stored in the DB2
  6407.      registry variable DB2PATH. To find the drive and path where you
  6408.      installed DB2, issue the following command:
  6409.  
  6410.        db2set  -g  db2path
  6411.  
  6412.      Assume that the db2set command returns the value c:\sqllib. In this
  6413.      situation, you would store the batch file as follows:
  6414.  
  6415.        c:\sqllib\bin\db2start.bat
  6416.  
  6417.   3. To start DB2 when the system is booted, you should run the batch file
  6418.      from a shortcut in the Startup folder. You have two options:
  6419.         o Modify the shortcut that is created by the DB2 installation
  6420.           program to run the batch file instead of db2start.exe. In the
  6421.           preceding example, the shortcut would now run the db2start.bat
  6422.           batch file. The shortcut that is created by DB2 installation
  6423.           program is called DB2 - DB2.lnk, and is located in
  6424.           c:\WINDOWS\Start Menu\Programs\Start\DB2 - DB2.lnk on most
  6425.           systems.
  6426.         o Add you own shortcut to run the batch file, and delete the
  6427.           shortcut that is added by the DB2 installation program. Use the
  6428.           following command to delete the DB2 shortcut:
  6429.  
  6430.             del  "C:\WINDOWS\Start Menu\Programs\Startup\DB2 - DB2.lnk"
  6431.  
  6432.           If you decide to use your own shortcut, you should set the close
  6433.           on exit attribute for the shortcut. If you do not set this
  6434.           attribute, the DOS command prompt is left in the task bar even
  6435.           after the db2start command has successfully completed. To prevent
  6436.           the DOS window from being opened during the db2start process, you
  6437.           can create this shortcut (and the DOS window it runs in) set to
  6438.           run minimized.
  6439.            Note:As an alternative to starting DB2 during the boot of the
  6440.                 system, DB2 can be started prior to the running of any
  6441.                 application that uses DB2. See note (NOTE5) for details.
  6442.  
  6443. If you use a batch file to issue the db2logon command before the db2start
  6444. command is run, and your users occasionally log on, the db2start command
  6445. will continue to work, the only difference being that DB2 will use the user
  6446. ID of the logged on user. See note (NOTE1) for additional details.
  6447.  
  6448. Notes:
  6449.  
  6450.   1. The db2logon command simulates a user logon. The format of the
  6451.      db2logon command is:
  6452.  
  6453.        db2logon userid  /p:password
  6454.  
  6455.      The user ID that is specified for the command must meet the DB2 naming
  6456.      requirements (see note (NOTE2) for more information). If the command
  6457.      is issued without a user ID and password, a window opens to prompt the
  6458.      user for the user ID and password. If the only parameter provided is a
  6459.      user ID, the user is not prompted for a password; under certain
  6460.      conditions a password is required, as described below.
  6461.  
  6462.      The user ID and password values that are set by the db2logon command
  6463.      are only used if the user did not log on using either the Windows
  6464.      logon window or the Microsoft Networking logon window. If the user has
  6465.      logged on, and a db2logon command has been issued, the user ID from
  6466.      the db2logon command is used for all DB2 actions, but the password
  6467.      specified on the db2logon command is ignored
  6468.  
  6469.      When the user has not logged on using the Windows logon window or the
  6470.      Microsoft Networking logon window, the user ID and password that are
  6471.      provided through the db2logon command are used as follows:
  6472.         o The db2start command uses the user ID when it starts, and does
  6473.           not require a password.
  6474.         o In the absence of a high-level qualifier for actions like
  6475.           creating a table, the user ID is used as the high-level
  6476.           qualifier. For example:
  6477.             1. If you issue the following: db2logon db2local
  6478.             2. Then issue the following: create table tab1
  6479.  
  6480.                The table is created with a high-level qualifier as
  6481.                db2local.tab1.
  6482.  
  6483.           You should use a user ID that is equal to the schema name of your
  6484.           tables and other objects.
  6485.         o When the system acts as client to a server, and the user issues a
  6486.           CONNECT statement without a user ID and password (for example,
  6487.           CONNECT TO TEST) and authentication is set to server, the user ID
  6488.           and password from the db2logon command are used to validate the
  6489.           user at the remote server. If the user connects with an explicit
  6490.           user ID and password (for example, CONNECT TO TEST USER userID
  6491.           USING password), the values that are specified for the CONNECT
  6492.           statement are used.
  6493.  
  6494.   2. In Version 6, the user ID that is either used to log on or specified
  6495.      for the db2logon command must conform to the following DB2
  6496.      requirements:
  6497.         o It can be a maximum of 8 characters (bytes) in length.
  6498.         o It cannot be any of the following: USERS, ADMINS, GUESTS, PUBLIC,
  6499.           LOCAL, or any SQL reserved word that is listed in the SQL
  6500.           Reference.
  6501.         o It cannot begin with: SQL, SYS or IBM
  6502.         o Characters can include:
  6503.              + A through Z (Windows 95 and Windows 98 support
  6504.                case-sensitive user IDs)
  6505.              + 0 through 9
  6506.              + @, #, or $
  6507.  
  6508.   3. You can prevent the creation of the db2start shortcut in the Startup
  6509.      folder during a customized interactive installation, or if you are
  6510.      performing a response file installation and specify the
  6511.      DB2.AUTOSTART=NO option. If you use these options, there is no
  6512.      db2start shortcut in the Startup folder, and you must add your own
  6513.      shortcut to run the db2start.bat file.
  6514.  
  6515.   4. On Windows 98, an option is available that you can use to specify a
  6516.      user ID that is always logged on when Windows 98 is started. In this
  6517.      situation, the Windows logon window will not appear. If you use this
  6518.      option, a user is logged on and the db2start command will succeed if
  6519.      the user ID meets DB2 requirements (see note (NOTE2) for details). If
  6520.      you do not use this option, the user will always be presented with a
  6521.      logon window. If the user cancels out of this window without logging
  6522.      on, the db2start command will fail unless the db2logon command was
  6523.      previously issued, or invoked from the batch file, as described above.
  6524.  
  6525.   5. If you do not start DB2 during a system boot, DB2 can be started by an
  6526.      application. You can run the db2start.bat file as part of the
  6527.      initialization of applications that use DB2. Using this method, DB2
  6528.      will only be started when the application that will use it is started.
  6529.      When the user exits the application, a db2stop command can be issued
  6530.      to stop DB2. Your business applications can start DB2 in this way, if
  6531.      DB2 is not started during the system boot.
  6532.  
  6533.      To use the DB2 Synchronizer application or call the synchronization
  6534.      APIs from your application, DB2 must be started if the scripts that
  6535.      are download for execution contain commands that operate either
  6536.      against a local instance or a local database. These commands can be in
  6537.      database scripts, instance scripts, or embedded in operating system
  6538.      (OS) scripts. If an OS script does not contain Command Line Processor
  6539.      commands or DB2 APIs that use an instance or a database, it can be run
  6540.      without DB2 being started. Because it may be difficult to tell in
  6541.      advance what commands will be run from your scripts during the
  6542.      synchronization process, DB2 should normally be started before
  6543.      synchronization begins.
  6544.  
  6545.      If you are calling either the db2sync command or the synchronization
  6546.      APIs from your application, you would start DB2 during the
  6547.      initialization of your application. If your users will be using the
  6548.      DB2 Synchronizer shortcut in the DB2 for Windows folder to start
  6549.      synchronization, the DB2 Synchronization shortcut must be modified to
  6550.      run a db2sync.bat file. The batch file should contain the following
  6551.      commands to ensure that DB2 is running before synchronization begins:
  6552.  
  6553.        @echo off
  6554.        db2start.bat
  6555.        db2sync.exe
  6556.        db2stop.exe
  6557.        cls
  6558.        exit
  6559.  
  6560.      In this example, it is assumed that the db2start.bat file invokes the
  6561.      db2logon and db2start commands as described above.
  6562.  
  6563.      If you decide to start DB2 when the application starts, ensure that
  6564.      the installation of DB2 does not add a shortcut to the Startup folder
  6565.      to start DB2. See note (NOTE3) for details.
  6566.  
  6567.   ------------------------------------------------------------------------
  6568.  
  6569. Control Center
  6570.  
  6571.   ------------------------------------------------------------------------
  6572.  
  6573. 19.1 Ability to Administer DB2 Server for VSE and VM Servers
  6574.  
  6575. The DB2 Universal Database Version 7.1 Control Center has enhanced its
  6576. support of DB2 Server for VSE and VM databases. All DB2 Server for VSE and
  6577. VM database objects can be viewed by the Control Center. There is also
  6578. support for the CREATE INDEX, REORGANIZE INDEX, and UPDATE STATISTICS
  6579. statements, and for the REBIND command. REORGANIZE INDEX and REBIND require
  6580. a stored procedure running on the DB2 Server for VSE and VM hosts. This
  6581. stored procedure is supplied by the Control Center for VSE and VM feature
  6582. of DB2 Server for VSE and VM.
  6583.  
  6584. The fully integrated Control Center allows the user to manage DB2,
  6585. regardless of the platform on which the DB2 server runs. DB2 Server for VSE
  6586. and VM objects are displayed on the Control Center main window, along with
  6587. DB2 Universal Database objects. The corresponding actions and utilities to
  6588. manage these objects are invoked by selecting the object. For example, a
  6589. user can list the indexes of a particular database, select one of the
  6590. indexes, and reorganize it. The user can also list the tables of a database
  6591. and run update statistics, or define a table as a replication source.
  6592.  
  6593. For information about configuring the Control Center to perform
  6594. administration tasks on DB2 Server for VSE and VM objects, refer to the DB2
  6595. Connect User's Guide, or the Installation and Configuration Supplement.
  6596.   ------------------------------------------------------------------------
  6597.  
  6598. 19.2 Java 1.2 Support for the Control Center
  6599.  
  6600. The Control Center supports bi-directional languages, such as Arabic and
  6601. Hebrew, using bi-di support in Java 1.2. This support is provided for the
  6602. Windows NT platform only.
  6603.  
  6604. Java 1.2 must be installed for the Control Center to recognize and use it:
  6605.  
  6606.   1. JDK 1.2.2 is available on the DB2 UDB CD under the DB2\bidi\NT
  6607.      directory. ibm-inst-n122p-win32-x86.exe is the installer program, and
  6608.      ibm-jdk-n122p-win32-x86.exe is the JDK distribution. Copy both files
  6609.      to a temporary directory on your hard drive, then run the installer
  6610.      program from there. (/li>
  6611.   2. Install it under <DB2PATH>\java\Java12, where <DB2PATH> is the
  6612.      installation path of DB2.
  6613.   3. Do not select JDK/JRE as the System VM when prompted by the JDK/JRE
  6614.      installation.
  6615.  
  6616. After Java 1.2 is installed successfully, starting the Control Center in
  6617. the normal manner will use Java 1.2.
  6618.  
  6619. To stop the use of Java 1.2, you may either uninstall JDK/JRE from
  6620. <DB2PATH>\java\Java12, or simply rename the <DB2PATH>\java\Java12
  6621. sub-directory to something else.
  6622.  Note:Do not confuse <DB2PATH>\java\Java12 with <DB2PATH>\Java12.
  6623.       <DB2PATH>\Java12 is part of the DB2 installation, and includes JDBC
  6624.       support for Java 1.2.
  6625.   ------------------------------------------------------------------------
  6626.  
  6627. 19.3 "Invalid shortcut" Error when Using the Online Help on the Windows
  6628. Operating System
  6629.  
  6630. When using the Control Center online help, you may encounter an error like:
  6631. "Invalid shortcut". If you have recently installed a new Web browser or a
  6632. new version of a Web browser, ensure that HTML and HTM documents are
  6633. associated with the correct browser. See the Windows Help topic "To change
  6634. which program starts when you open a file".
  6635.   ------------------------------------------------------------------------
  6636.  
  6637. 19.4 "File access denied" Error when Attempting to View a Completed Job in
  6638. the Journal on the Windows Operating System
  6639.  
  6640. On DB2 Universal Database for Windows NT, a "File access denied" error
  6641. occurs when attempting to open the Journal to view the details of a job
  6642. created in the Script Center. The job status shows complete. This behavior
  6643. occurs when a job created in the Script Center contains the START command.
  6644. To avoid this behavior, use START/WAIT instead of START in both the batch
  6645. file and in the job itself.
  6646.   ------------------------------------------------------------------------
  6647.  
  6648. 19.5 Multisite Update Test Connect
  6649.  
  6650. Multisite Update Test Connect functionality in the Version 7.1 Control
  6651. Center is limited by the version of the target instance. The target
  6652. instance must be at least Version 7.1 for the "remote" test connect
  6653. functionality to run. To run Multisite Update Test Connect functionality in
  6654. Version 6, you must bring up the Control Center locally on the target
  6655. instance and run it from there.
  6656.   ------------------------------------------------------------------------
  6657.  
  6658. 19.6 Control Center for DB2 for OS/390
  6659.  
  6660. The DB2 UDB Control Center for OS/390 allows you to manage the use of your
  6661. licensed IBM DB2 utilities. Utility functions that are elements of
  6662. separately orderable features of DB2 UDB for OS/390 must be licensed and
  6663. installed in your environment before being managed by the DB2 Control
  6664. Center.
  6665.  
  6666. The "CC390" database, defined with the Control Center when you configure a
  6667. DB2 for OS/390 subsystem, is used for internal support of the Control
  6668. Center. Do not modify this database.
  6669.  
  6670. Although DB2 for OS/390 Version 7.1 is not mentioned specifically in the
  6671. Control Center table of contents, or the Information Center Task
  6672. information, the documentation does support the DB2 for OS/390 Version 7.1
  6673. functions. Many of the DB2 for OS/390 Version 6-specific functions also
  6674. relate to DB2 for OS/390 Version 7.1, and some functions that are DB2 for
  6675. OS/390 Version 7.1-specific in the table of contents have no version
  6676. designation. If you have configured a DB2 for OS/390 Version 7.1 subsystem
  6677. on your Control Center, you have access to all the documentation for that
  6678. version.
  6679.  
  6680. To access and use the Generate DDL function from the Control Center for DB2
  6681. for OS/390, you must have the Generate DDL function installed:
  6682.  
  6683.    * For Version 5, install DB2Admin 2.0 with DB2 for OS/390 Version 5.
  6684.    * For Version 6, install the small programming enhancement that will be
  6685.      available as a PTF for the DB2 Admin feature of DB2 for OS/390 Version
  6686.      6.
  6687.    * For Version 7.1, the Generate DDL function is part of the separately
  6688.      priced DB2 Admin feature of DB2 for OS/390 Version 7.1.
  6689.  
  6690. You can access Stored Procedure Builder from the Control Center, but you
  6691. must have already installed it by the time you start the DB2 UDB Control
  6692. Center. It is part of the DB2 Application Development Client.
  6693.  
  6694. To catalog a DB2 for OS/390 subsystem directly on the workstation, select
  6695. to use the Client Configuration Assistant tool.
  6696.  
  6697.   1. On the Source page, specify the "Manually configure a connection to a
  6698.      database" radio button.
  6699.   2. On the Protocol page, complete the appropriate communications
  6700.      information.
  6701.   3. On the Database page, specify the subsystem name in the "Database
  6702.      name" field.
  6703.   4. On the Node Options page, select the "Configure node options
  6704.      (Optional)" checkbox.
  6705.   5. Select "MVS/ESA, OS/390" from the list in the "Operating system"
  6706.      field.
  6707.   6. Click the Finish button to complete the configuration.
  6708.  
  6709. To catalog a DB2 for OS/390 subsystem via a gateway machine, follow steps
  6710. 1-6 above on the gateway machine, and then
  6711.  
  6712.   1. On the client machine, start the Control Center.
  6713.   2. Right click on the "Systems" folder and select "Add".
  6714.   3. In the Add System dialog, type the gateway machine name in the "System
  6715.      name" field.
  6716.   4. Type "DB2DAS00" in the "Remote instance" field.
  6717.   5. For the TCP/IP protocol, in the Protocol parameters, specify the
  6718.      gateway machine's host name in the "Host name" field.
  6719.   6. Type "523" in the "Service name" field.
  6720.   7. Click "OK" to add the system. You should now see the gateway machine
  6721.      added under the "Systems" folder.
  6722.   8. Expand the gateway machine name.
  6723.   9. Right click on the "Instances" folder and select "Add".
  6724.  10. In the Add Instance dialog, click the "Refresh" push button to list
  6725.      the instances available on the gateway machine. If the gateway machine
  6726.      is a Windows NT system, the DB2 for OS/390 subsystem was probably
  6727.      cataloged under the instance DB2.
  6728.  11. Select the instance. The protocol parameters are filled in
  6729.      automatically for this instance.
  6730.  12. Click "OK" to add the instance.
  6731.  13. Open the Instances folder to see the instance you just added.
  6732.  14. Expand the instance.
  6733.  15. Right click on the "Databases" folder and select "Add".
  6734.  16. Click the "Refresh" push button to display the local databases on the
  6735.      gateway machine. If you are adding a DB2 subsystem in the Add Database
  6736.      dialog, type the subsystem name in the "Database name" field. Option:
  6737.      Type a local alias name for the subsystem (or the database).
  6738.  17. Click "OK".
  6739.  
  6740. You have now successfully added the subsystem in the Control Center. When
  6741. you open the database, you should see the DB2 for OS/390 subsystem
  6742. displayed.
  6743.   ------------------------------------------------------------------------
  6744.  
  6745. 19.7 Required Fix for Control Center for OS/390
  6746.  
  6747. You must apply APAR PQ36382 to the 390 Enablement feature of DB2 for OS/390
  6748. Version 5 and DB2 for OS/390 Version 6 to manage these subsystems using the
  6749. DB2 UDB Control Center for Version 7.1. Without this fix, you cannot use
  6750. the DB2 UDB Control Center for Version 7.1 to run utilities for those
  6751. subsystems.
  6752.  
  6753. The APAR should be applied to the following FMIDs:
  6754.  
  6755.    DB2 for OS/390 Version 5 390 Enablement: FMID JDB551D
  6756.    DB2 for OS/390 Version 6 390 Enablement: FMID JDB661D
  6757.  
  6758.   ------------------------------------------------------------------------
  6759.  
  6760. 19.8 Change to the Create Spatial Layer Dialog
  6761.  
  6762. The "<<" and ">>" buttons have been removed from the Create Spatial Layer
  6763. dialog.
  6764.   ------------------------------------------------------------------------
  6765.  
  6766. 19.9 Troubleshooting Information for the DB2 Control Center
  6767.  
  6768. In the "Control Center Installation and Configuration" chapter in your
  6769. Quick Beginnings book, the section titled "Troubleshooting Information"
  6770. tells you to unset your client browser's CLASSPATH from a command window if
  6771. you are having problems running the Control Center as an applet. This
  6772. section also tells you to start your browser from the same command window.
  6773. However, the command for starting your browser is not provided. To launch
  6774. Internet Explorer, type start iexplore and press Enter. To launch Netscape,
  6775. type start netscape and press Enter. These commands assume that your
  6776. browser is in your PATH. If it is not, add it to your PATH or switch to
  6777. your browser's installation directory and reissue the start command.
  6778.   ------------------------------------------------------------------------
  6779.  
  6780. 19.10 Control Center Troubleshooting on UNIX Based Systems
  6781.  
  6782. If you are unable to start the Control Center on a UNIX based system, set
  6783. the JAVA_HOME environment variable to point to your Java distribution:
  6784.  
  6785.    * If java is installed under /usr/jdk118, set JAVA_HOME to /usr/jdk118.
  6786.    * For the sh, ksh, or bash shell:
  6787.  
  6788.         export JAVA_HOME=/usr/jdk118.
  6789.  
  6790.    * For the csh or tcsh shell:
  6791.  
  6792.         setenv JAVA_HOME /usr/jdk118
  6793.  
  6794.   ------------------------------------------------------------------------
  6795.  
  6796. 19.11 Possible Infopops Problem on OS/2
  6797.  
  6798. If you are running the Control Center on OS/2, using screen size 1024x768
  6799. with 256 colors, and with Workplace Shell Palette Awareness enabled,
  6800. infopops that extend beyond the border of the current window may be
  6801. displayed with black text on a black background. To fix this problem,
  6802. either change the display setting to more than 256 colors, or disable
  6803. Workplace Shell Palette Awareness.
  6804.   ------------------------------------------------------------------------
  6805.  
  6806. 19.12 Launching More Than One Control Center Applet
  6807.  
  6808. You cannot launch more than one Control Center applet simultaneously on the
  6809. same machine. This restriction applies to Control Center applets running in
  6810. all supported browsers.
  6811.   ------------------------------------------------------------------------
  6812.  
  6813. 19.13 Help for the jdk11_path Configuration Parameter
  6814.  
  6815. In the Control Center help, the description of the Java Development Kit 1.1
  6816. Installation Path (jdk11_path) configuration parameter is missing a line
  6817. under the sub-heading Applies To. The complete list under Applies To is:
  6818.  
  6819.    * Database server with local and remote clients
  6820.    * Client
  6821.    * Database server with local clients
  6822.    * Partitioned database server with local and remote clients
  6823.    * Satellite database server with local clients
  6824.  
  6825.   ------------------------------------------------------------------------
  6826.  
  6827. 19.14 Solaris System Error (SQL10012N) when Using the Script Center or the
  6828. Journal
  6829.  
  6830. When selecting a Solaris system from the Script Center or the Journal, the
  6831. following error may be encountered:
  6832.  
  6833.    SQL10012N - An unexpected operating system error was received while
  6834.    loading the specified library "/udbprod/db2as/sqllib/function/unfenced/
  6835.    db2scdar!ScheduleInfoOpenScan". SQLSTATE=42724.
  6836.  
  6837. This is caused by a bug in the Solaris runtime linker. To correct this
  6838. problem, apply the following patches:
  6839.  
  6840.    103627-06 for Solaris 2.5
  6841.    105490-06 (107733 makes 105490 obsolete) for Solaris 2.6
  6842.  
  6843.   ------------------------------------------------------------------------
  6844.  
  6845. 19.15 Help for the DPREPL.DFT File
  6846.  
  6847. In the Control Center, in the help for the Replication page of the Tool
  6848. Settings notebook, step 5d says:
  6849.  
  6850.    Save the file into the working directory for the
  6851.    Control Center (for example, SQLLIB\BIN) so that
  6852.    the system can use it as the default file.
  6853.  
  6854. Step 5d should say:
  6855.  
  6856.    Save the file into the working directory for the
  6857.    Control Center (SQLLIB\CC) so that
  6858.    the system can use it as the default file.
  6859.  
  6860.   ------------------------------------------------------------------------
  6861.  
  6862. 19.16 Online Help for the Control Center Running as an Applet
  6863.  
  6864. When the Control Center is running as an applet, the F1 key only works in
  6865. windows and notebooks that have infopops.
  6866.  
  6867. You can press the F1 key to bring up infopops in the following components:
  6868.  
  6869.    * DB2 Universal Database for OS/390
  6870.    * The wizards
  6871.  
  6872. In the rest of the Control Center components, F1 does not bring up any
  6873. help. To display help for the other components, please use the Help push
  6874. button, or the Help pull-down menu.
  6875.   ------------------------------------------------------------------------
  6876.  
  6877. 19.17 Running the Control Center in Applet Mode (Windows 95)
  6878.  
  6879. An attempt to open the Script Center may fail if an invalid user ID and
  6880. password are specified. Ensure that a valid user ID and password are
  6881. entered when signing on to the Control Center.
  6882.   ------------------------------------------------------------------------
  6883.  
  6884. Data Warehouse Center
  6885.  
  6886.    * When creating editioned SQL steps, based on usage, you might want to
  6887.      consider creating a non-unique index on the edition column to speed
  6888.      performance of deleting of editions. Consider this for large warehouse
  6889.      tables only, since the performance of inserts can be impacted when
  6890.      inserting a small numbers of rows.
  6891.    * In the Process Model window, if you change a source or target, the
  6892.      change that you made is automatically saved immediately. If you make
  6893.      any other change, such as adding a step, you must explicitly save the
  6894.      change to make the change permanent. To save the change, click Process
  6895.      --> Save.
  6896.    * You can specify up to 254 characters in the Description field of
  6897.      notebooks in the Data Warehouse Center. This maximum replaces the
  6898.      maximum lengths specified in the online help.
  6899.    * You cannot successfully run a Sample Contents request that uses the
  6900.      AS/400 agent on a flat file source. Although you can create a flat
  6901.      file source and attempt to use an AS/400 agent to issue a
  6902.      sampleContent request, the request will fail.
  6903.    * You might receive an error when you run Sample Contents on a warehouse
  6904.      target in the process modeler. This error is related to the
  6905.      availability of a common agent site to warehouse source, warehouse
  6906.      target, and step in a process. The list of available agent sites for a
  6907.      step is obtained from the intersection of the warehouse source IR
  6908.      agent sites, the warehouse target IR agent sites, and the agent sites
  6909.      available for this particular step (The steps are selected in the last
  6910.      page of the agent sites properties notebook). For example, You want to
  6911.      view the Sample Contents for a process that runs the FTP Put program
  6912.      (VWPRCPY). The step used in the process must be selected for the agent
  6913.      site in the agent site definition. When you run Sample Contents
  6914.      against the Target file, the first agent site on the selected list is
  6915.      usually used. However, database maintenance operations might affect
  6916.      the order of the agent sites listed. Sample contents will fail if the
  6917.      agent site selected does not reside in the same system as the source
  6918.      or target file.
  6919.    * If Import of a tag language file larger than about 500KB is run from
  6920.      the Warehouse Center, the import utility (iwh2imp2.exe) might hang. If
  6921.      you notice that iwh2imp2 is not using a lot of CPU, it has probably
  6922.      hung and you should end the iwh2imp2 process and try the import again
  6923.      from the DOS command line.
  6924.    * When you try to edit the Create DDL SQL statement for a target table
  6925.      for a step in development mode, you see the following misleading
  6926.      message: "Any change to the Create DDL SQL statement will not be
  6927.      reflected on the table definition or actual physical table. Do you
  6928.      want to continue?"
  6929.  
  6930.      The change will be reflected in the actual physical table. Ignore the
  6931.      message and continue changing the Create DDL statement.
  6932.  
  6933.      The corrected version of this message for steps in development mode
  6934.      should read as follows: "Any change to the Create DDL SQL statement
  6935.      will not be reflected in the table definition. Do you want to
  6936.      continue?"
  6937.  
  6938.      For steps in test or production mode, the message is correct. The Data
  6939.      Warehouse Center will not change the physical target table that was
  6940.      created when you promoted the step to test mode.
  6941.    * If you want to migrate Visual Warehouse metadata synchronization
  6942.      business views to the Data Warehouse Center, promote the business
  6943.      views to production status before you migrate the warehouse control
  6944.      database. If the business views are in production status, their
  6945.      schedules are migrated to the Data Warehouse Center. If the business
  6946.      views are not in production status, they will be migrated in test
  6947.      status without their schedules. You cannot promote the migrated steps
  6948.      to production status. You must create the synchronization steps again
  6949.      in the Data Warehouse Center and delete the migrated steps.
  6950.    * When the Data Warehouse Center generates the target table for a step,
  6951.      it does not generate a primary key for the target table. Some of the
  6952.      transformers, such as Moving Average, use the generated table as a
  6953.      source table and also require that the source table have a primary
  6954.      key. Before you use the generated table with the transformer, define
  6955.      the primary key for the table by right-clicking the table in the DB2
  6956.      Control Center and clicking Alter.
  6957.    * To access Microsoft SQL Server on Windows NT using the Merant ODBC
  6958.      drivers, verify that the system path contains the sqllib\odbc32
  6959.      directory.
  6960.    * When you define a warehouse source or warehouse target for an OS/2
  6961.      database, type the database name in uppercase letters.
  6962.    * The DB2 Control Center or the Command Line Processor might indicate
  6963.      that the warehouse control database is in an inconsistent state. This
  6964.      state is expected because it indicates that the warehouse server did
  6965.      not commit its initial startup message to the warehouse logger.
  6966.    * In the data warehousing sample contained in the TBC_MD database, you
  6967.      cannot use SQL Assist to change the SQL in the Select Scenario SQL
  6968.      step, because the SQL was edited after it was generated by SQL Assist.
  6969.    * To use the FormatDate function, click Build SQL on the SQL Statement
  6970.      page of the Properties notebook for an SQL step.
  6971.  
  6972.      The output of the FormatDate function is of data type varchar(255).
  6973.      You cannot change the data type by selecting Date, Time, or Date/Time
  6974.      from the Category list on the Function Parameters - FormatDate page.
  6975.    * On AIX and the Solaris Operating Environment, the installation process
  6976.      sets the language for import and export to the information catalog,
  6977.      and export to the OLAP Integration Server. If you want to use these
  6978.      functions in a language other than the language set during
  6979.      installation, create the following soft link by entering the following
  6980.      command on one line:
  6981.  
  6982.      On AIX
  6983.  
  6984.            /usr/bin/ln -sf  /usr/lpp/db2_07_01/msg/locale/flgnxolv.str
  6985.  
  6986.  
  6987.            /usr/lpp/db2_07_01/bin/flgnxolv.str
  6988.  
  6989.           locale
  6990.                The locale name of the language in xx_yy format
  6991.  
  6992.      On the Solaris Operating Environment
  6993.  
  6994.           /usr/bin/ln -sf  /opt/IBMdb2/V7.1/msg/locale/flgnxolv.str
  6995.  
  6996.           /opt/IBMdb2/V7.1/bin/flgnxolv.str
  6997.  
  6998.           locale
  6999.                The locale name of the language in xx_yy format
  7000.    * When you use the Update the value in the key column option of the
  7001.      Generate Key Table transformer, the transformer updates only those
  7002.      rows in the table that do not have key values. (That is, the values
  7003.      are null). If the starting key value is coming from a column other
  7004.      than the designated key column, duplicate keys might be generated if
  7005.      you select the maximum value of the column as the starting value,
  7006.      which is used and incremented to create the values in the key column.
  7007.      When additional rows are inserted into the table, the key values are
  7008.      null until you run the transformer again. When you run the transformer
  7009.      again using the update option and the same non-key column that you
  7010.      specified in the previous run, and if the maximum value of the non-key
  7011.      column in the newly inserted rows is less than the maximum value used
  7012.      in the previous run, then duplicate key values will be generated.
  7013.  
  7014.      To avoid this problem, use one of the following approaches:
  7015.         o Use the designated key column as the source of the starting key
  7016.           value when you use the update option. This approach ensures that
  7017.           the keys will always be in sequence and duplicates will not be
  7018.           created.
  7019.         o After the initial run of the transformer, use the Replace all
  7020.           values option to create the keys for all the rows again.
  7021.    * The warehouse server does not maintain connections to local or remote
  7022.      databases when the DB2 server that manages the databases is stopped
  7023.      and restarted. If you stop and restart DB2, then stop and restart the
  7024.      warehouse services as well.
  7025.    * When you install the DB2 Administration Client and the Data
  7026.      Warehousing Tools to set up a Data Warehouse Center administrative
  7027.      client on a different workstation from the one that contains the
  7028.      warehouse server, you must add the TCP/IP port number at which the
  7029.      warehouse server workstation is listening to the services file for the
  7030.      client workstation. Add an entry into the services file as follows:
  7031.  
  7032.       vwkernel        11000/tcp
  7033.  
  7034.    * When you define a warehouse source for a DB2 for VM database, which is
  7035.      accessed through a DRDA gateway, there are restrictions on the use of
  7036.      CLOB and BLOB data types:
  7037.         o You cannot use the Sample Contents function to view data of CLOB
  7038.           and BLOB data types.
  7039.         o You cannot use columns of CLOB and BLOB data types with an SQL
  7040.           step.
  7041.      This restriction is a known restriction on the DB2 for VM Version 5.2
  7042.      server in which LOB objects cannot be transmitted using DRDA to a DB2
  7043.      Version 7.1 client.
  7044.    * When you define a DB2 for VM or DB2 for VSE target table in the Data
  7045.      Warehouse Center, do not select the Grant to public check box. The
  7046.      GRANT command syntax that the Data Warehouse Center generates not
  7047.      supported on DB2 for VM and DB2 for VSE.
  7048.    * To enable delimited identifier support for Sybase and Microsoft SQL
  7049.      Server on Windows NT: select the Enable Quoted Identifiers check box
  7050.      in the Advanced page of the ODBC Driver Setup notebook.
  7051.  
  7052.      To enable delimited identifier support for Sybase on UNIX, edit the
  7053.      Sybase data source in the .odbc.ini file to include the connect
  7054.      attribute EQI=1.
  7055.  
  7056.   ------------------------------------------------------------------------
  7057.  
  7058. 20.1 Data Warehouse Center Publications
  7059.  
  7060. 20.1.1 Data Warehouse Center Application Integration Guide
  7061.  
  7062. In Chapter 8. Information Catalog Manager object types, the directory where
  7063. you can find the .TYP files, which include the tag language for defining an
  7064. object type, has been changed to \SQLLIB\DGWIN\TYPES.
  7065.  
  7066. 20.1.2 Data Warehouse Center Administration Guide
  7067.  
  7068.    * The Data Warehouse Center troubleshooting information has moved to the
  7069.      DB2 Troubleshooting Guide.
  7070.    * In "Chapter 5. Defining and running processes", section "Starting a
  7071.      step from outside the Data Warehouse Center", it should be noted that
  7072.      JDK 1.1.8 or later is required on the warehouse server workstation and
  7073.      the agent site if you start a step that has a double-byte name.
  7074.    * On page 180, section "Defining values for a Submit OS/390 JCL
  7075.      jobstream (VWPMVS) program," step 8 states that you must define a
  7076.      .netrc file in the same directory as the JES file. Instead, the
  7077.      program creates the .netrc file. If the file does not exist, the
  7078.      program creates the file in the home directory. If a .netrc file
  7079.      already exists in the home directory, the program renames the existing
  7080.      file and creates a new file. When the program finishes processing, it
  7081.      deletes the new .netrc file that it created and renames the original
  7082.      file to .netrc.
  7083.    * In the Data warehousing sample appendix, section "Viewing and
  7084.      modifying the sample metadata", the GEOGRAPHIES table should be
  7085.      included in the list of source tables.
  7086.    * In the Data warehousing sample appendix, section "Promoting the
  7087.      steps", in the procedure for promoting steps to production mode, the
  7088.      following statement is incorrect because the target table was created
  7089.      when you promoted the step to test mode:
  7090.  
  7091.         The Data Warehouse Center starts to create the target table,
  7092.         and displays a progress window.
  7093.  
  7094.    * On Microsoft Windows NT and Windows 2000, the Data Warehouse Center
  7095.      logs events to the system event log. The Event ID corresponds to the
  7096.      Data Warehouse Center message number. For information about the Data
  7097.      Warehouse Center messages, refer to the Message Reference.
  7098.    * The example in Figure 20 on page 315 has an error. The following
  7099.      commands are correct:
  7100.  
  7101.      "C:\IS\bin\olapicmd" < "C:\IS\Batch\my_script.script" >
  7102.      "C:\IS\Batch\my_script.log"
  7103.  
  7104.      The double quotation marks around "C:\IS\bin\olapicmd" are necessary
  7105.      if the name of a directory in the path contains a blank, such as
  7106.      Program Files.
  7107.    * In "Appendix F. Using Classic Connect with the Data Warehouse Center",
  7108.      the section "Installing the CROSS ACCESS ODBC driver" on page 388 has
  7109.      been replaced with the following information:
  7110.  
  7111.         Install the CROSS ACCESS ODBC driver by performing a custom install
  7112.         of the DB2 Warehouse Manager Version 7, and selecting the Classic
  7113.         Connect Drivers component. The driver is not installed as part of
  7114.         a typical installation of the DB2 Warehouse Manager.
  7115.  
  7116.         The CROSS ACCESS ODBC driver will be installed in the ODBC32 subdirectory
  7117.         of the SQLLIB directory. After the installation is complete, you must manually
  7118.         add the path for the driver (for example, C:\Program Files\SQLLIB\ODBC32)
  7119.         to the PATH system environment variable. If you have another version
  7120.         of the CROSS ACCESS ODBC driver already installed, place the ...\SQLLIB\ODBC32\
  7121.         path before the path for the other version. The operating system will use
  7122.         the first directory in the path that contains the CROSS ACCESS ODBC driver.
  7123.  
  7124.    * In "Appendix G. Data Warehouse Center environment structure" on page
  7125.      401, there is an incorrect entry in the table. C:\Program
  7126.      Files\SQLLIB\ODBC32 is not added to the PATH environment variable. The
  7127.      only update to the PATH environment variable is C:\Program
  7128.      Files\SQLLIB\BIN.
  7129.  
  7130. 20.1.3 Data Warehouse Center Messages
  7131.  
  7132. Data Warehouse Center message DWC3778E should read as follows: "Cannot
  7133. delete a Data Warehouse Center default Data Warehouse Center Program
  7134. Group."
  7135.  
  7136. Data Warehouse Center message DWC3806E should read as follows: "Step being
  7137. created or updated is not associated with either a source resource or Data
  7138. Warehouse Center program for population."
  7139.  
  7140. Data Warehouse Center message DWC6119E should read as follows: "The
  7141. warehouse client failed to receive a response from the warehouse server."
  7142.  
  7143. 20.1.4 Data Warehouse Center Online Help
  7144.  
  7145.    * A table or view must be defined for replication using the DB2 Control
  7146.      Center before it can be used as a replication source in the Data
  7147.      Warehouse Center.
  7148.    * Before running the Essbase VWPs with the AS/400 agent, ARBORLIB and
  7149.      ARBORPATH need to be set as *sys environment variables. To set these,
  7150.      the user ID must have *jobctl authority. These environment variables
  7151.      need to point to the library where Essbase is installed.
  7152.    * Publish Data Warehouse Center Metadata window and associated
  7153.      properties window: In step 10 of the task help, there is an example
  7154.      states that if you specify a limit value of 1 (Limit the levels of
  7155.      objects in the tree) and publish a process, only 1 step from that
  7156.      process is published and displayed. This example is not correct in all
  7157.      situations. In step 8, on the second bulleted item, the first
  7158.      statement is incorrect. It should read "Click at the column level to
  7159.      generate a transformation object between an information catalog source
  7160.      column and a target column."
  7161.    * Any references in the online help to "foreign keys" should read
  7162.      "warehouse foreign keys."
  7163.    * Any references in the online help to the "Define Replication notebook"
  7164.      should read "replication step notebook."
  7165.    * Importing a tag language online help: In the bulleted list showing
  7166.      common import errors, one item in the list is "Importing a tag
  7167.      language file that was not exported properly". This item is not
  7168.      applicable to the list of common input errors.
  7169.    * In the "Add data" topic of the online help, the links to the "Adding
  7170.      source tables to a process" and "Adding target tables to a process"
  7171.      topics are broken. You can find these topics in the help index.
  7172.  
  7173.   ------------------------------------------------------------------------
  7174.  
  7175. 20.2 Warehouse Control Database
  7176.  
  7177. This section covers the following topics related to the management of
  7178. warehouse control databases:
  7179.  
  7180.    * The default warehouse control database
  7181.    * The Warehouse Control Database Management window
  7182.    * Changing the active warehouse control database
  7183.    * Creating and initializing a warehouse control database
  7184.    * Migrating IBM Visual Warehouse control databases for use with the DB2
  7185.      Version 7.1 Data Warehouse Center
  7186.  
  7187. 20.2.1 The default warehouse control database
  7188.  
  7189. During a typical DB2 installation on Windows NT or Windows 2000, DB2
  7190. creates and initializes a default warehouse control database for the Data
  7191. Warehouse Center if there is no active warehouse control database
  7192. identified in the Windows NT registry. Initialization is the process in
  7193. which the Data Warehouse Center creates the control tables that are
  7194. required to store Data Warehouse Center metadata.
  7195.  
  7196. The default warehouse control database is named DWCTRLDB. When you log on,
  7197. the Data Warehouse Center specifies DWCTRLDB as the warehouse control
  7198. database by default. To see the name of the warehouse control database that
  7199. will be used, click the Advanced button on the Data Warehouse Center Logon
  7200. window.
  7201.  
  7202. 20.2.2 The Warehouse Control Database Management window
  7203.  
  7204. The Warehouse Control Database Management window is installed during a
  7205. typical DB2 installation on Windows NT or Windows 2000. You can use this
  7206. window to change the active warehouse control database, create and
  7207. initialize new warehouse control databases, and migrate warehouse control
  7208. databases that have been used with IBM Visual Warehouse. The following
  7209. sections discuss each of these activities.
  7210.  
  7211. Stop the warehouse server before using the Warehouse Control Database
  7212. Management window.
  7213.  
  7214. 20.2.3 Changing the active warehouse control database
  7215.  
  7216. If you want to use a warehouse control database other than the active
  7217. warehouse control database, use the Warehouse Control Database Management
  7218. window to register the database as the active control database. If you
  7219. specify a name other than the active warehouse control database when you
  7220. log on to the Data Warehouse Center, you will receive an error that states
  7221. that the database that you specified does not match the database specified
  7222. by the warehouse server.
  7223.  
  7224. To register the database:
  7225.  
  7226.   1. Click Start --> Programs --> IBM DB2 --> Warehouse Control Database
  7227.      Management.
  7228.   2. In the New control database field, type the name of the control
  7229.      database that you want to use.
  7230.   3. In the Schema field, type the name of the schema to use for the
  7231.      database.
  7232.   4. In the User ID field, type the name of the user ID that is required to
  7233.      access the database
  7234.   5. In the Password field, type the name of the password for the user ID.
  7235.   6. In the Verify Password field, type the password again.
  7236.   7. Click OK.
  7237.  
  7238.      The window remains open. The Messages field displays messages that
  7239.      indicate the status of the registration process.
  7240.   8. After the process is complete, close the window.
  7241.  
  7242. 20.2.4 Creating and initializing a warehouse control database
  7243.  
  7244. If you want to create a warehouse control database other than the default,
  7245. you can create it during the installation process or after installation by
  7246. using the Warehouse Control Database Management window. You can use the
  7247. installation process to create a database on the same workstation as the
  7248. warehouse server or on a different workstation.
  7249.  
  7250. To change the name of the warehouse control database that is created during
  7251. installation, you must perform a custom installation and change the name on
  7252. the Define a Local Warehouse Control Database window. The installation
  7253. process will create the database with the name that you specify, initialize
  7254. the database for use with the Data Warehouse Center, and register the
  7255. database as the active warehouse control database.
  7256.  
  7257. To create a warehouse control database during installation on a workstation
  7258. other than where the warehouse server is installed, select Warehouse Local
  7259. Control Database during a custom installation. The installation process
  7260. will create the database. After installation, you must then use the
  7261. Warehouse Control Database Management window on the warehouse server
  7262. workstation by following the steps in 20.2.3, Changing the active warehouse
  7263. control database. Specify the database name that you specified during
  7264. installation. The database will be initialized for use with the Data
  7265. Warehouse Center and registered as the active warehouse control database.
  7266.  
  7267. To create and initialize a warehouse control database after the
  7268. installation process, use the Warehouse Control Database Management window
  7269. on the warehouse server workstation. If the new warehouse control database
  7270. is not on the warehouse server workstation, you must create the database
  7271. first and catalog it on the warehouse server workstation. Then follow the
  7272. steps in 20.2.3, Changing the active warehouse control database. Specify
  7273. the database name that you specified during installation.
  7274.  
  7275. When you log on to the Data Warehouse Center, click the Advanced button and
  7276. type the name of the active warehouse control database.
  7277.  
  7278. 20.2.5 Migrating IBM Visual Warehouse control databases
  7279.  
  7280. DB2 Universal Database Quick Beginnings for Windows provides information
  7281. about how the active warehouse control database is migrated during a
  7282. typical install of DB2 Universal Database Version 7.1 on Windows NT and
  7283. Windows 2000. If you have more than one warehouse control database to be
  7284. migrated, you must use the Warehouse Control Database Management window to
  7285. migrate the additional databases. Only one warehouse control database can
  7286. be active at a time. If the last database that you migrate is not the one
  7287. that you intend to use when you next log on to the Data Warehouse Center,
  7288. you must use the Warehouse Control Database Management window to register
  7289. the database that you intend to use.
  7290.   ------------------------------------------------------------------------
  7291.  
  7292. 20.3 Setting up and running replication with Data Warehouse Center
  7293.  
  7294.   1. Setting up and running replication with Data Warehouse Center requires
  7295.      that the Replication Control tables exist on both the Warehouse
  7296.      Control database and the Warehouse Target databases.
  7297.  
  7298.      Replication requires that the Replication Control tables exist on both
  7299.      the Control and Target databases. The Replication Control tables are
  7300.      found in the ASN schema and they all start with IBMSNAP. The
  7301.      Replication Control tables are automatically created for you on a
  7302.      database when you define a Replication Source via the Control Center,
  7303.      if the Control tables do not already exist. Note that the Control
  7304.      tables must also exist on the Target DB. To get a set of Control
  7305.      tables created on the target DB you can either create a Replication
  7306.      Source using Control Center, then remove the Replication Source, just
  7307.      leaving the Control tables in place. Or you can use the DJRA, Data
  7308.      Joiner Replication Administration, product to define just the control
  7309.      tables.
  7310.   2. Installing and Using the DJRA
  7311.  
  7312.      If you want or need to use the DJRA to define the control tables, you
  7313.      will need to install it first. The DJRA ships as part of DB2. To
  7314.      install the DJRA, go to the d:\sqllib\djra directory (where your DB2
  7315.      is installed) and click on the djra.exe package. This will install the
  7316.      DJRA on your system. To access the DJRA after that, on Windows NT,
  7317.      from the start menu, click on the DB2 for Windows NT selection, then
  7318.      select Replication, then select Replication Administration Tools. The
  7319.      DJRA interface is a bit different from usual NT applications. For each
  7320.      function that it performs, it creates a set of SQL to be run, but does
  7321.      not execute it. The user must manually save the generated SQL and then
  7322.      select the Execute SQL function to run the SQL.
  7323.   3. Setup to Run Capture and Apply
  7324.  
  7325.      For the system that you are testing on, see the Replication Guide and
  7326.      Reference Manual for instructions on configuring your system to run
  7327.      the Capture and Apply program. You must bind the Capture and Apply
  7328.      programs on each database where they will be used. Note that you do
  7329.      NOT need to create a password file. The Data Warehouse Center will
  7330.      automatically create a password file for the Replication subscription.
  7331.   4. Define a Replication Source in the Control Center
  7332.  
  7333.      Use the Control Center to define a Replication Source. The Data
  7334.      Warehouse Center supports five types of replication: user copy,
  7335.      point-in-time, base aggregate, change aggregate, and staging tables
  7336.      (CCD tables). The types of User Copy, Point-in-Time, and Condensed
  7337.      Staging table require that the replication source table have a primary
  7338.      key. The other replication types do not. Keep this in mind when
  7339.      choosing an input table to be defined as a Replication Source. A
  7340.      Replication Source is actually the definition of the original source
  7341.      table and a created CD (Change Data) table to hold the data changes
  7342.      before they are moved to the target table. When you define a
  7343.      Replication Source in the Control Center, a record is written out to
  7344.      ASN.IBMSNAP_REGISTER to define the source and its CD table. The CD
  7345.      table is created at the same time, but initially it contains no data.
  7346.      When you define a Replication Source you can choose to include only
  7347.      the after-image columns or both the before and after-image columns.
  7348.      These choices are made via checkboxes in the Control Center
  7349.      Replication Source interface. Your selection of before and after image
  7350.      columns is then translated into columns created in the new CD table.
  7351.      In the CD table, after-image columns have the same name as their
  7352.      original source table column names. The after-image columns will have
  7353.      a 'X' as the first character in the column name.
  7354.   5. Import the Replication Source into the Data Warehouse Center
  7355.  
  7356.      Once you have created the Replication Source in the Control Center,
  7357.      you can import it into the Data Warehouse Center. When importing the
  7358.      source, be sure to click on the checkbox that says "Tables that can be
  7359.      replicated". This tells the Data Warehouse Center to look at the
  7360.      records in the ASN.IBMSNAP_REGISTER table to see what tables have been
  7361.      defined as Replication Sources.
  7362.   6. Define a Replication Step in the Data Warehouse Center
  7363.  
  7364.      On the process modeler, select one of the five Replication types: base
  7365.      aggregate, change aggregate, point-in-time, staging table, or user
  7366.      copy. If you want to define a base aggregate or change aggregate
  7367.      replication type, see the section below about How to setup a Base
  7368.      Aggregate or Change Aggregate replication in the Data Warehouse
  7369.      Center. Select an appropriate Replication Source for the Replication
  7370.      type. As mentioned above, the replication types of: user copy,
  7371.      point-in-time, and condensed staging tables require that the input
  7372.      source have a primary key. Connect the Replication Source to the
  7373.      Replication Step. Open the properties on the Replication Step. Go to
  7374.      the Parameters tab. Select the desired columns. Select the checkbox to
  7375.      have a target table created. Select a Warehouse target. Go to the
  7376.      Processing Options and fill in the parameters. Press OK.
  7377.   7. Start the Capture Program
  7378.  
  7379.      In a DOS window, enter: ASNCCP source-database COLD PRUNE
  7380.  
  7381.      The COLD parameter indicates a COLD start and will delete any existing
  7382.      data in the CD tables. The PRUNE parameter tells the capture program
  7383.      to maintain the IBMSNAP_PRUNCNTL table. Leave the Capture program
  7384.      running. When it comes time to quit, you can stop it with a Ctrl-Break
  7385.      in its DOS window. Be aware that you need to start the Capture program
  7386.      before you start the Apply program.
  7387.   8. Replication Step Promote-To-Test
  7388.  
  7389.      Back in the Data Warehouse Center, for the defined Replication Step,
  7390.      promote the step to Test mode. This causes the Replication
  7391.      Subscription information to be written out to the Replication Control
  7392.      tables. You will see records added to IBMSNAP_SUBS_SET,
  7393.      IBMSNAP_SUBS_MEMBR, IBMSNAP_SUBS_COLS, and IBMSNAP_SUBS_EVENT to
  7394.      support the subscription. The target table will also be created in the
  7395.      target database. If the replication type is user copy, point-in-time,
  7396.      or condensed staging table, a primary key is required on the target
  7397.      table. Go to the Control Center to create the Primary Key. Note that
  7398.      some replication target tables also require unique indexes on various
  7399.      columns. Code exists in the Data Warehouse Center to create these
  7400.      unique indexes when the table is created so that you do NOT have to
  7401.      create these yourself. Note though that if you define a primary key in
  7402.      the Control Center and a unique index already exists for that column
  7403.      then you will get a WARNING message when you create the primary key.
  7404.      Ignore this warning message.
  7405.   9. Replication Step Promote-To-Production
  7406.  
  7407.      No replication subscription changes are made during
  7408.      Promote-to-Production. This is strictly a Data Warehouse Center
  7409.      operation like any other step.
  7410.  10. Run a Replication Step
  7411.  
  7412.      After a Replication Step has been promoted to Test mode, it can be
  7413.      run. Do an initial run before making any changes to the source table.
  7414.      Go to the Work-in-Progress (WIP) section and select the Replication
  7415.      Step. Run it. When the step is run, the event record in the
  7416.      IBMSNAP_SUBS_EVENT table is updated and the subscription record in
  7417.      IBMSNAP_SUBS_SET is posted to be active. The subscription should run
  7418.      immediately. When the subscription runs, the Apply program is called
  7419.      by the Agent to process the active subscriptions. If you update the
  7420.      original source table after that point, then the changed data will be
  7421.      moved into the CD table. If you run the replication step following
  7422.      that, such that the Apply program runs again, the changed data will be
  7423.      moved from the CD table to the target table.
  7424.  11. Replication Step Demote-To-Test
  7425.  
  7426.      No replication subscription changes are made during Demote-to-Test.
  7427.      This is strictly a Data Warehouse Center operation like any other
  7428.      step.
  7429.  12. Replication Step Demote-to-Development
  7430.  
  7431.      When you demote a Replication Step to development, the subscription
  7432.      information is removed from the Replication Control tables. No records
  7433.      will remain in the Replication Control tables for that particular
  7434.      subscription after the Demote-to-Development finishes. The target
  7435.      table will also be dropped at this point. The CD table remains in
  7436.      place since it belongs to the definition of the Replication Source.
  7437.  13. How to setup a Base Aggregate or Change Aggregate Replication in the
  7438.      Data Warehouse Center.
  7439.         o Input table. Choose an input table that can be used with a GROUP
  7440.           BY statement. For our example we will use an Input table that has
  7441.           these columns: SALES, REGION, DISTRICT.
  7442.         o Replication step. Choose Base or Change Aggregate. Open the Step
  7443.           properties.
  7444.              + When the Apply program runs, it needs to execute a SELECT
  7445.                statement that looks like: SELECT SUM(SALES), REGION,
  7446.                DISTRICT GROUP BY REGION, DISTRICT Therefore in the output
  7447.                columns selected you will need to choose REGION, DISTRICT
  7448.                and one calculated column of SUM(SALES). Use the Add
  7449.                Calculated Column button. For our example enter: SUM(SALES)
  7450.                in the Expression field. Save it.
  7451.              + Where clause. There is a Replication requirement that when
  7452.                you set up a Replication step that only requires a GROUP BY
  7453.                clause then you must also provide a DUMMY where clause, such
  7454.                as 1=1. Do NOT include the word "WHERE" in the WHERE clause.
  7455.                Therefore in the Data Warehouse Center GUI for Base
  7456.                Aggregate there is only a WHERE clause entry field. In this
  7457.                field, for our example: enter: 1=1 GROUP BY REGION, DISTRICT
  7458.                For the Change Aggregate, there is both a WHERE clause and a
  7459.                GROUP BY entry field: In the WHERE clause field enter: 1=1
  7460.                and in the GROUP BY field enter: GROUP BY REGION, DISTRICT
  7461.              + Setup the rest of the step properties, as you would do for
  7462.                any other type of Replication. Press OK to save the step and
  7463.                create the target table object.
  7464.         o Open the target table object. You now need to rename the output
  7465.           column for the calculated column expression to a valid column
  7466.           name and you need to specify a valid data type for the column.
  7467.           Save the target table object.
  7468.         o Run Promote-to-Test on the Replication step. The target table
  7469.           will be created. It does NOT need a primary key.
  7470.         o Run the step like any other Replication step.
  7471.  
  7472.   ------------------------------------------------------------------------
  7473.  
  7474. 20.4 Troubleshooting tips
  7475.  
  7476.    * To turn on tracing for the Apply Program, set the Agent Trace value =
  7477.      4 in the Warehouse Properties panel. The Agent turns on full tracing
  7478.      for Apply when Agent Trace = 4.
  7479.  
  7480.      If you don't see any data in the CD table, then most likely either the
  7481.      Capture program has not been started or you have not updated the
  7482.      original source table to create some changed data.
  7483.    * The mail server field of the Notification page of the Schedule
  7484.      notebook is missing from the online help.
  7485.    * The mail server needs to support ESMTP for the Data Warehouse Center
  7486.      notification to work. In the Open the Work in Progress window help,
  7487.      click Warehouse --> Work in Progress rather than Warehouse Center -->
  7488.      Work in Progress.
  7489.  
  7490.   ------------------------------------------------------------------------
  7491.  
  7492. 20.5 Correction to RUNSTATS and REORGANIZE TABLE Online Help
  7493.  
  7494. The online help for these utilities states that the table that you want to
  7495. run statistics on, or that is to be reorganized, must be linked as both the
  7496. source and the target. However, because the step writes to the source, you
  7497. only need to link from the source to the step.
  7498.   ------------------------------------------------------------------------
  7499.  
  7500. 20.6 Notification Page (Warehouse Properties Notebook and Schedule
  7501. Notebook)
  7502.  
  7503. On the Notification page of the Warehouse Properties notebook, the
  7504. statement:
  7505.  
  7506.    The Sender entry field is initialized with the string <current user's logon ID>.
  7507.  
  7508. should be changed to:
  7509.  
  7510.    The Sender entry field is initialized with the string <current logon user email address>.
  7511.  
  7512. On the Notification page of the Schedule notebook, the sender will be
  7513. initialized to what is set in the Warehouse Properties notebook. If nothing
  7514. is set, it is initialized to the current logon user e-mail address. If
  7515. there is no e-mail address associated with the logon user, the sender is
  7516. set to the logon user ID.
  7517.   ------------------------------------------------------------------------
  7518.  
  7519. 20.7 Agent Module Field in the Agent Sites Notebook
  7520.  
  7521. The Agent Module field in the Agent Sites notebook provides the name of the
  7522. program that is run when the warehouse agent daemon spawns the warehouse
  7523. agent. Do not change the name of the field unless IBM directs you to do so.
  7524.   ------------------------------------------------------------------------
  7525.  
  7526. 20.8 Accessing DB2 Version 5 data with the DB2 Version 7.1 warehouse agent
  7527.  
  7528. DB2 Version 7.1 warehouse agents, as configured by the DB2 Version 7.1
  7529. install process, will support access to DB2 Version 6 and DB2 Version 7.1
  7530. data. If you need to access DB2 Version 5 data, you must take one of the
  7531. following two approaches:
  7532.  
  7533.    * Migrate DB2 Version 5 servers to DB2 Version 6 or DB2 Version 7.1.
  7534.    * Modify the agent configuration, on the appropriate operating system,
  7535.      to allow access to DB2 Version 5 data.
  7536.  
  7537. DB2 Version 7.1 warehouse agents do not support access to data from DB2
  7538. Version 2 or any other previous versions.
  7539.  
  7540. 20.8.1 Migrating DB2 Version 5 servers
  7541.  
  7542. For information about migrating DB2 Version 5 servers, see DB2 Universal
  7543. Database Quick Beginnings for your operating system.
  7544.  
  7545. 20.8.2 Changing the agent configuration
  7546.  
  7547. The following information describes how to change the agent configuration
  7548. on each operating system. When you migrate the DB2 servers to DB2 Version 6
  7549. or later, remove the changes that you made to the configuration.
  7550.  
  7551. 20.8.2.1 UNIX warehouse agents
  7552.  
  7553. To set up a UNIX warehouse agent to access data from DB2 Version 5 with
  7554. either CLI or ODBC access:
  7555.  
  7556.   1. Install the DB2 Version 6 run-time client. You can obtain the run-time
  7557.      client by selecting the client download from the following URL:
  7558.  
  7559.      http://www.ibm.com/software/data/db2/udb/support
  7560.  
  7561.   2. Update the warehouse agent configuration file so that the DB2INSTANCE
  7562.      environment variable points to a DB2 Version 6 instance.
  7563.   3. Catalog all databases in this DB2 Version 6 instance that the
  7564.      warehouse agent is to access.
  7565.   4. Stop the agent daemon process by issuing the kill command with the
  7566.      agent daemon process ID. The agent daemon will then restart
  7567.      automatically. You need root authority to kill the process.
  7568.  
  7569. 20.8.2.2 Microsoft Windows NT, Windows 2000, and OS/2 warehouse agents
  7570.  
  7571. To set up a Microsoft NT, Windows 2000 or OS/2 warehouse agent to access
  7572. data from DB2 Version 5:
  7573.  
  7574.   1. Install DB2 Connect Enterprise Edition Version 6 on a workstation
  7575.      other than where the DB2 Version 7.1 warehouse agent is installed.
  7576.  
  7577.      DB2 Connect Enterprise Edition is included as part of DB2 Universal
  7578.      Database Enterprise Edition and DB2 Universal Database Enterprise
  7579.      Extended Edition. If Version 6 of either of these DB2 products is
  7580.      installed, you do not need to install DB2 Connect separately.
  7581.       Restriction:You cannot install multiple versions of DB2 on the same
  7582.                   Windows NT or OS/2 workstation. You can install DB2
  7583.                   Connect on another Windows NT workstation or on an OS/2
  7584.                   or UNIX workstation.
  7585.   2. Configure the warehouse agent and DB2 Connect Version 6 for access to
  7586.      the DB2 Version 5 data. For more information, see the DB2 Connect
  7587.      User's Guide. The following steps are an overview of the steps that
  7588.      are required:
  7589.        a. On the DB2 Version 5 system, use the DB2 Command Line Processor
  7590.           to catalog the Version 5 database that the warehouse agent is to
  7591.           access.
  7592.        b. On the DB2 Connect system, use the DB2 Command Line Processor to
  7593.           catalog:
  7594.              + The TCP/IP node for the DB2 Version 5 system
  7595.              + The database for the DB2 Version 5 system
  7596.              + The DCS entry for the DB2 Version 5 system
  7597.        c. On the warehouse agent workstation, use the DB2 Command Line
  7598.           Processor to catalog:
  7599.              + The TCP/IP node for the DB2 Connect system
  7600.              + The database for the DB2 Connect system
  7601.  
  7602.      For information about cataloging databases, see the DB2 Universal
  7603.      Database Installation and Configuration Supplement.
  7604.   3. At the warehouse agent workstation, bind the DB2 CLI package to each
  7605.      database that is to be accessed through DB2 Connect.
  7606.  
  7607.      The following DB2 commands give an example of binding to v5database, a
  7608.      hypothetical DB2 version 5 database. Use the DB2 Command Line
  7609.      Processor to issue the following commands. db2cli.lst and db2ajgrt are
  7610.      located in the \sqllib\bnd directory.
  7611.  
  7612.      db2 connect to v5database user userid using password
  7613.      db2 bind db2ajgrt.bnd
  7614.      db2 bind @db2cli.lst blocking all grant public
  7615.  
  7616.      where userid is the user ID for v5database and password is the
  7617.      password for the user ID.
  7618.  
  7619.      An error occurs when db2cli.list is bound to the DB2 Version 5
  7620.      database. This error occurs because large objects (LOBs) are not
  7621.      supported in this configuration. This error will not affect the
  7622.      warehouse agent's access to the DB2 Version 5 database.
  7623.  
  7624.      Fixpak 14 for DB2 Universal Database Version 5, which is available in
  7625.      June, 2000, is required for accessing DB2 Version 5 data through DB2
  7626.      Connect. Refer to APAR number JR14507 in that fixpak.
  7627.  
  7628.   ------------------------------------------------------------------------
  7629.  
  7630. 20.9 Accessing warehouse control databases
  7631.  
  7632. In a typical installation of DB2 Version 7.1 on Windows NT, a DB2 Version 7
  7633. warehouse control database is created along with the warehouse server. If
  7634. you have a Visual Warehouse warehouse control database, you must upgrade
  7635. the DB2 server containing the warehouse control database to DB2 Version 7.1
  7636. before the metadata in the warehouse control database can be migrated for
  7637. use by the DB2 Version 7.1 Data Warehouse Center. You must migrate any
  7638. warehouse control databases that you want to continue to use to Version
  7639. 7.1. The metadata in your active warehouse control database is migrated to
  7640. Version 7.1 during the DB2 Version 7.1 install process. To migrate the
  7641. metadata in any additional warehouse control databases, use the Warehouse
  7642. Control Database Migration utility, which you start by selecting Start -->
  7643. Programs --> IBM DB2 --> Warehouse Control Database Management on Windows
  7644. NT. For information about migrating your warehouse control databases, see
  7645. DB2 Universal Database for Windows Quick Beginnings.
  7646.   ------------------------------------------------------------------------
  7647.  
  7648. 20.10 Accessing sources and targets
  7649.  
  7650. The following tables list the version and release levels of the sources and
  7651. targets that the Data Warehouse Center supports.
  7652.  
  7653. Table 3. Version and release levels of supported IBM warehouse sources
  7654.  Source                               Version/Release
  7655.  IMS                                  5.1
  7656.  DB2 Universal Database for Windows NT5.2 - 7.1
  7657.  DB2 Universal Database               5.2 - 7.1
  7658.  Enterprise-Extended Edition
  7659.  DB2 Universal Database for OS/2      5.2 - 7.1
  7660.  DB2 Universal Database for AS/400    3.7 - 4.5
  7661.  DB2 Universal Database for AIX       5.2 - 7.1
  7662.  DB2 Universal Database for Solaris   5.2 - 7.1
  7663.  Operating Environment
  7664.  DB2 Universal Database for OS/390    4.1 - 5.1.6
  7665.  DB2 DataJoiner                       2.1.2
  7666.  DB2 for VM                           3.4 - 5.3.4
  7667.  DB2 for VSE                          7.1
  7668.  
  7669.  Source                   Windows NT               AIX
  7670.  Informix                 7.2.2 - 8.2.1            7.2.4 - 9.2.0
  7671.  Oracle                   7.3.2 - 8.1.5            8.1.5
  7672.  Microsoft SQL Server     7.0
  7673.  Microsoft Excel          97
  7674.  Microsoft Access         97
  7675.  Sybase                   11.5                     11.9.2
  7676.  
  7677. Table 4. Version and release levels of supported IBM warehouse targets
  7678.  Source                               Version/Release
  7679.  DB2 Universal Database for Windows NT6 - 7
  7680.  DB2 Universal Database               6 - 7
  7681.  Enterprise-Extended Edition
  7682.  DB2 Universal Database for OS/2      6 - 7
  7683.  DB2 Universal Database for AS/400    3.1-4.5
  7684.  DB2 Universal Database for AIX       6 -7
  7685.  DB2 Universal Database for Solaris   6 -7
  7686.  Operating Environment
  7687.  DB2 Universal Database for OS/390    4.1 - 6
  7688.  DB2 DataJoiner                       2.1.2
  7689.  DB2 DataJoiner/Oracle                8
  7690.  DB2 for VM                           3.4 - 5.3.4
  7691.  DB2 for VSE                          3.2, 7.1
  7692.  CA/400                               3.1.2
  7693.   ------------------------------------------------------------------------
  7694.  
  7695. 20.11 Accessing DB2 Version 5 information catalogs with the DB2 Version 7.1
  7696. Information Catalog Manager
  7697.  
  7698. The DB2 Version 7.1 Information Catalog Manager subcomponents, as
  7699. configured by the DB2 Version 7.1 install process, support access to
  7700. information catalogs stored in DB2 Version 6 and DB2 Version 7.1 databases.
  7701. You can modify the configuration of the subcomponents to access information
  7702. catalogs that are stored in DB2 Version 5 databases. The DB2 Version 7.1
  7703. Information Catalog Manager subcomponents do not support access to data
  7704. from DB2 Version 2 or any other previous versions.
  7705.  
  7706. To set up the Information Catalog Administrator, the Information Catalog
  7707. User, and the Information Catalog Initialization Utility to access
  7708. information catalogs that are stored in DB2 Version 5 databases:
  7709.  
  7710.   1. Install DB2 Connect Enterprise Edition Version 6 on a workstation
  7711.      other than where the DB2 Version 7.1 Information Catalog Manager is
  7712.      installed.
  7713.  
  7714.      DB2 Connect Enterprise Edition is included as part of DB2 Universal
  7715.      Database Enterprise Edition and DB2 Universal Database Enterprise
  7716.      Extended Edition. If Version 6 of either of these DB2 products is
  7717.      installed, you do not need to install DB2 Connect separately.
  7718.       Restriction:You cannot install multiple versions of DB2 on the same
  7719.                   Windows NT or OS/2 workstation. You can install DB2
  7720.                   Connect on another Windows NT workstation or on an OS/2
  7721.                   or UNIX workstation.
  7722.   2. Configure the Information Catalog Manager and DB2 Connect Version 6
  7723.      for access to the DB2 Version 5 data. For more information, see the
  7724.      DB2 Connect User's Guide. The following steps are an overview of the
  7725.      steps that are required:
  7726.        a. On the DB2 Version 5 system, use the DB2 Command Line Processor
  7727.           to catalog the Version 5 database that the Information Catalog
  7728.           Manager is to access.
  7729.        b. On the DB2 Connect system, use the DB2 Command Line Processor to
  7730.           catalog:
  7731.              + The TCP/IP node for the DB2 Version 5 system
  7732.              + The database for the DB2 Version 5 system
  7733.              + The DCS entry for the DB2 Version 5 system
  7734.        c. On the workstation with the Information Catalog Manager, use the
  7735.           DB2 Command Line Processor to catalog:
  7736.              + The TCP/IP node for the DB2 Connect system
  7737.              + The database for the DB2 Connect system
  7738.  
  7739.      For information about cataloging databases, see the DB2 Universal
  7740.      Database Installation and Configuration Supplement.
  7741.   3. At the warehouse with the Information Catalog Manager, bind the DB2
  7742.      CLI package to each database that is to be accessed through DB2
  7743.      Connect.
  7744.  
  7745.      The following DB2 commands give an example of binding to v5database, a
  7746.      hypothetical DB2 version 5 database. Use the DB2 Command Line
  7747.      Processor to issue the following commands. db2cli.lst and db2ajgrt are
  7748.      located in the \sqllib\bnd directory.
  7749.  
  7750.      db2 connect to v5database user userid using password
  7751.      db2 bind db2ajgrt.bnd
  7752.      db2 bind @db2cli.lst blocking all grant public
  7753.  
  7754.      where userid is the user ID for v5database and password is the
  7755.      password for the user ID.
  7756.  
  7757.      An error occurs when db2cli.list is bound to the DB2 Version 5
  7758.      database. This error occurs because large objects (LOBs) are not
  7759.      supported in this configuration. This error will not affect the
  7760.      warehouse agent's access to the DB2 Version 5 database.
  7761.  
  7762.      Fixpak 14 for DB2 Universal Database Version 5, which is available in
  7763.      June, 2000, is required for accessing DB2 Version 5 data through DB2
  7764.      Connect. Refer to APAR number JR14507 in that fixpak.
  7765.  
  7766.   ------------------------------------------------------------------------
  7767.  
  7768. 20.12 Additions to supported non-IBM database sources
  7769.  
  7770. The following table contains additions to the supported non-IBM database
  7771. sources:
  7772.                                                   Database client
  7773.  Database                Operating system         requirements
  7774.  Informix                AIX                      Informix-Connect and
  7775.                                                   ESQL/C version 9.1.4 or
  7776.                                                   later
  7777.  Informix                Solaris Operating        Informix-Connect and
  7778.                          Environment              ESQL/C version 9.1.3 or
  7779.                                                   later
  7780.  Informix                Windows NT               Informix-Connect for
  7781.                                                   Windows Platforms 2.x or
  7782.                                                   Informix-Client Software
  7783.                                                   Developer's Kit for
  7784.                                                   Windows Platforms 2.x
  7785.  Oracle 7                AIX                      Oracle7 SQL*Net and
  7786.                                                   Oracle7 SQL*Net shared
  7787.                                                   library (built by the
  7788.                                                   genclntsh script)
  7789.  Oracle 7                Solaris Operating        Oracle7 SQL*Net and
  7790.                          Environment              Oracle7 SQL*Net shared
  7791.                                                   library (built by the
  7792.                                                   genclntsh script)
  7793.  Oracle 7                Windows NT               The appropriate DLLs for
  7794.                                                   the current version of
  7795.                                                   SQL*Net, plus
  7796.                                                   OCIW32.DLL. For example,
  7797.                                                   SQL*Net 2.3 requires
  7798.                                                   ORA73.DLL, CORE35.DLL,
  7799.                                                   NLSRTL32.DLL,
  7800.                                                   CORE350.DLL and
  7801.                                                   OCIW32.DLL.
  7802.  Oracle 8                AIX                      Oracle8 Net8 and the
  7803.                                                   Oracle8 SQL*Net shared
  7804.                                                   library (built by the
  7805.                                                   genclntsh8 script)
  7806.  Oracle 8                Solaris Operating        Oracle8 Net8 and the
  7807.                          Environment              Oracle8 SQL*Net shared
  7808.                                                   library (built by the
  7809.                                                   genclntsh8 script)
  7810.  Oracle 8                Windows NT               To access remote Oracle8
  7811.                                                   database servers at a
  7812.                                                   level of version 8.0.3
  7813.                                                   or later, install Oracle
  7814.                                                   Net8 Client version
  7815.                                                   7.3.4.x, 8.0.4, or
  7816.                                                   later.
  7817.  
  7818.                                                   On Intel systems,
  7819.                                                   install the appropriate
  7820.                                                   DLLs for the Oracle Net8
  7821.                                                   Client (such as
  7822.                                                   Ora804.DLL, PLS804.DLL
  7823.                                                   and OCI.DLL) on your
  7824.                                                   path.
  7825.  Sybase                  AIX                      In a non-DCE environment
  7826.                                                   (ibsyb15 ODBC driver):
  7827.                                                        libct library
  7828.  
  7829.                                                   In a DCE environment
  7830.                                                   (ibsyb1115 ODBC driver):
  7831.                                                        Sybase 11.1 client
  7832.                                                        library libct_r
  7833.  
  7834.  Sybase                  Solaris Operating        In a non-DCE environment
  7835.                          Environment              (ibsyb15 ODBC driver):
  7836.                                                        libct library
  7837.  
  7838.                                                   In a DCE environment
  7839.                                                   (ibsyb1115 ODBC driver):
  7840.                                                        Sybase 11.1 client
  7841.                                                        library libct_r
  7842.  
  7843.  Sybase                  Windows NT               Sybase Open
  7844.                                                   Client-Library 10.0.4 or
  7845.                                                   later and the
  7846.                                                   appropriate Sybase
  7847.                                                   Net-Library.
  7848.   ------------------------------------------------------------------------
  7849.  
  7850. 20.13 Information Catalog Manager Initialization Utility
  7851.  
  7852. If you get the following message::
  7853.  
  7854. FLG0083E: You do not have a valid license for the IBM Information Catalog Manager
  7855. Initialization utility.  Please contact your local software reseller or IBM
  7856. marketing representative.
  7857.  
  7858. You must purchase the DB2 Warehouse Manager or the IBM DB2 OLAP Server and
  7859. install the Information Catalog Manager component, which includes the
  7860. Information Catalog Initialization utility.
  7861.  
  7862. If you installed the DB2 Warehouse Manager or IBM DB2 OLAP Server and then
  7863. installed another Information Catalog Manager Administrator component
  7864. (using the DB2 Universal Database CD-ROM) on the same workstation, you
  7865. might have overwritten the Information Catalog Initialization utility. In
  7866. that case, from the \sqllib\bin directory, find the files createic.bak and
  7867. flgnmwcr.bak and rename them to createic.exe and flgnmwcr.exe respectively.
  7868.  
  7869. If you install additional Information Catalog Manager components from DB2
  7870. Universal Database, the components must be on a separate workstation from
  7871. where you installed the Data Warehouse Manager. For more information, see
  7872. Chapter 3, Installing Information Catalog Manager components, in the DB2
  7873. Warehouse Manager Installation Guide.
  7874.   ------------------------------------------------------------------------
  7875.  
  7876. 20.14 Information Catalog Manager Administration Guide
  7877.  
  7878. Chapter 6. Exchanging metadata with other products: "Converting
  7879. MDIS-conforming metadata into a tag language file", page 97
  7880.  
  7881. You cannot issue the MDISDGC command from the MS-DOS command prompt. You
  7882. must issue the MDISDGC command from a DB2 command window. The first
  7883. sentence of the section, "Converting a tag language file into
  7884. MDIS-conforming metadata," also says you must issue the DGMDISC command
  7885. from the MS-DOS command prompt. You must issue the DGMDISC command from a
  7886. DB2 command window.
  7887.   ------------------------------------------------------------------------
  7888.  
  7889. DB2 Stored Procedure Builder
  7890.  
  7891.   ------------------------------------------------------------------------
  7892.  
  7893. 21.1 Java 1.2 Support for the DB2 Stored Procedure Builder
  7894.  
  7895. The DB2 Stored Procedure Builder supports building Java stored procedures
  7896. using Java 1.2 functionality. In addition, the Stored Procedure Builder
  7897. supports bi-directional languages, such as Arabic and Hebrew, using the
  7898. bi-di support in Java 1.2.
  7899.  
  7900. This support is provided for Windows NT platforms only.
  7901.  
  7902. In order for the Stored Procedure Builder to recognize and use Java 1.2
  7903. functionality, Java 1.2 must be installed.
  7904.  
  7905. To install Java 1.2:
  7906.  
  7907.   1. JDK 1.2.2 is available on the DB2 UDB CD under the DB2\bidi\NT
  7908.      directory. ibm-inst-n122p-win32-x86.exe is the installer program, and
  7909.      ibm-jdk-n122p-win32-x86.exe is the JDK distribution. Copy both files
  7910.      to a temporary directory on your hard drive, then run the installer
  7911.      program from there.
  7912.   2. Install it under <DB2PATH>\java\Java12, where <DB2PATH> is the
  7913.      installation path of DB2.
  7914.   3. Do not select JDK/JRE as the System VM when prompted by the JDK/JRE
  7915.      installation.
  7916.  
  7917. After Java 1.2 is installed successfully, start the Stored Procedure
  7918. Builder in the normal manner.
  7919.  
  7920. To execute Java stored procedures using JDK 1.2 support, set the database
  7921. server environment variable DB2_USE_JDK12 to TRUE using the following
  7922. command:
  7923.  
  7924. DB2SET DB2_USE_JDK12=TRUE
  7925.  
  7926. Also, set your JDK11_PATH to point to the directory where your Java 1.2
  7927. support is installed. You set this path by using the following command:
  7928.  
  7929. DB2 UPDATE DBM CFG USING JDK11_PATH
  7930.  
  7931. To stop the use of Java 1.2, you can either uninstall the JDK/JRE from
  7932. <DB2PATH>\java\Java12, or simply rename the <DB2PATH>\java\Java12
  7933. subdirectory.
  7934.  
  7935. Important: Do not confuse <DB2PATH>\java\Java12 with <DB2PATH>\Java12.
  7936. <DB2PATH>\Java12 is part of the DB2 installation and includes JDBC support
  7937. for Java 1.2.
  7938.   ------------------------------------------------------------------------
  7939.  
  7940. 21.2 Remote Debugging of DB2 Stored Procedures
  7941.  
  7942. To use the remote debugging capability for stored procedures on the Intel
  7943. and UNIX platforms, you need to install the IBM Distributed Debugger. The
  7944. IBM Distributed Debugger is included on the Visual Age for Java
  7945. Professional Edition CD. The debugger client runs only on the Windows
  7946. platform. Supported server platforms include: Windows, AIX and Solaris. At
  7947. this time, only Java and C stored procedures can be debugged remotely.
  7948. Support for SQL procedures will be available at a later date.
  7949.  
  7950. To debug SQL procedures on the OS/390 platform, you must also have the IBM
  7951. C/C++ Productivity Tools for OS/390 R1 product. For more information on the
  7952. IBM C/C++ Productivity Tools for OS/390 R1, go to the following Web site:
  7953. http://www.ibm.com/software/ad/c390/pt/
  7954.   ------------------------------------------------------------------------
  7955.  
  7956. 21.3 Building SQL Procedures on the Intel and UNIX Platforms
  7957.  
  7958. Before you can use the Stored Procedure Builder to successfully build SQL
  7959. Procedures on your Intel or UNIX database, you must configure your server
  7960. for SQL Procedures. For information on how to configure your server for SQL
  7961. Procedures, see the IBM DB2 Universal Database Application Building Guide.
  7962.  
  7963. The database manager configuration parameter KEEPDARI must be set to NO.
  7964. This can be done using the command db2 update dbm cfg using KEEPDARI NO, or
  7965. using the Control Center. If KEEPDARI is set to YES, you may get message
  7966. SQL0454N when attempting to build an SQL stored procedure that was
  7967. previously built and run.
  7968.   ------------------------------------------------------------------------
  7969.  
  7970. 21.4 Using the DB2 Stored Procedure Builder on the Solaris Platform
  7971.  
  7972. To use the Stored Procedure Builder on the Solaris platform:
  7973.  
  7974.   1. Download and install JDK 1.1.8. You can download JDK 1.1.8 from the
  7975.      JavaSoft web site.
  7976.   2. Set the environment variable JAVA_HOME to the location where you
  7977.      installed the JDK.
  7978.   3. Set your DB2 JDK11_PATH to the directory where you installed the JDK.
  7979.  
  7980.      To set the DB2 JDK11_PATH, use the command:
  7981.  
  7982.      DB2 UPDATE DBM CFG USING JDK11_PATH.
  7983.  
  7984.   ------------------------------------------------------------------------
  7985.  
  7986. 21.5 Known Problems and Limitations
  7987.  
  7988.    * SQL Procedures are not currently supported on Windows 98.
  7989.    * For Java stored procedures, the JAR ID, class names, and method names
  7990.      cannot contain non-ASCII characters.
  7991.    * On AS/400 the following V4R4 PTFs must be applied to OS/400 V4R4:
  7992.  
  7993.         - SF59674
  7994.         - SF59878
  7995.  
  7996.    * Stored procedure parameters with a character subtype of FOR MIXED DATA
  7997.      or FOR SBCS DATA are not shown in the source code in the editor pane
  7998.      when the stored procedure is restored from the database.
  7999.    * Currently, there is a problem when Java source code is retrieved from
  8000.      a database. At retrieval time, the comments in the code come out
  8001.      collapsed. This will affect users of the DB2 Stored Procedure Builder
  8002.      who are working in non-ASCII code pages, and whose clients and servers
  8003.      are on different code pages.
  8004.  
  8005.   ------------------------------------------------------------------------
  8006.  
  8007. 21.6 Using DB2 Stored Procedure Builder with Traditional Chinese Locale
  8008.  
  8009. There is a problem when using Java Development Kit or Java Runtime 1.1.8
  8010. with the Traditional Chinese locale. Graphical aspects of the Stored
  8011. Procedure Builder program (including menus, editor text, messages, and so
  8012. on) will not display properly. The solution is to make a change to the file
  8013. font.properties.zh_TW, which appears in one or both of the following
  8014. directories:
  8015.  
  8016.    sqllib/java/jdk/lib
  8017.    sqllib/java/jre/lib
  8018.  
  8019. Change:
  8020.  
  8021.    monospaced.0=\u7d30\u660e\u9ad4,CHINESEBIG5_CHARSET,NEED_CONVERTED
  8022.  
  8023. to:
  8024.  
  8025.    monospaced.0=Courier New,ANSI_CHARSET
  8026.  
  8027.   ------------------------------------------------------------------------
  8028.  
  8029. 21.7 UNIX (AIX, Sun Solaris, Linux) Installations and the Stored Procedure
  8030. Builder
  8031.  
  8032. For Sun Solaris installations, and if you are using a Java Development Kit
  8033. or Runtime other than the one installed on AIX with UDB, you must set the
  8034. environment variable JAVA_HOME to the path where Java is installed (that
  8035. is, to the directory containing the /bin and /lib directories). Stored
  8036. Procedure Builder is not supported on Linux, but can be used on supported
  8037. platforms to build and run stored procedures on DB2 UDB for Linux systems.
  8038.   ------------------------------------------------------------------------
  8039.  
  8040. DB2 Warehouse Manager
  8041.  
  8042.   ------------------------------------------------------------------------
  8043.  
  8044. 22.1 "Warehouse Manager" Should Be "DB2 Warehouse Manager"
  8045.  
  8046. All occurrences of the phrase "Warehouse Manager" in product screens and in
  8047. product documentation should read "DB2 Warehouse Manager".
  8048.   ------------------------------------------------------------------------
  8049.  
  8050. 22.2 DB2 Warehouse Manager Publications
  8051.  
  8052. 22.2.1 Information Catalog Manager Administration Guide
  8053.  
  8054.    * On page 1, Step 2 says:
  8055.  
  8056.         When you install either the DB2 Warehouse Manager
  8057.         or the DB2 OLAP Server, a default information catalog
  8058.         is created on DB2 Universal Database for Windows NT.
  8059.  
  8060.      The statement is incorrect. You must define a new information catalog.
  8061.      See the "Creating the Information Catalog" section for more
  8062.      information.
  8063.    * Information Catalog for the Web. When using an information catalog
  8064.      that is located on a DB2 UDB for OS/390 system, case insensitive
  8065.      search is not available. This is true for both a simple search and an
  8066.      advanced search. The online help does not explain that all searches on
  8067.      a DB2 UDB for OS/390 information catalog are case sensitive for a
  8068.      simple search. Moreover, all grouping category objects are expandable,
  8069.      even when there are no underlying objects.
  8070.    * On page 87, in the fourth paragraph, there is a statement that says:
  8071.  
  8072.         When you publish DB2 OLAP Integration Server metadata, a linked relationship
  8073.         is created between an information catalog "dimensions within a
  8074.         multi-dimensional database" object type and a table object
  8075.         in the OLAP Integration Server.
  8076.  
  8077.      The statement should say:
  8078.  
  8079.         When you publish DB2 OLAP Integration Server metadata, a linked relationship
  8080.         is created between an information catalog "dimensions within a
  8081.         multi-dimensional database object and a table object".
  8082.  
  8083.      This statement also appears in the second paragraph on page 143
  8084.      ("Metadata mappings between the Information Catalog Manager and OLAP
  8085.      Server" section).
  8086.    * Page 90 shows an example of using the flgnxoln command to publish OLAP
  8087.      server metadata to an information catalog. The example incorrectly
  8088.      shows the directory for the db2olap.ctl and db2olap.ff files as
  8089.      x:\Program Files\sqllib\logging. The directory name should be
  8090.      x:\Program Files\sqllib\exchange as described on page 87.
  8091.  
  8092. 22.2.2 Information Catalog Manager Programming Guide and Reference
  8093.  
  8094. 22.2.2.1 Information Catalog Manager Reason Codes
  8095.  
  8096. In Appendix D: Information Catalog Manager reason codes, some text might be
  8097. truncated at the far right column for the following reason codes: 31014,
  8098. 32727, 32728, 32729, 32730, 32735, 32736, 32737, 33000, 37507, 37511, and
  8099. 39206. If the text is truncated, please see the PDF version of the book to
  8100. view the complete column.
  8101.  
  8102. 22.2.3 Information Catalog Manager: Online Messages
  8103.  
  8104.    * Message FLG0260E. The second sentence of the message explanation
  8105.      should say:
  8106.  
  8107.         The error caused a rollback of the information catalog, which failed.
  8108.         The information catalog is not in stable condition, but no changes were made.
  8109.  
  8110.    * Message FLG0051E. The second bullet in the message explanation should
  8111.      say:
  8112.  
  8113.         The information catalog contains too many objects or object types.
  8114.  
  8115.      The administrator response should say:
  8116.  
  8117.         Delete some objects or object types from the current
  8118.         information catalog using the import function.
  8119.  
  8120.    * Message FLG0003E. The message explanation should say:
  8121.  
  8122.         The information catalog must be registered before you can use it.
  8123.        The information catalog might not have been registered correctly.
  8124.  
  8125.    * Message FLG0372E. The first sentence of the message explanation should
  8126.      say:
  8127.  
  8128.         The ATTACHMENT-IND value was ignored for an object
  8129.         because that object is an Attachment object.
  8130.  
  8131. 22.2.4 Information Catalog Manager: Online Help
  8132.  
  8133. Information Catalog window: The online help for the Selected menu Open item
  8134. incorrectly says "Opens the selected object". It should say "Opens the
  8135. Define Search window".
  8136.  
  8137. 22.2.5 Query Patroller Administration Guide
  8138.  
  8139. 22.2.5.1 DB2 Query Patroller Client is a Separate Component
  8140.  
  8141. The DB2 Query Patroller client is a separate component that is not part of
  8142. the DB2 Administration client. This means that it is not installed during
  8143. the installation of the DB2 Administration Client, as indicated in the
  8144. Query Patroller Installation Guide. Instead, the Query Patroller client
  8145. must be installed separately.
  8146.  
  8147. 22.2.5.2 Manual Installation of Query Patroller on AIX and Solaris
  8148.  
  8149. To install DB2 Query Patroller using installp or smit, perform the steps
  8150. listed below. Refer to Manual Installation Commands for detailed syntax and
  8151. parameter information.
  8152.  
  8153.   1. Set up or create a DB2 UDB EEE or EE instance to use with DB2 Query
  8154.      Patroller.
  8155.   2. Add an entry in the etc/services file to be used with the DB2 Query
  8156.      Patroller server. For example, dqp1 55000/TCP.
  8157.   3. Create a user named iwm if one does not exist already.
  8158.   4. Mount the CD-ROM.
  8159.   5. Go to the /cdrom/db2 directory.
  8160.   6.
  8161.         o Agent
  8162.             a. If you are installing a Query Patroller Agent on AIX, use
  8163.                smit to install the following filesets:
  8164.                  i. db2_07_01.dqp.cln
  8165.                 ii. db2_07_01.mlic
  8166.                iii. db2_07_01.dqp.agt
  8167.                 Note:These filesets must be installed in the above order.
  8168.                      If you are not using smit to install the filesets,
  8169.                      ensure that this order is respected. Furthermore, if
  8170.                      the filesets db2_07_01.cj and db2_07_01.jdbc were not
  8171.                      installed when you set up your DB2 EE or EEE
  8172.                      instance, you need to install these prior to starting
  8173.                      the installation of the Query Patroller Agent.
  8174.             b. If you are installing on Solaris, use pkgadd to install the
  8175.                following packages for the DB2 Query Patroller server:
  8176.                  i. db2qpc71
  8177.                 ii. db2mlic71
  8178.                iii. db2dqpa71
  8179.                 Note:These filesets must be installed in the order given.
  8180.                      Furthermore, if the filesets db2cj71 and db2jdbc71
  8181.                      were not installed when you set up your DB2 UDB EE or
  8182.                      EEE instance, you need to install these prior to
  8183.                      starting the installation of the Query Patroller
  8184.                      Agent.
  8185.         o Server
  8186.             a. To install a DB2 Query Patroller Server on AIX install the
  8187.                fileset db2_07_01.dqp.agt and its prerequisite filesets
  8188.                described above. Then, install the db2_07_01.dqp.srv
  8189.                fileset.
  8190.             b. To install a DB2 Query Patroller Server on Solaris install
  8191.                db2dqpa71 and its prerequisite packages described above.
  8192.                Then, install the db2dqps71 package.
  8193.  
  8194. If you are performing a migration from Version 6 to Version 7.1, refer to
  8195. the DB2 Query Patroller Installation Guide.
  8196.  
  8197. If you have installed the server, set up the license as follows:
  8198.  
  8199.   1. Add the user iwm to the primary group for the DB2 UDB EE or EEE
  8200.      instance owner. This will give the iwm user SYSADM authority over the
  8201.      instance.
  8202.   2. Add the following lines to the .profile file of the iwm user. The
  8203.      INSTHOME variable is the home directory of the DB2 Query Patroller
  8204.      server instance.
  8205.  
  8206.      . INSTHOME/sqllib/db2profile
  8207.       Note:If a C shell is being used, add source /sqllib/db2cshrc to the
  8208.            .login file.
  8209.   3. Log on as root, and run the following command:
  8210.  
  8211.      The Query Patroller Server must be set up on either the DB2 UDB EE or
  8212.      the DB2 UDB EEE main node where the instance was created. For Query
  8213.      Patroller Server installation:
  8214.        a. Enter the following command:
  8215.  
  8216.           dqpcrt -s -p port_name instance_name
  8217.  
  8218.           The port_name variable is the port name you used in Step 2.
  8219.           instance_name is the name of the DB2 UDB EE or EEE instance.
  8220.           Refer to Manual Installation Commands for detailed syntax and
  8221.           parameter information.
  8222.            Note:To remove a dqp instance you can run the dqpdrop
  8223.                 instance_name command. You can only run this command on
  8224.                 the node where the server is set up.
  8225.        b. Log on as the instance name. Run the following command:
  8226.  
  8227.           dqpsetup -D database_name -g nodegroup_name -n node_number -t
  8228.           tablespace_name -r result_tablespace_name -l tablespace_path
  8229.  
  8230.           Refer to Manual Installation Commands for detailed syntax and
  8231.           parameter information.
  8232.  
  8233.      For Query Patroller Agent installation, enter:
  8234.  
  8235.      dqpcrt -a -p port_name instance_name
  8236.  
  8237.      The port_name variable is the port name you used in Step 2.
  8238.      instance_name is the name of the DB2 UDB EE or EEE instance. Refer to
  8239.      Manual Installation Commands for detailed syntax and parameter
  8240.      information.
  8241.   4. Use the db2licm command to register DB2 Query Patroller. See the DB2
  8242.      Command Reference for further information.
  8243.  
  8244. Creating the Query Patroller Schema and Binding the Application Bind Files
  8245.  
  8246. To manually create the DB2 Query Patroller schema and bind all the
  8247. application bind files perform the following steps:
  8248.  
  8249.   1. Create the DB2 table space that will be used for the DB2 Query
  8250.      Patroller schema. This table space must be created on one nodegroup.
  8251.   2. Use the program db2_qp_schema in the DB2 bin directory to create the
  8252.      schema. This program will use the script file iwm_schema.sql as input.
  8253.      db2_qp_schema supports either syntax:
  8254.  
  8255.      db2_qp_schema <schema_input_filename> <database_alias> <user>
  8256.      <password> <querypatroller_tablespace>
  8257.  
  8258.      db2_qp_schema <schema_input_filename> <database_alias>
  8259.      <querypatroller_tablespace>
  8260.   3. Bind the DB2 Query Patroller server bind files using the bind file
  8261.      list file db2qp.lst in the DB2 bnd directory. After connecting to the
  8262.      database, issue the DB2 CLP command:
  8263.  
  8264.      db2 bind @db2qp.lst blocking all grant public
  8265.   4. Run the following command:
  8266.  
  8267.      db2 bind iwmsx001.bnd isolation ur blocking all grant public insert
  8268.      buf datetime iso
  8269.   5. Bind the DB2 Query Patroller stored procedure bind files using the
  8270.      bind file list file db2qp_sp.lst in the DB2 bnd directory. After
  8271.      connecting to the database, issue the DB2 CLP command:
  8272.  
  8273.      db2 bind @db2qp_sp.lst blocking all
  8274.   6. Create a table space for the DB2 Query Patroller result tables.
  8275.  
  8276. Manual Installation Commands
  8277.  
  8278. dqpcrt
  8279.  
  8280. This command is used to allocate a node on the DB2 UDB EE or DB2 UDB EEE
  8281. system as a DB2 Query Patroller server. The port name to be used with the
  8282. DB2 Query Patroller instance, and the name of the DB2 UDB EE or EEE
  8283. instance designated as the DB2 Query Patroller server, are required
  8284. parameters. Syntax:
  8285.  
  8286. >>-dpqcrt----+--s---p--port_name instance_name--+--------------><
  8287.              +--a---p--port_name instance_name--+
  8288.              '--h-------------------------------'
  8289.  
  8290.  
  8291. Table 5. dqpcrt Command Parameters
  8292.  Parameter                            Description
  8293.  -s                                   Used to create a DB2 Query Patroller
  8294.                                       server on the named DB2 UDB EE or
  8295.                                       EEE instance.
  8296.  -a                                   Used to create a DB2 Query Patroller
  8297.                                       agent on the named DB2 UDB EE or EEE
  8298.                                       instance.
  8299.  port_name                            Identifies the port name to be used
  8300.                                       with the DB2 Query Patroller server
  8301.                                       or agent.
  8302.  instance_name                        Identifies the name of the DB2 UDB
  8303.                                       EE or EEE instance that is to
  8304.                                       designated as a DB2 Query Patroller
  8305.                                       server instance.
  8306.  -h                                   Displays command usage information.
  8307.  
  8308. dqpsetup
  8309.  
  8310. This command is used to set the parameters for the DB2 Query Patroller
  8311. server. The size_DMS parameter and the -o flag are optional. The -o flag
  8312. can be used to remove schema objects from a previously installed version of
  8313. this product. Syntax:
  8314.  
  8315. >>-dqpsetup----+-| setup parameters |--+-----------------------><
  8316.                '--h--------------------'
  8317.  
  8318. setup parameters
  8319.  
  8320. |----d--database_name-----g--nodegroup_group-------------------->
  8321.  
  8322. >------n--node_number-----t--tablespace_name-------------------->
  8323.  
  8324. >------r--result_tablespace_name-----l--tablespace_path--------->
  8325.  
  8326. >-----+---------------+---+-----+---instance_name---------------|
  8327.       '--s--size_DMS--'   '--o--'
  8328.  
  8329.  
  8330. Table 6. dqpsetup Command Parameters
  8331.  Parameter                            Description
  8332.  -d database_name                     Name of the database to be used with
  8333.                                       the DB2 Query Patroller server.
  8334.  -g nodegroup_name                    Name of the nodegroup that contains
  8335.                                       the table space for the DB2 Query
  8336.                                       Patroller server.
  8337.  -n node_number                       Node number of a single node where
  8338.                                       the nodegroup is defined.
  8339.  -t tablespace_name                   Name of the DB2 Query Patroller
  8340.                                       table space. The default type is an
  8341.                                       SMS table space.
  8342.  -r result_tablespace_name            Name of the Result Table Space to be
  8343.                                       used
  8344.  -l tablespace_path                   Full path name of the table space.
  8345.  -s size_DMS                          Size of the DMS table space. Use the
  8346.                                       -s flag to specify the size for the
  8347.                                       DMS table space. This parameter is
  8348.                                       optional and only specified if a DMS
  8349.                                       table space is to be used. The
  8350.                                       default is an SMS table space.
  8351.  -o                                   Overwrites any existing DB2 Query
  8352.                                       Patroller schema objects. This
  8353.                                       parameter is optional.
  8354.  instance_name                        Name of the DB2 UDB EE or EEE
  8355.                                       instance that is to be designated as
  8356.                                       a DB2 Query Patroller server.
  8357.  -h                                   Displays command usage information.
  8358.  
  8359. dqplist
  8360.  
  8361. This command is used to find the name of the DB2 UDB EE or the DB2 UDB EEE
  8362. instance being used as the DB2 Query Patroller server. It can only be run
  8363. from the node where the DB2 Query Patroller server was created. Syntax:
  8364.  
  8365. >>-dpqlist----+-----+------------------------------------------><
  8366.               '--h--'
  8367.  
  8368.  
  8369. The -h flag displays command usage information.
  8370.  
  8371. dqpdrop
  8372.  
  8373. This command is used to drop an existing DB2 Query Patroller server
  8374. instance. This command can only be run from the node where the DB2 Query
  8375. Patroller server was created. Syntax:
  8376.  
  8377. >>-dpqdrop----+-instance_name--+-------------------------------><
  8378.               '--h-------------'
  8379.  
  8380.  
  8381. The -h flag provides usage information. The instance_name parameter is the
  8382. name of the DB2 Query Patroller instance that you want to drop.
  8383.  
  8384. 22.2.5.3 Enabling Query Management
  8385.  
  8386. In the "Getting Started" chapter under "Enabling Query Management", the
  8387. text should read:
  8388.  
  8389.    You must be the owner of the data base, or you must have SYSADM,
  8390.    SYSCTRL, or SYSMAINT authority to set database configuration parameters.
  8391.  
  8392. 22.2.5.4 Starting Query Administrator
  8393.  
  8394. In the "Using QueryAdministrator to Administer DB2 Query Patroller"
  8395. chapter, instructions are provided for starting QueryAdministrator from the
  8396. Start menu on Windows. The first step provides the following text:
  8397.  
  8398.    If you are using Windows, you can select DB2
  8399.    Query Patroller --> QueryAdministrator
  8400.    from the IBM DB2 program group.
  8401.  
  8402. The text should read:
  8403.  
  8404.    DB2 Query Patroller --> QueryAdmin.
  8405.  
  8406. 22.2.5.5 User Administration
  8407.  
  8408. In the "User Administration" section of the "Using QueryAdministrator to
  8409. Administer DB2 Query Patroller" chapter, the definition for the Maximum
  8410. Elapsed Time parameter indicates that if the value is set to 0 or -1, the
  8411. query will always run to completion. This parameter cannot be set to a
  8412. negative value. The text should indicate that if the value is set to 0, the
  8413. query will always run to completion.
  8414.  
  8415. The Max Queries parameter specifies the maximum number of jobs that the DB2
  8416. Query Patroller will run simultaneously. Max Queries must be an integer
  8417. within the range of 0 to 32767.
  8418.  
  8419. 22.2.5.6 Creating a Job Queue
  8420.  
  8421. In the "Job Queue Administration" section of the "Using QueryAdministrator
  8422. to Administer DB2 Query Patroller" chapter, the screen capture in the steps
  8423. for "Creating a Job Queue" should be displayed after the second step. The
  8424. Information about new Job Queue window opens once you click New on the Job
  8425. Queue Administration page of the QueryAdministrator tool.
  8426.  
  8427. References to the Job Queues page or the Job Queues tab should read Job
  8428. Queue Administration page and Job Queue Administration tab, respectively.
  8429.  
  8430. 22.2.5.7 Using the Command Line Interface
  8431.  
  8432. For a user with User authority on the DB2 Query Patroller system to submit
  8433. a query and have a result table created, the user may require CREATETAB
  8434. authority on the database. The user does not require CREATETAB authority on
  8435. the database if the DQP_RES_TBLSPC profile variable is left unset, or if
  8436. the DQP_RES_TBLSPC profile variable is set to the name of the default table
  8437. space. The creation of the result tables will succeed in this case because
  8438. users have the authority to create tables in the default table space.
  8439.  
  8440. 22.2.5.8 Query Enabler Notes
  8441.  
  8442.    * When using third-party query tools that use a keyset cursor, queries
  8443.      will not be intercepted. In order for Query Enabler to intercept these
  8444.      queries, you must modify the db2cli.ini file to include:
  8445.  
  8446.         [common]
  8447.         DisableKeySetCursor=1
  8448.  
  8449.    * For AIX clients, please ensure that the environment variable LIBPATH
  8450.      is not set. Library libXext.a, shipped with the JDK, is not compatible
  8451.      with the library in the /usr/lib/X11 subdirectory. This will cause
  8452.      problems with the Query Enabler GUI.
  8453.  
  8454.   ------------------------------------------------------------------------
  8455.  
  8456. Information Center
  8457.  
  8458.   ------------------------------------------------------------------------
  8459.  
  8460. 23.1 "Invalid shortcut" Error on the Windows Operating System
  8461.  
  8462. When using the Information Center, you may encounter an error like:
  8463. "Invalid shortcut". If you have recently installed a new Web browser or a
  8464. new version of a Web browser, ensure that HTML and HTM documents are
  8465. associated with the correct browser. See the Windows Help topic "To change
  8466. which program starts when you open a file".
  8467.   ------------------------------------------------------------------------
  8468.  
  8469. OLAP Starter Kit
  8470.  
  8471.   ------------------------------------------------------------------------
  8472.  
  8473. 24.1 Completing the DB2 OLAP Starter Kit Setup on AIX and Solaris
  8474.  
  8475. The DB2 OLAP Starter Kit install follows the basic procedures of the DB2
  8476. UDB install for UNIX. The product files are laid down by the installer to a
  8477. system directory owned by root user: (for AIX: /usr/lpp/db2_07_01; for
  8478. Solaris: /opt/IBMdb2/V7.1).
  8479.  
  8480. Then during the instance creation phase, two DB2 OLAP directories will be
  8481. created (essbase and is) within the instance user's home directory under
  8482. sqllib. Only one instance of OLAP server can run on a machine at a time. To
  8483. complete the set up, user must manually set the is/bin directory so that it
  8484. is not a link to the is/bin directory in the system. It should link to a
  8485. writable directory within the instance's home directory.
  8486.  
  8487. To complete the setup for AIX, logon using the instance ID, change to the
  8488. sqllib/is directory, then enter the following:
  8489.  
  8490. rm bin
  8491. mkdir bin
  8492. cd bin
  8493. ln -s /usr/lpp/db2_07_01/is/bin/ismesg.mdb ismesg.mdb
  8494. ln -s /usr/lpp/db2_07_01/is/bin/olapicmd olapicmd
  8495. ln -s /usr/lpp/db2_07_01/is/bin/olapisvr olapisvr
  8496. ln -s /usr/lpp/db2_07_01/is/bin/essbase.mdb essbase.mdb
  8497. ln -s /usr/lpp/db2_07_01/is/bin/libolapams.a libolapams.a
  8498.  
  8499. To complete the setup for Solaris, logon using the instance ID, change to
  8500. the sqllib/is directory, then enter the following:
  8501.  
  8502. rm bin
  8503. mkdir bin
  8504. cd bin
  8505. ln -s /opt/IBMdb2/V7.1/is/bin/ismesg.mdb ismesg.mdb
  8506. ln -s /opt/IBMdb2/V7.1/is/bin/olapicmd olapicmd
  8507. ln -s /opt/IBMdb2/V7.1/is/bin/olapisvr olapisvr
  8508. ln -s /opt/IBMdb2/V7.1/is/bin/essbase.mdb essbase.mdb
  8509. ln -s /opt/IBMdb2/V7.1/is/bin/libolapams.so libolapams.so
  8510.  
  8511.   ------------------------------------------------------------------------
  8512.  
  8513. 24.2 Logging in from OLAP Integration Server Desktop
  8514.  
  8515. To use DB2 OLAP Integration Server Desktop to create OLAP models and
  8516. metaoutlines, you must connect the client software to two servers: DB2 OLAP
  8517. Integration Server and DB2 OLAP Server. The login dialog prompts you for
  8518. the necessary information for the Desktop to connect to these two servers.
  8519. On the left side of the dialog, enter information about DB2 OLAP
  8520. Integration Server. On the right side, enter information about DB2 OLAP
  8521. Server.
  8522.  
  8523. To connect to DB2 OLAP Integration Server:
  8524.  
  8525.    * Server: Enter the host name or IP address of your Integration Server.
  8526.      If you have installed the Integration Server on the same workstation
  8527.      as your desktop, then typical values are "localhost" or "127.0.0.1".
  8528.    * OLAP Metadata Catalog: When you connect to OLAP Integration Server you
  8529.      must also specify a Metadata Catalog. OLAP Integration Server stores
  8530.      information about the OLAP models and metaoutlines you create in a
  8531.      relational database known as the Metadata Catalog. This relational
  8532.      database must be registered for ODBC. The catalog database contains a
  8533.      special set of relational tables that OLAP Integration Server
  8534.      recognizes. On the login dialog, you can specify an Integration Server
  8535.      and then expand the pull-down menu for the OLAP Metadata Catalog field
  8536.      to see a list of the ODBC data source names known to the OLAP
  8537.      Integration Server. Choose an ODBC database that contains the metadata
  8538.      catalog tables.
  8539.    * User Name and Password: OLAP Integration Server will connect to the
  8540.      Metadata Catalog using the User name and password that you specify on
  8541.      this panel. This is a login account that exists on the server (not the
  8542.      client, unless the server and client are running on the same machine).
  8543.      The user name must be the user who created the OLAP Metadata Catalog.
  8544.      Otherwise, OLAP Integration Server will not find the relational tables
  8545.      in the catalog database because the table schema names are different.
  8546.  
  8547. The DB2 OLAP Server information is optional, so the input fields on the
  8548. right side of the Login dialog may be left blank. However, some operations
  8549. in the Desktop and the Administration Manager require that you connect to a
  8550. DB2 OLAP Server. If you leave these fields blank, then the Desktop will
  8551. display the Login dialog again if the Integration Server needs to connect
  8552. to DB2 OLAP Server in order to complete an operation that you requested. It
  8553. is recommended that you always fill in the DB2 OLAP Server fields on the
  8554. Login dialog.
  8555.  
  8556. To connect to DB2 OLAP Server:
  8557.  
  8558.    * Server: Enter the host name or IP address of your DB2 OLAP Server. If
  8559.      you are running the OLAP Starter Kit, then your OLAP Server and
  8560.      Integration Server are the same. If the Integration Server and OLAP
  8561.      Server are installed on different hosts, then enter the host name or
  8562.      an IP address that is defined on OLAP Integration Server.
  8563.    * User Name and Password: OLAP Integration Server will connect to DB2
  8564.      OLAP Server using the user name and password that you specify on this
  8565.      panel. This user name and password must already be defined to the DB2
  8566.      OLAP Server. OLAP Server manages its own user names and passwords
  8567.      separately from the host operating system.
  8568.  
  8569. 24.2.1 Starter Kit Login Example
  8570.  
  8571. The following example assumes that you created the OLAP Sample, and you
  8572. selected db2admin as your administrator user ID, and password as your
  8573. administrator password during DB2 UDB 7.1 installation.
  8574.  
  8575.    * For OLAP Integration Server: Server is localhost, OLAP Metadata
  8576.      Catalog is TBC_MD, User Name is db2admin, Password is password
  8577.    * For DB2 OLAP Server: Server is localhost, User Name is db2admin
  8578.  
  8579.   ------------------------------------------------------------------------
  8580.  
  8581. 24.3 Manually creating and configuring the sample databases for OLAP
  8582. Integration Server
  8583.  
  8584. The sample databases are created automatically when you install OLAP
  8585. Integration Server. The following instructions explain how to setup the
  8586. Catalog and Sample databases manually, if necessary.
  8587.  
  8588.   1. In Windows, open the Command Center window by clicking Start
  8589.      -->Programs-->DB2 for Windows NT--> Command Window.
  8590.   2. Create the production catalog database:
  8591.        a. Type db2 create db OLAP_CAT
  8592.        b. Type db2 connect to OLAP_CAT
  8593.   3. Create tables in the database:
  8594.        a. Navigate to \SQLLIB\IS\ocscript\ocdb2.sql
  8595.        b. Type db2 -tf ocdb2.sql
  8596.   4. Create the sample source database:
  8597.        a. Type db2 connect reset
  8598.        b. Type db2 create db TBC
  8599.        c. Type db2 connect to TBC
  8600.   5. Create tables in the database:
  8601.        a. Navigate to \SQLLIB\IS\samples\
  8602.        b. Copy tbcdb2.sql to \SQLLIB\samples\db2sampl\tbc
  8603.        c. Copy lddb2.sql to \SQLLIB\samples\db2sampl\tbc
  8604.        d. Navigate to \SQLLIB\samples\db2sampl\tbc
  8605.        e. Type db2 -tf tbcdb2.sql
  8606.        f. Type db2 - vf lddb2.sqlto load sample source data into the
  8607.           tables.
  8608.   6. Create the sample catalog database:
  8609.        a. Type db2 connect reset
  8610.        b. Type db2 create db TBC_MD
  8611.        c. Type db2 connect to TBC_MD
  8612.   7. Create tables in the database:
  8613.        a. Navigate to \SQLLIB\IS\samples\tbc_md
  8614.        b. Copy ocdb2.sql to \SQLLIB\samples\db2sampl\tbcmd
  8615.        c. Copy lcdb2.sql to \SQLLIB\samples\db2sampl\tbcmd
  8616.        d. Navigate to \SQLLIB\samples\db2sampl\tbcmd
  8617.        e. Type db2 -tf ocdb2.sql
  8618.        f. Type db2 -vf lcdb2.sql to load sample metadata into the tables.
  8619.   8. Configure ODBC for TBC_MD, TBC, AND OLAP_CAT:
  8620.        a. Open the NT control panel by clicking Start-->Settings-->Control
  8621.           Panel
  8622.        b. Select ODBC (or ODBC data sources) from the list.
  8623.        c. Select the System DSM tab.
  8624.        d. Click Add. The Create New Data Source window opens.
  8625.        e. Select IBM DB2 ODBC DRIVER from the list.
  8626.        f. Click Finish. The ODBC IBM D2 Driver - Add window opens.
  8627.        g. Type the name of the data source (OLAP_CAT) in the Data source
  8628.           name field.
  8629.        h. Type the alias name in the Database alias field, or click the
  8630.           down arrow and select OLAP_CAT from the list.
  8631.        i. Click OK.
  8632.        j. Repeat these steps for the TBC_MD and the TBC databases.
  8633.  
  8634.   ------------------------------------------------------------------------
  8635.  
  8636. 24.4 Known problems and limitations
  8637.  
  8638. This section lists known limitations for DB2 OLAP Starter Kit, DB2 OLAP
  8639. Desktop client, Spreadsheet clients, and DB2 OLAP Integration Server
  8640.  
  8641. 24.4.1 DB2 OLAP Starter Kit
  8642.  
  8643.    * The currently supported platforms for the DB2 OLAP Starter Kit are
  8644.      Windows, AIX, and Sun Solaris Operating Environment.
  8645.    * The OLAP Starter Kit includes four sample DB2 OLAP Server applications
  8646.      named Demo, Sampeast, Sample, and Samppart. Each application includes
  8647.      one or more databases. No data is loaded into any of these databases.
  8648.      You must upgrade to the DB2 OLAP Server full product to be able to
  8649.      load data into these databases.
  8650.    * The incorrect help panels are displayed for:
  8651.         o The Query Designer Row-->Measures-->Profit window.
  8652.         o The Cascade Options window.
  8653.         o The Subset Dialog window.
  8654.         o F1 help does not bring up the correct help screen.
  8655.    * Some words or characters are not translated or are translated
  8656.      incorrectly for the following windows:
  8657.         o The Output Options window uses the English words "Default" and
  8658.           "Long Names".
  8659.         o Some Application Manager windows and error messages are localized
  8660.           instead of in English.
  8661.         o In combined.mtx messages, the variable %s is resolved in English.
  8662.         o In the Query Designer, the NLV translated words for Ascending and
  8663.           Descending do not appear when you expand Data Sorting in the left
  8664.           pane.
  8665.         o In Database Object Names, some NLV characters are incorrect.
  8666.         o The log files contain some incorrect NLV characters.
  8667.         o In Application Manager Outline, Japanese characters are
  8668.           incorrect.
  8669.    * The Application Manager closes when you select
  8670.      Database-->Setting-->Storage-->OK. You receive the following error
  8671.      message: Essadmin.exe Application error "0x004fffce", refer to memory
  8672.      "0x4ca7b075". Memory cannot be "read ". Press OK to finish this
  8673.      application. Press Cancel to debug application.
  8674.    * You must install Adobe Acrobat in order to use the tutorial and online
  8675.      help.
  8676.    * There is no migration path from DB2 OLAP server to OLAP Starter Kit.
  8677.      OLAP Starter Kit is targeted for first time OLAP users.
  8678.  
  8679. 24.4.2 DB2 OLAP Desktop Client
  8680.  
  8681.    * OLAP Integration Server requires that an accounts dimension with at
  8682.      least one measure be defined in the OLAP Model. If the OLAP model that
  8683.      you use to create a metaoutline does not contain an accounts dimension
  8684.      with one or more measures, and you use the Database Measures tab to
  8685.      create a single measure in the OLAP metaoutline, you can save the
  8686.      metaoutline without receiving an error, but a subsequent member load
  8687.      will fail.
  8688.    * DB2 OLAP Integration Server occasionally displays Essbase error
  8689.      numbers without the corresponding error message. WORKAROUND: View the
  8690.      message.txt file located in the ISHOME/esslib directory or check the
  8691.      OLAP Integration Server log file.
  8692.    * DB2 OLAP Integration Server Desktop does not support large fonts. If
  8693.      client-user computer resolution is set to 1024 x 768 pixels or less
  8694.      with large fonts only, buttons in the OLAP Integration Server Desktop
  8695.      Login and Welcome windows are truncated, and usage is restricted.
  8696.      WORKAROUND: On the Windows desktop, select Start--> Settings-->
  8697.      Control Panel -->Display--> Settings. Select Small Fonts from the Font
  8698.      Size drop-down list.
  8699.    * Process buttons in the OLAP Integration Server Desktop OLAP Model
  8700.      Assistant and OLAP Metaoutline Assistant tabs do not display properly
  8701.      without a color palette of 65536 colors. WORKAROUND: To set the
  8702.      optimum color palette, on the Windows Desktop, select Start-->
  8703.      Settings--> Control Panel -->Display--> Settings. Select 65536 from
  8704.      the Color Palette drop-down list.
  8705.    * Windows. If there is a date/time transformation and filter on the same
  8706.      member, then DB2 server crashes on Windows NT. This problem does not
  8707.      occur on DB2 servers running on UNIX.
  8708.    * OLAP Integration Server Desktop only supports table names from 1 to 30
  8709.      characters in length.
  8710.    * The Dimension renaming function reacts differently depending on the
  8711.      procedure used. You can use names that contain spaces in the Rename
  8712.      window on a dimension table. You cannot use names that contain spaces
  8713.      in the Rename window of Dimension Properties. WORKAROUND: Do not imbed
  8714.      spaces in dimension names.
  8715.    * In some environments, the Metaoutline Properties window does not open
  8716.      unless you save the metaoutline before trying to open the window.
  8717.    * If your operating system file system does not allow names that are
  8718.      longer than eight characters, the member load and view sample
  8719.      functions could fail with error number 2001007.
  8720.  
  8721.      The workaround is to start DB2 OLAP Integration Server in a directory
  8722.      that is in a file system that supports longer names.
  8723.    * An accounts dimension should not be deleted from a metaoutline after
  8724.      the metaoutline has been created. If you need to change the measures
  8725.      in an accounts dimension, delete all existing measures in the
  8726.      metaoutline and then create new measures.
  8727.    * The View Table Data option in the OLAP Model standard user interface,
  8728.      which enables viewing of relational source table data in the left
  8729.      frame of the OLAP Model main window, has a limit of 1000 rows. Data
  8730.      source rows are displayed in 100-row increments per window by clicking
  8731.      the Next button. The total number of rows retrieved for display cannot
  8732.      exceed the first 1000 rows.
  8733.  
  8734. 24.4.3 Spreadsheet Clients
  8735.  
  8736.    * If you use NLV characters in a Lotus 123 spreadsheet name, or use NLV
  8737.      characters in the spreadsheet, you will be unable to connect, retrieve
  8738.      data, or execute any other function from the spreadsheet.
  8739.    * Rapid double clicking in a cell in Lotus 123 spreadsheet add-in can
  8740.      cause the following error message: Microsoft Visual C++ Runtime error
  8741.      Program c:\lotus\123\123w.exe abnormal program termination.
  8742.      WORKAROUND: Click slowly to expand the cells one at a time.
  8743.    * In Lotus 123, selecting two rows at same time and then selecting
  8744.      Essbase - Keep only or Remove only, causes only one column to be kept
  8745.      or removed.
  8746.    * In Lotus 123, an error occurs in the Essbase calculation when several
  8747.      rows are selected.
  8748.    * AIX. The sample applications do not contain data. You are able to use
  8749.      spreadsheet programs to retrieve the database information, there will
  8750.      be no values displayed other than the dimension and member names. Some
  8751.      values are indicated as missing.
  8752.    * If a down arrow is pressed in the Linked Objects browser, spreadsheets
  8753.      crash with a DR Watson trap error. The correct error message cannot be
  8754.      displayed.
  8755.    * In Lotus 123, if no workbook is open, an error message should be
  8756.      displayed when you click on an OLAP Server menu item. Instead no
  8757.      message is displayed, and you receive two warning beeps.
  8758.    * In Excel, double clicking formulas in the spreadsheet causes formulas
  8759.      to be deleted from the spreadsheet. Specifying Retain on Zooms does
  8760.      not prevent this error.
  8761.  
  8762. 24.4.4 DB2 OLAP Integration Server
  8763.  
  8764.    * Currently, only English is supported for scheduling functions. In some
  8765.      non-English environments, using the Tool-->Scheduler function in the
  8766.      OLAP Metaoutline standard user interface on NT client computers causes
  8767.      the OLAP Integration Server to crash. The crash occurs because the NT
  8768.      Scheduler stores scheduling information in language- specific format,
  8769.      and the OLAP Integration Server is unable to parse the information.
  8770.    * DB2 OLAP Integration Server does not support the GRAPHIC, VARGRAPHIC
  8771.      and LONG VARGRAPHIC data type during View Table operations in the OLAP
  8772.      Model standard user interface. Relational tables containing data with
  8773.      the GRAPHIC, VARGRAPHIC or LONG VARGRAPHIC data type appear blank when
  8774.      View Table is selected in the OLAP model. WORKAROUND: Make the
  8775.      following addition to the DB2CLI.INI file: [SAMPLE] PATCH1=65536 <
  8776.      PATCH2=7 < DBALIAS=SAMPLE
  8777.    * If OLAP Integration Server encounters a NULL value during a data load,
  8778.      it automatically loads the data into the parent member of the NULL.
  8779.      However, if the NULL is at Generation 2, OLAP Integration Server
  8780.      cannot load the data to the parent member because the parent member is
  8781.      the dimension level member. In this case, OLAP Integration Server
  8782.      records an error in the log file. WORKAROUND: Do not include NULLs at
  8783.      Generation 2.
  8784.    * OLAP Integration Server does not support Relational Database
  8785.      Management System (RDBMS) column names that have imbedded blanks. If
  8786.      OLAP Integration Server encounters blanks, it generates invalid SQL
  8787.      statements.
  8788.    * OLAP Integration Server does not read some double-byte character set
  8789.      (DBCS) characters, such as minus (-) signs, when retrieving relational
  8790.      data source values during a preview operation. If OLAP Integration
  8791.      Server encounters such characters during a preview operation, an
  8792.      "Unexpected Error at Condition" error message is displayed.
  8793.    * Using the DBCS minus sign (-) character in a column concatenation in
  8794.      an OLAP model generates a syntax error during member loads.
  8795.      WORKAROUND: When performing transformations on columns in an OLAP
  8796.      model, do not use a minus sign, a hyphen, or a dash (-) character in
  8797.      the column name. Do not use relational tables or relational table
  8798.      columns that include a minus sign, a hyphen or a dash (-) character.
  8799.    * AIX. When you start the sample application, you will see a message
  8800.      indicating that the server does not have the currency conversion
  8801.      option.
  8802.    * Windows: Two sample catalog databases are created during installation
  8803.      for use with the DB2 OLAP Integration Server. However, if you try to
  8804.      login into one of these databases from the DB2 OLAP Integration Server
  8805.      Desktop, you receive a CLI error message 'Invalid connection string
  8806.      attribute'. WORKAROUND: Update the db2cli.ini file located in the
  8807.      sqllib directory, following these steps:
  8808.        1. Make a backup copy of db2cli.ini.
  8809.        2. Delete 'DATABASE=OLAPCATP' and 'DATABASE=OLAPCATD' from each
  8810.           stanza.
  8811.  
  8812.           [OLAPCATP]
  8813.           DATABASE=OLAPCATP <----------------------------------(delete)
  8814.           DESCRIPTION=OLAPCATP
  8815.           DBALIAS=OLAPCATP
  8816.  
  8817.  
  8818.           [OLAPCATD]
  8819.           DATABASE=OLAPCATD <---------------------------------(delete)
  8820.           DESCRIPTION=OLAPCATD
  8821.           DBALIAS=OLAPCATD
  8822.  
  8823.    * Hyperion Integration Server does not add a metaoutline filter
  8824.      description in the OLAP Metaoutline Assistant.
  8825.    * Use the following workaround to avoid a scheduling problem in the AIX
  8826.      English version environment.
  8827.  
  8828.      For all new AIX servers, add <username> to the
  8829.      /var/adm/cron/cron.allow command to allow scheduling for the specified
  8830.      user. Create an empty file named <username> for the specified user and
  8831.      provide permission equal to 555 in the var/spool/crontabs directory. A
  8832.      similar setup is required for other UNIX environments; for details,
  8833.      see the man page for crontab.
  8834.    * A DBCS space is not recognized as a DBCS space by OLAP Integration
  8835.      Server. The following transformation space settings do not work for
  8836.      source data columns that contain a DBCS space:
  8837.         o Dropping leading/trailing spaces
  8838.         o Converting spaces to underscores
  8839.         o Concatenating
  8840.    * OLAP Integration Server cannot save a dimension description in the
  8841.      OLAP Model Assistant if the description contains DBCS characters.
  8842.    * OLAP Integration Server does not support pass-through (database
  8843.      specific) transformations using SQL functions. Specifying a built-in
  8844.      RDBMS function, such as Substring, or Left, causes OLAP Integration
  8845.      Server to generate invalid SQL.
  8846.    * Creating hierarchies in OLAP Model Assistant causes OLAP Integration
  8847.      Server to create an empty folder in the Hyperion\IS\Loadinfo folder on
  8848.      the client. The empty folder contains an empty .txt file. Empty
  8849.      folders and files are also created when you access either a View
  8850.      Sample from the Edit Hierarchy dialog box, or the Preview Results
  8851.      dialog box from the Edit OLAP Model dialog box in the standard user
  8852.      interface.
  8853.  
  8854.      To prevent buildup of empty folders and files, you can delete them
  8855.      from the Loadinfo folder at any time.
  8856.    * OLAP Integration Server does not display a message to confirm that a
  8857.      dimension table has been deleted from an OLAP model.
  8858.  
  8859.      Following is a suggested workaround: If you did not save the OLAP
  8860.      model after you added the dimension table that you want to delete,
  8861.      click Close to close the OLAP model without saving any changes, then
  8862.      revert back to the previous version of the model. Any other changes
  8863.      that you made during the current session will also be lost.
  8864.    * OLAP Integration Server does not support Essbase ESSCMD scripts. The
  8865.      IS\esscript directory has not been deleted from the OLAP Integration
  8866.      Server directory structure that is created during the installation
  8867.      process. This directory is an empty directory that is not used.
  8868.  
  8869.   ------------------------------------------------------------------------
  8870.  
  8871. 24.5 OLAP Starter Kit Spreadsheet Needs Current Windows svc.pack
  8872.  
  8873. Before installing DB2 OLAP Server on Windows NT, you must apply MS Windows
  8874. NT 4.0 service patch 5.
  8875.  
  8876. If problems occur while installing the OLAP Starter Kit spreadsheet add-in
  8877. on Windows 95 or Windows 98, this may be due to down level Microsoft System
  8878. files. Download the following files from Microsoft via a Windows 95/98
  8879. service pack, or unzip %arborpath%\bin\olapewd.zip and copy the files into
  8880. the windows system directory. Make sure you do not replace any files
  8881. already on your system that have a newer release date. The Windows 9x
  8882. system files and their required levels are:
  8883.  
  8884.    * ASYCFILT.DLL 2.20.4118.1
  8885.    * COMCAT.DLL 4.71.1441.1
  8886.    * COMPOBJ.DLL 2.10.35.35
  8887.    * DCOMCNFG.EXE 4.0.1381.4
  8888.    * DLLHOST.EXE 4.0.1381.4
  8889.    * IPROP.DLL 4.0.1381.4
  8890.    * OLE2.DLL 2.10.35.35
  8891.    * OLEAUT32.DLL 2.20.4118.1
  8892.    * OLECNV32.DLL 4.0.1381.4
  8893.    * OLEDLG.DLL 4.0.1381.4
  8894.    * OLEPRO32.DLL 5.0.4118.1
  8895.    * OLETHK32.DLL 4.0.1371.1
  8896.    * RPCLTC1.DLL 4.0.1381.4
  8897.    * RPCLTCCM.DLL 4.0.1381.4
  8898.    * RPCLTSCM.DLL 4.0.1381.4
  8899.    * RPCMQCL.DLL 4.0.1381.4
  8900.    * RPCMQSVR.DLL 4.0.1381.4
  8901.    * RPCNS4.DLL 4.0.1371.1
  8902.    * RPCSS.EXE 4.0.1381.4
  8903.    * STDOLE2.TLB 2.20.4122.1
  8904.    * STDOLE32.TLB 2.10.3027.1
  8905.    * STORAGE.DLL 2.10.35.35
  8906.  
  8907.   ------------------------------------------------------------------------
  8908.  
  8909. 24.6 OLAP Spreadsheet Add-in EQD Files Missing
  8910.  
  8911. In the DB2 OLAP Starter Kit, the Spreadsheet add-in has a component called
  8912. the Query Designer (EQD). The online help menu for EQD includes a button
  8913. called Tutorial that does not display anything. The material that should be
  8914. displayed in the EQD tutorials is a subset of chapter two of the OLAP
  8915. Spreadsheet Add-in User's Guide for Excel, and the OLAP Spreadsheet Add-in
  8916. User's Guide for 1-2-3. All the information in the EQD tutorial is
  8917. available in the HTML versions of these books in the Information Center,
  8918. and in the PDF versions.
  8919.   ------------------------------------------------------------------------
  8920.  
  8921. Wizards
  8922.  
  8923.   ------------------------------------------------------------------------
  8924.  
  8925. 25.1 Setting Extent Size in the Create Database Wizard
  8926.  
  8927. Using the Create Database Wizard, it is possible to set the Extent Size and
  8928. Prefetch Size parameters for the User Table Space (but not those for the
  8929. Catalog or Temporary Tables) of the new database. This feature will be
  8930. enabled only if at least one container is specified for the User Table
  8931. Space on the "User Tables" page of the Wizard.
  8932.   ------------------------------------------------------------------------
  8933.  
  8934. Additional Information
  8935.  
  8936.   ------------------------------------------------------------------------
  8937.  
  8938. 26.1 DB2 Universal Database and DB2 Connect Online Support
  8939.  
  8940. For a complete and up-to-date source of DB2 information, including
  8941. information about issues discovered after this document was published, use
  8942. the DB2 Universal Database & DB2 Connect Online Support Web site, located
  8943. at http://www.ibm.com/software/data/db2/udb/winos2unix/support.
  8944.   ------------------------------------------------------------------------
  8945.  
  8946. 26.2 DB2 magazine
  8947.  
  8948. For the latest information about the DB2 family of products, obtain a free
  8949. subscription to "DB2 magazine". The online edition of the magazine is
  8950. available at http://www.db2mag.com; instructions for requesting a
  8951. subscription are also posted on this site.
  8952.   ------------------------------------------------------------------------
  8953.  
  8954. Appendix A. Notices
  8955.  
  8956. IBM may not offer the products, services, or features discussed in this
  8957. document in all countries. Consult your local IBM representative for
  8958. information on the products and services currently available in your area.
  8959. Any reference to an IBM product, program, or service is not intended to
  8960. state or imply that only that IBM product, program, or service may be used.
  8961. Any functionally equivalent product, program, or service that does not
  8962. infringe any IBM intellectual property right may be used instead. However,
  8963. it is the user's responsibility to evaluate and verify the operation of any
  8964. non-IBM product, program, or service.
  8965.  
  8966. IBM may have patents or pending patent applications covering subject matter
  8967. described in this document. The furnishing of this document does not give
  8968. you any license to these patents. You can send license inquiries, in
  8969. writing, to:
  8970.  
  8971. IBM Director of Licensing
  8972. IBM Corporation
  8973. North Castle Drive
  8974. Armonk, NY 10504-1785
  8975. U.S.A.
  8976.  
  8977. For license inquiries regarding double-byte (DBCS) information, contact the
  8978. IBM Intellectual Property Department in your country or send inquiries, in
  8979. writing, to:
  8980.  
  8981. IBM World Trade Asia Corporation
  8982. Licensing
  8983. 2-31 Roppongi 3-chome, Minato-ku
  8984. Tokyo 106, Japan
  8985.  
  8986. The following paragraph does not apply to the United Kingdom or any other
  8987. country where such provisions are inconsistent with local law:
  8988. INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS
  8989. IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT
  8990. NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
  8991. OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of
  8992. express or implied warranties in certain transactions, therefore, this
  8993. statement may not apply to you.
  8994.  
  8995. This information could include technical inaccuracies or typographical
  8996. errors. Changes are periodically made to the information herein; these
  8997. changes will be incorporated in new editions of the publication. IBM may
  8998. make improvements and/or changes in the product(s) and/or the program(s)
  8999. described in this publication at any time without notice.
  9000.  
  9001. Any references in this information to non-IBM Web sites are provided for
  9002. convenience only and do not in any manner serve as an endorsement of those
  9003. Web sites. The materials at those Web sites are not part of the materials
  9004. for this IBM product and use of those Web sites is at your own risk.
  9005.  
  9006. IBM may use or distribute any of the information you supply in any way it
  9007. believes appropriate without incurring any obligation to you.
  9008.  
  9009. Licensees of this program who wish to have information about it for the
  9010. purpose of enabling: (i) the exchange of information between independently
  9011. created programs and other programs (including this one) and (ii) the
  9012. mutual use of the information which has been exchanged, should contact:
  9013.  
  9014. IBM Canada Limited
  9015. Office of the Lab Director
  9016. 1150 Eglinton Ave. East
  9017. North York, Ontario
  9018. M3C 1H7
  9019. CANADA
  9020.  
  9021. Such information may be available, subject to appropriate terms and
  9022. conditions, including in some cases, payment of a fee.
  9023.  
  9024. The licensed program described in this information and all licensed
  9025. material available for it are provided by IBM under terms of the IBM
  9026. Customer Agreement, IBM International Program License Agreement, or any
  9027. equivalent agreement between us.
  9028.  
  9029. Any performance data contained herein was determined in a controlled
  9030. environment. Therefore, the results obtained in other operating
  9031. environments may vary significantly. Some measurements may have been made
  9032. on development-level systems and there is no guarantee that these
  9033. measurements will be the same on generally available systems. Furthermore,
  9034. some measurements may have been estimated through extrapolation. Actual
  9035. results may vary. Users of this document should verify the applicable data
  9036. for their specific environment.
  9037.  
  9038. Information concerning non-IBM products was obtained from the suppliers of
  9039. those products, their published announcements or other publicly available
  9040. sources. IBM has not tested those products and cannot confirm the accuracy
  9041. of performance, compatibility or any other claims related to non-IBM
  9042. products. Questions on the capabilities of non-IBM products should be
  9043. addressed to the suppliers of those products.
  9044.  
  9045. All statements regarding IBM's future direction or intent are subject to
  9046. change or withdrawal without notice, and represent goals and objectives
  9047. only.
  9048.  
  9049. This information may contain examples of data and reports used in daily
  9050. business operations. To illustrate them as completely as possible, the
  9051. examples include the names of individuals, companies, brands, and products.
  9052. All of these names are fictitious and any similarity to the names and
  9053. addresses used by an actual business enterprise is entirely coincidental.
  9054.  
  9055. COPYRIGHT LICENSE:
  9056.  
  9057. This information may contain sample application programs in source
  9058. language, which illustrates programming techniques on various operating
  9059. platforms. You may copy, modify, and distribute these sample programs in
  9060. any form without payment to IBM, for the purposes of developing, using,
  9061. marketing or distributing application programs conforming to the
  9062. application programming interface for the operating platform for which the
  9063. sample programs are written. These examples have not been thoroughly tested
  9064. under all conditions. IBM, therefore, cannot guarantee or imply
  9065. reliability, serviceability, or function of these programs.
  9066.  
  9067. Each copy or any portion of these sample programs or any derivative work
  9068. must include a copyright notice as follows:
  9069.  
  9070. (C) (your company name) (year). Portions of this code are derived from IBM
  9071. Corp. Sample Programs. (C) Copyright IBM Corp. _enter the year or years_.
  9072. All rights reserved.
  9073.   ------------------------------------------------------------------------
  9074.  
  9075. A.1 Trademarks
  9076.  
  9077. The following terms, which may be denoted by an asterisk(*), are trademarks
  9078. of International Business Machines Corporation in the United States, other
  9079. countries, or both.
  9080.  
  9081.  ACF/VTAM                        IBM
  9082.  AISPO                           IMS
  9083.  AIX                             IMS/ESA
  9084.  AIX/6000                        LAN DistanceMVS
  9085.  AIXwindows                      MVS/ESA
  9086.  AnyNet                          MVS/XA
  9087.  APPN                            Net.Data
  9088.  AS/400                          OS/2
  9089.  BookManager                     OS/390
  9090.  CICS                            OS/400
  9091.  C Set++                         PowerPC
  9092.  C/370                           QBIC
  9093.  DATABASE 2                      QMF
  9094.  DataHub                         RACF
  9095.  DataJoiner                      RISC System/6000
  9096.  DataPropagator                  RS/6000
  9097.  DataRefresher                   S/370
  9098.  DB2                             SP
  9099.  DB2 Connect                     SQL/DS
  9100.  DB2 Extenders                   SQL/400
  9101.  DB2 OLAP Server                 System/370
  9102.  DB2 Universal Database          System/390
  9103.  Distributed Relational          SystemView
  9104.  Database Architecture           VisualAge
  9105.  DRDA                            VM/ESA
  9106.  eNetwork                        VSE/ESA
  9107.  Extended Services               VTAM
  9108.  FFST                            WebExplorer
  9109.  First Failure Support TechnologyWIN-OS/2
  9110.  
  9111. The following terms are trademarks or registered trademarks of other
  9112. companies:
  9113.  
  9114. Microsoft, Windows, and Windows NT are trademarks or registered trademarks
  9115. of Microsoft Corporation.
  9116.  
  9117. Java or all Java-based trademarks and logos, and Solaris are trademarks of
  9118. Sun Microsystems, Inc. in the United States, other countries, or both.
  9119.  
  9120. Tivoli and NetView are trademarks of Tivoli Systems Inc. in the United
  9121. States, other countries, or both.
  9122.  
  9123. UNIX is a registered trademark in the United States, other countries or
  9124. both and is licensed exclusively through X/Open Company Limited.
  9125.  
  9126. Other company, product, or service names, which may be denoted by a double
  9127. asterisk(**) may be trademarks or service marks of others.
  9128.   ------------------------------------------------------------------------
  9129. Footnotes:
  9130.  
  9131. 1    A new level is initiated when a trigger, function, or stored procedure
  9132.      is invoked.
  9133.  
  9134. 2    Interfaces that automatically commit after each statement will return
  9135.      a null value when the function is invoked in separate statements,
  9136.      unless the automatic commit is turned off.
  9137.