Laboratory of Mobile Agricultural Chemicals Searcher
携帯農薬検索実験室

研究会

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
55 / 114 ツリー <前へ | 次へ>

〔519〕ACFinder 061029版 kabe (06/10/29 21:59)

〔530〕データ更新確認ダイアログが毎回出る不具合あ... kabe (06/11/07 14:00)
〔533〕Re:データ更新確認ダイアログが毎回出る不具... Hidemi Oya (06/11/07 17:24)
〔534〕HTTP レスポンスヘッダで解決できそう Hidemi Oya (06/11/10 0:33)
〔535〕Re:HTTP レスポンスヘッダで解決できそう kabe (06/11/11 9:18)
〔538〕Re:HTTP レスポンスヘッダで解決できそう Hidemi Oya (06/11/11 11:54)
〔539〕Re:HTTP レスポンスヘッダで解決できそう Hidemi Oya (06/11/12 0:45)
〔541〕Re:HTTP レスポンスヘッダで解決できそう Hidemi Oya (06/11/16 22:31)
〔542〕Re:HTTP レスポンスヘッダで解決できそう kabe (06/11/17 22:11)

〔530〕データ更新確認ダイアログが毎回出る不具合...
 kabe WEB  (06/11/07 14:00)

引用なし
   kabe です。

11月1日登録反映分のデータを更新しても、ACFinder起動時にデータ更新確認ダイアログが表示されてしまいます。
現在データ:平成18年10月失効分及び平成18年11月1日登録判定
更新データ:2006年11月1日登録反映分(2006年10月失効も反映しています)
のように。

