IBM Support

IC72971: AFTER TAKEOVER HADR, JAVA APPLICATION REPEATEDLY TRIES TO DO AUTOMATIC CLIENT REROUTE TO THE NEW HADR STANDBY SERVER.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A Java application might keep trying and failing to connect to a
    database if all of the following conditions are true:
    
    - You are using HADR (High Availability Data Replication) and
      run the TAKEOVER HADR command to make the HADR Standby
      database take over as the new HADR Primary database for the
      HADR pair.
    
    - The Java application is using the IBM Data Server Driver for
      JDBC and SQLJ (also called JCC driver).
    
    - You have configured the application to do automatic client
      reroute.
    
    - The Java process has more than one thread which tries to
      connect to the database.
    
    
    The Java application might keep trying over and over again to
    connect to the new Standby database.
    
    It can happen in the following situation.
    
    Suppose that initially the properties for the IBM Data Server
    Driver for JDBC and SQLJ include:
    
     serverName = oldPrimaryServer
     clientRerouteAlternateServerName = oldStandbyServer
    
    And suppose that after you run the TAKEOVER HADR command, a Java
    thread tries to connect to the old Primary database.
    If you have configured to collect JDBC trace data then the
    JDBC trace would contain a message like this:
    
     Client Re-route to primary server: oldPrimaryServer ...
    
    
    The old Primary database is now the new Standby database, so the
    connection fails.
    
    So the Java thread tries to connect to the alternate server.
    JDBC trace would contain a message like this:
    
     Client Re-route to alternate server: oldStandbyServer ...
    
    
    If that attempt also fails the Java thread retries again to
    connect to the old Primary database.
    JDBC trace would contain a message like this:
    
     Client Re-route to primary server: oldPrimaryServer ...
    
    
    That connection attempt fails too, because the old Primary
    database is now the Standby database.
    
    Now suppose that before the first Java thread can retry the
    alternate server oldStandbyServer again, another thread in the
    Java process manages to connect successfully to
    oldStandbyServer.
    JDBC trace would contain a message like this:
    
     Successfully connected to server
      jdbc:db2://oldStandbyServer:<portNumber>/<database>
    
    
    In that case, from now on the server that the Java process tries
    to connect to will be the new Primary (oldStandbyServer),
    and the new alternate server that the Java process uses will be
    the new Standby (oldPrimaryServer).
    The first Java thread now tries to connect to what is now the
    alternate server.
    JDBC trace would contain a message like this:
    
     Client Re-route to alternate server: oldPrimaryServer ...
    
    
    And it keeps trying to connect to that server for as many times
    as is specified by the maxRetriesForClientReroute property of
    the connection.
    

Local fix

Problem summary

  • See Problem description
    

Problem conclusion

  • Problem was first fixed in Version 9.5 FixPak 8
    

Temporary fix

Comments

APAR Information

  • APAR number

    IC72971

  • Reported component name

    DB2 FOR LUW

  • Reported component ID

    DB2FORLUW

  • Reported release

    950

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-12-03

  • Closed date

    2014-02-06

  • Last modified date

    2014-02-06

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

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

    IC73028

Modules/Macros

  • JCC
    

Fix information

  • Fixed component name

    DB2 FOR LUW

  • Fixed component ID

    DB2FORLUW

Applicable component levels

  • R950 PSN

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.5","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
06 February 2014