診断および修復ツール
このセクションでは、ボルトに格納したコンテンツファイルの確認と修正に使用できるユーティリティについて説明します。
コンテンツファイルの確認
Windchill にはコマンドラインユーティリティの WContentVerify が付属しており、データベース内で参照されているのにボルトに存在しないコンテンツファイルがないか確認できます。また、データベースのメタデータに記録されたサイズと、コンテンツファイルの実際のサイズに違いがないかも確認されます。wt.fv.tools.WContentVerify コマンドを Windchill シェルから実行すると、存在しないファイルまたはサイズが正しくないファイルに関連付けられたビジネスオブジェクトの詳細が表示され、その結果が Windchill ログディレクトリの XML ファイルに出力されます。
コマンド windchill wt.fv.tools.WContentVerify -usage では、有効なすべての引数とその効果を詳述します。-email 引数を指定しないでコマンドを実行すると、電子メール通知は送信されません。コマンドライン引数はすべて任意指定です。引数がまったく指定されていない場合は、すべてのシステムコンテンツの内部整合性がチェックされ、存在しないファイルまたはサイズが正しくないファイルがないかすべてのボルトとフォルダが確認されます。WContentVerify ユーティリティは、タスク実行フレームワークを使用して複数オブジェクト照会を並行実行することで、データベース内のコンテンツファイルのビジネスオブジェクトを識別します。複数オブジェクト照会の並列実行によって、ボルト内で欠落している多数のコンテンツファイルを短時間でチェックすることで、運用効率を向上させることができます。
* 
codebase ディレクトリにある wt.properties ファイルの wt.mail.mailhost プロパティは、有効な SMTP サーバーを指す必要があります。
以下は、使用できる引数とその説明です。
引数
説明
-user=<管理者 ID>
管理者ユーザーのユーザー ID。
-password=<管理者パスワード>
管理者ユーザーのパスワード。
-propertyFile=<パス名>
ユーティリティのプロパティファイルの場所。
-vaults=<ボルト 1,ボルト 2,...>
指定されたボルトのフォルダのみがチェックされます。ボルト名にスペースを含めることはできません。ボルト名とボルト名の間も同様です。
すべてのメインボルトのレポートを生成するには、ALL を指定します。
-folders=<フォルダ 1,フォルダ 2,...>
指定されたフォルダのみがチェックされますボルト名にスペースを含めることはできません。ボルト名とボルト名の間も同様です。
-replicavaults=<ボルト 1,ボルト 2,...>
指定されたレプリカボルトのフォルダのみがチェックされます。レプリカボルト名にスペースを含めることはできません。ボルト名とボルト名の間も同様です。
すべてのレプリカボルトとキャッシュボルトのレポートを生成するには、ALL を指定します。
-replicafolders=<フォルダ 1,フォルダ 2,...>
指定されたフォルダのみがチェックされますレプリカフォルダ名にスペースを含めることはできません。フォルダ名とフォルダ名の間も同様です。
-onlyExistence
ファイルが存在するかどうかだけをチェックして報告します。
-onlyReportLatest
作業版数が適用されたドキュメントの最新作業版数のみを報告します。
-email=[DIRECT_EMAIL,EMAIL_GROUP]
指定されたユーザーにメールを送信します。この引数はプロパティファイルの同等のプロパティを上書きします。値として、DIRECT_EMAILEMAIL_GROUP、または両方 (コンマで区切る) を指定できます。
-listVaultsFolders
ボルトとフォルダ名を出力して終了します。
-listRemoteVaultsFolders
リモートサイトのボルトとフォルダ名を出力して終了します。
-listReplicationRules
システムに存在するレプリケーション規則をすべて出力します。これはレプリケーション規則を持つボルトに基づいて報告されます。結果は Windchill ログディレクトリの HTML ファイルに保存されます。
-listPredictiveRules
システムに存在する予測規則をすべて出力します。これは予測規則を持つボルトに基づいて報告されます。結果は Windchill ログディレクトリの HTML ファイルに保存されます。
-usage
有効な引数のリストを出力して終了します。
-checkBusinessObject=<ビジネスオブジェクト>
保存されている場所、レプリケーションされた場所も含めて、ビジネスオブジェクトの詳細な情報を出力します。
-checkContentItem=<ファイル名>
保存されている場所、レプリケーションされているかどうかも含めて、特定のファイルの詳細な情報を出力します。
-checkPendingTransfers
まだ転送されていないリモートサイトのファイルについて詳細な情報を出力します。
-checkReplicationHistory=<リモートサイト>
リモートサイトのレプリケーションされたファイルと時期について詳細な情報を出力します。
-sites=<メイン,サイト 1,サイト 2,...>
指定したサイトのフォルダがチェックインされます。サイト名にスペースを含めることはできません。サイト名とサイト名の間も同様です。
-threadCount=<スレッド数>
ツールを実行する Worker スレッドの数。デフォルト値は 3 です。
-cacheVault
キャッシュボルト内のファイルに関する詳細情報を出力します。そのためには、入力としてキャッシュボルトの名前を指定する必要があります。複数のキャッシュボルトを指定するには、ボルト名をコンマで区切って指定します。
この引数を引数 -checkPendingTransfers とともに使用して、キャッシュボルト内の同期が保留されているファイルをリストできます。
-listMissingRulesForBusinessObject
(デフォルトターゲットシステムとして設定されている) データベース BLOB またはメインボルトに保存されているコンテンツで欠落しているボルト規則を出力します。この引数を指定すると、以下のテーブルで構成される HTML レポートが生成されます。
「Database Blob」 - データベースで欠落しているボルト規則がすべてリストされます。
「Main (Default System Target)」 - デフォルトのシステムターゲットとして設定されているメインボルトで欠落しているボルト規則がすべてリストされます。
また、実行中に WContentVerify が例外を生成した場合は、-debug オプションを使用してこのツールを実行してください。
コマンドライン引数のほとんどは、プロパティファイルで指定できます。また、プロパティファイルのパスは、コマンドラインで -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 コマンドラインユーティリティは、複数のプライマリコンテンツファイルが 1 つの FormatContentHolder オブジェクトに関連付けられているというデータの問題を検出し、訂正します。WMultiPrimaryDetect は、Windchill シェルでコマンド windchill wt.fv.tools.WMultiPrimaryDetect を使用して実行します (必要に応じて適切なパラメータを渡します)。パラメータが与えられない場合、このツールは診断モードで動作します。
このツールをデフォルトモードで実行すると、正しくない FormatContentHolders とその複数のプライマリコンテンツアイテムをすべてリストした XML ファイル multiPrimaryDiagnosis_<YYYYMMDD_HHMM>.xml が出力されます。このツールは、Windchill メソッドサーバーインスタンスが起動され、動作している必要があります。
以下は、使用できる引数とその説明です。
引数
説明
-user=<管理者 ID>
管理者ユーザーのユーザー ID。
-password=<管理者パスワード>
管理者ユーザーのパスワード。
-fix
修復モードで動作します。この引数を使用する場合は、-inputFile パラメータも指定する必要があります。コンテンツファイルが削除されている場合、コンテンツファイルのコピーが <WT_ホーム>/logs/ContentItems ディレクトリに作成されます。
* 
ボルト内のコンテンツファイルは削除されていません。データベース内のコンテンツファイルのエントリのみが削除されています。
-inputFile=<入力ファイルのフルパスとファイル名>
指定された XML ファイルを使用してプライマリコンテンツアイテムを削除します。入力として使用する XML ファイルは、診断モード (これがデフォルトモード) でこのツールを実行したときに生成される XML ファイルです。診断ファイルを更新して、データベースエントリを削除するコンテンツアイテムの deleteThisItem フィールドの値を Y に変更する必要があります。
* 
ボルト内のコンテンツファイルは削除されていません。データベース内のコンテンツファイルのエントリのみが削除されています。
-outputPath=<出力パス名>
outputPath パラメータで指定されたディレクトリパスを使用して、XML 出力ファイルを保存します。
* 
デフォルトでは、ログのタイムスタンプをファイル名に持つファイルが <WT_ホーム>/logs ディレクトリ内に作成され、XML ファイルがそこに保存されます。この引数が指定され、パスが入力されると、指定のパスが代わりに使用されます。
-confirmBeforeDelete=<Y/N>
各ファイルを削除する前にユーザーに確認を求めますデフォルト値は Y です。
-usage
有効な引数のリストを出力して終了します。
このユーティリティを修復モードで実行するには、削除するファイルを指定した入力ファイルが必要です。入力として使用する XML ファイルは、診断モード (これがデフォルトモード) でツールを実行したときに生成される XML ファイルですが、削除するコンテンツアイテムの deleteThisItem フィールドの値を Y に変更します。
* 
これ以外の方法で XML ファイルを修正すると、矛盾が生じるおそれがあります。
また、ContentHolder ごとに少なくとも 1 つのプライマリコンテンツアイテムが存在している必要があることにも注意してください。ある ContentHolder のすべてのコンテンツアイテムが XML ファイル内で削除用にマークされている場合、このツールはその ContentHolder のすべてのコンテンツアイテムに対してエラーメッセージを印刷し (XML ファイルの errorMessage フィールド)、何も削除せず、XML ファイルの残りの部分の処理を継続します。errorMessage フィールドはオプションで、正常に削除されたオブジェクトに対しては表示されません。
このツールを修復モードで実行すると、結果の XML ファイルが生成され、入力ファイルと同じディレクトリに保存されます。ファイル名は、multiPrimaryResults_<YYYYMMDD_HHMM>.xml という形式になります。この XML ファイルのフォーマットは、deleteThisItem フィールドの代わりに itemDeleted フィールドがあることを除いて、multiPrimaryDiagnosis レポートに非常に似ています。削除されたコンテンツアイテムの場合、このフィールドの値は Y になります。
削除されたコンテンツファイルのコピーが元のファイル名で保存されています。同じ名前を持つファイルが複数ある場合は、_1、_2 のような番号がファイル名の末尾に追加されます。保存した名前も multiPrimaryResults XML ファイルに保存されます。
* 
WMultiPrimaryDetect ツールでは、log4jMethodServer.properties ファイルでロガー wt.fv.tools を有効にすることで、ログ作成を制御できます。
これは役に立ちましたか?