MATLAB を起動すると、変更通​知ハンドルを使い切っ​たという警告が出るの​はなぜですか?

9 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 4 Apr 2012
MATLAB を起動すると、以下のような警告が出ます。
ERROR: MATLAB は、新規のカレントディレクトリ内のファイルへの変更を
自動的に知らせない可能性があります。これは、MATLAB がそのディレクトリに
対する変更通知ハンドルを取得できなかったためです。
考えられる理由はつぎのものがあります:
- Windows は、変更通知ハンドルを使い切りました。
- ファイルサーバは timestamp の通知更新をサポートしていない。
より詳しい情報と可能な解決策については、以下のヘルプボタンをクリックしてください。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 28 Sep 2022
MATLAB は MATLAB パスに追加されているディレクトリ内や現在のディレクトリ内のファイルやが更新された場合にそれを追従する、変更通知ハンドルと呼ばれる Microsoft の機能を使用しています。
これらの変更通知ハンドルはコンピュータ上のすべてのプログラム間で共有されます。サーバーに接続するとき、Windows はサーバとクライアントマシン間で生成できる変更通知ハンドの数を決めるために、一番低い設定(クライアントかサーバのどちらか)を使用します。
ご報告の警告メッセージは、Windows が供給できる変更通知ハンドルを使い切ったことを示しています。これは、MATLABの外でファイルを編集している場合、このディレクトリ内の新しいファイルがMATLABによって検出されない、または既存のファイルへの変更が検出されないことを意味する可能性があります。
この問題に対しては、4つの解決策が考えられます。
1. 最もロバストな解決法は、クライアントとサーバ両方の変更通知ハンドルの数を(デフォルトの50よりも)増やすことにより、変更通知ハンドルの供給を使い切ることを防ぐことです。Windows では、変更通知ハンドルはカレントコマンドの一種です。クライアントとサーバ両方のカレントコマンドの制限を増やすには、以下の Microsoft Knowledge Base のウェブページをご覧ください。
Microsoft ではないサーバに関して同様の変更を行う場合、ドキュメンテーションを参考にし、Microsoft Knowledge Base の記事で MaxMpxCt のセッティングと同じ効果のあるセッティングを探してください(例えば、Netapp は cifs.max_mpz を使用しています。)
2. 現在の Windows のセッティングを保持したまま、MATLAB パスからユーザが追加した無関係なパスを削除することによって現在使用している変更通知ハンドルの数を減らしてください。それぞれのパスを削除することにより、OS が変更通知ハンドルを使用できるようになります。
MATLAB のデフォルトパスの一部であるディレクトリや MATLABROOT ディレクトリ下にあるディレクトリ下のファイルは静的であることを前提としているので、最初は変更通知ハンドルを受けとりません。任意のディレクトリをカレントディレクトリにすると、MATLABはそのディレクトリの変更通史ハンドルを要求するようになります。
3. 現在の Windows セッティングを保持したまま、MATLAB の変更通知ハンドルとのインタラクションの方法を SYSTEM_DEPENDENT コマンドを使用して変更してください。
MATLAB に変更通知ハンドルを使用しないように要求する、もしくは変更通知ハンドルに関するすべての警告を表示させないようにすることが可能です。
以下のコマンドによって、変更通知ハンドルをすべて使い切ってしまったときに MATLAB が使用するポリシーを指定できます。
system_dependent('RemotePathPolicy', <policy>);
system_dependent('RemoteCWDPolicy', '<policy>);
 
MATLAB がどのように SYSTEM_DEPENDENT コマンドを使用して変更通知ハンドルとのインタラクションを変更しているかについては、以下ドキュメンテーションをご覧ください。
・無効または応答の良くない Windows 変更通知ハンドルのトラブルシューティング
4. 例えば MATLAB の外部でファイルを編集している場合、次のいずれかを実行することによって、MATLAB にファイルの変更を検出させることができます。
clear functionname % ここの functionname は変更された関数名
clear functions % すべての関数をクリア
clear all % すべての変数をクリア
上記の解決策で問題が解決しない場合には、ご所属のシステム管理部門などにご相談ください。

More Answers (0)

Tags

No tags entered yet.

Products


Release

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!