精华内容
下载资源
问答
  • AR事务处理类型 :客户返利和坏帐准备事务处理类型设置

             客户返利和坏帐准备一直在GL中做人工日记帐,我个人总觉得怪怪的。之前财务总监与我提到过:与应付相关的尽量做到应付,与应收相关的尽量做应收,尽量少到总帐中做人工日记帐。AR事务处理常用借和贷关系如下:

    1.AR事务处理:发票(产品销售收入)
    Dr: 应收账款-客户
                 Cr:主营业务收入-销售产品
                      应交税费-应交增值税-销项

    2.AR事务处理:贷项-发票(客户退货)
    Dr:主营业务收入-销售产品
         应交税费-应交增值税-销项
                  Cr:应收账款-客户
    3.AR事务处理:贷项-坏帐准备
    Dr:资产减值损失-坏帐准备
                  Cr:坏账准备-应收账款

    4.AR事务处理:贷项-客户返利
    Dr:主营业务收入-销售产品
                   Cr:预计负债-客户返利

    虽然财务同事按照领导的指示要求做到AR事务处理中,但是月结关闭之前对帐问题出现了,也就所有客户“帐龄 - 4 时段报表”的“未付金额”之和与总帐的“总帐试算表”收入科目期末之各对不上帐。由于当时没有设置“贷项-坏帐准备”和“贷项-客户返利”事务处理类型,而用户用“贷项-发票”事务处理类型做客户返利和坏帐准备,从而导致AR与GL对不上帐。       

             经过与财务同事了解到:客户返利和坏帐准备正常不需求要通过收款去核销。但是,当初听到这样情况时,可能许多非财务人员与我有同样的问题:若它们是不核销,则实际情况没有发生时这么办?答案:可以用它们来核销其它AR事务处理,也就是它相当于收款,方法如下:

             如何让“贷项-客户返利”和“贷项-坏帐准备”不参于“帐龄 - 4 时段报表”计算客户“未付金额”呢?

    路径:AR-->Setup-->Transactions-->Tansaction Types

    一、“贷项-坏帐准备”设置如下:

    二、“贷项-客户返利”设置如下:

     经过手工创建二种类型的贷项通知单,提交“帐龄 - 4 时段报表”检查发现确实没有这二种事务处理类型的贷项通知。

    重要问题来了:之前只需求要做到同一张GL日记帐就可以了,手工操作比较方便。 而在AR事务处理中,用户说手工做“贷项-坏帐准备”AR事务处理太多了。公司有成百上千个客户并且“未付金额”超过一定额度时,需要对该客户“未付金额”千分之几做贷项事务处理。如何解决用户快速完成成百上千张“贷项-坏帐准备”事务处理?请关注下一篇文章:Oracle EBS Interface/API(4)--AR贷项通知单

    展开全文
  • Spring事务类型祥解

    2008-07-24 15:31:06
    Spring事务类型祥解讲解各种设置
  • mysql数据库事务类型

    千次阅读 2017-09-25 16:36:01
    数据库事务有不同的隔离级别,不同的隔离级别对锁的使用是不同的,锁的应用最终导致不同事务的隔离级别。 隔离性分为四个级别: 1读未提交:(Read Uncommitted) 2读已提交(Read Committed) 大多数数据库默认的隔离...

     

    数据库事务有不同的隔离级别,不同的隔离级别对锁的使用是不同的,锁的应用最终导致不同事务的隔离级别。

    隔离性分为四个级别:

     1读未提交:(Read Uncommitted)

     2读已提交(Read Committed) 大多数数据库默认的隔离级别

     3可重复读(Repeatable-Read) mysql数据库所默认的级别

     4序列化(serializable


    四个级别的具体实现和不同的请下面细读:

     首先程序是可以并发执行的,同样,在MySQL中,一个表可以由两个或多个进程同时来读写数据,这是没有问题的。

     比如,此时有两个进程来读数据,这也没什么问题,允许。但是如果一个进程在读某一行的数据的过程中,另一个在进程又往这一行里面写数据(改、删),那结果会是如何?同样,如果两个进程都同时对某一行数据进行更改,以谁的更改为准?那结果又会怎样,不敢想象,是不是数据就被破坏掉了。所以此时是冲突的。

     既然会冲突就要想办法解决,靠谁来解决,这时候就是靠锁机制来维护了。怎么使用锁来使他们不冲突?

     在事务开始的时候可以给要准备写操作的这一行数据加一个排它锁,如果是读操作,就给该行数据一个读锁。这样之后,在修改该行数据的时候,不让其他进程对该行数据有任何操作。而读该行数据的时候,其他进程不能更改,但可以读。读或写完成时,释放锁,最后commit提交。这时候读写就分离开了,写和写也就分离开了。

     注意:此时加锁和释放锁的过程由mysql数据库自身来维护,不需要我们人为干涉。mysql开发者给这个解决冲突的方案起了一个名字叫做:读未提交:(Read Uncommitted)。这也就是事务的第一个隔离性。


    但是这个程度的隔离性仅仅是不够的。看下面的测试结果:

     1A修改事务级别为:未提交读。并开始事务,对user表做一次查询

     

     2)B事务更新一条记录

     

     3)此时B事务还未提交,A在事务内做一次查询,发现查询结果已经改变

     

      4B进行事务回滚

     

      5A再做一次查询,查询结果又变回去了

     

     由试验得知:在一个进程的事务当中,我更改了其中的一行数据,但是我修改完之后就释放了锁,这时候另一个进程读取了该数据,此时先前的事务是还未提交的,直到我回滚了数据,另一个进程读的数据就变成了无用的或者是错误的数据。我们通常把这种数据叫做脏数据,这种情况读出来的数据叫做賍读。

     怎么办?依然是靠锁机制。无非是锁的位置不同而已,之前是只要操作完该数据就立马释放掉锁,现在是把释放锁的位置调整到事务提交之后,此时在事务提交前,其他进程是无法对该行数据进行读取的,包括任何操作。那么数据库为此种状态的数据库操作规则又给了一个名字叫做:读已提交(Read Committed),或者也可以叫不可重复读。这也就是事务的第二个隔离性。

     在某些情况下,不可重复读并不是问题,比如我们多次查询某个数据当然以最后查询得到的结果为主。但在另一些情况下就有可能发生问题,例如对于同一个数据AB依次查询就可能不同,AB就可能打起来了……

    继续看下面的测试结果:

     1)把隔离性调为READ-COMMITTED(读取提交内容)设置A的事务隔离级别,并进入事务做一次查询

     

     2B开始事务,并对记录进行修改


     3A再对user表进行查询,发现记录没有受到影响

     

     4B提交事务


     5A再对user表查询,发现记录被修改

     

     试验进行到这里,你会发现,在同一个事务中如果两次读取相同的数据时,最后的结果却不一致。这里我们把这种现象称为:不可重复读。因为在第一个事务读取了数据之后,此时另一个事务把该数据给修改了,这时候事务提交,那么另一个事务在第二次读取的时候,结果就不一样,一个修改前的,一个是修改后的。

     但是细心的你会发现,既然你说此种隔离性是在事务提交后才释放锁,那么在试验过程中,在该数据未提交前,另一个事务为什么也是仍然可以读取的呀。是我说错了吗?不是的,在这里mysql使用了一个并发版本控制机制,他们把它叫做MVCC,通俗的也就是说:mysql为了提高系统的并发量,在事务未提交前,虽然事务内操作的数据是锁定状态,但是另一个事务仍然可以读取,大多数数据库默认的就是这个级别的隔离性。但mysql不是。

     而且不只是在更新数据时出现这个问题,在插入数据时仍然会造成类似的这样一种现象:mysql虽然锁住了正在操作的数据行,但它仍然不会阻止另一个事务往表插入新行新的数据。比如:一个事务读取或更新了表里的所有行,接者又有另一个事务往该表里插入一个新行,在事务提交后。原来读取或更改过数据的事务又第二次读取了相同的数据,这时候这个事务中两次读取的结果集行数就不一样。原来更新了所有行,而现在读出来发现竟然还有一行没有更新。这就是所谓的幻读。

    为了防止同事务中两次读取数据不一致,(包括不可重读和幻读),接下来该如何继续做呢?!

     mysql依然采取的是MVCC并发版本控制来解决这个问题。具体是:如果事务中存在多次读取同样的数据,MySQL第一次读的时候仍然会保持选择读最新提交事务的数据,当第一次之后,之后再读时,mysql会取第一次读取的数据作为结果。这样就保证了同一个事务多次读取数据时数据的一致性。这时候,mysql把这种解决方案叫做:可重复度(Repeatable-Read),也就是上述所写的第三个隔离性,也是mysql默认的隔离级别。

    注意:幻读和不可重复读(Read Committed)都是读取了另一条已经提交的事务(这点就脏读不同),所不同的是不可重复读查询的都是同一个数据项,而幻读针对的是一批数据整体(比如数据的个数)。


    说到这里,真的就完事了吗?到这里其实mysql并未完全解决数据的一致性问题。只是在读取上做了手脚,解决了传统意义上的幻读和不可重复读。

    例子:1 A事务开启,B事务开启。

      2 B事务往表里面插入了一条数据,但还并未提交。

      3 A事务开始查询了,并没有发现B事务这次插入的数据。然后此时B事务提交了数据。

      4 于是乎,A事务就以为没有这条数据,就开始添加这条数据,但是却发现,发生了数据 重复冲突。

     最后这个时候,该我们的最后一种隔离级别也是最高的隔离级:别序列化(serializable)登场了。

     该隔离级别会自动在锁住你要操作的整个表的数据,如果另一个进程事务想要操作表里的任何数据就需要等待获得锁的进程操作完成释放锁。可避免脏读、不可重复读、幻读的发生。当然性能会下降很多,会导致很多的进程相互排队竞争锁。

     后记:以上所说的四种隔离性的锁机制应用是数据库自动完成的,不需要人为干预。隔离级别的设置只对当前链接有效。对于使用MySQL命令窗口而言,一个窗口就相当于一个链接,当前窗口设置的隔离级别只对当前窗口中的事务有效




    展开全文
  • 对于一个持久化框架,或者说ORM软件,事务的概念可能包含如下不同的内涵: 底层数据库的物理事务持久化上下文本身的逻辑事务基于持久化框架的上层应用事务 对于底层数据库的物理事务,这依赖于数据库管理...
    对于一个持久化框架,或者说ORM软件,事务的概念可能包含如下不同的内涵:
    

    • 底层数据库的物理事务
    • 持久化上下文本身的逻辑事务
    • 基于持久化框架的上层应用事务

    对于底层数据库的物理事务,这依赖于数据库管理系统本身提供的事务功能。对于Hibernate来说,只是封装了JDBC连接数据库或JTA数据库资源,Hibernate本身不提供额外的任何事务机制。因而,Hibernate只支持JDBC事务和JTA事务。

    在Hibernate的配置文件中,可以设置参数声明采用的事务类型如下:

    hibernate.transaction.coordinator_class=jdbc|jta

    该参数的值为jdbc(默认)或jta,二者取其一。

    显然,JDBC事务是依赖java.sql.Connection实现的事务。

    对于JTA事务,Hibernate需要知道其使用的JTA服务平台,这通过如下参数配置:

    hibernate.transaction.jta.platform=JBossAS

    展开全文
  • Java事务类型

    千次阅读 2009-08-24 11:17:00
    Java事务类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。1、JDBC事务JDBC 事务是用 Connection 对象控制的。JDBC Connection 接口( java.sql.Connection )提供了两种事务模式:自动提交和手工...

    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容器事务。

    展开全文
  • RapidIO规范定义了几种事务类型。 每种事务类型执行不同的功能。 IP核的事务支持是通过Vivado®集成设计环境(IDE)设置的。 表3-1列出了已定义的事务类型,并指示事务所属的LOG端口。 如果事务不是表3-1中定义的...
  • 事务的三种类型

    千次阅读 2019-03-09 10:54:04
    事务:有三种类型: 1、JDBC事务 2、JTA事务(java Transaction API)事务 3、容器事务 1、JDBC事务是用Connection对象控制的,JDBC Connection接口(java.sql.connection)提供了两种事务模式:自动提交和手动提交。 ...
  • Spring的7种事务传播行为类型

    千次阅读 2018-07-25 00:26:26
    1、PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。 2、PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不...
  • 事务

    千次阅读 2019-03-23 17:13:47
    事务的三种类型 Java事务类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务 1、JDBC事务 JDBC 事务是用 Connection 对象控制的。JDBC Connection 接口( java.sql.Connection )提供了两种事务模式:...
  • 一、什么是Java事务  通俗的理解,事务是一组原子操作单元,从数据库角度说,就是一组SQL指令,要么全部执行成功,若因为某个原因其中一条指令执行有错误,则撤销先前执行过的所有指令。更简答的说就是:要么...
  • 创建特殊总账标识时,若想设置如下三种不同的特殊总账事务类型,则需要通过三种不同的事务码进行创建,因为从图1后台路径进入创建总账标识时,系统会默认特殊总账事务类型为“其他的”,且不能更改,但可以从事务码...
  • Loadrunner 脚本录制、设置事务、添加检查点、参数化以及添加关联 说明:本文使用loadrunner自带的HP Web Tours Application,录制web脚本没有概念性的解释,直接开始 一、打开web Server,见下图 启动后,在...
  • MySQL-事务隔离级别设置

    千次阅读 2017-12-25 09:11:32
    先了解下 第一类丢失...撤销一个事务时, 把其他事务已经提交的更新数据覆盖(此情况在事务中不可能出现, 因为一个事务中修改时此记录已加锁, 必须等待此事务完成后另一个事务才可以继续UPDATE) 脏读 一个事务
  • <tx:advice/> 有关的设置 这一节里将描述通过 &... 标签来指定不同的事务设置。默认的 <tx:advice/> 设置如下:   事务传播设置是 REQUIRED 隔离级别是 DEFAU...
  • 1,我们要明确,Spring如何设置事务自动提交和回滚? ①如何自动提交? 理论上,可以通过对DataSource如下设置,让事务自动提交 [html]view plaincopy beanid="dataSource"class="org.apache....
  • 最近需要通过JDBC对数据库做事务型操作,实践时发现,并没有达到想要的效果,表现在:1、每次执行executeUpdate()后,数据...当时设定的“表类型”为MyISAM,而这种类型,是不支持事务操作的。 能够支持事务操作的表...
  • Redis 中的事务使用MULTI与EXEC之间之间执行多个操作来处理一个事务:127.0.0.1:6379> MULTI OK 127.0.0.1:6379> SADD key element QUEUED 127.0.0.1:6379> LPUSH helper_key x QUEUED 127.0.0.1:6379> EXEC 1) ...
  • 事务的概念、类型和四个特征.

    千次阅读 2017-01-24 10:52:57
    事务的概念、类型和四个特征(ACID).1.事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL Server能将逻辑相关的一组操作绑定...
  • 事务隔离级别&级别设置

    千次阅读 2018-04-13 10:35:44
    SQL ANSI 定义了几个事务的隔离级别,隔离级别越高,安全性... 问题类型 英文名称 描述 更新丢失 lost update 两个事务更新冲突 被修改读 dirty read 脏读太难听,已读取数据事务进行时间被更改 不...
  • 在Mysql中,只有当表的类型是INNODB的时候,才支持事务,所以需要把表的类型设置为INNODB,否则无法观察到事务.修改表的类型为INNODB的SQL:   alter table product_ ENGINE = innodb; 查看表的类型的SQL   ...
  • (MySQL数据库默认的存储引擎类型是MyISAM,这种存储引擎类型不支持事务处理。) 导致在项目测试中发现异常后,事务无回滚动作。 解决办法: 1. 在Spring data jpa中的配置中添加database-platform: org....
  • Java JDBC事务与JTA分布式事务

    千次阅读 2016-08-19 17:02:04
    Java事务类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。 常见的容器事务如Spring事务,容器事务主要是J2EE应用服务器提供的,容器事务大多是基于JTA完成,这是一个基于JNDI的,相当复杂的API...
  • 0.1)本文部分文字描述转自“MySQL 必知必会”,旨在review“MySQL事务管理+安全管理+MySQL数据类型” 的基础知识; 【1】管理事务处理 【1.1】事务处理 1)并非所有引擎都支持事务管理,MyISAM 不支持,而...
  • 一、ORM中的事务和锁 事务 事务要确保原子性 """ 事务 ACID 原子性:不可分隔的最小单位 一致性:跟原子性是相辅相成 隔离性:事务之间相互不干扰 持久性:事务一旦确认永久生效 事务的回滚 rollback ...
  • Ø 配置菜单路径:SPRO->物料管理->库存管理和实际库存管理->Enjoy事务设置->收货移动设置->设置业务和参考单据 Ø  SM30->V_MIGO_TCODE   根据配置决定事务代码所处理的收货(A1)、退回交货(A2)、取消(A3)...
  • 使用过Loadrunner的童鞋应该对事务、思考时间、集合点这三个概念不陌生,这三样对测试脚本编写有很大的作用,今天楼主就跟大家讲讲在Hyperpacer中,这三个是怎么实现的。 为照顾零基础的童鞋,楼主还是要先跟大家...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 343,715
精华内容 137,486
关键字:

如何设置事务类型