DB_RUNRECOVERY: Fatal error, run database recovery StackTrace问题的解决办法
大家在使用AIMS2012时有可能会遇到如下错误信息:
----
Error: An exception occurred in DB component.
DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery
StackTrace:
- MgSiteServiceHandler.ProcessOperation() line 83 file d:\build\mge2012\build_42.2\ent\os\server\src\services\site\SiteServiceHandler.cpp
- MgOpCreateSession.Execute() line 109 file d:\build\mge2012\build_42.2\ent\os\server\src\services\site\OpCreateSession.cpp
- MgServerSiteService.CreateSession() line 762 file d:\build\mge2012\build_42.2\ent\os\server\src\services\site\ServerSiteService.cpp
- MgServerResourceService.CreateRepository() line 541 file d:\build\mge2012\build_42.2\ent\os\server\src\services\resource\ServerResourceService.cpp
- MgSessionRepository.MgSessionRepository() line 76 file d:\build\mge2012\build_42.2\ent\os\server\src\services\resource\SessionRepository.cpp
- MgDbEnvironment.MgDbEnvironment() line 112 file d:\build\mge2012\build_42.2\ent\os\server\src\services\resource\DbEnvironment.cpp
----
解决办法:
有可能是Repository数据库出现了错误,可以尝试用Repository Admin脚本案例修复:
1. 停止AIMS服务
2.执行 BackupOffline 脚本
3.执行RestoreCode脚本
4.运行RecoverRepositoris脚本
5.重新启动AIMS服务。
以上提到的脚本在C:\Program Files\Autodesk\Autodesk Infrastructure Map Server 2012\RepositoryAdmin 目录下。
另外还可以尝试使用MapAdmin的包管理工具,导出为package,然后再导入试试。
如果上述方法不能解决你的问题,尝试增加serverconfing.ini中的SessionRepositoriesLimit值。
AIMS2012 readme中提到相关的解释: AIMS2012 readme doc -> Other Updates and Enhancements -> Updates in serverconfig.ini.
SessionRepositoriesConfig = FilePerSession
SessionRepositoriesLimit = 200
200这是缺省值,session数超过这个上限时会引发上面的错误,所以可以适当增大这个参数的值。