前へ
前へ
 
次へ
次へ

セッション・ステートのクリア

アプリケーションの開発時に、特定のアイテム、ページ上のすべてのアイテム、アプリケーション内のすべてのページ、または現行のユーザー・セッション用にキャッシュされた値をクリアする必要がある場合があります。キャッシュされた値をクリアすると、その値がNULLにリセットされます。次のトピックでは、セッション・ステートをクリアする具体的な例について説明します。

トピック:

アイテムごとのキャッシュのクリア

1つのアイテムのキャッシュをクリアすると、そのアイテムの値がNULLにリセットされます。たとえば、ページがレンダリング用に準備されるときに特定のアイテムの値を確実にNULLにしておく必要がある場合に、この方法を使用します。

次の例では、標準f?p構文を使用してアイテムのキャッシュをクリアします。この例では、アプリケーション100のページ5がコールされます。f?p構文のClearCache位置にMY_ITEMを指定すると、MY_ITEMの値がNULLにリセットされます。

f?p=100:5:&APP_SESSION.::NO:MY_ITEM

次の例では、アイテムTHE_EMPNOおよびTHE_DEPTNOの値がリセットされます。

f?p=100:5:&APP_SESSION.::NO:THE_EMPNO,THE_DEPTNO

ページごとのキャッシュのクリア

アプリケーション・アイテムをキャッシュすると、セッション・ステートを効率的に保持できます。ただし、ページ上のすべてのアイテムのキャッシュをクリアする必要がある場合もあります。たとえば、ユーザーが新しい注文を作成するリンクをクリックすると、ページ上のすべてのフィールドがクリアされるようにする必要があると想定します。ページ全体のキャッシュをクリアすることで、ページ上のすべてのアイテムの値をNULLに設定できます。

2つのページのセッション・キャッシュのクリアおよびページ区切りのリセット

この例では、2つのページのセッション・キャッシュがクリアされ、ページ区切りがリセットされます。

f?p=6000:6003:&APP_SESSION.::NO:RP,6004,6014 

この例について説明します。

  • アプリケーション6000のページ6003が実行され、現行のセッションIDが使用されます。

  • デバッグ情報を表示しないように指示されます(NO)。

  • カレント・セッションのキャッシュに保持されたページ6004および6014のアイテムのすべての値がクリアされます。

  • ページ6003(リクエストされたページ)のリージョンのページ区切り(RP)がリセットされます。

ページのセッション・キャッシュのクリアおよびアイテム値の引渡し

この例では、更新フォームの実装方法を示します。既存の情報をクリアし、アイテムの値(通常、主キー)を設定します。

f?p=6000:6003:&APP_SESSION.::NO:6003:MY_ITEM:1234 

この例について説明します。

  • アプリケーション6000のページ6003が実行され、現行のセッションIDが使用されます。

  • デバッグ情報を表示しないように指示されます(NO)。

  • カレント・セッションのキャッシュに保持されたページ6003のアイテムのすべての値がクリアされます。

  • MY_ITEMというアイテムのセッション・ステートの値を1234に設定します。

ページのセッション・キャッシュのクリアおよび複数のアイテムに対する値の引渡し

この例は、値が複数のアイテムに渡されること以外は、前述の例に類似しています。

f?p=6000:6004:&APP_SESSION.::NO:6003:MY_ITEM1,MY_ITEM2,MY_ITEM3:1234,,5678 

この例について説明します。

  • アプリケーション6000のページ6004が実行され、現行のセッションIDが使用されます。

  • ページ6003のアイテムのカレント・セッションのキャッシュがクリアされます。

  • デバッグ情報を表示しないように指示されます(NO)。

  • MY_ITEM1の値が1234、MY_ITEM2の値がNULL(プレースホルダとして使用されたカンマによって示される)およびMY_ITEM3の値が5678に設定されます。

アプリケーション全体のキャッシュのクリア

アプリケーション・キャッシュは、f?p構文を使用し、キーワードAPPを使用してClear Cache引数を作成することでクリアできます。次に例を示します。

f?p=App:Page:Session::NO:APP

注意:

アプリケーション全体のキャッシュをリセットしても、アプリケーションは完全なリセット状態にはリストアされません。たとえば、アプリケーションに新しいインスタンス開始時の計算やプロセスが含まれている場合、Application Expressエンジンは、該当するアプリケーション・セッションが作成されたときに、これらの計算やプロセスを実行します。その後、キャッシュのクリア・リクエストを処理し、リクエストされたページを表示します。

(セッションIDの追跡にCookieが使用されていない場合に)セッションIDを指定せずにアプリケーションを完全にリセットするには、セッションIDを指定せずにURLを使用するか、または別のアプリケーションからAPEX_UTIL.CLEAR_APP_CACHEをコールして、そのアプリケーションをリクエストする必要があります。セッションIDがCookieを使用して追跡される場合、そのステートをリセットするためにログアウトする必要があります。


カレント・ユーザー・セッションのキャッシュのクリア

アプリケーション・キャッシュをクリアするもう1つの方法は、キーワードSESSIONを使用してClear Cache引数を作成することです。次に例を示します。

f?p=6000:6004:12507785108488427528::NO:SESSION