六个方法解决应用程序中死锁现象的出现

在应用程序中就可以采用下面的一些方法来避免死锁:

(1)合理安排表访问顺序。

(2)在事务中尽量避免用户干预,尽量使一个事务处理的任务少些, 保持事务简短并在一个批处理中。

(3)数据访问时域离散法, 数据访问时域离散法是指在客户机/服务器结构中,采取各种控制手段控制对数据库或数据库中的对象访问时间段。主要通过以下方式实现: 合理安排后台事务的执行时间,采用工作流对后台事务进行统一管理。工作流在管理任务时,一方面限制同一类任务的线程数(往往限制为1个),防止资源过多占用; 另一方面合理安排不同任务执行时序、时间,尽量避免多个后台任务同时执行,另外, 避免在前台交易高峰时间运行后台任务。

(4)数据存储空间离散法。数据存储空间离散法是指采取各种手段,将逻辑上在一个表中的数据分散到若干离散的空间上去,以便改善对表的访问性能。主要通过以下方法实现: 第一,将大表按行或列分解为若干小表; 第二,按不同的用户群分解。

(5)使用尽可能低的隔离性级别。隔离性级别是指为保证数据库数据的完整性和一致性而使多用户事务隔离的程度,SQL92定义了4种隔离性级别:未提交读、提交读、可重复读和可串行。如果选择过高的隔离性级别,如可串行,虽然系统可以因实现更好隔离性而更大程度上保证数据的完整性和一致性,但各事务间冲突而死锁的机会大大增加,大大影响了系统性能。

(6)使用绑定连接, 绑定连接允许两个或多个事务连接共享事务和锁,而且任何一个事务连接要申请锁如同另外一个事务要申请锁一样,因此可以允许这些事务共享数据而不会有加锁的冲突。

时间: 2024-08-22 14:22:03

六个方法解决应用程序中死锁现象的出现的相关文章

两个解决flash程序中使用快捷键与文本输入冲突的办法

程序|解决|用快捷键 在flash程序中使用快捷键,就可能会和文本输入引起冲突,主要是用单个字母或者shift+字母键作为快捷键时的冲突,比如当设置字母a为一个功能的快捷方法,但是当你进行文本输入的时候如果输入a就会同时引发事件,当然这不是我们所希望的,下面的两种方法来避免这种情况的出现: 方法一: keylis = new Object();  Key.addListener(keylis);  keylis.onKeyDown = function() {   var pathArr = S

简单的方法解决网站程序漏洞被挂马的问题

相信大多站长都有网站被挂马(被挂病毒)的经历,特别是同中国互联网一起发展的这批老资格站长,随着网络普及的越深入,黑客技术越进步,就越暴露出以往程序的漏洞.现在的新站长就幸福多了,目前流行的网站程序都已经成熟,比如shopex.动易.http://www.aliyun.com/zixun/aggregation/11656.html">discuz,都是非常优秀的程序.大家只要及时升级及时更新补丁就没大问题了. 但是陆续还是有客户来反映网站打开报病毒,我会对其耐心的讲解原因以及告之处理方法,

如何寻求另类方法解决网站排名不稳定的现象

  大多数站长肯定都经历过网站一波三折的经历,今天也许网站的排名还在后几页,明天就进入了百度首页,而在等几天网站排名突然有丧失,这些经历让很多站长感受到做网站的无奈,其实对于一名站长朋友来说网站优化出现波折经历不一定是坏事,只要找准解决方法,学会化解难题,那么我们的建站经历也会很顺畅的. 下面从网站的几种波折经历谈一谈互联网建站遇到波折如何处理,如何通过另类的解决方法帮助站长化解难题,从而为网站的崛起而产生助力. 第一类:网站是新站,波折处理要稳妥 有一部分网站排名出现波折是因为网站本身是新网站

解决ASP.NET中"/"应用程序中的服务器错误的方法_实用技巧

 学习asp.net中讲解验证控件问题时,我的程序运行时总是提示这样的问题:"/"应用程序中的服务器错误.如下图:     从网上找到了相关的方法:  在webconfig中找到 <appSettings> <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> <addkey="ValidationSettings:U

.NET数据库应用程序中存储过程的应用

程序|存储过程|数据|数据库 一.前言: 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程.总的来说,存储过程具有以下一些优点: ◆存储过程允许标准组件式编程. ◆存储过程能够实现较快的执行速度. ◆存储过程能够减少网络流量. ◆存储过程可被作为一种安全机制来充分利用. 本文作者将向大

实例-“/”应用程序中的服务器错误。

问题描述 "/"应用程序中的服务器错误. 在IIS上浏览出现下面的错误,怎么解决 "/"应用程序中的服务器错误. 未将对象引用设置到对象的实例. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例. 源错误: 执行当前 Web 请求期间生成了未经处理的异常.可以使用下面的异常堆栈跟踪

“/”应用程序中的服务器错误及解决方法

 解决方法:增加站点所在目录的ntfs权限,增加service用户对站点目录的完全控制权  出错信息如下: 运行时错误  说明: 服务器上出现应用程序错误.此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因).但可以通过在本地服务器计算机上运行的浏览器查看.  详细信息: 若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的"web.config"配置文件中创建一个 <customErrors> 标记

“/”应用程序中的服务器错误和Server Error in &#039;&#039;/&#039;&#039; Application.的终极解决方法_win服务器

"/"应用程序中的服务器错误. 运行时错误 说明: 服务器上出现应用程序错误.此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因).但可以通过在本地服务器计算机上运行的浏览器查看. 详细信息: 若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的"web.config"配置文件中创建一个 <customErrors> 标记.然后应将此 <customErrors> 标记

解决Android平台中应用程序OOM异常的方法_Android

在Android平台上面,应用程序OOM异常永远都是值得关注的问题.通常这一块也是程序这中的重点之一.这下我就如何解决OOM作一点简单的介绍. 首先,OOM就是内存溢出,即Out Of Memory.也就是说内存占有量超过了VM所分配的最大. 怎么解决OOM,通常OOM都发生在需要用到大量内存的情况下(创建或解析Bitmap,分配特大的数组等),在这样的一种情况下,就可能出现OOM,据我现在了解到,多数OOM都是因为Bitmap太大.所以,这里我就专门针对如何解决Bitmap的OOM.其实最核发