更新データの有無の判定は農薬検査所のダウンロードページの
「2006年11月1日登録反映分(2006年10月失効も反映しています)」
の部分とデータベースに保存している更新日を比較していますが、データベースの方はExcelファイル中にある
「本ファイルは、「平成18年10月失効」分及び「平成18年11月1日登録」分を反映した農薬登録情報です。」
から取得して保存しており、今回のような文字列の組み合わせになってしまった場合には毎回、データ更新があったと判断してしまいます。(^^;

ダウンロードページから取得した情報をデータベースに保存してもいいのですが、キャッシュからダウンロードした場合などを想定すると、正確な更新情報はExcelファイルから取得する方が安全です。
いずれ何らかの対策したいと思いますが、当面、毎回キャンセルで対応お願いします。

> この体制にして初めて薬検のデータが変更され、私以外の職員は初めてのデータ更新だったわけですが、みんなから「更新が非常に速くなった」と大好評でした。
上記のような不具合で、データ更新専用モードで起動した場合、もしかしてサーバの方は、毎回データ更新してませんか?

〔533〕Re:データ更新確認ダイアログが毎回出る不...
 Hidemi Oya WEB  (06/11/07 17:24)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>上記のような不具合で、データ更新専用モードで起動した場合、もしかしてサーバの方は、毎回データ更新してませんか?
 サーバの方は見てなかったんですが、update.html や *.lzh のタイムスタンプを確認したら、おっしゃるとおり今朝の起動時の時刻になっていました。

>ダウンロードページから取得した情報をデータベースに保存してもいいのですが、キャッシュからダウンロードした場合などを想定すると、正確な更新情報はExcelファイルから取得する方が安全です。
 たまたま、CRON ジョブで更新データの自動ダウンロード試験をやってるときだったんですが、10/11 か 10/18 更新分で、実際にダウンロードページのデータ日付の更新ミスがありました。午前中にダウンロードページのレスポンスヘッダで Last-Modified が書き換わってたんですが、HTML のデータ日付は前回のままで、でも LZH には新しいデータが入ってました。「あれ〜?」と思っていたら、夕方には HTML のデータ日付が更新されてました。
 ただ、逆に xls ファイル内の更新日付シートに誤記載がある可能性も否定はできません。あるいは、特定 LZH ファイルだけアップロードし忘れるなんてこともあり得そうです。
 こういったことを考えると、ダウンロードページ、各 XLS ファイルの更新日付シートの更新情報は、全て生で保存しておいて、ユーザが適宜確認できるようにした方が良いかもしれませんね。

 なお、更新情報の比較に関しては、xls ファイルの更新日付シートを正規化しているのと同様に、HTML の更新情報も正規化して比較するしかなさそうです。

〔534〕HTTP レスポンスヘッダで解決できそう
 Hidemi Oya WEB  (06/11/10 0:33)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>「本ファイルは、「平成18年10月失効」分及び「平成18年11月1日登録」分を反映した農薬登録情報です。」
>から取得して保存しており、今回のような文字列の組み合わせになってしまった場合には毎回、データ更新があったと判断してしまいます。(^^;
 キャッシュをバイパスして本体から HTTP レスポンスヘッダを取得する関数が、思ったよりも簡単に作れてしまいました。ダウンロードページもダウンロードファイルも、HTTP レスポンスヘッダに Last-Modified と ETag が入っているので、前回受信時の Last-Modified または ETag の値を INI ファイル等に保存しておけば、現在のファイルが前回と異なるかどうかが簡単に判定できます。
 HTTP レスポンスヘッダを取得関数を TUrlDownload コンポーネントに組み込んで、Last-Modified や ETag が変更されている場合のみダウンロードするオプションを簡単に付加できます。ついでに、ダウンロード前にキャッシュを削除するオプションも追加すれば、[#523], [#530] の両方の問題を一気に解決できます。
 また、この方法なら、[#533] で書いたようなミスにも対応できるという利点があります。

 ってことで、近々新しい UrlDl.pas を送りますので、ご利用ください。

〔535〕Re:HTTP レスポンスヘッダで解決できそう
 kabe WEB  (06/11/11 9:18)

引用なし
   >Hidemi Oyaさん

kabe です。

> キャッシュをバイパスして本体から HTTP レスポンスヘッダを取得する関数が、思ったよりも簡単に作れてしまいました。ダウンロードページもダウンロードファイルも、HTTP レスポンスヘッダに Last-Modified と ETag が入っているので、前回受信時の Last-Modified または ETag の値を INI ファイル等に保存しておけば、現在のファイルが前回と異なるかどうかが簡単に判定できます。
人間が書いた文字列を比較するよりは、どう考えてもこちらの方がスマートですね。

> また、この方法なら、[#533] で書いたようなミスにも対応できるという利点があります。
ということはダウンロードページ自体をチェックするのは意味がなく、5つのLZHファイルの更新の有無をそれぞれチェックした方がいいですね。

> ってことで、近々新しい UrlDl.pas を送りますので、ご利用ください。
よろしくお願いします。

〔538〕Re:HTTP レスポンスヘッダで解決できそう
 Hidemi Oya WEB  (06/11/11 11:54)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>人間が書いた文字列を比較するよりは、どう考えてもこちらの方がスマートですね。
 おまけに、こちらの方法なら、HTTP ヘッダを取得する際のリクエストヘッダに、If-Modified-Sice フィールドに Last-Modified の値、あるいは If-None-Match フィールドに ETag の値を入れておけば、HTTP サーバが更新したかどうかを自動的に判断してくれるので、これらの比較ルーチンを Delphi で書く必要がないというメリットもあります。

>ということはダウンロードページ自体をチェックするのは意味がなく、5つのLZHファイルの更新の有無をそれぞれチェックした方がいいですね。
 と思ってたんですが、毎回5つのファイルの HTTP ヘッダを取得するのもいかがなものかという感がなきにしもあらずですね。
 9月にクロールピクリンの適用データにバグがあったとき、JPP-NET はデータをすぐ修正しましたが、薬検は検索データベースも Excel ファイルも次の登録変更までデータを修正しませんでした。ダウンロードページが更新されてないのに、LZH ファイルだけが密かに更新される可能性は極めて低そうです。
 ってことで、LZH ファイルが更新されているかどうかの判定にはダウンロードページの Last-Modified を利用するってのが良さそうです。

〔539〕Re:HTTP レスポンスヘッダで解決できそう
 Hidemi Oya WEB  (06/11/12 0:45)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

> ってことで、近々新しい UrlDl.pas を送りますので、ご利用ください。
 もうとっくにできてるはずだったんですが、事務所では問題なく動作するプログラムが、なぜか自宅ではうまく動いてくれません。自宅では、一度 UrlDownloadToFile を実行した後に、新しい URL の HTTP レスポンスヘッダを取得しようとすると、ステータスコードが 404 (File Not Found) になってしまいます。
 ウィルスセキュリティのせいかなと思ったんですが、これを外しても同じです。Proxy がない環境の方が思った通りの動作をしないってのは一体…???

 ってことで、新しい UrlDl.pas はちょっとかかるかもしれません。

〔541〕Re:HTTP レスポンスヘッダで解決できそう
 Hidemi Oya WEB  (06/11/16 22:31)

引用なし
   自己レスです。

>自宅では、一度 UrlDownloadToFile を実行した後に、新しい URL の HTTP レスポンスヘッダを取得しようとすると、ステータスコードが 404 (File Not Found) になってしまいます。
 とりあえず、UrlDownloadFile の代わりに InternetReadFile を使うことで解決できました。自宅でも事務所でも OK です。
 VCL としてほとんどできあがっていますが、受信バッファサイズなど若干のチューニングが必要な感じです。

 新バージョンでは、[#533] のようにダウンロードページの修正のためにダウンロードページだけ更新され、LZH ファイルは変更無しというケースが発生しても、LZH ファイルはダウンロードしないという使い方が可能です。

>kabe さん
 新バージョンは、今度の日曜日までには送れると思います。先日メールした中間バージョンは、捨ててください。

〔542〕Re:HTTP レスポンスヘッダで解決できそう
 kabe WEB  (06/11/17 22:11)

引用なし
   >Hidemi Oyaさん

kabe です。

> 新バージョンは、今度の日曜日までには送れると思います。先日メールした中間バージョンは、捨ててください。
実はまだほとんど、手をつけていませんでした。
今週末から来週にかけても、あまり時間がとれそうにないので、ACFinder 本体のバージョンアップは遅れそうです。

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
55 / 114 ツリー <前へ | 次へ>
ページ:  ┃  記事番号:   
(SS)C-BOARD vv3.8 is Free.