←前 |  ↑↑Blog |  ↑Category |  ↓Comment |  ↓Trackback |  次→

メモ:開発環境と運用環境関連


2点ほど。

PiyoFeedsの開発において、開発環境で動いているものが、運用環境においてうまく動かなかった。
原因についてメモとして残す。

[1]ClassLoader
今回のPiyoFeedsの改造では、入力された値に対してJakartaのCommons Validator をつかって正しいかどうかのチェックをしているが、Validatorかその背後で利用されているDigester のどちらかで利用しているClassLoaderが開発環境と運用環境で違うものになっていたためであった。
なんで違うものになっていたか?についてまでは余力がないので調べてないが、配置してある場所による違いだろうか。
DigeterやValidatorは、これらが利用するClassLoaderは指定されない限り、自分が読み込まれたClassLoaderが利用されるみたいなのできっとそうだ。

対処方法としては、ClassLoaderを明確に指定しました。

[2]キャッシュ
開発環境だとPiyoFeeds上の設定を変更した場合、パラメータが同じなDirectActionはうまく動作して、結果が変化していたが、運用環境だとリロードしても結果は変化しない。
これって、ApacheかWebObjectsのどこかでキャッシュされているんだろう、と考えた。そしてそれは、開発環境と運用環境で起動する際のパラメータとかの違いで挙動が違うのだろう、と。

これは勘違いでありました。開発環境で運用環境と同じwoaを起動したら、運用環境と同じ動作をしたのでありました。

うーん。

しばらく悩みましたが、結局これは、同じデータを複数のセッションでいじっている場合、他方で修正した値をもう片方では修正前の値のまま処理していることに起因しているようです。

いろいろ調べると、EOModelerにおけるFetch SpecificationのOptionsにおいて、Refresh refetched objectsをオンにするとよさげなことがわかりました。
実際に期待する動作に近い感じです。「近い」と書いたのは、一回のリロードでうまく動作しないためです。数回リロードしないと最新にならないようです。うーん。

( ・∀・)つ〃∩ ヘェーヘェーヘェー">
投稿時間: 2004年09月06日 (月) at 07:09       
 

←前  |  ↑↑Blog |  ↑Category |  ↑Entry top |  ↑Comment |  次→
←前  |  ↑↑Blog |  ↑Category |  ↑Entry top |  ↑Comment |  次→