如何排除SOLIDWORKS PDM数据库服务器服务故障

日期:2022-06-02 12:16:12 发布者: ICT-Francis 浏览次数:

SOLIDWORKS PDM数据库服务器是一个帮助服务,它可以定期轮询PDM数据库,以便于查看执行任何SQL服务器上的服务配置更改。即时您可以在不运行PDM服务的情况下使用PDM,但PDM中的一些操作涉及到SOLIDOWRKS PDM数据库服务器的正确安装以及配置,当如下操作出现故障时,您可以通过检查数据库服务器对应配置排除故障。

SOLIDWORKS PDM数据库服务器是一个帮助服务,它可以定期轮询PDM数据库,以便于查看执行任何SQL服务器上的服务配置更改。即时您可以在不运行PDM服务的情况下使用PDM,但PDM中的一些操作涉及到SOLIDOWRKS PDM数据库服务器的正确安装以及配置,当如下操作出现故障时,您可以通过检查数据库服务器对应配置排除故障:
a.    自动通知——工作流程及其它触发的自动通知,诸如改变文件状态、检出、检入、添加文件、任务和定期任务等;
b.    视图更新——自动更新文件库视图列表和插件;
c.    数据卡更新——使用SQL查询语句查询更新数据卡列表;
d.    数据导入和导出规则——处理XML数据文件的生成与导入;
e.    冷存储计划——通过更改冷存储计划来更新存档服务器;
f.    复制计划——通过更改复制计划来更新存档服务器;
g.    索引服务管理——允许管理内容搜索的索引服务

如果您遇到任何SOLIDWORKS PDM的如上操作问题,可以尝试以下操作排除故障:
1、检查“ConisioMasterDb”数据库中“dbo.FileVaults”表行数据中是否有正确的文件库和数据库名称。如果行数据缺少目标文件库或数据库名称,PDM数据库服务无法实现文件库过程通知。
●  打开并登录SQL Management Studio,展开“数据库(Databases)”——“ConisioMasterDb”——“表(Table)”,右键dbo.FileVaults并选择“编辑前200行”

●  确保目标文件库及数据库在FileVaults表中存有记录。VaultName列为完整文件库名称,DatabaseName列为数据库名称,注意数据库和文件库名称也许是不同的名称。如果文件库名称遗失缺少,新增一行填写对应的文件库名称和数据库名称。如果存在有额外的数据库和文件库名称,请将其移除以确保只显示有效的文件库及数据库名称。

2、确认SOLIDWORKS PDM数据库服务器是否已经安装(一般位于SQL Server所安装服务器中)。确保“SOLIDWORKS PDM数据库服务器”服务处于开启运行中。

3、对于使用SWPDM 2017 SP3版本以上用户:确认SOLIDWORKS PDM数据库服务器(ConisioDbServer.exe)版本是否匹配文件存储数据库版本。例如,如果SWPDM版本为2018 SP2,数据库服务器服务于必须为20180SP0-SP5版本。

4、对于使用SWPDM 2017 SP2版本及以下版本:确认PDM数据库服务(ConisioDbServer.exe)版本是否匹配文件库数据库的大小版本。如果您更新文件库数据库,您同时需要更新数据库服务器服务。可通过“ConisioDbServer.exe”属性查询服务版本:

可通过管理工具中“属性”查看文件库数据库版本:

5、确保SQL是否正确授权登录:打开“数据库服务器配置”(可直接在Windows任务栏中搜索)。确保登录SQL Server登录账号至少以“db_owner”权限访问PDM数据库(一般可以用sa管理员账号登录)。确保数据库轮询时间(通常为60s)没有设置为太长或太短时间。

6、确认SOLIDWORKS PDM数据库服务器于注册表中设置是否正确,注册表路径:
[HKEY_LOCAL_MACHINE\SOFTWARE\SolidWorks\Applications\PDMWorks Enterprise\MailService] 

注意:Server项应包含数据库主机名(或数据库主机名\数据库实例);User项包含为数据库登录账号,应至少含有“db_owner”数据库权限;EventPollInterval项为PDM对事件(例如视图更新、列表更新、复制或冷存储变换等等)自动更新事件设置,默认为10s;PollInterval项为数据库服务器服务检查文件库数据库产生的通知时间间隔(例如工作流程通知),默认值设置为60s。

