db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Noll <dan...@nuix.com>
Subject 10.4.1.3: 'SYSIBM.CLOBRELEASELOCATOR' is not recognized as a function or procedure.
Date Fri, 02 May 2008 06:05:55 GMT
Hi guys.

I have a situation where a database created under an earlier version of Derby
causes errors when iterating over a result set which contains a CLOB column.


Here's what is seen from the client:

Caused by: org.apache.derby.client.am.SqlException: 'SYSIBM.CLOBRELEASELOCATOR' is not recognized
as a function or procedure.
	at org.apache.derby.client.am.Statement.completeSqlca(Statement.java:1833)
	at org.apache.derby.client.net.NetStatementReply.parsePrepareError(NetStatementReply.java:564)
	at org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(NetStatementReply.java:144)
	at org.apache.derby.client.net.NetStatementReply.readPrepare(NetStatementReply.java:77)
	at org.apache.derby.client.net.StatementReply.readPrepare(StatementReply.java:60)
	at org.apache.derby.client.net.NetStatement.readPrepare_(NetStatement.java:187)
	at org.apache.derby.client.am.Statement.readPrepare(Statement.java:1458)
	at org.apache.derby.client.am.PreparedStatement.readPrepareDescribeInput(PreparedStatement.java:1890)
	at org.apache.derby.client.am.PreparedStatement.flowPrepareDescribeInputOutput(PreparedStatement.java:1942)
	at org.apache.derby.client.am.PreparedStatement.prepare(PreparedStatement.java:318)
	at org.apache.derby.client.am.Connection.prepareCallX(Connection.java:1784)
	at org.apache.derby.client.am.CallableLocatorProcedures.clobReleaseLocator(CallableLocatorProcedures.java:645)
	at org.apache.derby.client.am.LOBStateTracker.checkCurrentRow(LOBStateTracker.java:113)
	at org.apache.derby.client.am.ResultSet.moveToCurrentRowX(ResultSet.java:3792)
	at org.apache.derby.client.am.ResultSet.nextX(ResultSet.java:290)
	at org.apache.derby.client.am.ResultSet.next(ResultSet.java:272)
	... 22 more


From the server:

2008-05-02 01:44:12.890 GMT:
 Booting Derby version The Apache Software Foundation - Apache Derby - 10.4.1.3 - (exported):
instance 601a400f-0119-a725-9066-00000dd6c0b2
on database directory H:\<cut>

Database Class Loader started - derby.database.classpath=''
2008-05-02 01:44:41.093 GMT Thread[DRDAConnThread_6,5,derby.daemons] (XID = 12729079), (SESSIONID
= 1), (DATABASE = H:\Project Roundabout\FBI _MASTER_DEDUPED\Case\Stores\EvidenceDatabase),
(DRDAID = C0A80063.G46B-665968585204464940{3}), Cleanup action starting
2008-05-02 01:44:41.093 GMT Thread[DRDAConnThread_6,5,derby.daemons] (XID = 12729079), (SESSIONID
= 1), (DATABASE = H:\Project Roundabout\FBI _MASTER_DEDUPED\Case\Stores\EvidenceDatabase),
(DRDAID = C0A80063.G46B-665968585204464940{3}), Failed Statement is: CALL SYSIBM.CLOBRELEASELOCATOR(?)
ERROR 42Y03: 'SYSIBM.CLOBRELEASELOCATOR' is not recognized as a function or procedure.
	at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:286)
	at org.apache.derby.impl.sql.compile.StaticMethodCallNode.bindExpression(StaticMethodCallNode.java:217)
	at org.apache.derby.impl.sql.compile.JavaToSQLValueNode.bindExpression(JavaToSQLValueNode.java:246)
	at org.apache.derby.impl.sql.compile.CallStatementNode.bindStatement(CallStatementNode.java:145)
	at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:314)
	at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:88)
	at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:768)
	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:128)
	at org.apache.derby.impl.jdbc.EmbedCallableStatement.<init>(EmbedCallableStatement.java:69)
	at org.apache.derby.impl.jdbc.EmbedCallableStatement20.<init>(EmbedCallableStatement20.java:85)
	at org.apache.derby.impl.jdbc.EmbedCallableStatement30.<init>(EmbedCallableStatement30.java:61)
	at org.apache.derby.jdbc.Driver30.newEmbedCallableStatement(Driver30.java:122)
	at org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(EmbedConnection.java:1567)
	at org.apache.derby.impl.drda.DRDAStatement.prepare(DRDAStatement.java:629)
	at org.apache.derby.impl.drda.DRDAStatement.explicitPrepare(DRDAStatement.java:596)
	at org.apache.derby.impl.drda.DRDAConnThread.parsePRPSQLSTT(DRDAConnThread.java:3618)
	at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:789)
	at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:278)


Unless I'm mistaken, CLOBRELEASELOCATOR was one of those stored procedures
introduced in 10.3.1.4 to solve the issue where CLOBs would be sent in full
to the client instead of streaming over the network.  But this is 10.4.1.3,
it should still exist, yet we're seeing this error.

I've tried to reproduce it locally though, to no avail.

Daniel

Mime
View raw message