IBM Support

IJ07703: TADDM 7.3 ORA INSTANCE GENERATED WITH WRONG FQDN IN CASES WHERE JDBC CONN NOT ESTABLISHED + TGT WITH MULTIPLE LISTNERS + VIPS

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • Abstract- Oracle Instance getting generated with wrong fqdn  in
    case jdbc connection is not established and target has multiple
    listeners with different virtual IPs.
    
    
    Problem Description
    ===================
    When an Oracle Sensor is invoked for an Oracle Listener on a
    Target which has mutiple oracle listeners on it, then it
    extracts details about a SID from listener by trying to
    establish a JDBC connection with it for that SID.
    If it finds the listener port unreachable for some reason, it
    creates a shallow model object of Oracle Instance with minimal
    details  and assigns it  details of this listener's IP (which
    can be a different virtual IP).
    BUT, if the SID is actually registered with another listener
    which
    has different IP/fqdn, it means that in the created shallow
    object wrong IP details are getting stored vs it.
    
    This kind of wrong updates can occur in cases where
    e.g.,
    the jdbc connection fails because of error like eg "Connection
    Reset" or any other errors.
    ------------------------------
    The behaviour of storing then a
    shallow obj vs it had been introduced with the the FP5 old
    property of
    com.collation.oracle.sensor.ignoreNonRegisteredSidOfListener=
    true.
         The default value of this property is false.
    
    If this property is set to true, the Oracle Sensor will ignore
    those SIDs which are found to be not register ed on Oracle
    listener .
    Oracle Sensor first tries to establish a jdbc connection with
    the listener for a SID. If it gets an err like :
    ORA-12505, TNS: listener does not currently
    know of SID given in connect descriptor" the SID is ignored
    If instead the connection is unsuccessful with any other error a
    shallow ORA instance obj is created with this listener's IP and
    Port details.
    Another impact to this property is that it will not create those
    ora instances which have NOT registered with any listeners.
    ---------------------------------
    
    For handling this situation this we need to review the above
    behavior now and we need to have a new property, e.g.:
    
    "com.collation.oracle.sensor.CreateOnlyConfirmedRegisteredSid"
    
    If this is configured to true, then  :
    
         a. Oracle Sensor will create Oracle Instances for SIDs for
    which Jdbc connection is success. So that always fqdn of
    listening IP is assigned to it.
    
         b. Also it will create shallow Oracle Instance for SIDs
    where we get this error "ORA-01017: invalid username/password;
    logon denied" . This is because jdbc driver throws this error
    after it had checked that SID is registered with listener.  If
    SID was not registered, then even on wrong username/password,
    we first and only gets the error that "ORA-12505, TNS:listener
    does not currently know of SID given in connect descriptor".  So
    we can create  shallow object in username/password error as we
    are sure SID is registered and the listener's Fqdn can be used
    in the model object created.
    
    If this value is set to false then ,
    
        c. Sensor will continue to create Oracle Instance as usual
    as previously ie for in case of any error in Jdbc connection ,
    it will still create shallow Oracle Instance Objects.
    
    The default value of ths property is to be true, so that no data
    with wrong details are generated by default.
    
    
    
    We also need to enable the capability to allow configuring the
    new  property to the level of IP address. So in case where user
    has a target IP which has only one listener , and he wants to
    get the Oracle Instance Model object created with the only
    listener on that IP, regardless of whether the jdbc connection
    was success or not ,  he can configure this new property+IP
    address to false. In that case sensor will create shallow object
    in such cases.
    
    
    
    Local Fix/Work AroundLocal Fix/Work Around-
    
    NA
    

Local fix

Problem summary

  • When an Oracle Sensor is invoked for an Oracle Listener on a
    Target which has mutiple oracle listeners on it, then it
    extracts details about a SID from listener by trying to
    establish a JDBC connection with it for that SID.
    If it finds the listener port unreachable for some reason, it
    creates a shallow model object of Oracle Instance with minimal
    details and assigns it  details of this listener's IP (which
    can be a different virtual IP).
    However,, if the SID is actually registered with another
    listener which has a different IP/FQDN, it means that in the
    created shallow object, wrong IP details are getting stored.
    This kind of wrong updates can occur in cases where:
    The jdbc connection fails because of error like "Connection
    Reset" or any other errors.
    ------------------------------
    The behaviour of storing a shallow object vs it had been
    introduced with an old property:
    com.collation.oracle.sensor.ignoreNonRegisteredSidOfListener=
    true.
         The default value of this property is false.
    If this property is set to true, the Oracle Sensor will ignore
    those SIDs which are found to be not registered on Oracle
    listener.
    Oracle Sensor first tries to establish a jdbc connection with
    the listener for a SID. If it gets an err like :
    ORA-12505, TNS: listener does not currently
    know of SID given in connect descriptor" the SID is ignored
    If instead the connection is unsuccessful with any other error a
    shallow ORA instance object is created with this listener's IP
    and port details.
    Another impact to this property is that it will not create those
    ora instances which are NOT registered with any listeners.
    ---------------------------------
    To correct this issue, the following porperty has been added:
    "com.collation.oracle.sensor.CreateOnlyConfirmedRegisteredSid"
    If this is configured to true:
         a. Oracle Sensor will create Oracle Instances for SIDs for
    which Jdbc connection is success. So that always fqdn of
    listening IP is assigned to it.
         b. Also it will create shallow Oracle Instance for SIDs
    where we get this error "ORA-01017: invalid username/password;
    logon denied" . This is because jdbc driver throws this error
    after it had checked that SID is registered with listener.  If
    SID was not registered, then even on wrong username/password,
    we first and only gets the error that "ORA-12505, TNS:listener
    does not currently know of SID given in connect descriptor".  So
    we can create  shallow object in username/password error as we
    are sure SID is registered and the listener's Fqdn can be used
    in the model object created.
    If this value is set to false:
        c. Sensor will continue to create Oracle Instance as usual
    as previously ie for in case of any error in Jdbc connection ,
    it will still create shallow Oracle Instance Objects.
    The default value of ths property is to be true, so that no data
    with wrong details are generated by default.
    We also need to enable the capability to allow configuring the
    new  property to the level of IP address. So in case where user
    has a target IP which has only one listener , and he wants to
    get the Oracle Instance Model object created with the only
    listener on that IP, regardless of whether the jdbc connection
    was success or not ,  he can configure this new property+IP
    address to false. In that case sensor will create shallow object
    in such cases.
    

Problem conclusion

  • The fix for this APAR is contained in the following maintenance
    packages:
    | Fix Pack | 7.3.0-TIV-ITADDM-FP0006
    

Temporary fix

Comments

APAR Information

  • APAR number

    IJ07703

  • Reported component name

    APP DEPENDENCY

  • Reported component ID

    5724N5500

  • Reported release

    730

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-07-13

  • Closed date

    2018-09-23

  • Last modified date

    2018-09-23

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

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

Modules/Macros

  • 999
    

Fix information

  • Fixed component name

    APP DEPENDENCY

  • Fixed component ID

    5724N5500

Applicable component levels

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSPLFC","label":"Tivoli Application Dependency Discovery Manager"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"730","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
23 September 2018