项目上线,准备验收前出现了一个严重的问题:很多查询语句作为死锁的牺牲,大部分报表无法打开。这个问题影响范围很大所有的报表都无法访问,而我们的报表是放在电视上面轮播的,电视放在工厂里面,所以出现问题后,整个工厂都知道了。
解决这个问题比较曲折,首先是写SAP接口的同事发现了问题:SAP一直在传错...
分类:
其他好文 时间:
2014-05-23 03:34:12
阅读次数:
247
为什么会有线程同步的概念呢?为什么要同步?什么是线程同步?先看一段代码:package com.maso.test;
public class ThreadTest2 implements Runnable{
private TestObj testObj = new TestObj();
public static void main(String[] args) {
Thread...
分类:
移动开发 时间:
2014-05-23 01:29:34
阅读次数:
333
有两种方式解决
1.在窗体构造函数中写Control.CheckForIllegalCrossThreadCalls =false;2.使用Invoke等委托函数。
问题原因是。net2.0以后拒绝多线程访问空间,避免空间造成死锁。以前Control.CheckForIllegalCrossThre...
分类:
编程语言 时间:
2014-05-22 01:31:56
阅读次数:
299
jstack Dump 日志文件中的线程状态dump
文件里,值得关注的线程状态有:死锁,Deadlock(重点关注)执行中,Runnable 等待资源,Waiting on
condition(重点关注)等待获取监视器,Waiting on monitor entry(重点关注)暂停,Suspen...
分类:
编程语言 时间:
2014-05-21 18:59:45
阅读次数:
502
在ios开发中,大家很可能会用到这样一个数据库封装:fmdb.
该封装相比coredata来说有他自己的优势:接口清晰,设计简单,符合规范,多线程情况下使用databasequeue来进行操作也很方便,还可以在其基础上再进行一些封装来方便项目的使用。
正是因为fmdb的简单性,所以很容易被误用。在我们的项目开发中就遇到了一例(我们项目中的代码进行了封装,我这里将其还原,写示例来作说明)...
分类:
数据库 时间:
2014-05-21 13:50:57
阅读次数:
358
接上文
遗留问题
对于Java多线程的理解,我以前仅仅局限于实现Runnable接口或者继承Thread类,然后重写run()方法,最后start()调用就算完事,但是一旦涉及死锁以及对共享资源的访问和随时监控线程的状态和执行顺序和线程返回值等就不行了。
Callable 和 Future 简介
Callable接口代表一段可以调用并返回结果的代码;Future接口表示是执行异步任务...
分类:
移动开发 时间:
2014-05-21 13:40:13
阅读次数:
371
一个例子的死锁分析:环境:innodb引擎,RC隔离级别;死锁信息:RECORD LOCKS
space id 0 page no 1492482 n bits 904 index `unit_id` of table
`51fshenzhen`.`t_refresh_queue` trx id E...
分类:
数据库 时间:
2014-05-21 04:27:37
阅读次数:
578
--创建一个表,此表作为子表
create table fk_t as select *from user_objects;
delete from fk_t where object_id is null;
commit;
--创建一个表,此表作为父表
create table pk_t as select *from user_objects;
delete from p...
分类:
数据库 时间:
2014-05-15 11:17:07
阅读次数:
248
atitit 提升数据库死锁处理总结
正常的来说,锁上都是自动的..不用官..
正常来讲,insert时不需要加rowlock,就默认是rowlock了,
#-----锁的自动转换原理.(正常的不用理它,除外alter 表格字段)
当事务超出其升级阈值时,数据库也许 会自动将行锁和页锁升级为表锁。
例如,在行上执行表事务时,数据库会自动在受影响的行上获取锁,同时将更...
分类:
数据库 时间:
2014-05-15 08:12:16
阅读次数:
249