7、重启服务,等待一定时间,然后检查Windows事件查看器,查询PDM数据库服务器产生的报错日志

8、如果出现错误,很多时候是由于服务无法处理文件库,查阅报错信息,记录错误中提到的任何服务器名称或数据库名称,并尝试识别原因。解决报错信息后,重启SOLIDWORKS PDM服务并确认错误不会重新发生。
9、如果出现的错误与通信连接有关,很多时候与SQL Server实例有关。确保正确的SQL服务器名称出现在MailService注册表键中。由于系统运行数据库服务器服务必须能够访问到SQL Server,您仍需确保系统服务器可能建立一个ODBC连接到SQL服务器实例。
10、数据库服务器服务会在每个文件数据库中执行SQL列表查询,若存在有延迟登录或服务器细节信息,您也可以在应用程序事件日志中查询到重复错误。您也可以查看对应数据库的CardLists表中验证SQL驱动列表。

11、查看系统服务日志路径:C:\Windows\System32\config\systemprofile\AppData\Local\SOLIDWORKS\SOLIDWORKS PDM。在“ConisioDbServer.exe”模块中查阅潜在错误

12、当PDM数据库无法正常工作时,最常见的问题是无法自动生成通知:
a.    当一条自动通知在文件库被触发时,通知首先会添加到文件库数据库的“DocumentAcionInfo”表中;
b.    服务通过使用“PollInterval”注册表设置轮询数据库表并向用户投送信息;
c.    使用SQL Server Management Studio打开“DocumnetActionInfo”表

注意:
① 任何显示在“DocumentActionInfo”表中行为等待被发送的通知,他们由PDM数据库服务器服务处理发送。默认每次服务轮询数据库处理大概100行数据。等待一定时间表中数据会自动减少;
② 如果“DocumentActionInfo”表中数据未减少,数据库服务则无法产生通知。请检查Windows事件查看器中查看潜在错误并检查对应设置是否准确;
③ 如果“DocumentActionInfo”表为空,可能原因是您认为本应生成的通知并没有正确触发或生成,也可能是这些通知已经处理发送,但并没有发送到正确的用户。在“邮件信息系统”中检查SMTP服务器设置是否正确,并确认目标组及用户通知已经发送。

13、当PDM触发一个“事件”后(例如文件列表改变,列表更新,复制计划更改等等),文件库数据库中“BroadcastEvent”表将会更新,数据库服务器服务将会轮询“BroadcastEvent”这张表(通过EventPollInterval注册表项设置)并且执行表的更新。

注意:
① “BroadcastEvent”表中显示的行表示为等待发送执行,他们由SOLIDWORKS PDM数据库服务器服务执行发送;
② 若表中行数据未被执行,数据库服务将无法执行。检查事件查看器中日志以及确认设置是否准确。若表中行数据为空,事件则是已经完全执行。

14、若使用到“邮件信息系统”中的SMTP设置,确保SMTP设置正确并且用户使用有效邮箱地址。若SMTP设置无法成功发送接受邮件,请先确认通知通过“数据库”邮件系统能否正常发送接受(注意:在测试文件状态变换发送通知实例中,目标接受通知用户不能是执行操作触发通知的用户,若您执行操作触发通知,您作为接收方将不会收到对应通知)

15、可以通过修改对应注册表中“Log”项值为“1”来启动SOLIDWORKS PDM数据库服务,对应注册表路径为:HKEY_LOCAL_MACHINE\SOFTWARE\SolidWorks\Applications\PDMWorks 

16、若服务不正常安装,服务可能无法正常工作。您可在控制面板中重新安装SOLIDWORKS PDM数据库服务。
① “卸载程序”中选择SOLIDOWORKS PDM,“更改”程序,移除“数据库服务器”服务

② 在移除“数据库服务器”服务完成后,打开注册表,删除对应路径的现有设置,对应注册表路径:
HKEY_LOCAL_MACHINE\SOFTWARE\SolidWorks\Applications\PDMWorks Enterprise\MailService 

③ 重新安装SOLIDOWRKS PDM数据库服务器。