IBM Support

PH20786: MISSING PARAMETER MARKERS FOR ECLIPSELINK STORED PROCEDURES ON DB2 ZOS

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When using indexed parameters with EclipseLink Stored
    Procedures, the generated procedure call is missing parameter
    markers and fails with an exception. This issue is only
    applicable on DB2 zOS databases.
    
    Example exception:
    
    [EL
    Fine]: sql: 2020-01-07 13:54:59.782--ServerSession(-1317466844)-
    -Connection(2121501870)--Thread(Thread[main,5,main])--CALL
    simple_order_procedure(, , , )
    [EL Warning]: 2020-01-07 13:54:59
    .782--Thread(Thread[main,5,main])--java.lang.reflect.InvocationT
    argetException
     at java.base/jdk.internal.reflect.NativeMethodAc
    cessorImpl.invoke0(Native Method)
     at java.base/jdk.internal.ref
    lect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
    va:62)
     at java.base/jdk.internal.reflect.DelegatingMethodAccess
    orImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at
    java.base/java.lang.reflect.Method.invoke(Method.java:566)
     at o
    rg.eclipse.persistence.internal.security.PrivilegedAccessHelper.
    invokeMethod(PrivilegedAccessHelper.java:509)
     at org.eclipse.pe
    rsistence.platform.database.DB2ZPlatform.setParameterValueInData
    baseCall(DB2ZPlatform.java:420)
     at org.eclipse.persistence.quer
    ies.StoredProcedureCall.prepareStatement(StoredProcedureCall.jav
    a:890)
     at org.eclipse.persistence.internal.databaseaccess.Datab
    aseAccessor.basicExecuteCall(DatabaseAccessor.java:621)
     at org.
    eclipse.persistence.internal.databaseaccess.DatabaseAccessor.exe
    cuteCall(DatabaseAccessor.java:560)
     at org.eclipse.persistence.
    internal.sessions.AbstractSession.basicExecuteCall(AbstractSessi
    on.java:2064)
     at org.eclipse.persistence.sessions.server.Server
    Session.executeCall(ServerSession.java:586)
     at org.eclipse.pers
    istence.internal.queries.DatasourceCallQueryMechanism.executeCal
    l(DatasourceCallQueryMechanism.java:262)
     at org.eclipse.persist
    ence.internal.queries.DatasourceCallQueryMechanism.executeCall(D
    atasourceCallQueryMechanism.java:248)
     at org.eclipse.persistenc
    e.internal.queries.DatasourceCallQueryMechanism.execute(Datasour
    ceCallQueryMechanism.java:240)
     at org.eclipse.persistence.queri
    es.ResultSetMappingQuery.executeDatabaseQuery(ResultSetMappingQu
    ery.java:312)
     at org.eclipse.persistence.queries.DatabaseQuery.
    execute(DatabaseQuery.java:908)
     at org.eclipse.persistence.quer
    ies.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:807)
    
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.inte
    rnalExecuteQuery(UnitOfWorkImpl.java:2900)
     at org.eclipse.persi
    stence.internal.sessions.AbstractSession.executeQuery(AbstractSe
    ssion.java:1866)
     at org.eclipse.persistence.internal.sessions.A
    bstractSession.executeQuery(AbstractSession.java:1848)
     at org.e
    clipse.persistence.internal.sessions.AbstractSession.executeQuer
    y(AbstractSession.java:1813)
     at org.eclipse.persistence.interna
    l.jpa.QueryImpl.executeReadQuery(QueryImpl.java:258)
     at org.ecl
    ipse.persistence.internal.jpa.StoredProcedureQueryImpl.execute(S
    toredProcedureQueryImpl.java:316)
     ....
    Caused by:
    com.ibm.db2.jcc.am.SqlSyntaxErrorException: Invalid argument:
    Parameter marker 'in_param_one' was not present in the SQL
    String. ERRORCODE=-4461, SQLSTATE=42815
     at
    com.ibm.db2.jcc.am.b6.a(b6.java:810)
     at
    com.ibm.db2.jcc.am.b6.a(b6.java:66)
     at
    com.ibm.db2.jcc.am.b6.a(b6.java:116)
     at
    com.ibm.db2.jcc.am.k4.setJccStringAtName(k4.java:7545)
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server - Java Persistence API - JPA 2.1 &   *
    *                  EclipseLink                                 *
    ****************************************************************
    * PROBLEM DESCRIPTION: EclipseLink throws                      *
    *                      SqlSyntaxErrorException when            *
    *                      executing StoredProcedureQuery, with    *
    *                      index parameters, on DB2 z/os           *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    This is a regression fix for PH16450
    When executing a stored procedure query against DB2 z/os with
    indexed parameters, EclipseLink removes the parameter markers
    from the query. This causes the driver to throw the following
    SqlSyntaxErrorException.
    Exception:
    ´´´
    com.ibm.db2.jcc.am.SqlSyntaxErrorException: CALL
    SimpleStoredProcedure(, , , , , )
    ´´´
    

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    PH20786

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-01-07

  • Closed date

    2020-02-03

  • Last modified date

    2020-02-03

  • 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

    WEBS APP SERV N

  • Fixed component ID

    5724H8800

Applicable component levels

[{"Line of Business":{"code":"LOB36","label":"IBM Automation"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"900"}]

Document Information

Modified date:
14 September 2020