OCILobWrite doesn't come back

From: <Use-Author-Address-Header_at_[127.1]>
Date: Tue, 27 Apr 1999 19:24:57 -0400 (EDT)
Message-ID: <19990427232458.11129.qmail_at_mail.numachi.com>



I have some code that does essentially the following:

  #define BUFSIZE 16384
  while (n = read(fd, buf, BUFSIZE))
  {
    len = n;
    OCILobWrite(conn, err, blob, &len, 1+blob_pos, buf, n,

                OCI_ONE_PIECE, 0, 0, 0, SQLCS_IMPLICIT);     blob_pos += n;
  }

(trimmed down for question purposes; please assume everything was initialized and errors dealt with sensibly)

Most of the time this works fine, regardless of the length of the data coming in or the data itself; but periodically, OCILobWrite will go away and never come back. Once in a while, it will come back after 30 seconds or so, which is almost as bad from my point of view, but those do not return with any enlightening error message.

This is in a multi-threaded application, which eventually hangs because all its Oracle connections are hung in OCILobWrite. Is OCILobWrite known to not be thread-safe? For a variety of reasons, I can't just read the object into a buffer and write it all at once. Looking for any clues.

This is all Oracle 8.0.4, running on a sparc.

        Erich Received on Wed Apr 28 1999 - 01:24:57 CEST

Original text of this message