Archived
This forum has been archived. Please start a new discussion on GitHub.
Trouble converting IceStorm to 3.2.
Hi all,
I'm converting my Ice 3.0.1 setup to 3.2, but I'm stumped at one little configuration issue; that is, Storm doesn't start anymore. Something is wrong with its Berkeley DB location, and I've tried all the settings I can think of. I've set IceBox.InheritProperties=1 as per issue21.pdf, but that made no difference at all. From IceStorm.err:
Berkeley DB: DbEnv "IceStorm": IceStorm: No such file or directory
(Full log, see below)
I've set Freeze.DbEnv.IceStorm.DbHome to a valid path, but it seems DB keeps complaining about 'IceStorm'.
I'm secretly hoping someone will recognize this, and remind me that I forgot to set variable X.Blah.Y
Cheers,
Rob
stderr:
[ 03/14/07 19:16:13.015 Network: stopping to accept tcp connections at 127.0.0.1:4429 ]
[ 03/14/07 19:21:10.796 Network: attempting to bind to tcp socket 127.0.0.1:0 ]
[ 03/14/07 19:21:10.796 Network: accepting tcp connections at 127.0.0.1:4478 ]
[ 03/14/07 19:21:10.828 Berkeley DB: DbEnv "IceStorm": IceStorm: No such file or directory ]
[ 03/14/07 19:21:10.828 Berkeley DB: DbEnv "IceStorm": IceStorm\log.0000000001: No such file or directory ]
[ 03/14/07 19:21:10.828 Berkeley DB: DbEnv "IceStorm": PANIC: No such file or directory ]
[ 03/14/07 19:21:10.828 Berkeley DB: DbEnv "IceStorm": IceStorm: No such file or directory ]
03/14/07 19:21:10.859 error: ServiceManager: exception while starting service IceStorm:
SharedDbEnv.cpp:323: Freeze::DatabaseException:
DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery
[ 03/14/07 19:21:10.875 Network: stopping to accept tcp connections at 127.0.0.1:4478 ]
I'm converting my Ice 3.0.1 setup to 3.2, but I'm stumped at one little configuration issue; that is, Storm doesn't start anymore. Something is wrong with its Berkeley DB location, and I've tried all the settings I can think of. I've set IceBox.InheritProperties=1 as per issue21.pdf, but that made no difference at all. From IceStorm.err:
Berkeley DB: DbEnv "IceStorm": IceStorm: No such file or directory
(Full log, see below)
I've set Freeze.DbEnv.IceStorm.DbHome to a valid path, but it seems DB keeps complaining about 'IceStorm'.
I'm secretly hoping someone will recognize this, and remind me that I forgot to set variable X.Blah.Y
Cheers,
Rob
>>> server describe IceStorm icebox `IceStorm' { service manager endpoints = `tcp -h 127.0.0.1' application = `EQMS' application uuid = `8b50637c-b796-4b13-b4b7-244346e70579' application revision = `2' node = `eqmssv1' exe = `icebox.exe' pwd = `C:/opt/sol/eqms/bin' activation = `on-demand' properties { IceBox.InstanceName = `IceStorm' IceBox.ServiceManager.Endpoints = `tcp -h 127.0.0.1' IceBox.ServiceManager.RegisterProcess = `1' Freeze.Trace.DbEnv = `2' IceStorm.Trace.Topic = `2' Ice.Trace.Network = `2' IceStorm.Trace.Subscriber = `1' IceStorm.Trace.Flush = `1' Freeze.DbEnv.IceStorm.DbHome = `C:/opt/sol/eqms/bin/db' Ice.ThreadPool.Server.Size = `30' Ice.ServerIdleTime = `0' Ice.Override.Timeout = `5000' Ice.Override.ConnectTimeout = `1000' Ice.RetryIntervals = `0' IceStorm.TopicManager.Endpoints = `default' IceStorm.Publish.Endpoints = `tcp' IceStorm.TopicManager.AdapterId = `IceStorm.IceStorm.IceStorm.TopicManager' IceStorm.Publish.AdapterId = `IceStorm.IceStorm.IceStorm.Publish' } service `IceStorm' { entry = `IceStormService,32:createIceStorm' adapter `IceStorm.TopicManager' { id = `IceStorm.IceStorm.IceStorm.TopicManager' endpoints = `default' register process = `false' server lifetime = `true' well-known object { identity = `IceStorm/TopicManager' type = `::IceStorm::TopicManager' } } adapter `IceStorm.Publish' { id = `IceStorm.IceStorm.IceStorm.Publish' endpoints = `tcp' register process = `false' server lifetime = `true' } properties { } } }
stderr:
[ 03/14/07 19:16:13.015 Network: stopping to accept tcp connections at 127.0.0.1:4429 ]
[ 03/14/07 19:21:10.796 Network: attempting to bind to tcp socket 127.0.0.1:0 ]
[ 03/14/07 19:21:10.796 Network: accepting tcp connections at 127.0.0.1:4478 ]
[ 03/14/07 19:21:10.828 Berkeley DB: DbEnv "IceStorm": IceStorm: No such file or directory ]
[ 03/14/07 19:21:10.828 Berkeley DB: DbEnv "IceStorm": IceStorm\log.0000000001: No such file or directory ]
[ 03/14/07 19:21:10.828 Berkeley DB: DbEnv "IceStorm": PANIC: No such file or directory ]
[ 03/14/07 19:21:10.828 Berkeley DB: DbEnv "IceStorm": IceStorm: No such file or directory ]
03/14/07 19:21:10.859 error: ServiceManager: exception while starting service IceStorm:
SharedDbEnv.cpp:323: Freeze::DatabaseException:
DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery
[ 03/14/07 19:21:10.875 Network: stopping to accept tcp connections at 127.0.0.1:4478 ]
0
Comments
-
Hi Rob,
Setting IceBox.InheritProperties=1 in the IceBox configuration file should work. However, it would be cleaner to set the IceStorm properties in the service configuration file instead.
You should take a look at the IceStorm demos and the config/templates.xml file provided with your distribution for examples on how to configure IceStorm.
Let us know if you need more information!
Cheers
Benoit.0 -
Hi Benoit,
Thanks, the template was helpful. It all came down to a missing <dbenv/> element, which wasn't required in 3.0 apparently.
That took me a long time to find, and I'm not even that much of an Ice newbie. Would it be better for IceGrid to issue a warning if the element is missing? From the log I posted, it was not clear to me at all what might be the problem.
Cheers!
Rob0 -
Hi Rob,
The <dbenv> element isn't really required. You can continue to specify the IceStorm database environment properties explicitly in your descriptor too.
I suspect your problem came from the fact that you specified the IceStorm service configuration properties in the IceBox server descriptor instead of the service descriptor -- this worked with Ice <= 3.1 but not with 3.2 since IceBox server properties aren't inherited automatically anymore by services.
Cheers,
Benoit.0