フォルダ読み込み時のタイムアウトについて

  1. 学生・社会人と、もう何年もお世話になっております。

    一つご質問が有り、投稿させていただきます。

    Meryでファイルオープン時に、そのファイル/フォルダがなかったときの
    タイムアウト時間は設定できますか?

    ファイル書き込みや、読み込みのときに、該当のファイルやフォルダがないと
    3~5分程度は応答なしの状態が続いてしまいます。
    急ぎの用事でMeryを立ち上げ、文章を書いて、保存したときに
    毎度、やっちまった!と思いつつ何分かは手がつけられない状態になっています・・。

    過去の下記投稿と同じ現象だと想います。
    https://www.haijin-boys.com/discussions/2273

    私の場合は、下記のような流れです。
     1.VPN接続先のファイルサーバにファイルを保存。
     2.Meryがそのフォルダパスを記憶
     3.インターネット環境がない状態でMery立ち上げ→ファイル保存
     4.MeryがVPN接続先のフォルダパスに保存を挑戦するが、アクセスなし
     5.五分程度応答なし・・・。

    フォルダパスを覚えてくれるのはありがたいのですが、
    このタイムアウト時間が10秒とかに設定できると嬉しいのですが・・。

     |  TT  |  返信
  2. Mery をご愛用いただきありがとうございます。

    ファイルやフォルダが存在しなかったときのタイムアウト時間ですが、設定できる機能はございません。

    調査してみましたところ、ネットワーク上にフォルダが見つからない場合のタイムアウト時間は、Windows 側 (OS 側) の仕様に依存するもので、アプリケーション側から制御する手段はないらしいです。

    Microsoft の公式情報ではないですが、いくつかのサイトでそう記載されておりました。

    開発者の皆さんも苦労されているようで、対策として、事前にファイルサーバーへ PING (生存確認のための簡単な通信) を打って生存を確認しておく方法や、ファイルの存在チェックを本体とは切り離して別のスレッドで実行し、スレッドを強制終了させることで無理やりタイムアウトを実現する方法などがありました。

    いずれの方法も技術的には可能ではありますが、裏技的な感じなので若干、信頼性に欠けるかなと思います。サーバーの生存チェックとはいえ、謎のパケットを飛ばすとなるとウイルスチェックソフトに隔離されそうですし… ^^;

    > 私の場合は、下記のような流れです。
    >  1.VPN接続先のファイルサーバにファイルを保存。
    >  2.Meryがそのフォルダパスを記憶
    >  3.インターネット環境がない状態でMery立ち上げ→ファイル保存
    >  4.MeryがVPN接続先のフォルダパスに保存を挑戦するが、アクセスなし
    >  5.五分程度応答なし・・・。

    根本的な解決にはなりませんが、上記の状況のみ (3 で、Mery を立ち上げなおしている点が重要) に限定すれば、Mery の「フォルダパスを記憶」の仕様を廃止することで対応できそうです。

    現在の仕様では Mery は終了時に最後に使ったファイルのパスを記憶しておいて、次回起動時にそのパスを復元し、保存ダイアログなどで使用します。その時にファイルサーバーが存在しないとタイムアウト時間までフリーズした状態になります。

    「終了時にフォルダパスを記憶」の仕様を廃止した場合でも、どうやら Windows のエクスプローラーが勝手に最後に使ったフォルダを覚えておいてくれるようです。(Windows 10 と 7 で確認しました)

    で、エクスプローラーにまかせておくと、ファイルサーバーが見つからない場合でも、そこそこ早く応答が返ってくるようです。(若干、固まりますが 5 分まではかかりません)

    ただし、これはあくまでも起動時に Mery 側では前回のフォルダパスを復元しないだけなので、起動後、最初に「開く」や「保存」を実行した場合に限って、応答が早く返ってきます。

    なお、Mery の "動作中" は直前に開いたり保存したフォルダをチェックしに行きますので、例えば Mery の動作中にファイルサーバーを切断してしまった場合などはフォルダのチェックに従来通りタイムアウトの時間がかかります。(ここの仕様まで廃止してしまうと、直前に使っていたファイルの場所を覚えてくれなくなって不便ですから…)

    ちょっと複雑なので分かりづらい感じですが、次のバージョンで対応してみたいと思います。

     |  Kuro  |  返信
  3. >タイムアウト時間は、Windows 側 (OS 側) の仕様に依存するもの
    なるほど!調査不足で申し訳ありません!
    だとするのであれば、アプリケーションとして無理やりな
    手段で対応するのもちょっと違う気がしますね!

    問題を提起しておいて、言うのもあれですが、
    フォルダパス記録機能は普段の利用では、無くてはならないくらい便利な機能ですし、
    多くの方もそうだと思います。

    「事前にファイルサーバーへの生存確認を行う」などの回避策もあることに加えて、
    対応していただく苦労や、対応した場合の他機能への影響もあるかと想いますので
    対応の要否は開発者様におまかせします!

    一個人の意見に、ここまで切り分け・調査していただきとても恐縮です!
    この事象があるくらいでは、他のエディタに移行使用などと考えないくらいMeryを愛用してます!
    これからもがんばってください!
    ありがとうございました!

     |  TT  |  返信
  4. ご返信ありがとうございます。

    > >タイムアウト時間は、Windows 側 (OS 側) の仕様に依存するもの
    > なるほど!調査不足で申し訳ありません!
    いいえー。この辺りはどこまでがアプリ側の仕様なのかわかりづらいですから…。

    ほかのテキストエディタなどのアプリケーションで試してみてもファイルサーバーを強制切断するとフリーズしていたので、おや?っとなりまして、調査してみました。

    > フォルダパス記録機能は普段の利用では、無くてはならないくらい便利な機能ですし、
    > 多くの方もそうだと思います。
    そうですね、フォルダパス記憶機能を完全に廃止してしまおうかとも考えたのですが、使い勝手が落ちるようでしたので、「フォルダパスを終了時に保存して、起動時に復元」の動作だけを廃止、Mery の起動中は現状維持。という形で、リリースしてみようと思っています。

    > この事象があるくらいでは、他のエディタに移行使用などと考えないくらいMeryを愛用してます!
    ありがとうございます ^^
    今後とも応援よろしくお願いいたします!あと、よいお年を!

     |  Kuro  |  返信
スポンサーリンク