为了进一步研究上述问题的解决方案,我们举一个Web应用的例子来说明如何实现。例子中,我们使用VB.NET实现的ASP.NET应用,通过Oracle Data Provider for .NET (ODP)来访问 Oracle 9i数据库。 这个例子使用Oracle数据库中一个名为Employee的表。我们为该表上insert, update, delete设定触发器。这些触发器调用一个封装了一个Java存储过程的PL/SQL函数。这个Java存储过程负责更新缓存依赖的文件。 ASP.NET Tier的VB.NET实现 我们设计了含一个回调方法的监听类来处理缓存项无效时的通知。这个回调方法RemovedCallback用一个代理(delegate)函数来注册。回调方法onRemove的声明必须与CacheItemRemovedCallback代理声明又相同的签名。 Dim onRemove As CacheItemRemovedCallback = Nothing onRemove = New CacheItemRemovedCallback(AddressOf RemovedCallback) 监听事件处理方法RemovedCallback负责处理数据库触发器的通知,其定义如下。若缓存项失效,可用数据库方法调用getRecordFromdatabase()从数据库取出数据。参数”key”指从缓存中删除的项的索引位置。参数”value”指从缓存中删除的数据对象。参数"CacheItemRemovedReason"指从缓存中删除数据项的原因。 PublicSub RemovedCallback(ByVal key AsString, ByVal value AsObject, ByVal reason As CacheItemRemovedReason) Dim Source As DataView Source = getRecordFromdatabase() Cache.Insert("employeeTable ", Source, New System.Web.Caching.CacheDependency("d:\download\tblemployee.txt"), Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Normal, onRemove) EndSub |
正在阅读:15秒为ASP.NET应用缓存Oracle数据15秒为ASP.NET应用缓存Oracle数据
2004-02-14 09:34
出处:CSDN
责任编辑:linjixiong
键盘也能翻页,试试“← →”键