APAR status
Closed as program error.
Error description
Using StoredProcedures, with named parameters, on an Oracle platform results in an incorrect SQL query syntax and an ORA-06550 exception thrown from the driver. Oracle should be using specification compliant parameter markers `?`. The issue is due to a regression in PH08220. Exception: Internal Exception: java.sql.SQLException: ORA-06550: line 1, column 41: PLS-00103: Encountered the symbol ">" when expecting one of the following: . ( ) , * @ % & = - + < / > at in is mod remainder not rem <an exponent (**)> <> or != or ~= >= <= <> and or like like2 like4 likec between || multiset member submultiset
Local fix
Use indexed parameters instead of named parameters.
Problem summary
**************************************************************** * USERS AFFECTED: All users of IBM WebSphere Application * * Server - Java Persistence API - JPA * * 2.1,EclipseLink, & Oracle * **************************************************************** * PROBLEM DESCRIPTION: EclipseLink uses the wrong characters * * to represent named parameters using * * stored procedures * **************************************************************** * RECOMMENDATION: * **************************************************************** This is a regression fix for PH08220 that delivered support for named parameters for DB2. Adding that support caused EclipseLink to start generating incorrect syntax for named parameters with Oracle. EclipseLink uses the following parameter syntax for stored procedures, for Oracle: in_param_one => ? However, that syntax only works for index parameters... not named parameters. Using named parameters translates this syntax into: in_param_one => IN_PARAM_ONE => :0 The following error is thrown if named parameters are used: W CWWJP9991W: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.8.WAS-v20190529-ec0c5ae): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.SQLException: ORA-06550: line 1, column 41: PLS-00103: Encountered the symbol ">" when expecting one of the following: . ( ) , * @ % & = - + < / > at in is mod remainder not rem <an exponent (**)> <> or != or ~= >= <= <> and or like like2 like4 likec between || multiset member submultiset
Problem conclusion
The fix for this APAR changes the EclipseLink implementation and involves an update to the third-party source. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=550542 This fix is currently targeted for WebSphere Application Server 9.0.5.3 and WebSphere Liberty 19.0.0.11. Please refer to the Recommended Updates page for delivery information: http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
Temporary fix
Comments
APAR Information
APAR number
PH16450
Reported component name
WAS LIBERTY COR
Reported component ID
5725L2900
Reported release
CD0
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2019-09-06
Closed date
2019-11-22
Last modified date
2019-12-05
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
WAS LIBERTY COR
Fixed component ID
5725L2900
Applicable component levels
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSD28V","label":"WebSphere Application Server Liberty Core"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"CD0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
05 December 2019