- PR -

キャッシュについて

1
投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2009/03/11
投稿数: 28
投稿日時: 2009-03-20 04:06
お世話になります

Httpcontextのデータキャッシュ機能について
質問させてください

処理の途中でexceptionをキャッチして
エラーページに飛んだ場合

すでにキャッシュされているデータは破棄されるのでしょうか

それとも、exceptionの処理の中でremoveしなければ
キャッシュ時間いっぱいまでデータは保持され続けるのでしょうか

よろしくお願いします
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2009-03-20 17:04
試してみたら良いんじゃないでしょうか。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2009-03-23 10:40
試した結果が正しい、と思いますが。
たしかキャッシュってアプリケーションレベルで情報保持してるんじゃなかったかな?
だとすれば、保持しててもおかしくないですね。
未記入
常連さん
会議室デビュー日: 2009/03/11
投稿数: 28
投稿日時: 2009-03-25 03:32
Kingさん、どっとねっとふぁんさん、ご教授ありがとうございます

まだ、うまく試せてないですが
残っていそうです

それに関連して変な現象が出ています

ネット販売のサイトを作っているのですが、
2つのパソコンで同じ商品の情報をキャッシュに保持している場合
あとから追加した情報に書き換わる現象がでています

つまり、Aの端末でA商品に対し、注文の個数を2個という情報でキャッシュし
Bの端末でAの商品に対し、注文の個数を3個という情報をキャッシュした場合
Aの端末でのAの商品の個数が2個から3個に変わってしまいます

これは、キャッシュの使い方を誤っているからなのでしょうか

よろしくお願いします
会議室デビュー日: 2005/02/09
投稿数: 18
投稿日時: 2009-03-25 10:18
キャッシュはセッション単位ではないので、
キャッシュだと同じ場所に保持することになってしまいます。
単純にSessionに保持するのが楽かな。
カートの概念でもっと長く保持するならば、何か別の方法がいいですね。
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2009-03-25 10:56
静的(static)な値をキャッシュに保持しているのではないでしょうか。

追記:
って書いた後に気付きましたが
そもそも Cache オブジェクトって Application オブジェクトとか静的変数と
同じようなものだからユーザ(端末)毎に別々の値は保持できないのでは?
というかそういう用途で使うものではないのでは?

[ メッセージ編集済み 編集者: King 編集日時 2009-03-25 11:01 ]
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2009-03-25 11:32
た さんも書いてますけど、普通はセッションを使うなどして実装する処理ですね。
なんでキャッシュを使おうとしているかが気になります。
未記入
常連さん
会議室デビュー日: 2009/03/11
投稿数: 28
投稿日時: 2009-03-25 22:07
みなさま

多数のご教授を頂きまして、ありがとうございました

キャッシュについて、大きな間違いをしていたことが分りました

キャッシュとは、大きなマンションのようなものと勘違いしていました

つまり、自分のキー見たいなものが存在して、それでユニークに使えると勘違いしていました

セッションは、ASPのころからありましたから
あえて使うことを避けていました

ありがとうございました
1

スキルアップ/キャリアアップ(JOB@IT)