IBM Support

PH56806: OAUTH PROVIDER MIGHT FAIL WITH AN SQL ERROR WHEN RETRIEVING TOKENS FROM THE TOKEN STORE

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

  • The OAuth provider might fail with an SQL error when retrieving
    tokens from the token store.  You can find entries in an OAuth
    trace when this problem occurs:
    
    
    [28.08.23 10:23:43:459 MESZ] 00000052 CachedDBToken 3
    _altQuery [true]
    [28.08.23 10:23:43:459 MESZ] 00000052 CachedDBToken 3   Query
    [SELECT COUNT(*) TOTAL FROM OAuthDBSchema.OAUTH20CACHE WHERE
    EXPIRES > 0 AND EXPIRES <= ? ]
    [28.08.23 10:23:43:473 MESZ] 00000052 CachedDBToken E
    com.ibm.ws.security.oauth20.plugins.db.CachedDBTokenStore
    getExpiredCount ERROR=Parse failure on line 1 of statement
    'SELECT COUNT(*) TOTAL FROM OAuthDBSchema.OAUTH20CACHE WHERE
    EXPIRES > 0 AND EXPIRES <= 1693211023451 ', at or near 'TOTAL'
    
    com.sybase.jdbc3.jdbc.SybSQLException: ERROR=Parse failure on
    line 1 of statement 'SELECT COUNT(*) TOTAL FROM
    OAuthDBSchema.OAUTH20CACHE WHERE EXPIRES > 0 AND EXPIRES <=
    1693211023451 ', at or near 'TOTAL'
    	at com.sybase.jdbc3.tds.Tds.processEed(Unknown Source)
    	at com.sybase.jdbc3.tds.Tds.nextResult(Unknown Source)
    	at com.sybase.jdbc3.jdbc.ResultGetter.nextResult(Unknown
    Source)
    	at com.sybase.jdbc3.jdbc.SybStatement.nextResult(Unknown
    Source)
    	at com.sybase.jdbc3.jdbc.SybStatement.nextResult(Unknown
    Source)
    	at com.sybase.jdbc3.jdbc.SybStatement.queryLoop(Unknown Source)
    
    	at com.sybase.jdbc3.jdbc.SybStatement.executeQuery(Unknown
    Source)
    	at
    com.sybase.jdbc3.jdbc.SybPreparedStatement.executeQuery(Unknown
    Source)
    	at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecut
    eQuery(WSJdbcPreparedStatement.java:1229)
    	at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeQu
    ery(WSJdbcPreparedStatement.java:747)
    	at com.ibm.ws.security.oauth20.plugins.db.CachedDBTokenStore.g
    etExpiredCount(CachedDBTokenStore.java:677)
    	at com.ibm.ws.security.oauth20.plugins.db.CachedDBTokenStore$C
    leanupThread.runCleanup(CachedDBTokenStore.java:575)
    	at com.ibm.ws.security.oauth20.plugins.db.CachedDBTokenStore$C
    leanupThread.run(CachedDBTokenStore.java:564)
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server                                      *
    *                  and the OAuth provider                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: The OAuth provider might get an SQL     *
    *                      error                                   *
    *                      when accessing the token store.         *
    ****************************************************************
    * RECOMMENDATION:  Install a fix pack that contains this APAR  *
    ****************************************************************
    The OAuth provider might fail with an SQL error when retrieving
    tokens from the token store.  Some SQL databases might not
    support
    the queries that the OAuth TAI uses retrieve tokens from the
    database.
    

Problem conclusion

  • A new parameter is added to the OAuthServiceConfiguration called
    oauthjdbc.SelectCountQueryType.  The settings for this new
    parameter are:
    
    * sql1 (default)
    * sql2
    * sql3
    
    Change this value from the default of sql1 if the OAuth trust
    association interceptor (TAI) emits a java.sql.SQLException
    error when attempting to access the token store.
    
    The following SELECT COUNT SQL commands are used for each
    parameter value:
    
    * sql1 : SELECT COUNT(*) AS "TOTAL"
    * sql2 : SELECT COUNT(*) TOTAL
    * sql3 : SELECT COUNT(*) AS TOTAL
    
    The oauthjdbc.AlternateSelectCountQuery parameter is deprecated.
    Setting this property to true is equivalent to setting the
    oauthjdbc.SelectCountQueryType to the sql2 value.
    
    The fix for this APAR is targeted for inclusion in fix packs
    8.5.5.25 and 9.0.5.18. For more information, see 'Recommended
    Updates for WebSphere Application Server':
    https://www.ibm.com/support/pages/node/715553
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH56806

  • Reported component name

    WEBSPHERE APP S

  • Reported component ID

    5724J0800

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2023-09-07

  • Closed date

    2023-10-18

  • Last modified date

    2023-10-18

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

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

Fix information

  • Fixed component name

    WEBSPHERE APP S

  • Fixed component ID

    5724J0800

Applicable component levels

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
19 October 2023