Lob is closed. ERRORCODE=-4470, SQLSTATE=null

Just_another_developer picture Just_another_developer · Mar 26, 2014 · Viewed 12.5k times · Source

I am using IBM websphere commerce and db2, have following piece of code

Clob clobVar = null;
if (result.elementAt(3) != null)
    clobVar = (Clob) result.elementAt(3);

if (clobVar == null) {
    infoTable.put("EInfo", "");
} else {
    stringTemp = clobVar.getSubString(1, (int) clobVar.length());
    infoTable.put("EInfo", stringTemp); 
}

Code works fine till

clobVar = (Clob) result.elementAt(3);

but as soon as execution comes to

stringTemp = clobVar.getSubString(1, (int) clobVar.length());

System throws an exception

[jcc][10120][11936][4.3.111] Invalid operation: Lob is closed. ERRORCODE=-4470, SQLSTATE=null

What I am doing wrong?

How to resolve this issue?

Answer

ashokramcse picture ashokramcse · Mar 31, 2014

This issue can be solved by adding progressiveStreaming=2; argument to the connection url

The fully specified Connection URL was to be given as below:

jdbc:db2://localhost:50000/SAMPLE:progressiveStreaming=2;

Incase you have exception on that parameter add the following to it:

jdbc:db2://localhost:50000/SAMPLE:driverType=4;fullyMaterializeLobData=true;fullyMaterializeInputStreams=true;progressiveStreaming=2;progresssiveLocators=2;

It is preferred to use db2jcc4.jar