[KB225924150078738功能解说] 报错:“无数据库连接”(启动X3 V7或更高版本时)
* 本文由赛捷软件(上海)有限公司翻译完成,未经授权不得转载。如需转载,请先联系相应版块的版主取得授权。
报错:“无数据库连接”(启动X3 V7或更高版本时)
创建日期:2021-07-05
最后修改日期:2021-07-05
描述
查看MongoDB是否正在监听默认端口27017(或者执行X3安装的人员设置的任何端口号)的步骤:
1. 以管理员权限打开一个命令提示符
2. 输入:md c:\DeleteMePlease
3. 然后按下回车键。(这个操作会在C:\驱动器的根目录下创建一个名为"DeleteMePlease"的文件夹)
4. 输入:netstat -abont > c:\DeleteMePlease\netstat.txt
5. 然后按下回车键。(这会重定向netstat命令,将其值输出到一个文本文件中)
6. 用文本编辑器打开netstat.txt文件,然后使用Ctrl + F搜索mongod或27017。 结果应该如下图所示。 截图中显示,mongod.exe进程(Mongo后台程序)正在监听端口27017,相关信息会紧邻显示在端口号上方。 如果您在这个端口号下方看到显示了另一个进程,则意味着该进程先于MongoDB启动,并独占了端口,从而阻止了MongoDB使用同一个端口。 结果就是MongoDB服务无法启动,并且Syracuse无法访问所需数据。
o 在这种情况下,将冲突的服务设置为延迟启动可能有所帮助。 无论哪种情况,请联系服务的软件供应商寻求帮助。
原因
在最基本的层面上,该报错意味着Syracuse无法从MongoDB读取数据(即使这两个服务都已启动)。
可能的原因:
• Sage Syracuse - NODEx服务未运行。 这可能是由于Sage Syracuse服务本身的问题,或者更可能是由于MongoDB服务未能启动。 Syracuse的正常运行依赖于MongoDB。 如果MongoDB未能启动,可能是因为有其他程序正在使用相同的端口(默认端口27017),或者有其他因素(例如Windows Update或Microsoft Security Essentials)阻止了MongoDB的启动。
• Sage Syracuse - NODEx和MongoDB服务正在运行,甚至正在监听正确的端口(即分别为8124和27017),但Syracuse服务仍然无法从MongoDB数据库读取数据。 这些MongoDB数据是成功显示(并登录)X3登录界面和系统所必需的。
• 服务器上安装MongoDB的硬盘空间已耗尽。
解决方法
1. 首先,尝试停止Syracuse服务。
2. 如果它已经停止,请在任务管理器中确认node.exe是否未运行。 如果Syracuse无法停止或无法及时停止,或者如果存在node.exe进程,请结束所有node.exe实例的进程。
3. 确认MongoDB服务正在运行。 它会在任务管理器中显示为mongod.exe。 如有需要,请检查Windows服务。
4. 即使MongoDB服务正在运行,也请停止并再次启动MongoDB服务。
o 在Windows服务界面中,大约每5秒按一次F5键,以确认MongoDB服务是否确实保持启动状态。 之后至少等待30秒刷新屏幕,以确认服务仍然处于启动状态。
5. 如果成功,在MongoDB重新启动之后,启动(或重新启动)Sage Syracuse - NODEx服务。
o 按F5键确认Syracuse服务是否也保持启动状态。 如果它保持启动,确认您现在是否可以登录X3。
6. 如果Syracuse服务未能启动,请再次确认MongoDB服务正在运行。如果Syracuse或MongoDB日志对您的故障排除没有帮助,请联系支持人员。 这些日志通常位于Syracuse/MongoDB文件夹中。
7. 如果您现在可以登录X3,可以采取以下进一步措施来防止此问题将来再次发生:
A. 将Agent Sage Syracuse服务设置为自动(延迟启动)(而不是"Sage Syracuse - NODEx"服务——因为"Sage Syracuse - NODEx"服务是一个手动服务,这意味着它无法自行启动,而是由Agent Sage Syracuse服务实际启动的)。 通过双击Agent Sage Syracuse服务,打开属性窗口来完成此操作。
B. 确认您是否可以登录X3。
• 如果您想进行额外的故障排除,以确认服务器重启后此功能仍能正常运行:
a) 测试一下,重启托管这些服务的服务器。
b) 确认两个服务都保持启动状态。 服务器重启到Windows桌面后,这些服务可能需要一到两分钟才能启动。
c) 确认您是否可以登录X3。
注意: 如果MongoDB服务或Sage Syracuse服务在重启并设置延迟启动后仍未能保持启动,一个已知的阻止MongoDB启动的原因是Microsoft Security Essentials。 您可以为Mongo进程设置一个排除项(进入MongoDB服务的属性窗口以找到确切路径),或者卸载Microsoft Security Essentials并重启。
注意2:确保您的存储设备上有足够的可用空间,至少应大于Mongo数据库的大小。 |