db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kathey Marsden <kmarsdende...@sbcglobal.net>
Subject DERBY-255 Closing a resultset after retrieving a large > 32K alue with Network Server does not release locks
Date Wed, 25 May 2005 18:22:05 GMT
Currently, even though network server materializes the LOB to the
client, it uses  getBlob or  getClob to retrieve the large object. This
holds locks until the end of the transaction. 

I would like to change Network Server to:  
    - Use getCharacterStream and getBinaryStream instead of getClob
       and getBlob to avoid holding the locks after the result set is
    - Always  use 8 bytes for the FD:OCA place holder so we don't have
to calculate the length

Does anyone see any issues with this, especially for other clients such
as ODBC?

Some background for this:
When a LOB is sent,  an FD:OCA place holder is sent instead of a length
of the value.  The placeholder specifies how many bytes are needed to
specify the length and can be 2, 4, or 8 bytes. 
>From the protocol specification at
    http://www.opengroup.org/publications/catalog/c043.htm :
5.5.3  Late Group Descriptors
The placeholder size must be large enough for holding the maximum
possible length of a value belonging to the corresponding LOB column.
However, the sender is allowed to use a placeholder size larger than the
minimum necessary for the LOB column.

View raw message