Search code examples
javajakarta-eedb2wicketibm-was

Error while reading image data:SqlException: [jcc][10120][11936][4.11.77] Invalid operation: Lob is closed. ERRORCODE=-4470, SQLSTATE=null


I am working on application and in one page i have been fetching images from DB and i am not able to get the images in the front end but the page is loading and showing other details. I am using was liberty profile server for this application. Could you please suggest me regarding this problem. please find the error below.

ERROR CustomRequestCycle - Unexpected exception
 org.apache.wicket.WicketRuntimeException: Error while reading image data
at org.apache.wicket.markup.html.image.resource.BlobImageResource.getImageData   (BlobImageResource.java:102)
at org.apache.wicket.markup.html.image.resource.DynamicImageResource$1.getData(DynamicImageResource.java:194)



Caused by: com.ibm.db2.jcc.am.SqlException: [jcc][10120][11936][4.11.77] Invalid operation:     

Lob     is closed. ERRORCODE=-4470, SQLSTATE=null
at com.ibm.db2.jcc.am.gd.a(gd.java:660)
at com.ibm.db2.jcc.am.gd.a(gd.java:60)
at com.ibm.db2.jcc.am.gd.a(gd.java:94)
at com.ibm.db2.jcc.am.ie.c(ie.java:67)
at com.ibm.db2.jcc.am.je.v(je.java:203)
at com.ibm.db2.jcc.am.je.getBinaryStream(je.java:107)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.hibernate.engine.jdbc.SerializableBlobProxy.invoke(SerializableBlobProxy.java:74)
at $Proxy68.getBinaryStream(Unknown Source)
at org.apache.wicket.markup.html.image.resource.BlobImageResource.getImageData(BlobImageResource.java:93)
... 55 more

Solution

  • According to Liberty profile Configuration elements, this property can be added like this:

    <library id="DB2JCC4Lib">
        <fileset dir="${wlp.install.dir}/lib" 
            includes="db2jcc.jar db2jcc_license_cisuz.jar db2jcc_license_cu.jar"/>
    </library>
    <dataSource id="db2_SUD" jndiName="jdbc/U_SUD">
        <jdbcDriver libraryRef="DB2JCC4Lib"/>
        <properties.db2.jcc databaseName="DB2TEST" password="YYYYY" portNumber="20025"
            serverName="xyxyxyxxyx" user="XXXXX" progressiveStreaming="2"/>
    </dataSource>