企业管理 > 文件存储和复制 > 文件存储 > 理解文件存储 > 诊断和修复工具
  
诊断和修复工具
本节介绍可用来检查和更正所存储的内容文件的实用程序。
检验内容文件
Windchill 包括一个命令行实用程序 WContentVerify,该实用程序可检查数据库中所引用的,但电子仓库中缺失的内容文件。该实用程序还可使用数据库中元数据的大小来验证实际的内容文件大小。从 Windchill shell 运行 wt.fv.tools.WContentVerify 命令,可获得与缺失的文件或大小不正确的文件相关联的业务对象的详细信息,结果将输出至 Windchill 日志目录的 XML 文件中。
命令 windchill wt.fv.tools.WContentVerify -usage 详细说明了所有有效自变量及其作用。如果在未指定 -email 自变量的情况下运行该命令,则不会发送电子邮件通知。所有命令行自变量都是可选的。如果未提供自变量,则系统将检查所有电子仓库和文件夹中缺失或大小不正确的文件,从而确定所有系统内容的内部完整性。WContentVerify 实用程序会使用任务执行框架以并行方式执行多对象查询,以此标识数据库中内容文件的业务对象。在并行执行多对象查询时,可通过在短时间内检查电子仓库中大量缺失内容的文件来提升操作效率。
* 
codebase 目录下 wt.properties 文件中的 wt.mail.mailhost 属性必须指向一个有效的 SMTP 服务器。
以下是可用的自变量及其说明:
自变量
说明
-user=<adminid>
管理员用户的用户 ID。
-password=<<adminpassword>
管理员用户的密码。
-propertyFile=<pathname>
实用程序的属性文件的位置。
-vaults=<vault1,vault2,...>
仅检查指定电子仓库的文件夹。不允许在电子仓库名称中或电子仓库名称之间使用空格。
如指定“全部”,则会生成所有主电子仓库的报告。
-folders=<folder1,folder2,...>
仅检查指定的文件夹。不允许在文件夹名称中或文件夹名称之间使用空格。
-replicavaults=<vault1,vault2,...>
仅检查指定副本电子仓库的文件夹。不允许在副本电子仓库名称中或副本电子仓库名称之间使用空格。
如指定“全部”,则会生成所有副本和缓存电子仓库的报告。
-replicafolders=<folder1,folder2,...>
仅检查指定的文件夹。不允许在副本文件夹名称中或副本文件夹名称之间使用空格。
-onlyExistence
仅检查和报告文件是否存在。
-onlyReportLatest
仅报告迭代文档的最新小版本。
-email=[DIRECT_EMAIL,EMAIL_GROUP]
支持向指定用户发送电子邮件。此自变量会覆盖属性文件的等效属性。可以使用 DIRECT_EMAILEMAIL_GROUP 的值或同时使用二者的值 (以逗号分隔)。
-listVaultsFolders
打印电子仓库和文件夹名称,然后退出。
-listRemoteVaultsFolders
打印远程站点上的电子仓库和文件夹名称,然后退出。
-listReplicationRules
打印系统中的所有复制规则。此报告基于包含复制规则的电子仓库。结果存储在 Windchill 日志目录的 HTML 文件中。
-listPredictiveRules
打印系统中的所有预测规则。此报告基于包含预测规则的电子仓库。结果存储在 Windchill 日志目录的 HTML 文件中。
-usage
打印有效自变量的列表,然后退出。
-checkBusinessObject=<businessobject>
打印有关业务对象的详细信息,其中包括其存储位置以及复制位置。
-checkContentItem=<filename>
打印有关特定文件的详细信息,其中包括其存储位置以及其是否已被复制。
-checkPendingTransfers
打印有关远程站点中尚未传送的文件的详细信息。
-checkReplicationHistory=<remotesite>
打印有关远程站点中已被复制了一段时间的文件的详细信息。
-sites=<master,site1,site2,...>
将由系统检入指定站点的文件夹。
-threadCount=<thread count>
运行该工具的工作线程数。默认值为 3。
-cacheVault
打印有关缓存电子仓库中文件的详细信息。为此,必须以输入的形式提供缓存电子仓库的名称。对于多个缓存电子仓库,请以逗号分隔多个电子仓库的名称。
此自变量可与 -checkPendingTransfers 自变量配合使用,以列出缓存电子仓库中等待同步的文件。
-listMissingRulesForBusinessObject
对于存储在数据库 blob 或主电子仓库 (设置为默认目标系统) 的内容,打印缺失的存储规则。此自变量会生成一个由以下表格组成的 HTML 报告:
Database Blob - 列出数据库的所有缺失存储规则。
Master (Default System Target) - 列出设置为默认目标系统的主电子仓库的所有缺失存储规则。
此外,如果 WContentVerify 在执行期间抛出任何例外,建议您使用 -debug 选项运行工具。值 1 表示启用其他信息性消息。值 2 表示启用信息性消息和调试消息。值 3 表示启用信息性消息、调试消息和追踪消息。
大多数命令行自变量都可在一个属性文件中指定,该属性文件的路径使用 -propertyFile 自变量在命令行中指定。或者,在 Windchill codebase 目录 (即此实用程序将要搜索的默认名称和位置) 下将该特性文件另存为 WContentVerify.properties
* 
在命令行中指定的自变量会替换该特性文件中的特性设置。
下面是关于特性文件格式的一个示例:
# Path to the directory that will store utility's output. If not
# specified, will default to $WT_HOME/logs
OUTPUT_STORAGE_PATH=D:\\XML_Output\\
# true/false Enable sending of summary email after a run of the utility
# The wt.properties setting of wt.mail.mailhost is required
EMAIL_GROUP.enabled=true
# Comma separated windchill usernames. Everyone on this list receives
# email notification of a completed utility execution. No spaces allowed.
EMAIL_GROUP.list=testUser1,testUser2
# Enable sending emails to modifiers of the files that have been detected to have
# errors
DIRECT_EMAIL.enabled=true
# Subject of emails sent to modifiers of files that have been detected to have
# errors
DIRECT_EMAIL.mailSubject=Direct Email Report
# Opening line(s) of emails sent to modifiers of files that have been detected to
# have errors
DIRECT_EMAIL.body=First line of Direct Email Report
# Valid windchill username that will be set as the originator of the email
# notification
DIRECT_EMAIL.replyTo=testUser3
# Valid values are html or text. Determines whether the modifiers receive a text
# or html email
DIRECT_EMAIL.format=html
# The maximum number of errors permissible for direct email to be sent.
# If the total number of errors is greater than this number,
# no direct emails will be sent, default is 2000
DIRECT_EMAIL.limit=1500
# Must be one of All or onlyReportLatest . Reports errors either in all
# iterations or the last iteration of iterated objects, default is All.
REPORT_DOCUMENTS_FILTER=All
检测和解析多个主要内容文件
WMultiPrimaryDetect 命令行实用程序用于检测和更正数据问题,其中有多个主要内容文件已与一个 FormatContentHolder 对象关联。WMultiPrimaryDetect 使用命令 windchill wt.fv.tools.WMultiPrimaryDetect 从 Windchill shell 中运行,且可根据需要传递合适的参数。如果未提供任何参数,该工具将在诊断模式下运行。
在默认模式下运行此工具会输出 XML 文件 multiPrimaryDiagnosis_<YYYYMMDD_HHMM>.xml,其中列出所有不正确的 FormatContentHolders 及其多个主要内容项。该工具要求 Windchill 方法服务器实例已启动并正在运行。
以下是可用的自变量及其说明:
自变量
说明
-user=<adminid>
管理员用户的用户 ID。
-password=<adminpassword>
管理员用户的密码。
-fix
在修复模式下运行。如果使用该自变量,必须同时指定 -inputFile 参数。如果删除了任何内容文件,则会在 <WT_HOME>/logs/ContentItems 目录中创建该内容文件的副本。
* 
将不会删除电子仓库中的内容文件;只是删除它们在数据库中的条目。
-inputFile=<input full path and filename>
使用指定的 XML 文件删除主要内容项。用作输入的 XML 文件是在诊断模式 (默认模式) 下运行该工具时所生成的 XML 文件。对于要删除数据库条目的内容项,必须更新诊断文件,以将 deleteThisItem 字段的值更改为 Y
* 
将不会删除电子仓库中的内容文件,只是删除它们在数据库中的条目。
-outputPath=<output pathname>
使用在 outputPath 参数中指定的目录路径保存 XML 输出文件。
* 
默认情况下,将在 <WT_HOME>/logs 目录中创建一个文件,其名称为日志的时间戳,同时 XML 文件会保存在此处。如果已指定此自变量且提供了路径,则使用该指定路径。
-confirmBeforeDelete=<Y/N>
删除每个文件之前要求用户进行确认。默认值为 Y
-usage
打印有效自变量的列表,然后退出。
要在修复模式下运行,该实用程序需要一个输入文件,用来指定要删除的文件。用作输入的 XML 文件是在诊断模式 (默认模式) 下运行该工具时所生成的 XML 文件,但您已将其更新为针对要删除的内容项而将 deleteThisItem 字段更改为 Y
* 
以任何其他方式修改 XML 文件都可能导致产生不一致的结果。
另外,请注意,每个 ContentHolder 必须至少存在一个主要内容项。如果已在 XML 文件中将 ContentHolder 的所有内容项均标记为删除,则该工具将针对该 ContentHolder 的所有内容项打印一条错误消息 (在 XML 文件的 errorMessage 字段中),不删除任何一个内容项,并将继续处理其余的 XML 文件。errorMessage 字段是可选字段,对于已成功删除的对象,不会显示该字段。
在修复模式下运行该工具时,会生成结果 XML 文件,它与输入文件存储在同一目录中。文件名称使用以下格式:multiPrimaryResults_<YYYYMMDD_HHMM>.xml。此 XML 文件的格式与 multiPrimaryDiagnosis 报告非常相似,只是用 itemDeleted 字段替换了 deleteThisItem 字段。该字段包含一个针对已删除的内容项的值 Y
已删除内容文件的副本另存为原始文件名。如果多个文件具有相同的名称,则添加编号形式的后缀,如 _1、_2 等等。保存的名称也将存储在 multiPrimaryResults XML 文件中。
* 
在 WMultiPrimaryDetect 工具中,记录功能由 wt.properties.中的 wt.fv.verbose 设置控制。如果将该特性设置为 true,则此工具将提供详细输出。