第一篇:java事务处理总结
[转载] Java事务处理总结
一、什么是Java事务
通常的观念认为,事务仅与数据库相关。
事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。隔离性表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见。持久性表示已提交的数据在事务执行失败时,数据的状态都应该正确。
通俗的理解,事务是一组原子操作单元,从数据库角度说,就是一组SQL指令,要么全部执行成功,若因为某个原因其中一条指令执行有错误,则撤销先前执行过的所有指令。更简答的说就是:要么全部执行成功,要么撤销不执行。
既然事务的概念从数据库而来,那Java事务是什么?之间有什么联系?
实际上,一个Java应用系统,如果要操作数据库,则通过JDBC来实现的。增加、修改、删除都是通过相应方法间接来实现的,事务的控制也相应转移到Java程序代码中。因此,数据库操作的事务习惯上就称为Java事务。
二、为什么需要事务
事务是为解决数据安全操作提出的,事务控制实际上就是控制数据的安全访问。具一个简单例子:比如银行转帐业务,账户A要将自己账户上的1000元转到B账户下面,A账户余额首先要减去1000元,然后B账户要增加1000元。假如在中间网络出现了问题,A账户减去1000元已经结束,B因为网络中断而操作失败,那么整个业务失败,必须做出控制,要求A账户转帐业务撤销。这才能保证业务的正确性,完成这个操走就需要事务,将A账户资金减少和B账户资金增加方到一个事务里面,要么全部执行成功,要么操作全部撤销,这样就保持了数据的安全性。
三、Java事务的类型
Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。
1、JDBC事务
JDBC 事务是用 Connection 对象控制的。JDBC Connection 接口(java.sql.Connection)提供了两种事务模式:自动提交和手工提交。java.sql.Connection 提供了以下控制事务的方法:
public void setAutoCommit(boolean)public boolean getAutoCommit()public void commit()public void rollback()
使用 JDBC 事务界定时,您可以将多个 SQL 语句结合到一个事务中。JDBC 事务的一个缺点是事务的范围局限于一个数据库连接。一个 JDBC 事务不能跨越多个数据库。
2、JTA(Java Transaction API)事务
JTA是一种高层的,与实现无关的,与协议无关的API,应用程序和应用服务器可以使用JTA来访问事务。
JTA允许应用程序执行分布式事务处理--在两个或多个网络计算机资源上访问并且更新数据,这些数据可以分布在多个数据库上。JDBC驱动程序的JTA支持极大地增强了数据访问能力。
如果计划用 JTA 界定事务,那么就需要有一个实现 javax.sql.XADataSource、javax.sql.XAConnection 和 javax.sql.XAResource 接口的 JDBC 驱动程序。一个实现了这些接口的驱动程序将可以参与 JTA 事务。一个 XADataSource 对象就是一个 XAConnection 对象的工厂。XAConnection s 是参与 JTA 事务的 JDBC 连接。
您将需要用应用服务器的管理工具设置 XADataSource。从应用服务器和 JDBC 驱动程序的文档中可以了解到相关的指导。
J2EE 应用程序用 JNDI 查询数据源。一旦应用程序找到了数据源对象,它就调用 javax.sql.DataSource.getConnection()以获得到数据库的连接。
XA 连接与非 XA 连接不同。一定要记住 XA 连接参与了 JTA 事务。这意味着 XA 连接不支持 JDBC 的自动提交功能。同时,应用程序一定不要对 XA 连接调用 java.sql.Connection.commit()或者 java.sql.Connection.rollback()。相反,应用程序应该使用 UserTransaction.begin()、UserTransaction.commit()和 serTransaction.rollback()。
3、容器事务
容器事务主要是J2EE应用服务器提供的,容器事务大多是基于JTA完成,这是
一个基于JNDI的,相当复杂的API实现。相对编码实现JTA事务管理,我们可以通过EJB容器提供的容器事务管理机制(CMT)完成同一个功能,这项功能由J2EE应用服务器提供。这使得我们可以简单的指定将哪个方法加入事务,一旦指定,容器将负责事务管理任务。这是我们土建的解决方式,因为通过这种方式我们可以将事务代码排除在逻辑编码之外,同时将所有困难交给J2EE容器去解决。使用EJB CMT的另外一个好处就是程序员无需关心JTA API的编码,不过,理论上我们必须使用EJB。四、三种事务差异
1、JDBC事务控制的局限性在一个数据库连接内,但是其使用简单。
2、JTA事务的功能强大,事务可以跨越多个数据库或多个DAO,使用也比较复杂。
3、容器事务,主要指的是J2EE应用服务器提供的事务管理,局限于EJB应用使用。
五、总结
事务控制是构建J2EE应用不可缺少的一部分,合理选择应用何种事务对整个应用系统来说至关重要。一般说来,在单个JDBC 连接连接的情况下可以选择JDBC事务,在跨多个连接或者数据库情况下,需要选择使用JTA事务,如果用到了EJB,则可以考虑使用EJB容器事务。
第二篇:农村事务处理方法
为妥善处理城中村村民重复访、集体访和非正常上访问题,我们有以下对策建议:
先与群众沟通,做好群众思想工作,尽量杜绝上访事件发生,就地解决问题,责令企业整改,并且给出相应的优惠措施,既不破坏环境也不破坏经济发展,第一时间与上级领导汇报。
首先,要讲究工作方式,变被动接访为主动服务接访。一是要善待村民,及时办结。如村民反映的问题合情合理合法,应尽快抓紧协调,设法促成解决。对合情但不合理或政策不允许的问题,要宣传政策,解释疏导。对一些政策不明确的问题,应积极争取上级明确政策,及时解答回复。对牵涉到诸多部门的问题,要阐释清楚,主动协办。二是要领导接访,上下联动。制定、完善和坚持领导干部公开接访制度,尽量现场办公,督促处理落实。三是要突出重点,重心下移。建立定期下访制度,每月至少1次;主动深入到问题多、群众信访频繁的重点城中村、重点上访对象、特殊群体、弱势群体中进行调研,把工作做在前面,将问题解决在萌芽状态。四是疑难问题要有耐心,应该理解并积极寻求解决方法,尽最大努力争取使上访者得到满意答复。
其次,要坚持依法办事,变无序信访为有序信访。一是要强化依法信访举报法规知识的宣传教育,增强村民依法信访意识,教育党员干部遵守党纪党规,教育信访工作人员依法高效办理信访问题。二是针对党员参与鼓动群访的情况,依照党纪条例,进行指正警示,提出要求,强化管理,既尊重和维护党员干部的合法权益,又坚决严处违法违纪现象,不可偏废。二是坚持“依法上访,违法追究,双向责任,注重导向”原则,真正做到畅通渠道、依法依规、健康有序。三是建立健全信访制度体系,依法依纪保护、规范党员群众信访举报的权利、义务、行为。四是采取配套措施,充分发挥辖区人大代表、政协委员的作用,使他们成为群众的“代言人”,对重点信访问题进行公开听证,选派律师参与信访接待,依法调解复杂信访案件,畅通信访监督通道。
再次,以人为本,着力维护村民利益,坚持“群众利益无小事”的思想不动摇。抓住损害村民的重点问题不放松,针对损害村民切身利益的一些重点、热点、难点问题,及时研究处理,使群众满意。建立查处快速反应机制,采取发信访监督卡、信访谈话、立案查办等方式,督促信访问题解决。对损害群众利益的典型案件,及时受理查处,决不姑息迁就。同时,积极协调部门关系,形成信访监督的整体合力。
建立合理分流处理机制;对于纪检监察机关受理范围内的信访问题,按“分级负责、归口办理”,“谁主管、谁负责”的原则,层层分解落实任务;建立协作配合的工作机制,对于牵涉多个部门的交叉、复杂、疑难信访问题,纪委主动牵头协调解决;加强督促检查,纪委主动指导、帮助责任部门研究制定办法措施,加强跟踪调度和督促检查,抓好落实整改。
另外,加强制度建设,构筑长效机制。完善领导接访日制度,建立协作接访制度,如人大代表、政协委员参与接访制度等。建立严密高效的处访制度,依法行政,增强协调处理力度。加强骨干培训,提高工作能力,确保问题解决。要严格落实回访制度,建立处理登记台账,做到“事事有着落,件件有回音”。要完善设施,加快办公自动化建设,提高工作效率。
第三篇:java总结
调用父类构造方法
在子类的构造方法中可使用super(argument_list)语句调用父类的构造方法
如果子类的构造方法中没有显示地调用父类构造方法,也没有使用this关键字调用重载的其它构造方法,则系统默认调用父类无参数的构造方法
如果子类构造方法中既未显式调用父类构造方法,而父类中又没有无参的构造方法,则编译出错
1public class Person {
3private String name;
4private int age;private Date birthDate;
7public Person(String name, int age, Date d){ 8this.name = name;
9this.age = age;
10this.birthDate = d;
11}
12public Person(String name, int age){ 13this(name, age, null);
14}
15public Person(String name, Date d){ 16this(name, 30, d);
17}
18public Person(String name){
19this(name, 30);}
21// ……
22}
1public class Student extends Person {
2private String school;
4public Student(String name, int age, String s){ 5super(name, age);
6school = s;
7}
8public Student(String name, String s){
9super(name);
10school = s;
11}
12public Student(String s){ // 编译出错: no super()13school = s;
14}
15}
对象构造和初始化细节
分配存储空间并进行默认的初始化
按下述步骤初始化实例变量
1.绑定构造方法参数
2.如有this()调用,则调用相应的重载构造方法,然后跳转到步骤5
3.显式或隐式追溯调用父类的构造方法(Object类除外)
4.进行实例变量的显式初始化操作
5.执行当前构造方法的方法体
==操作符与equals方法
==操作符与equals方法的区别:
引用类型比较引用;基本类型比较值;
equals()方法只能比较引用类型,“==”可以比较引用类型及基本类型;
特例:当用equals()方法进行比较时,对类File、String、Date及封装类(Wrapper Class)来说,是比较类型及内容而不考虑引用的是否是同一个实例;
用“==”进行比较时,符号两边的数据类型必须一致(可自动转换的基本数据类型除外),否则编译出错;
由装箱引发的——Integer比较的来龙去脉
前置知识: 众所周之,java是保留了int,char等基本数据类型的,也就是说int类型的并不是对象,然而有些方法却需要object 类型的变量,所以java使用了装箱机制,我们可一自豪的这样声明一个整型变量:Integer a = new Integer(10);那么整型的a也就是对象了,那这句是什么意思呢:Integer a= 10;java中可以这样声明一个对象吗?当然不是,从jdk1.5后,java实现了自动装箱,也就是自动将Integer a =10 中的int类型的10转化为了 Integer类型。好,有了前面的只是我们且先看一个题目:
Integer a = 127;
Integer b = 127;
Integer c = 128;
Integer d = 128;
System.out.println(a==b);
System.out.println(c==d);
答案是什么呢? 如果您回答true,false,那么很遗憾的告诉你,哈哈,其实你答对了!!
那我们晕了就相差1的两个数为啥走向了“反目成仇”的地步呢?凭啥127等于127,我128就不等于128呢?且听我慢慢道来,Integer a =127,Integer a=128。
127,128应该不会造成什么差异吧,难道是自动装箱的过程有猫腻?找下源码看看:
private static class IntegerCache {
private IntegerCache(){}
static final Integer cache[] = new Integer[-(-128)+ 127 + 1];static {
for(int i = 0;i < cache.length;i++)
cache[i] = new Integer(i128);
}
这是用一个for循环对数组cache赋值,cache[255] = new Integer(255-128),也就是newl一个Integer(127),并把引用赋值给cache[255],好了,然后是Integer b= 127,流程基本一样,最后又到了cache[255] = new Integer(255-128),这一句,那我们迷糊了,这不是又new了一个对象127吗,然后把引用赋值给cache[255],我们比较这两个引用(前面声明a的时候也有一个),由于是不同的地址,所以肯定不会相等,应该返回false啊!呵呵,这么想你就错了,请注意看for语句给cache[i]初始化的时候外面还一个{}呢,{}前面一个大大的static关键字大咧咧的杵在哪呢,对静态的,那么我们就可以回想下static有什么特性了,只能初始化一次,在对象间共享,也就是不同的对象共享同一个static数据,那么当我们Integer b = 127的时候,并没有new出一个新对象
来,而是共享了a这个对象的引用,记住,他们共享了同一个引用!!,那么我们进行比较a==b时,由于是同一个对象的引用(她们在堆中的地址相同),那当然返回true了!!
然后我们在看Integer c = 128;Integer d = 128;这两句。现在不用我说就应该能明白了吧,当数据不再-128到127之间时,是不执行return
IntegerCache.cache[i + offset];这句的,也就是不会返回一个static的引用,而是执行了return new Integer(i);于是当 Integer d = 128 时,又会重新返回一个引用,两个不同的引用
在做c==d 的比较时当然返回false了!
下面附上本程序的字节码以供喜欢底层的读者参考:
Compiled from “CompareInteger.java”
public class CompareInteger extends java.lang.Object{
public CompareInteger();
Code:
0:aload_0
1:invokespecial#1;//Method java/lang/Object.“
public static void main(java.lang.String[]);
Code:
0:bipush 127
2:invokestatic#2;//Method
java/lang/Integer.valueOf:(I)Ljava/lang/Int
eger;
5:astore_1
6:bipush 127
8:invokestatic#2;//Method
java/lang/Integer.valueOf:(I)Ljava/lang/Int
eger;
11: astore_2
12: sipush 128
15: invokestatic#2;//Method
java/lang/Integer.valueOf:(I)Ljava/lang/Int
eger;
18: astore_3
19: sipush 128
22: invokestatic#2;//Method
java/lang/Integer.valueOf:(I)Ljava/lang/Int
eger;
25: astore 4
27: getstatic#3;//Field
java/lang/System.out:Ljava/io/PrintStream;
30: aload_1
31: aload_2
32: if_acmpne39
35: iconst_1
36: goto40
39: iconst_0
40: invokevirtual#4;//Method java/io/PrintStream.println:(Z)V43: getstatic#3;//Field
java/lang/System.out:Ljava/io/PrintStream;
46: aload_3
47: aload4
49: if_acmpne56
52: iconst_1
53: goto57
56: iconst_0
57: invokevirtual#4;//Method java/io/PrintStream.println:(Z)V60: return
}
评论:呵呵,这么想你就错了,请注意看for语句给cache[i]初始化的时候外面还一个{}呢,{}前面一个大大的static关键字大咧咧的杵在哪呢,对静态的,那么我们就可以回想下static有什么特性了,只能初始化一次,在对象间共享,也就是不同的对象共享同一个static数据,那么当我们Integer b = 127的时候,并没有new出一个新对象来,而是共享了a这个对象的引用,记住,他们共享了同一个引用!!
呵呵,博主我被你这句话小小的误导了一下,其实你这里说的原理没错,但是把位置说错了,这段代码只是初始化cache:
static {
for(int i = 0;i < cache.length;i++)
cache[i] = new Integer(i-128);
}
但真正让cache[i]为static变量的是这句代码:
static final Integer cache[] = new Integer[-(-128)+ 127 + 1];
第四篇:Java总结
Java实验
1.调试HelloWorld程序
2.this,super,get ,set,把课本90页程序4.7中的name改成私有变量
3.继承,重写,父类引用指向子类对象
4.验证数组Arrays类和Collection类
5.编写一个自己的异常类并捕获之。
6.编写一个类,将该类的几个对象装入TreeSet容器中,并将该容器的内容通过输出流写入文件中。
前三章重点
0.java的数据类型:四类八种-(1)布尔类型Boolean;(2)字符类型char;(3)整数byte,short,int,long;(4)浮点类型:float,double;1.面向对象的3个基本特征:封装,继承,多态。
2.构造方法和普通方法的区别:对构造方法而言,它有以下特性---(1)方法名必须与要创建对象的类名相同。(2)不允许声明返回类型,即使声明为void也不被允许。
3.this关键字:是一个引用,this引用指向的是其本身所在方法的当前对象。this的使用方法:(1)调用成员变量;(2)可以用this()调用其他构造函数。
4.java中只对类成员变量进行自动初始化,而方法内部的局部变量在使用前必须手动初始化。
5.static 关键字:可用来修饰类的成员变量和成员方法,需要注意两点--(1)静态方法不能调用类的非静态方法,不能访问类的非静态变量。(2)静态方法和静态变量(非私有的)可以有两种调用方式,一是实例对象调用,二是类名直接调用。
6.类成员访问控制修饰符public、private、default(可不写,即缺省状态)、protected的使用:public-公用的;private-私有的,只在定义它的类内部使用;default-可以被同一包中的类访问;protected-既可以被同一包中的类访问,也可以被不在同一包中的子类访问。
7.方法的重载:指方法名相同,而方法的参数列表不相同。参数列表不同有三层意思:(1)参数类型不同。(2)参数顺序不同。(3)参数个数不同。另外需注意,在同一个类中,当方法名和参数列表都相同时,访问控制修饰符或方法返回类型不相同并不是方法的重载,而且这种情况在java中是不被允许的。
第四五章重点
1.继承:需使用关键字extends.在使用继承时需注意--(1)每个子类只能定义一个超类(父类),即extends后面应且仅应跟一个类名作为该类的父类。(2)父类中的私有属性和私有方法不能被继承。
2.方法的重写:即子类对超类中的方法保持方法名、返回类型和参数列表不变,重写了方法体,使子类和超类完成不同的工作。重写需注意下面几个关键点:(1)超类中的私有方法不能被重写。(2)访问限制符强度由低到高依次是:public、protected、default、private,在重写过程中,如果子类和父类中方法的返回值、方法名及方法的参数列表都相同,这时,要求子类中该方法的访问限制符强度不能超过父类的。即如果父类中为public时,子类也只能为public,而不能是余下的三种。
3.重载(overload)和覆盖(override)的区别:(1)重载—发生在一个类的内部或子类与父类之间,要求方法名相同而参数列表不一样。(2)覆盖—只能发生在继承过程中,要求子类方法的返回类型,方法名和参数列表同父类的都相同,而方法体不一样。
4.构造器的调用顺序:先祖先,再客人,最后自己。
5.多态:指在类继承中子类和父类中可以有同名但意义或实现方式不同的属性和方法。分为:覆盖和重载。多态的优点:因为多态,可以在程序中对类进行扩展,而不需改变那些操作基类接口的方法。
6.动态绑定:指在代码执行期间,判断所引用对象的实际类型,根据其实际类型调用相应方法。动态绑定存在的三个必要条件--(1)要有继承;(2)要有重写(覆盖);(3)父类引用指向子类对象(向上转型)。
7.Object中常用的方法总结:toString();wait();equals();notify();notifyAll();hashCode();getClass();clone();finalize();(呵呵,尽可能记几个,以防老师让咱们列举)注:java中Object类是所有类的父类,即java中所有的类都有上述9种方法。
8.对象的比较:注意关键字instanceof的使用。
9.抽象类:
抽象方法—用关键字abstract修饰的方法,该方法只需方法的声明,而不需方法的实现(即无方法体)。
抽象类——至少包含一个抽象方法的类,也用abstract关键字声明。(注:(1)抽象类中可以有一些具体方法。(2)抽象类不能实例化。(3)子类继承抽象类必须实现其抽象方法。)
10.接口:
(1)可以看成是高度抽象的抽象类,但是接口不是类。
(2)用关键字interface来声明接口,用关键字imlpements来实现接口。
(3)接口不能有具体方法,不能有实例数据,但可以定义常量。
(4)实现接口的非抽象类必须实现接口的所有方法。
(5)每个类可以实现多个接口,这些接口用逗号隔开,同时,一个接口可以被多个类实现。
第六章:重点看一下实验四
1.容器——Collection(接口)和Map(接口).Collection——Set(接口)和List(接口)。其中,List必须保持元素的特定顺序,常见的实现类有ArrayList和LinkedList;Set不能有重复元素,常见的实现类有HashSet和TreeSet。
Map——一组成对的“键值对”对象,即其元素是成对的对象,常见的实现类有HashMap和TreeMap。
第七章 1.异常类的根类是Throwable类,它的两个直接子类是Error类和Exception类。
2.异常中常用的5个关键字为:try,catch,finally,throw,throws.其中,try和catch:用于捕获异常;finally:无论try块中的异常是否抛出,finally中的代码块总能被执行;throw:抛出异常;throws:声明异常。
3.“未被检查的异常(Unchecked Exceptions)”和“受检查的异常(Checked Exceptions)”——
Unchecked Exceptions :编译器不检查方法是否处理或抛出的异常,即不做处理,编译时不报错。
Checked Exceptions:受编译器检查的异常,即不做处理编译时通不过。
4.常见的几种Checked Exceptions:ClassNotFoundExceptionIOExceptionInterruptedExceptionFileNotFoundException.(尽可能的记几个吧,以防不测)第八章
1.流--字节流和字符流;
流--节点流和处理流。
2.所有的输入流都是从抽象类InputStream和Reader继承而来。所有输出流都是从抽象类OutputStream和Writer继承而来。3.字节流:InputStream和OutputStream;字符流:Reader和Writer;
4.节点流:直接与文件等底层打交道,如FileInputStreamFileOutputStreamFileReaderFileWriter.处理流:相当于包装流,套在节点流上,方便数据处理。相关一些用法,具体参考最后一次实验。
第五篇:工程监理日常事务处理
工程建设监理工作日常事务处理
现代科学技术飞速发展,日新月异,大量的新技术、新材料、新工艺、新设备不断地应用到建设项目中,当今建设项目的复杂程度与十多年前是不能相比的,加之参建单位多、项目建设工期长,以及安全控制中传统的安全管理模式受到的冲击等,如果建设监理人员墨守成规,不注意提高知识和技能,凭以往经验办事,也不注意提高组织协调能力,就无法适应现代工程项目对监理工作提出的要求。现阶段监理人员的工作压力不可谓不大,这种情况下,讨论建设监理工作的技术和艺术问题就很有必要了。现分述如下: 所谓建设监理工作的技术是根据国家现成的有关法律、法规、强制性标准、规范的规定、设计文件要求、施工合同和委托监理合同中有关技术服务内容,开展专业化的监理工作。
所谓建设监理工作的艺术是根据施工合同和委托监理合同中有关技术服务内容,以业主的合同目标为中心,灵活运用各种技巧、手段和方法。所有监理工作的艺术是一种表现形式,也是建设监理机构人员的整体素质、能力、胆略和经验的综合反映,还是监理人员良好的职业道德和敬业精神的反映,而且监理工作的艺术始终贯穿在项目施工监理工作的全过程中。
建设监理工作的技术和艺术是相互联系,互为影响的两部分,使建设监理工作技术和艺术的完美结合,对实现业主建设目标(投资省、进度快和质量高,无安全事故和安全隐患)是十分重要的。
一、建设监理工作的技术和艺术,存在于国家颁发的法律、法规、强制性标准和规范中例如:我国《建筑法》第三十二条规定“工程监理人员认为工程施工不符合工程设计要求、施工技术标准和合同约定的,有权要求建筑施工企业改正。工程监理人员发现工程设计不符合建筑工程质量标准或者合同约定的质量
要求,应当报告建设单位,要求设计单位改正。”上述规定是对施工不合格和设计不合格的处理方法,无疑地也是对监理工作的技术要求和艺术要求。
又例如,《建设工程质量管理条例》第三十六条“工程监理单位应当依照法律、法规以及有关技术标准、设计文件和建设工程承包合同,代表建设单位对施工质量实施监理,并对施工质量承担监理责任。”很明显监理单位要不承担监理责任,项目监理机构就必须采取下列质量控制措施(举例如下):
(一)工程质量的预控措施如审查施工组织设计(方案),熟悉施工设计图纸内容,并且全面了解施工合同中约定的工程质量标准,以及对施工中的人、机、料、法、环因素的控√√√
(二)施工质量过程控制对施工质量的过程控制有:督促承包单位的质量管理和质量保证体系落实到位并要发挥作用;对进场建筑材料、构配件及设备质量合格的控制;对已批准的施工方案,在实施过程中进行补充、修改、完善;对承包单位的测量放线成果进行确认,考核承包单位实验室资质和试验结果;检查承包单位现场计量和测量设备要合格;检查验收隐蔽工程、分项工程和分部工程,组织单位工程预验收。
(三)要求承包单位的施工质量资料与施工进度同步,对施工质量资料要及时签证,并使之真实、完整,资料管理分类有序。
如果监理人员按上述技术要求努力做到了,监理单位就不会有监理责任而言了,假如能深入思考其中监理工作的艺术内涵,无疑地是一件很有意义的工作。
二、建设监理工作的技术和艺术还存在于工程施工过程中
施工过程中监理工作的技术和艺术的主要表现是对《建设工程监理规范》中规定内容的理解、执行和检查以及为了达到规范要求和合同目标而采取的方法和措施。
例如工程变更问题,《建设工程监理规范》中6.2.1条已明确规定了工程变更处理程序。可是在施工监理过程中,偶尔出现因为工期紧,工程变更的内容少、签字人员难找或工程变更在业主授权之外,建设监理没有请示业主就同意工程变更,由于变更效果不理想,业主与设计单位不认可,要验收和计量就为难了。还有业主代表和承包单位在室内或现场进行了工程变更,没有通知监理,事后来做变更手续,造成监理工作的被动局面。
例如计量和支付的处理,特别是合同外增加工程的计量是业主和承包单位非常敏感的问题,建设监理工作的技术和艺术在于,承包单位对增加工程应自检合格,申请验收,经建设方、施工方和监理方(简称三方)共同现场验收合格后,及时现场实测、实量,现场计量人员均应在计量结果上签认,计量结果应符合合同约定的计量规则,按规定表格填写报批。这样的三方现场实测、实量结果的做法不是业主不相信监理,也不是监理推卸责任,而是更为了公开、公正地展示计量,使计量结果具有真实性和准确性。因为我们需要的结果是各方的满意,只有用过程来服务结果。这就是建设监理工作的技术和艺术。
再例如施工工期的问题,这是业主非常关心的问题,因为实际完成工期与施工合同工期出入较大时会给业主造成一定的损失,工程开工前,承包单位根据施工图纸和施工合同工期编制总进度计划和按业主要求编制的进度计划,监理单位审查总进度计划时,要求进度计划内容全面,符合施工合同工期、施工工序与顺序合理、施工方法可行、质量保证措施可靠,资源需要量及供应量能保证均衡施工进度等。要求承包单位的质量保证体系健全、安全施工、消防、场区卫生、环保以及文明施工的保证措施齐备。
监理单位在对现场施工条件调查研究的基础上,对业主和承包单位的风险进行分析,同时结合施工总进度计划、编制施工监理总进度控制计划,将总进度目标分解,预测进度偏差,提出预控偏差的措施,作为阶段性进度目标考核的依据,还作为审查承包单位编制的总进度计划的依据。
在施工过程中,监理单位应在确保工程质量和施工安全的原则下控制施工进度。在认真监督、跟踪掌握施工现场的实际进度:当实际进度符合计划进度时,应要求承包单位进行下一道工序安排;当实际进度滞后于计划进度时,监理单位应要求承包单位采取纠偏措施;必要时编制调整进度计划报批后实施。为了有效的进行“四控两管一协调”的工作内容,发挥第一次工地例会和每周工地例会以及专题会议的作用是很重要的。例如:在每周工地例会上,逐项检查上周完成情况,对完成的项目验收合格后,才进行下一道工序,对不能按时完成的工序,找出偏差、分析原因要求采取措施完成。监理人员对工程进度检查情况要在工地例会和监理月报中向业主报告,特别是进度控制措施的执行情况。
三、建设监理工作技术和艺术体现在处理业主、承包单位和设计单位的关系中
(一)在处理与业主关系中的监理工作技术和艺术
大家知道,业主和监理单位的关系是委托与被委托。授权与被授权的委托合同关系,所以业主对监理单位的信任的认识、对自身职责的认识,对设计施工图纸的认识,对施工程序的认识,对施工问题处理的认识,以及个别情况下,业主代表以个人行为代替业主的合同行为等,与监理人员的认识不一样,为了解决这些问题,监理人员的工作艺术就表现在:是写出书面材料开会解决还是个别交流沟通;是马上解决还是经调查研究冷静一段时间解决;是基层解决还是找上级解决。不过无论怎样,监理人员始终要保护业主利益,以诚相待,用业主的思路
去理解分析,权衡利弊,支持业主正确的思考,对叶子股不规范行为耐心解释,协助业主做出正确的决策。
(二)在处理与承包单位关系中的监理工作技术和艺术
就工程建设项目而言,业主、承包单位和监理单位都是建筑市场独立平等的主体,在三个建设主体之间的人与人之间的是平等的相互尊重的关系,并应贯穿在建设施工的全过程中。
监理单位对施工承包单位是按照规范规定和施工图纸,以及施工合同进行监理,同时对承包单位要尊重和帮助,这里的尊重就是尊重他们的丰富的施工经验,尊重他们的管理方法,在保持公正立场的基础上,维护建设监理单位利益的同时,帮助施工承包单位解决工程施工中的实际问题,预防索赔事件的发生。监理人员不要干预承包单位采取的正常的施工方法,也不要干预承包单位在施工组织管理问题上的分析与处理,但可以根据规范规定、合同约定以及施工组织设计(方案)内容提出建议,由承包单位自行决策,以避免由于安全、质量和进度方面的问题引来监理责任。
在施工监理工程中,监理单位和承包单位之间经常为预控质量检查、隐蔽工程检验、工程计量签证、抢工期不顾质量,工程暂停与复工、施工中安全隐患的处理以及施工质量资料和签证等,发生矛盾。监理人员要明白,为了解决好这些问题,应该仔细倾听承包单位陈述的理由,根据图纸现场核实,对承包单位所报资料进行审查,坚持用事实说话,用数据说话,用书面材料说话,使承包单位口服、心服地去纠正问题。值得注意的是,建设监理人员绝对不能对承包单位的施工问题、安全问题或施工资料问题姑息迁就,甚至自觉或不自觉地成为承包单位的施工员,质检员、安全员、资料员,忘掉了建设监理人员应起到的监督、控
制和协调作用,如姑息可能会安全发生安全质量事故,造成损失,这是应该引起重视的事情。
(三)在处理与设计单位之间的监理工作技术和艺术
施工阶段监理单位与设计单位之间虽无合同关系,但有着工作上的联系。如:施工单位照图施工;监理单位照图监理照合同监理,尽管施工前有过设计交底和图纸会审,但仍有可能由于设计施工图的细度和深度不够,不能满足施工需要,或者因为工程地质变化引起结构形式变化,或者因使用功能变化,或者计划调整,或者由于人、机、料、法、环的变化等使原设计施工图发生变更。监理单位要尊重设计施工图,尊重设计人员,并应给予必要的工作支持,但出现设计变更时,仍要按规范要求的工程变更程序进行。使最后竣工验收的工程实体成为业主满意的投资省、进度快、质量高的建筑产品,成为建设监理工作技术和艺术的结合体。
四、结束语
建设监理人员应该有丰富的专业理论知识和相关的基本知识;应该有良好的职业道德,并把建设监理工作作为一生奋斗的职业,而不是一种谋生的手段。建设监理人员要努力使自己成为懂设计、会施工、能管理、善协调的复合型人才。这就是建设监理工作技术要求的总体,在这个技术要求的总体中,努力探讨其艺术要求并去实践,无疑会促进建设监理工作的飞跃。