Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-3571

LOB locators are not released if the LOB columns are not accessed by the client

    XMLWordPrintableJSON

Details

    Description

      If the client creates a result set containing LOB locator columns and iterates through it without actually accessing the LOB columns, the locators are not released.
      The amount of locators and their associated LOB objects causes the server to consume large amounts of memory and it eventually gets an OOME.

      There are a few workarounds for this bug:
      a) Access and/or properly close the LOBs (i.e. Blob.free).
      This is partly dependent on DERBY-2892.
      b) Invoke Connection.commit (or rollback) periodically, which causes all locators on the connection to be released.

      Attachments

        1. derby-3571-1a-client_track_lob_fix.diff
          16 kB
          Kristian Waagan
        2. derby-3571-1a-client_track_lob_fix.stat
          0.5 kB
          Kristian Waagan
        3. derby-3571-1b-client_track_lob_fix.diff
          19 kB
          Kristian Waagan
        4. derby-3571-1c-client_track_lob_fix.diff
          19 kB
          Kristian Waagan
        5. derby-3571-1d-client_track_lob_fix.diff
          22 kB
          Kristian Waagan
        6. derby-3571-1e-client_track_lob_fix.diff
          22 kB
          Kristian Waagan
        7. derby-3571-2a-simple_release.diff
          34 kB
          Kristian Waagan
        8. derby-3571-2a-simple_release.stat
          0.6 kB
          Kristian Waagan

        Issue Links

          Activity

            People

              kristwaa Kristian Waagan
              kristwaa Kristian Waagan
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: