Home Help Center

a problem About the example of freeze in reference

i meet a problem which has been met by another person .

as that:

[ D:\OpenSource\Ice-1.5.1\demo\Ice\myfreeze\Debug\myfreeze.exe: Berkeley DB: DbE
nv "db": db: No such file or directory ]
[ D:\OpenSource\Ice-1.5.1\demo\Ice\myfreeze\Debug\myfreeze.exe: Berkeley DB: DbE
nv "db": db\log.0000000001: No such file or directory ]
[ D:\OpenSource\Ice-1.5.1\demo\Ice\myfreeze\Debug\myfreeze.exe: Berkeley DB: DbE

This is the answer by Bernard :

By default, Freeze uses the environment name as the the Berkeley DB home directory (here db). You can change this using Freeze.DbEnv.env-name.DbHome. This directory must exist before you run your application.

Cheers,
Bernard

now !!!!
"D:\Ice-2.0.0-ThirdParty" is the path of which the Ice-2.0.0-ThirdParty installed .

i set "Freeze.DbEnv.env-name.DbHome" to "D:\\Ice-2.0.0-ThirdParty",
and change the "db" into "bin".

but the problem still exists.
how to do is correct?


Ice::PropertiesPtr props = Ice::getDefaultProperties(argc,argv);
props->setProperty("Freeze.DbEnv.env-name.DbHome",
"D:\\Ice-2.0.0-ThirdParty");
Ice::CommunicatorPtr communicator = Ice::initialize(argc,argv);

Freeze::ConnectionPtr connection = Freeze::createConnection(communicator,"bin");

Comments

  • bernardbernard Jupiter, FLAdministrators, ZeroC Staff Bernard NormierOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    You misunderstood my post :)

    By "Berkeley DB home directory", I meant where Berkeley DB is going to store its files for your application, not the directory where the Berkeley DB binaries (headers etc) are installed.

    For example, if you write
    Freeze::ConnectionPtr connection = Freeze::createConnection(communicator, "myDbEnvironment");

    and don't set any properties, Freeze will create its files in the myDbEnvironment directory (this directory must exist: Freeze won't create it). Since "myDbEnvironment" is not an absolute path, Freeze looks for a myDbEnvironment subdirectory in your current directory.

    Now, if you want to change the directory where Freeze (really Berkeley DB) store its file for myDbEnvironment, you can set in your config file:

    Freeze.DbEnv.myDbEnvironment.DbHome = D:\bernard\myDbs\test1

    Like before, D:\bernard\myDbs\test1 must exist ... Freeze won't create it for you.

    Hope this is clearer!
    Bernard
  • fw_cshafw_csha Member
    thanks ~
    very clearly!
Sign In or Register to comment.