IBM Support

PH11824: HOW TO INSERT CLOB DATA USING LOB LOCATOR IN ECLIPSELINK

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

  • Problem Description:
    Customers reported that their analysis revealed the
    following
    two points.
    
    1. Oracle behavior when trying to insert an empty string (""
    or
    null) into a NOT NULL CLOB column
    * When using LOB Locator: Data is inserted as data of 0
    length.
    * When set as a String:
    SQLIntegrityConstraintViolationException
    (ORA-01400) can not be inserted.
    
    2. DB registration is successful in the current WASV7
    because
    Open JPA is using LOB Locator to insert data into CLOB
    column.
    From the above, EclipseLink thinks that if the data can be
    set
    using the LOB Locator, the problem will be solved.
    
    However, even if I tried the following method, I could not
    use
    LOB Locator with EclipseLink.
    
    [Set TypeConverter / Converter to the target data.]
    @ org.eclipse.persistence.annotations.TypeConverter (name =
    "stringToLob", dataType = java.sql.Clob.class, objectType =
    String.class)
    @ org.eclipse.persistence.annotations.Convert
    ("stringToLob")
    
    reference:
    https://www.eclipse.org/eclipselink/documentation/2.4/jpa/ex
    tens
    ions/a_typeconverter.htm
    https://www.eclipse.org/eclipselink/documentation/2.4/jpa/ex
    tens
    ions/toc.htm
    
    [Customize the behavior of Platform for Oralce using Session
    Customizer.]
    Specify persistence12.xml to use Oracle12 Platform, and
    change
    Oracle Application Server's shouldUseLocatorForLOBWrite to
    true
    in SessionCustomizer.
    To use this method, you need the EclipseLink Oracle
    Extension,
    but it is not included with WAS Liberty's EclipseLink, and
    you
    need to download it from open source etc. separately.
    Also, if you insert an empty string, one blank character
    will be
    inserted, and it will appear different from the current
    situation.
    
    Reference: Platform Source for Oracle
    https://github.com/eclipse-ee4j/eclipselink/tree/master/foun
    dati
    on/org.eclipse.persistence.oracle/src/org/eclipse/persistenc
    e/pl
    atform/database/oracle
    
    Customer's request:
    Could you tell me how to insert CLOB data using LOB Locator
    in
    EclipseLink?
    Please tell me the necessary materials to proceed with the
    survey.
    
    BusImpact:
    Development project is delayed. So customers want to get it
    resolved early.
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server Liberty                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: Oracle 8 LOB Locator is part of Oracle  *
    *                      Extensions, which are not included      *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    In some use cases, it is desirable to leverage Oracle's LOB
    Locator feature, which Eclipselink only supports in its Oracle
    extensions bundle, which is not included with the Eclipselink
    that ships with WebSphere.
    

Problem conclusion

  • The LOB Locator capability was brought over from the database
    platform implementations in the Oracle extension bundle to the
    Oracle platform in core Eclipselink.  The capability is now
    available for use in Oracle 8 and 9 systems (it is disabled by
    default for Oracle 10+), and can be forced on by setting the
    following persistence unit property:
    
    <property name="eclipselink.target-database"
    value="org.eclipse.persistence.platform.database.Oracle8Platform
    "/>
    
    This fix is currently targeted for WebSphere Application Server
    9.0.5.3 and WebSphere Liberty 19.0.0.6.  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

    PH11824

  • Reported component name

    LIBERTY PROFILE

  • Reported component ID

    5724J0814

  • Reported release

    CD0

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2019-05-08

  • Closed date

    2019-06-28

  • 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

    LIBERTY PROFILE

  • Fixed component ID

    5724J0814

Applicable component levels

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"CD0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
03 February 2020