IBM Support

'LSXBE: Out of backend memory' errors coincide with Notes/Domino performance and crash issues

Technote (troubleshooting)


Problem

Lotus Notes or Domino performance or crash issues occur and the following entries appear on the console:

LSXBE: ************************************
LSXBE: ****** Out of Backend Memory *******
LSXBE: ************************************


Symptom

Notes or Domino crashes and hangs with the above error in the console.


Cause

The cause of the problem is not recycling Domino Java API objects correctly within an agent, servlet or standalone application that is connecting to Notes or Domino through the local Java API (via Notes.jar, not NCSO.jar & DIIOP).

Diagnosing the problem

Investigate any loops or cycles which go through large amounts of data.

Resolving the problem

It is imperative to correctly recycle Domino Java objects, and the reason is detailed in the following technote #1097861 - "Why it is important to use the Recycle() method on every Java object".

Basically this "Out of Backend Memory" error is the extreme usage of the backend handles which only really occurs when cycling through large amounts of data, usually something like:

while( doc != null) {

tmp = view.getNextDocument(doc);   //get the next document
// doc.recycle();  // recycle the previous document
doc = temp;
}

(where doc and tmp are Document objects)

As it is, the above code would cause a memory leak and eventually lead to the "..out of backend memory" error being thrown. This could be resolved by un-commenting the "doc.recycle()" line.

The same or similar is true of cycling through View Entry objects and would be handled in the same way.

The other case in which this happens is returning Domino Java objects without having handles to them, for example:

while ( viewentry != null ) {
columnValues = null;
columnValues = viewentry.getColumnValues();
tmp = viewnavigator.getNextDocument();
viewentry.recycle();
viewentry = tmp;

}

viewnavigator.recycle();

(where tmp and viewentry are ViewEntry objects, viewnavigator is a ViewNavigator and columnValues is a Vector).

In the above example it appears that every Domino Java object is being recycled, but in this case it is not. The viewentry.getColumnValues() returns a Vector full of Double, DateTime, or String objects. The one to be concerned with is the DateTime object, this will need to be recycled as well.

This can be achieved using the alternative recycle method: Session.recycle(java.util.Vector)

This will recycle any Domino objects within a Vector.

Document information

More support for: IBM Domino Designer
Java

Software version: 7.0, 8.0, 8.5, 9.0

Operating system(s): Windows

Reference #: 1438386

Modified date: 26 January 2011


Translate this page: