みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
みなさん、こんにちは。Win版V15 ランタイムで動作させています。
ランタイムでなくて普通のファイルでも同じ現象が発生します。
プログラムの概要は定期的(10分ごと)にWebサイトにアクセスし、そこからデータを取得してCSVに書き出す物です。
2年くらい順調に動いていたのですが、最近
「ディスクの空き領域が不足しているためこの処理を行うことができません。ディスク空き領域を増やしてからもう一度実行してください。」
というエラーが出るようになったと言われました。いったん閉じて再起動すると大丈夫だそうです。
プログラム自体もエラーが出ると止まってしまし、以降はCSVファイルを書き出せなくなります。
CSVを書き出すスクリプトは
==================================
# CSV書き出し
変数を設定 [ $FilePath ; 値: If ( JSON::ファイル名="タイムスタンプ" ;"filewin:" & JSON::ファイルパス & Substitute ( Get(日付); "/" ; "" ) & Substitute ( Get(時刻); ":" ; "" ) & ".csv" ;"filewin:" & JSON::ファイルパス & "OpenWeatherMapData.csv") /*If ( JSON::ファイル名="タイムスタンプ" ;"filewin:" & JSON::ファイルパス & L… ]
フィールド設定 [ JSON::フルパスファイル名 ; $FilePath ]
オブジェクトの更新 [ オブジェクト名: "csvexport" ; 繰り返し: 1 ]
エラー処理 [ オン ]
フィールド内容のエクスポート [ JSON::書き出し用 ; 「$FilePath」 ; フォルダを作成: オフ ]
#
変数を設定 [ $エラー番号 ; 値: Get(最終エラー) ]
エラー処理 [ オフ ]
If [ $エラー番号 ]
スクリプト実行 [ 指定: 一覧から ; 「ログに書き込む」 ; 引数: "CSV書き出し" & ¶ & $エラー番号 & ¶ & Substitute ( JSON::書き出し用; "¶" ; "" ) ]
警告音
フィールド設定 [ JSON::エラー発生詳細 ; "エラー番号 " & $エラー番号 &¶ & "発生時間 " & Get(タイムスタンプ) ]
フィールド設定 [ JSON::最終実行時 ; Get(タイムスタンプ) ]
オブジェクトへ移動 [ オブジェクト名: "t_ob" ]
カスタムダイアログを表示 [ "エラー" ; "エラー番号 " & $エラー番号 & "のエラーが発生しました" & ¶ & "発生時間 " & $発生時間 ]
全スクリプト終了
Else
スクリプト実行 [ 指定: 一覧から ; 「ログに書き込む」 ; 引数: "CSV書き出し成功" & ¶ &0 & ¶ & Substitute ( JSON::書き出し用; "¶" ; "" ) ]
End If
==================================
エラーが出ているのは、5行目の
フィールド内容のエクスポート [ JSON::書き出し用 ; 「$FilePath」 ; フォルダを作成: オフ ]
と思われます。しかし、エラーログを見るとエラー無しの0が書き込まれています。
さらに、特殊でして、このランタイムプログラムは外部ディスクにあり、起動ファイルのショートカットがクライアント(ネットワークドライブに割り付け済み)にあり、そこから起動して、CSVファイルもその外部ディスクに書き込むようになっています。
ランタイムフォルダーをローカルに入れて実行すれば問題なく出来ますし、書き出しを外部ディスクとしても問題なく動作します。
外部ディスクがハードディスクだけのNASかServerOSを持ったファイルサーバーなどかは現在調べてもらっています。
クライアントOSはW10ですが、詳細なバージョンも調べてもらっています。
エラーが発生する現象は、どういう原因が考えられるでしょうか?
あるいは、原因追及のためにこのような事をしたら良いか、等教えていただけませんか
よろしくお願いします。
Offline
外部ディスクというよりリモートドライブですから、書き出しするタイミングで切断している可能性はあるのでは。
NIC(LANボード)の節電機能があればOFFにするとか...
最初に考えるのは、OS との適合です。FM15 は、サポートが終了していますので、メンテナンスがされていません。さらに、その頃から削除される機能候補になっており、そこで使っているランタイムエンジンはまったくメンテナンスされず FM13 の頃のものですので、さらに状況は悪いです。ですから、最新の OS とは極めて相性が悪いです。現に、今の 21H1以降は、FM15 辺りでは何となく動いてはいますが動きが変なところがあります。
次に、ファイルの環境です。元々、FileMaker は、リモートストレージの使用を推奨していません。そこにあるファイルを開くことは、ファイルを破損する可能性が非常に高いと言われていて、避けるべき動作とされています。ランタイム版は、エンジンとデータが同じファイル内に含まれていますので、ローカルのストレージに配置しておくべきでしょう。
次に、書き出したファイルを、何らかの処理を行っているはずですが、そちらのログは確認されていますか。その処理に時間がかかるようになり、FM が書き出す時にそのファイルへのアクセスができない可能性を考えます。
Offline
>ハードディスクだけのNASかServerOSを持ったファイルサーバーなどか
NASもハードディスクだけで機能するわけではなくてNAS用のOS(LinuxベースのとかWindowsのとか種類はありますが)があって動いてるので、そこの違いはあんまりないと思います。
USBやSATA接続の外部ディスク(接続したPCだけが使用する)とは根本的に違います。
しかし書き出しできないのにエラー番号が0というのはバグっぽいですね...
ちょっと気になったのですが、エクスポートの次のステップがコメントなんですが、これは何を意図していますか。
エラーは、このコメントへのエラーの可能性って無いのですかね。
追記:検証したら、杞憂でした
また
エラーが出れば、カスタムダイアログを出していますので、そこでクリックされるまで永遠に止まるように作ってありますよ。無人で動かしているのでしょうから、ログに書き込むだけの処理にするべきでしょう。その後は、時間をおいて、書き込みを loop させるのが普通だと思いますが。
Last edited by Shin (2022-06-01 09:57:13)
Offline
みなさん、色々とアドバイスありがとうございました。
Shin さんの3つのご指摘、ごもっともです。
元々ローカルで動かして、データだけネットワークドライブに書き込む設定だったのですが、知らない間に変わったみたいです。
また、三つ目の指摘、それは可能性がありますね。その点問いあわせてみます。
Shin さんのご指摘、なるほどと思いました。そういう風に書き換えてみます。
現状書き出すファイル名は同じで、それを他のプログラムが定期的に取りに来ていますので、エラーが起きても実行させるように修正してみます。
himadanee さん
>>書き出しできないのにエラー番号が0というのはバグっぽいですね...
そうなんです。ちょっとわからないのです。
もう少し色々と試してみます。どうもありがとうございました。
Offline
Pages: 1
[ Generated in 0.007 seconds, 11 queries executed - Memory usage: 537.13 KiB (Peak: 541.67 KiB) ]