IBM Support

II09144: CHANGES TO DB2 APPLICATION PROGRAMMING & SQL GUIDE SC26-3266-00 THAT DID NOT MAKE V4.1 GA PUBS. CONTINUED IN II09590.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as canceled.

Error description

  • 5740xyr00 DB2 R410V4
    This APAR documents changes to the DB2 Application Programming
    & SQL Guide SC26326600 which did not make Version 4.1 GA pubs
    This APAR is continued in II09590.
    ================================================================
    Version 4 Book Title: Application Programming and SQL Guide
    Pages: 3-44
    Change Description:
    
    In Table 8, change the last paragraph of notes for
    DECIMAL(p,s) to this:
    
       For Efficient Use of Indexes:  Use value. If p is even,
       do not use Ln and be sure that the precision of
       value is p and the scale of value is s.  If p is
       odd, you can use Ln  (although it is not
       advised), but you must choose n so that 2n-1=p,
       and the scale of value is s.  Include a decimal
       point in value, even when the scale of value is 0.
    ============================================================
    Version 4 Book Title: Application Programming and SQL Guide
    Pages: 3-68
    Change Description:
    
    Add CAF to the label box for CICS, as follows:
    +-- CICS and CAF ------------------------------------------+
    | You must specify the NODYNAM option when compiling a     |
    | COBOL program that includes SQL statements.  DYNAM       |
    | is not allowed.                                          |
    +----------------------------------------------------------+
    ============================================================
    Version 4 Book Title: Application Programming and SQL Guide
    Pages: 3-68, 6-33
    Change Description:
    
    Change the CICS and CAF label box on page 3-68 to this:
    +-- CICS and CAF ------------------------------------------+
    | You must specify the NODYNAM option when compiling a     |
    | COBOL program that includes SQL statements.  DYNAM       |
    | is not allowed.                                          |
    | Because stored procedures use CAF, you must also         |
    | compile COBOL stored procedures with the option NODYNAM. |
    +----------------------------------------------------------+
    
    Change the first bullet under "Preparing a Stored Procedure"
    on page 6-33 to this:
    - Precompile and compile the application.
      If your stored procedure is a COBOL program, you must
      compile it with the option NODYNAM.
    - Link-edit the application.  Your stored procedure must
      either link-edit or load DSNALI, the language interface
      module for the call attachment facility.
      For more information, see "Accessing the CAF Language
      Interface" on page 6-150.
    ============================================================
    Version 4 Book Title: Application Programming and SQL Guide
    Pages: 3-69
    Change Description:
    In "Special COBOL Considerations,"     Add this bullet:
    
    - Observe the rules in the SQL Reference when you name SQL
      identifiers.  Do not use hyphens in an SQL identifier or
      begin the identifier with a digit.
    
    Change the bullet on hyphens to this:
    
    - Observe these rules for hyphens:
    
      - Surround hyphens used as subtraction operators with
        spaces.  DB2 usually interprets a hyphen with no spaces
        around it as part of a host variable name.
      - Do not use hyphens in SQL identifiers.  You cannot bind
        SQL statements remotely that have hyphens in SQL
        identifiers.
    ============================================================
    Version 4 Book Title: Application Programming and SQL Guide
    Pages: 3-69
    Change Description:
    
    Change bullet four to the following:
    
    Although DB2 currently accepts hyphens in all COBOL names,
    it might not be true in future versions of DB2.
    
    At this time, you will get an error if you attempt to bind a
    COBOL program remotely that uses host variables with hyphens
    in SQL statements.
    ============================================================
    Version 4 Book Title: Application Programming and SQL Guide
    Pages: 4-15
    Change Description:
    The fourth paragraph under the heading TIMEOUT which begins
    with "COMMIT and ROLLBACK operations..." should be changed
    to the following:
    
     COMMIT and ROLLBACK operations do not time out. The command
     STOP DATABASE, however, may time out and send messages to
     the console, but it will retry up to 15 times.
    ============================================================
    Version 4 Book Title: Application Programming and SQL Guide
    Pages: 4-17
    Change Description:
    
    Change the box at the top of the page to this:
    
    +--TSO, Batch, and CAF-------------------------------------+
    |  When a deadlock or timeout occurs in these environments,|
    |  DB2 sets SQLCODE -913 in the SQLCA for one of the       |
    |  applications and attempts to roll back the SQL for that |
    |  application. If the ROLLBACK is successful, DB2 replaces|
    |  SQLCODE -913 with SQLCODE -911. If ROLLBACK fails,      |
    |  SQLCODE -913 remains in the SQLCA. Because an           |
    |  application normally abends when ROLLBACK fails,        |
    |  however, the application is unlikely to receive         |
    |  SQLCODE -913.                                           |
    +----------------------------------------------------------+
    ============================================================
    Version 4 Book Title:  Application Programming and SQL Guide
    Pages: 4-31
    Change Description:
      On page 4-31, change the 'Restrictions' section for UR as
      follows:
    
    Restrictions:  You cannot use UR isolation for the types of
    statement listed below. If you bind with ISOLATION(UR), and
    the statement does not specify WITH RR or WITH RS, then DB2
    uses CS isolation for:
    
    o INSERT, UPDATE, and DELETE
    o Any cursor defined with FOR UPDATE OF
    
    If you bind with isolation UR or specify WITH UR on a
    statement, DB2 does not choose a type 1 index as a candidate
    for the access path.  For packages bound without specifying
    an isolation, DB2 might choose a type 1 index for the
    access path.If it does, and then you run the package under
    plan bound with UR, DB2 changes the isolation level to
    cursor stability.
    ============================================================
    Version 4 Book Title: Application Programming and SQL Guide
    Pages: 5-13
    Change Description:
    
    Add the following sentence to the description of VERSION
    in the DB2 Precompiler Options table:
    
    Precompiler timestamps always use Greenwich Mean Time (GMT).
    
    Correct the grammar in the third sentence of the second
    paragraph of that description.
    ============================================================
    Version 4 Book Title: Application Programming and SQL Guide
    Pages: 6-30
    Change Description:
    
    APAR PN78797 adds DB2 support for C++ and IBM COBOL for MVS &
    VM.  See the text of APAR PN78797 for a description of how to
    write and prepare DB2 applications in those languages.
    You can also write stored procedures in those languages.
    
    Under "Using Programming Languages in the Stored Procedure,"
    add this paragraph after the last bullet:
    
    Your COBOL and C++ stored procedures can contain
    object-oriented extensions.  For those stored procedures,
    the minimum requirements are:
    
    -  IBM COBOL for MVS & VM Version 1 Release 2 with
       IBM Language Environment for MVS Version 1 Release 5
    -  IBM C/C++ for MVS/ESA Version 3 Release 1 with
       IBM Language Environment for MVS Version 1 Release 4
    
    See "Special Considerations for Object-Oriented Extensions
    in COBOL" and "Special Considerations for C++" for
    information on including object-oriented extensions in
    SQL applications.
    ============================================================
    Version 4 Book Title: Application Programming and SQL Guide
    Pages: 6-53
    Change Description:
    
    Change the comment explaining "IND4=-1;" and the CALL
    statement as follows:
    IND4=-1;                 /* Setting IND4 to -1 causes     */
                             /*  only a two byte area to be   */
                             /*  passed to the stored         */
                             /*  procedure.  (See "Using      */
                             /*  Indicator Variables to Speed */
                             /*  Processing."                 */
    EXEC SQL CALL PROCX(:HV1,'ABCD',NULL,:HV2 INDICATOR :IND4);
    ============================================================
    Version 4 Book Title:  Application Programming and SQL Guide
    Pages:  6-130
    
    Change Description:
      Clarify situation where you can see mixed parallel modes
      in a statement. Update the last paragraph under
      'Interpreting Explain Output' as follows:
    
     For each of these examples you could have data in
     the column PARALLELISM_MODE.  This tells you the kind of
     parallelism that is doing the processing.
    |There is no mixing of parallelism modes within a query
    |block (QBLOCKNO column of PLAN_TABLE).  However, a
    |statement that uses more than one query block, such as a
    |UNION, can have "I" for one query block and "C" for
    |another.
    ============================================================
    Version 4 Book Title: Application Programming and SQL Guide
    Pages: 6-145
    Change Description:
    Add the following bullet under "Run Environment":
    
    -   The language interface module for CAF, DSNALI, is
        shipped with the linkage attributes AMODE(31) and
        RMODE(ANY).  If your applications need to load CAF below
        the 16MB line, you must re-link DSNALI.
    ============================================================
    Version 4 Book Title: Application Programming and SQL Guide
    Pages: 6-152
    Change Description:
    Replace the second paragraph under "CALL DSNALI Parameter
    List" with this:
    
    When you code CALL DSNALI statements, you must specify all
    parameters that come before Return Code.
    You cannot omit any of those parameters by coding zeros or
    blanks.  There are no defaults for those parameters for
    explicit connection service requests.  Defaults are
    provided only for implicit connections.
    
    All parameters starting with Return Code are
    optional.  For all languages except assembler language,
    code zero for a parameter in the CALL DSNALI statement
    when you want to use the default value for that parameter
    but specify subsequent parameters.  For example, suppose
    you are coding a CONNECT call in a COBOL program.
    You want to specify all parameters except Return Code.
    Write the call in this way:
    
         CALL 'DSNALI' USING CONNFN SSID TECB SECB RIBPTR
            BY CONTENT ZERO BY REFERENCE REASCODE SRDURA.
    
    For an assembler language call, code a comma for a parameter
    in the CALL DSNALI statement when you want to use the
    default value for that parameter but specify subsequent
    parameters.  For example, code a CONNECT call like this to
    specify all optional parameters except Return Code:
     CALL  DSNALI,(CONNFN,SSID,TERMECB,STARTECB,
                   RIBPTR,,REASCODE,SRDURA)
    ============================================================
    Version 4 Book Title:  Application Programming and SQL Guide
    Pages:  6-181
    Change Description:
    
    The following text will be added to Chapter 6-8, Programming
    Techniques:  Questions and Answers:
    
    UPDATING DATA PREVIOUSLY RETRIEVED
    __________________________________
    QUESTION:  How can you scroll backward and update data
    that were retrieved previously?
    .
    ANSWER:  Scrolling and updating at the same time can cause
    unpredictable results.  Issuing INSERT, UPDATE and DELETE
    statements from the same application process while a cursor
    is open can affect the result table.
    
    For example, suppose you are fetching rows from table T
    using cursor C, which is defined like this:
    
        EXEC SQL DECLARE C CURSOR FOR SELECT * FROM T;
    
    After you have fetched several rows, cursor C is
    positioned to a row within the result table.  If you
    insert a row into T, the effect on the result table
    is unpredictable because the rows in the result table are
    unordered.  A later FETCH C might or might not retrieve
    the new row of T.
    
    If the result table is not read-only and you are modifying
    existing rows in the table, you can avoid the problem by
    using a positioned UPDATE statement (an UPDATE statement
    with the WHERE CURRENT OF clause).  Declare two cursors,
    one for fetching rows from the table and one for the
    positioned UPDATE.  See Chapter 6 of SQL Reference for
    information on read-only result tables and positioned
    UPDATE statements.
    ============================================================
    This APAR is continued in II09590.
    

Local fix

Problem summary

Problem conclusion

Temporary fix

Comments

  • close for INTERNET viewing
    

APAR Information

  • APAR number

    II09144

  • Reported component name

    PB LIB INFO ITE

  • Reported component ID

    INFOPBLIB

  • Reported release

    001

  • Status

    CLOSED CAN

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    1995-12-19

  • Closed date

    1997-11-01

  • Last modified date

    1999-06-08

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

Applicable component levels

[{"Business Unit":{"code":null,"label":null},"Product":{"code":"SG19O","label":"APARs - MVS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEPEK","label":"Db2 for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
08 June 1999