转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> ORACLE >> 正文
15秒:为ASP.NET应用缓存Oracle数据         ★★★★

15秒:为ASP.NET应用缓存Oracle数据

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1710 更新时间:2009/4/22 22:08:06
;       ThrowNew Exception("Exception in Database Tier Method                                getRecordFromdatabase () " + ex.Message, ex)

        Finally

           Try

               cmd.Dispose()

           Catch ex As Exception

           Finally

               cmd = Nothing

           EndTry

           Try

               con.Close()

           Catch ex As Exception

           Finally

               con = Nothing

           EndTry

       EndTry

EndFunction

函数getDatabaseConnection接受一个连接字符串(connection stirng)为参数,返回一个OracleConnection对象引用。

PublicFunction getDatabaseConnection(ByVal strconnection as string) As                   OracleConnection

       Dim con As Oracle.DataAccess.Client.OracleConnection = Nothing

       Try

           con = New Oracle.DataAccess.Client.OracleConnection

           con.ConnectionString = strconnection

           con.Open()

           Return con

       Catch ex As Exception

               ThrowNew Exception("Exception in Database Tier Method                                    getOracleConnection() " + ex.Message, ex)

       EndTry

EndFunction

Oracle数据库Tier实现

       定义Employee表上DML事件的触发器体如下。这个触发器简单的调用一个PL/SQL包裹函数来更新名为tblemployee.txt的操作系统文件。文件副本在两台机器(机器1和机器2)上更新。两台机器运行同一个Web应用的不同实例来均衡负载。这里administrator指Oracle数据库的方案(schema)对象所有者。

begin

   administrator.plfile(''''machine1\\download\\ tblemployee.txt'''');

   administrator.plfile(''''machine2\\download\\ tblemployee.txt'''');

end;

       为更新缓存依赖文件,我们需要写一个C函数或Java存储过程。我们的例子中选择了Java存储过程,因为Oracle数据库服务器有一个内置的JVM,使得书写Java存储过程很方便。必须有足够的内存分配给Oracle实例的系统全局区(SGA)中的Java池。静态方法updateFile接受一个绝对路径作为参数,并在合适的目录中创建缓存依赖文件。若文件已经存在,则先删除然后创建。

import java.io.*;

public class UpdFile {public static void updateFile(String filename)

{

   try {

        File f = new File(filename);

       f.delete();

       f.createNewFile();

   }

   catch (IOException e)

   {

      // log exception

   }

};

PL/SQL包裹实现如下。包裹函数以文件名为参数,调用Java存储过程中updateFile方法。

(p_filename IN VARCHAR2)

AS LANGUAGE JAVA

NAME ''''UpdFile.updateFile (java.lang.String)'''';

Web Farm部署中的Oracle数据缓存

正如我们讨论的例子中所示,Web服务器1和机器2构成了一个Web Farm来为我们的Web应用提供负载均衡。每台机器运行同一个Web应用的一个实例。在这个情况下,每个实例可以拥有自己的存放在Cache对象中的缓存数据副本。当Employee表改变,相应的数据库触发器更新两台机器上的文件tblemployee.txt。每个实例都指定一个到tblemployee.txt的缓存依赖,Web Farm的两个实例都可以正确更新,使得两个实例上的数据缓存可以和数据库表Employee保持同步。

结论

数据缓存是优化Oracle数据库上ASP.NET应用的有效技巧。尽管ASP.NET不允许设定缓存的数据库依赖,Oracle触发器协同Java存储过程可以扩展ASP.NET缓存的威力从而允许Oracle数据库缓存。这个技巧也可以适用于Web Farm部署。

上一页  [1] [2] 


[Web开发]一个关于ASP运行时间计算的代码  [Web开发]ASP:检测含有中文字符串的实际长度
[Web开发]asp 中英文字符长度检测判断函数  [Web开发]安全维护 IIS asp 站点的高级技巧
[C语言系列]NET 中C#的switch语句的语法  [Access]ASP&SQL让select查询结果随机排序的实现方法
[Web开发]ASP字符串截取函数  [Web开发][asp]关键词只替换一次的写法
[Web开发]Asp无组件生成缩略图方法详解  [Web开发]asp编程中优化数据库方法详解
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台