Disk Based Query Tables, out of locks or out of memory

Disk Based Query Tables, out of locks or out of memory

book

Article ID: KB0074912

calendar_today

Updated On:

Products Versions
TIBCO Streaming 7

Description

Error

sleepycat.DatabaseException: Not enough space;_ Cannot allocate memory (608) Lock table is out of available locks; _Berkeley DB "Unable to allocate memory for transaction detail"

Issue/Introduction

Disk Based Query Tables, out of locks or out of memory

Resolution

Configure parameters for large return sets.

In the <server> section of your sbd.sbconf you can add:

<ac:default-parameter>xml</ac:default-parameter>
<param name="disk-querytable-lock-objects" value="100000"/>
<param name="disk-querytable-locks" value="100000"/>


Other possible causes of this problem:
  • The file or directory in which the disk-based-query-table resides has become unreadable to the current user due to permissions.
  • The disk is near full.
  • The DBQT has run out of lock. The default setting for table locks, when nothing is configured in the sbd.sbconf file, is 10000.

    • Set the following in the sbd.sbconf to these or larger values:

      <ac:default-parameter>xml</ac:default-parameter>
      <param name="disk-querytable-lock-objects" value="100000"/>
      <param name="disk-querytable-locks" value="100000"/>
    • You can try increasing the number of locks to 1000000 (1 million), but be aware that as you increase the size of your disk based query table, the buffer size and flush interval may need to be modified as well to ensure optimal performance.
  • The sbclient.jar file found by the server is the incorrect version (a different maintenance release of the same major version). Check with the output of sbhealth.
Additional Information

StreamBase CEP uses the Berkeley DB subsystem for disk-based Query Table elements.

See the Berkeley DB reference for estimating the number of locks.

The Query Table implementation has these attributes:
  • It is a Berkeley DB Transactional Data Store using Queued access.
  • Transaction mode is configured in the sbd.sbconf. All modes are supported.
  • The typical implementation is Btree although StreamBase supports Hash as well, as configured in the Table Indexes.
  • The default number of lock-table partitions is the number of CPU cores reported by the operating system times ten.