asp.net|oracle|策略|緩衝 ASP.NET 2.0中的緩衝提供了對SQL依賴項的支援,也就是說當SQL SERVER資料庫中的表或行中的資料被更改後,緩衝中的頁面就失效,否則,頁面輸出可一直保留在緩衝當中。這確實為程式員提供了方便。但微軟一向很小家子氣,只為使用自家產品SQL SERVER的程式員提供了方便,那些用Oracle資料庫的ASP.NET程式員怎麼辦呢?
1、開啟Visual Studio 2005,在E:\CSharp\CacheByOracleDependncy目錄下建立一個WEB項目,在其Default.aspx頁面上添加一個Label控制項,顯示頁面產生的時間,以判斷重新整理時頁面是否為重建的,並設定頁面緩衝依賴於檔案E:\CSharp\CacheByOracleDependncy\TextFile.txt。
CREATE OR REPLACE TRIGGER
"SCOTT"."TEST_CACHE_BY_ORACLE_DEPENDNCY" AFTER
INSERT
OR UPDATE
OR DELETE OF "DEPTNO", "DNAME", "LOC" ON "SCOTT"."DEPT" DECLARE
file_handle utl_file.file_type;
BEGIN
--開啟檔案
file_handle := utl_file.fopen('FILEPATH','TextFile.txt','w');
--將當前系統時間寫入檔案
IF utl_file.is_open(file_handle) THEN
utl_file.put_line(file_handle,to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'));
END IF;
--關閉檔案
utl_file.fclose(file_handle);
EXCEPTION
WHEN OTHERS THEN
BEGIN
IF utl_file.is_open(file_handle) THEN
utl_file.fclose(file_handle);
END IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END;
三、測試
在Visual Studio 2005中偵錯工具,不斷重新整理開啟的Default.aspx頁面,頁面顯示的時間每隔120秒,才會發生變化一次。這是因為設定的緩衝到期時間為120秒。這時,只要我們手工修改SCOTT使用者的DEPT表中的資料後,再次重新整理頁面時,頁面上顯示的時間馬上就會發生變化。這說明我們設定的依賴Oracle的緩衝策略成功了。