Support Article
Pega 7.1.8 installation on DB2 fails with 'Lob is closed' error
SA-11749
Summary
Pega 7.1.8 installation on DB2 fails with 'Invalid operation: Lob is closed' error.
Reading Properties from : C:\Pega7.1.7\114819_Pega718\scripts/setupDatabase.properties
pega.jdbc.driver.jar=C:\Program Files\IBM\shared\db2jcc4.jar
pega.jdbc.driver.class=com.ibm.db2.jcc.DB2Driver
pega.database.type=udb
pega.jdbc.url=jdbc:db2://<host>:<port>/<db name>:retrieveMessagesFromServerOnGetMessage=true;
pega.jdbc.username=<user>
pega.jdbc.password=<asterisks>
rules.schema.name=<rules>
data.schema.name=<data>
user.temp.dir=
pega.zos.properties=
bypass.udf.generation=true
Error Messages
[java] Caused by:
[java] com.pega.pegarules.pub.database.ConnectionException: Database-General problem encountered when reading ruleset versions from the database -4470 [jcc][10120][11936][4.17.30] Invalid operation: Lob is closed. ERRORCODE=-4470, SQLSTATE=null
[java] From: (BE6C4A9DC0D4A798656A9FE7C5F258916:(PREnvironment))
[java] SQL: select pyRuleSetName, pyRuleSetVersionID, pzPVStream from SPTRULES.pr4_rule_ruleset where pxObjClass = 'Rule-RuleSet-Version' and pyRuleSetName = ? and pyRuleSetVersionID like '07-10%'
[java] SQL Inserts: <Pega-ProcessCommander>
[java]
[java] Caused by SQL Problems.
[java] Problem #1, SQLState null, Error code -4470: com.ibm.db2.jcc.am.SqlException: [jcc][10120][11936][4.17.30] Invalid operation: Lob is closed. ERRORCODE=-4470, SQLSTATE=null
[java] at com.pega.pegarules.data.internal.access.ExceptionInformation.createExceptionDueToDBFailure(ExceptionInformation.java:256)
[java] at com.pega.pegarules.data.internal.access.RuleResolver.getHighestRuleSetMatchingSpec(RuleResolver.java:1611)
[java] at com.pega.pegarules.data.internal.access.DatabaseImpl.getHighestRuleSetMatchingSpec(DatabaseImpl.java:12844)
Steps to Reproduce
1. Install UDF table using command line script and then run installer setting bypass.udf.generation=true.
2. Configure JDBC URI incorrectly as noted.
Root Cause
The configuration was not using the correct format for the JDBC URI.
In this use case:
pega.jdbc.url=jdbc:db2://<host>:<port>/<dbname>:retrieveMessagesFromServerOnGetMessage=true;
Should be similar to this:
jdbc:db2://<host>:<port>/<db name>:fullyMaterializeLobData=true;fullyMaterializeInputStreams=true;progressiveStreaming=2;useJDBC4ColumnNameAndLabelSemantics=2;
Resolution
Correct the JDBC URI format to follow suggestion by adding the following important settings:
fullyMaterializeLobData=true;
fullyMaterializeInputStreams=true;
progressiveStreaming=2;
useJDBC4ColumnNameAndLabelSemantics=2;
Published July 22, 2015 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.