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