このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
無効または応答の良くない Windows 変更通知ハンドルのトラブルシューティング
MATLAB® は、"変更通知ハンドル" と呼ばれる Windows® オペレーティング システムの機能を使って、関連するフォルダー内のファイルの変更を検出します。状況によっては、Windows から MATLAB に有効で応答性に優れた変更通知ハンドルが提供されないことがあります。無効または応答の良くない変更通知ハンドルが発生する 3 つの最も一般的な原因は、次のとおりです。
Windows が、変更通知ハンドルを使い果たした。
指定したフォルダーが、変更通知をサポートしないファイル システムに存在する(Syntax TAS ファイル サーバー、SAMBA ファイル サーバーの他、多くの NFS ファイル サーバーにこの制限があることが知られている)。
ネットワークやファイル サーバーのレイテンシによって変更通知の到着が遅れるため、変更がタイムリーに検出されない。
MATLAB が有効で応答性に優れた変更通知ハンドルを取得できないと、ファイルやフォルダーへの変更を自動的に検出できなくなります。たとえば、影響を受けるフォルダーに新しく追加した関数が表示されなかったり、メモリ内で変更された関数が再読み込みされない可能性があります。
MATLAB がファイルおよびフォルダーの変更を検出する方法の制御
無効または応答の良くない変更通知ハンドルが原因で、MATLAB がファイルおよびフォルダーの変更を検出できない場合は、MATLAB がフォルダーの変更を検出する方法を制御できます。
ご使用のファイル システムで、ファイルがフォルダーに追加されるときにフォルダーのタイムスタンプが更新される場合、フォルダーのタイムスタンプをチェックして変更を検出するよう、システムのリモート パス ポリシーを設定することができます。そのためには、以下のコマンドを startup.m
ファイルに含めます。startup.m
ファイル作成方法の詳細については、MATLAB 起動ファイルでの起動オプションの指定を参照してください。
system_dependent('RemotePathPolicy', 'TimecheckDir'); rehash path;
ご使用のファイル システムで、フォルダーのタイムスタンプが更新されない場合 (NT ファイル システムなど)、影響を受けるフォルダーの再読み込みを頻繁に行って変更を検出するよう、システムのリモート パス ポリシーを設定することができます。そのためには、以下のコマンドを startup.m
ファイルに含めます。
system_dependent('RemotePathPolicy', 'Reload'); rehash path;
MATLAB がフォルダーの変更を検出する方法を指定するには、このコマンドを使用します。
system_dependent('RemotePathPolicy', 'Status');
場合によっては、無効または応答の良くない変更通知ハンドルの影響を受けるフォルダー内の新規ファイルまたは変更されたファイルを検出する必要がないこともあります。変更の検出が必要ない場合、パフォーマンスを最大にするため、システムのリモート パス ポリシーを無効にすることができます。そのためには、以下のコマンドを startup.m
ファイルに含めます。
system_dependent('RemotePathPolicy', 'None'); rehash path;
メモリからの関数のクリア
システムのリモート パス ポリシーを変更しても、リモート ファイル システムのキャッシュやネットワーク レイテンシに関連する問題を防ぐためには効果がないことがあります。上記の方法を試しても、関数に対して行った変更が MATLAB で検出されない場合、関数 clear
を使用して、関数の古いコピーをメモリからクリアすることができます。MATLAB は、次の呼び出し時に更新された関数を読み込みます。
変更通知ハンドルの警告の設定
無効または応答の良くない Windows 変更通知ハンドルの影響を受けているフォルダーを解析するため、Windows によって発行される警告メッセージの数を設定できます。そのためには、以下のいずれかのコマンドを startup.m
ファイルに含めます。startup.m
ファイル作成方法の詳細については、MATLAB 起動ファイルでの起動オプションの指定を参照してください。
無効または応答の良くない変更通知ハンドルについての警告メッセージをすべて表示する。
system_dependent('DirChangeHandleWarn', 'Always');
無効または応答の良くない変更通知ハンドルについての警告メッセージを最初の 1 つだけ表示する。
system_dependent('DirChangeHandleWarn', 'Once');
無効または応答の良くない変更通知ハンドルについての警告メッセージを表示しない。
system_dependent('DirChangeHandleWarn', 'Never');
無効または応答の良くない変更通知ハンドルについて Windows が警告するタイミングを指定するには、以下のコマンドを使用します。
system_dependent('DirChangeHandleWarn', 'Status');