Home Help Center

About freeze

lixianglixiang Member
add callrecord to Freeze, when the file exceed some size, the program will capture an exception, as follows:

Berkeley DB: DbEnv "db": Lock table is out of available locks
E:\..\ICE-1.2.0\src\Freeze\MapI.cpp:495: Freeze::DatabaseException:
Dbc::get: Not enough space

does it have some limit of the file??? if it does ,how much of the limit???

thanks

Comments

  • bernardbernard Jupiter, FLAdministrators, ZeroC Staff Bernard NormierOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    You've reached a Berkeley DB limit, probably because you're adding or updating a large number of objects within the same transaction (or iterator, which is equivalent). Please refer to the Freeze chapter in the Ice 1.3.0 book for more details on iterators and transactions.

    If you need more Berkeley DB locks than the default (1000), create a DB_CONFIG file in your Berkeley DB home directory (typically db/), with the following setting:
    set_lk_max_locks <large-number>
    See http://www.sleepycat.com/docs/api_c/env_set_lk_max_locks.html for details.

    Cheers,
    Bernard
  • lixianglixiang Member
    I creat a file named DB_CONFIG.cfg in my DB directory,with the following setting:
    set_lk_max_locks 1000000

    But I can't resolve the question, why?

    would you please give me an example? thanks!
  • bernardbernard Jupiter, FLAdministrators, ZeroC Staff Bernard NormierOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    The name must be DB_CONFIG, not DB_CONFIG.cfg. There is one example, the Freeze/backup demo; but it does not work on Windows (because it uses shell scripts).

    Cheers,
    Bernard
  • lixianglixiang Member
    when i creat a file named DB_CONFIG in my DB directory, my program does not work, the following is the error:

    [ accountcenter: Berkeley DB: DbEnv "db": malloc: No such file or directory: 675241984 ]
    [ accountcenter: Berkeley DB: DbEnv "db": PANIC: No such file or directory ]
    [ accountcenter: Berkeley DB: DbEnv "db": fatal region error detected; run recovery ]
    E:\..\ICE-1.2.0\src\Freeze\SharedDbEnv.cpp:357: Freeze::DatabaseException:
    DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery

    can you tell me why? and how to resovle ?

    thanks a lot for your reply!
  • bernardbernard Jupiter, FLAdministrators, ZeroC Staff Bernard NormierOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    It looks like your database is inconsistent. I would recommend to remove all the files in your db directory except DB_CONFIG.

    If the files are valuable, you need to use Berkeley DB's db_recover utility:
    % db_recover -c -h db

    Cheers,
    Bernard
Sign In or Register to comment.