Make the full version of Ice to run in S3C2410.

zhangzq71zhangzq71 ✭✭Member ZhangZQOrganization: WanYiProject: Test ✭✭
There are too many limitation in using the IceE, so I decided to port the full version of Ice to my board, now everything are OK except the Frezze service, it is the problem of the porting of BerkeleyDB.

here is the code from BerkeleyDB documentation,

DbEnv myEnv(0);
try {
myEnv.open(envHome.c_str(), env_flags, 0);
} catch(DbException &e) {
std::cerr << "Error opening database environment: " << envHome << std::endl;
std::cerr << e.what() << std::endl;
exit( -1 );
} catch(std::exception &e) {
std::cerr << "Error opening database environment: " << envHome << std::endl;
std::cerr << e.what() << std::endl;
exit( -1 );
}

but got the following error, do you know what is the problem?

Error opening database environment: ./testEnv
My DbEnv::open: Function not implemented

Comments

  • benoitbenoit ZeroC Staff Rennes, FranceAdministrators, ZeroC Staff Benoit FoucherOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    Hi,

    It looks like BerkeleyDB is using a system call which is not implemented (or doesn't support some options) on your system. You could try to track down this system call with the debugger... In any case, note that we don't provide support for BerkeleyDB, I would recommend to check with Sleepycat for information regarding this issue.

    Cheers,

    Benoit.
  • zhangzq71zhangzq71 ✭✭ Member ZhangZQOrganization: WanYiProject: Test ✭✭
    The error occurs in env_open.c

    /*
    * Create/join the environment. We pass in the flags that will be of
    * interest to an environment joining later; if we're not the ones to
    * do the create, we pull out whatever has been stored.
    */
    init_flags = 0;
    if (LF_ISSET(DB_INIT_CDB))
    FLD_SET(init_flags, DB_INITENV_CDB);
    if (LF_ISSET(DB_INIT_LOCK))
    FLD_SET(init_flags, DB_INITENV_LOCK);
    if (LF_ISSET(DB_INIT_LOG))
    FLD_SET(init_flags, DB_INITENV_LOG);
    if (LF_ISSET(DB_INIT_MPOOL))
    FLD_SET(init_flags, DB_INITENV_MPOOL);
    if (LF_ISSET(DB_INIT_REP))
    FLD_SET(init_flags, DB_INITENV_REP);
    if (LF_ISSET(DB_INIT_TXN))
    FLD_SET(init_flags, DB_INITENV_TXN);
    if (F_ISSET(dbenv, DB_ENV_CDB_ALLDB))
    FLD_SET(init_flags, DB_INITENV_CDB_ALLDB);
    if ((ret = __db_e_attach(dbenv, &init_flags)) != 0)
    goto err;

    __db_e_attach return error.
  • bernardbernard ZeroC Staff Jupiter, FLAdministrators, ZeroC Staff Bernard NormierOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    I'd recommend to post this question to the comp.databases.berkeley-db newsgroup.

    Cheers,
    Bernard
  • zhangzq71zhangzq71 ✭✭ Member ZhangZQOrganization: WanYiProject: Test ✭✭
    I got help from the google group to fix this problem, now all of the Ice Full Version can be run in my board NOW!!!
Sign In or Register to comment.