spring配置事务要注意的问题

本文介绍如何在Spring框架中正确配置JTA事务管理器,并解决默认自动提交的问题。通过使用LazyConnectionDataSourceProxy来控制事务自动提交,确保了Propagation.NOT_SUPPORTED等配置的有效性。

在spring框架中,开启JTA事务很简单,通常将jotm中的coral.properties复制到源目录下,再在applicationContext.xml中配置,以下是网上常见的写法:

	<context:property-placeholder location="classpath:jdbc.properties" />

	<bean id="jotm"
		class="org.springframework.transaction.jta.JotmFactoryBean" />
	<bean id="dataSource_Standard"
		class="org.enhydra.jdbc.standard.StandardXADataSource"
		destroy-method="shutdown" p:transactionManager-ref="jotm"
		p:driverName="${jdbc.driverClassName}" p:url="${jdbc.url}" />
	<bean id="dataSource"
		class="org.enhydra.jdbc.pool.StandardXAPoolDataSource"
		destroy-method="shutdown" p:user="${jdbc.username}"
		p:password="${jdbc.password}" p:dataSource-ref="dataSource_Standard" />

 但是,仅仅使用该写法会带来一个问题,就是事务默认是autocommit的,那么带来的后果是spring中配置时Propagation.NOT_SUPPORTED等选项配置都是无效的,系统无论在任何时候,总是会默认提交事务。可以使用下面的配置解决这一问题:

	<context:property-placeholder location="classpath:jdbc.properties" />

	<bean id="jotm"
		class="org.springframework.transaction.jta.JotmFactoryBean" />
	<bean id="dataSource_Standard"
		class="org.enhydra.jdbc.standard.StandardXADataSource"
		destroy-method="shutdown" p:transactionManager-ref="jotm"
		p:driverName="${jdbc.driverClassName}" p:url="${jdbc.url}" />
	<bean id="targetDataSource"
		class="org.enhydra.jdbc.pool.StandardXAPoolDataSource"
		destroy-method="shutdown" p:user="${jdbc.username}"
		p:password="${jdbc.password}" p:dataSource-ref="dataSource_Standard" />

	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
		<property name="targetDataSource" ref="targetDataSource"></property>
		<property name="defaultAutoCommit" value="false"></property>
	</bean>

 经过测试,通常spring配置的所有数据源中都是自动进行事务提交的,而dhcp、c3p0等数据池会自带有defaultAutoCommit属性可以配置,而spring自带数据池BasicDataSource和jotm带的xapool数据池都是无法配置的,这个时候可以使用LazyConnectionDataSouceProxy来控制事务的自动提交。

下载前必看:https://renmaiwang.cn/s/bvbfw Verilog设计_串转换 / 移位寄存器实现了一种串转换的功能,其核心原理在于移位寄存器的运用。 这里详细展示了串转以及转串两种不同的设计方案。 每一种转换模式都设有专属的使能信号,同时行输出数据的格式提供了两种选择:最低有效位优先(lsb)和最高有效位优先(msb)。 串转换技术主要应用于串行传输与行传输这两种数据传输模式之间的相互转换,而移位寄存器是达成这一目标的常用工具,能够支持行及串行的数据输入与输出操作。 这些移位寄存器通常被设定为“串行输入、行输出”(SIPO)或“行输入、串行输出”(PISO)两种工作模式。 在串行数据输出的过程中,构成数据和字符的码元会按照既定的时间顺序逐位进行传输。 相比之下,行数据传输则是在同一时刻将固定数量(普遍为8位或16位等)的数据和字符码元同时发送至接收端。 数据输入通常采用串行格式进行。 一旦数据成功输入寄存器,它便可以在所有输出端同时被读取,或者选择逐位移出。 寄存器中的每个触发器均设计为边沿触发类型,且所有触发器均以特定的时钟频率协同工作。 对于每一个输入位而言,它需要经过N个时钟周期才能最终在N个输出端呈现,从而完成行输出。 值得注意的是,在串行加载数据期间,行输出端的数据状态应保持稳定。 数据输入则采用行格式。 在将数据写入寄存器的操作过程中,写/移位控制线必须暂时处于非工作状态;而一旦需要执行移位操作,控制线便会变为激活状态,且寄存器会被锁定以保持当前状态。 只要时钟周期数不超过输入数据串的长度,数据输出端Q将按照预定的顺序逐位读出行数据,且必须明确区分最低有效位(LSB)和最高有效位(MSB)。
内容概要:本文档是PCI-SIG发布的工程变更通知(ECN),旨在为PCIe Base Specification 7.0中的组件测量与认证(CMA-SPDM)功能增加对后量子密码学(PQC)算法的支持。基于NIST发布的PQC标准(FIPS 203、204、205)以及NSA提出的CNSA 2.0安全套件要求,文档明确新设备必须强制支持ML-DSA-87(用于数字签名)和ML-KEM-1024(用于密钥封装)两种PQC算法,同时允许选择性支持传统算法(如RSA、ECC)或其他NIST批准的PQC参数集。变更不影响现有硬件或软件兼容性,但建议通过厂商特定配置机制灵活启用或禁用算法以应对未来安全演进。此外,文档指出PQC可能带来消息体积增大和性能延迟问题推荐使用CHUNK_CAP机制处理大数据传输及利用SPDM协议的“ResponseNotReady”机制缓解响应超时风险。; 适合人群:从事PCIe协议开发、安全芯片设计、固件开发及相关标准制定的技术人员,尤其是涉及国家安全或高安全性系统的产品开发者。; 使用场景及目标:①指导PCIe设备实现符合CNSA 2.0要求的后量子安全通信能力;②帮助开发人员理解如何在SPDM框架下集成PQC算法处理性能与兼容性挑战;③为测试团队提供新增C&I测试需求的依据。; 阅读建议:此文档技术性强,需结合SPDM 1.4规范与NIST相关标准(FIPS 203/204/205)同步研读,重点关注第6.31.3至6.31.5节的具体算法要求与实现注释,便于在产品设计中提前规划密码模块升级路径。
【多智能体控制】有向图下含未知输入领导者的多智能体系统分布式二分时变队形控制研究(Matlab代码实现)内容概要:本文研究了在有向图通信拓扑下,含未知输入领导者的多智能体系统实现分布式二分时变队形控制的问题。通过设计分布式观测器估计领导者的状态与未知输入,结合控制协议实现跟随者对领导者队形的跟踪,确保系统在存在外部干扰或不确定性输入的情况下仍能保持预设的时变队形结构。文中采用Lyapunov稳定性理论证明了闭环系统的收敛性,通过Matlab仿真验证了所提方法的有效性和鲁棒性。该研究拓展了多智能体协同控制的应用边界,尤其适用于敌对环境下的分组包围、区域探测等任务场景。; 适合人群:具备自动控制、多智能体系统、图论基础的研究生、科研人员及从事智能控制算法开发的工程师;熟悉Matlab仿真工具的相关技术人员。; 使用场景及目标:①研究多智能体系统在复杂通信拓扑下的协同控制机制;②实现对具有未知动态行为领导者的一致性跟踪与队形保持;③应用于无人机集群、无人艇编队、智能机器人协作等需要分布式自主控制的实际系统中。; 阅读建议:建议读者结合Matlab代码深入理解观测器设计与控制律推导过程,重点关注有向图条件下的信息传递机制与稳定性分析方法,同时可尝试扩展至切换拓扑、时延通信等更复杂情形以提升实际应用能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值