OpenLDAP 2.4でUnable to allocate memory for transaction detail

OpenLDAP2.4に対して同時接続数を増やすテストを行っていたところ、以下のエラーがログに出力されました。

「Unable to allocate memory for transaction detail」

何だ?これ。と思ってしらべていたら、Oracleのサイトに以下の情報が。

Berkeley DB occasionally returns the error: "Unable to allocate  memory for transaction detail". What does that mean?This error means the maximum number of active  transactions configured for Berkeley DB has been reached. The Berkeley  DB environment should be configured to support more active transactions.  When all of the memory available in the database environment for  transactions is in use, calls to being a transaction will fail until  some active transactions complete. By default, the database environment  is configured to support at least 20 active transactions.

For more information see the "<a href="http://www.oracle.com/technology/documentation/berkeley-db/db/programmer_reference/txn_config.html">Configuring  transactions</a>" section of the Berkeley DB Reference Guide.

BerkeleyDBに対して設定されたActiveトランザクション数の最大値に達したとのこと。参照の試験しかしていないのにおかしいな・・・

とりあえずDB_CONFIGファイルのset_lg_regionmax, set_lg_bsizeを倍にしたら回避できた。

#set_lg_regionmax 262144
#set_lg_bsize 2097152
set_lg_regionmax 524288
set_lg_bsize 4194304

参照だけでもトランザクションを使うのでしょうかね。

This entry was posted in Linux, solaris. Bookmark the permalink.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">