`

spring3.1+Atomikos 构建jta的分布式事务

 
阅读更多

spring3.1+Atomikos 构建jta的分布式事务

第一.下载Atomikos,需要以下这些包 

 

transactions-api.jar(必须)
transactions-hibernate2.jar
transactions-hibernate3.jar
transactions-jdbc-deprecated.jar
transactions-jdbc.jar(必须)
transactions-jms-deprecated.jar
transactions-jms.jar
transactions-jta.jar(必须)
transactions-osgi.jar(必须)
transactions.jar(必须)

   可以根据参与事务的资源和使用方式不同选择上面的不用jar。

第二.配置 
在applicationContext.xml文件当中作如下配置 

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:task="http://www.springframework.org/schema/task"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-3.0.xsd
	http://www.springframework.org/schema/tx
	http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
	http://www.springframework.org/schema/aop
	http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
	http://www.springframework.org/schema/task 
	http://www.springframework.org/schema/task/spring-task-3.0.xsd">

	<context:property-placeholder
		location="classpath:jdbc.properties"
		ignore-unresolvable="true" />
		
		<!--数据源 couponDataSource-->
		<bean id="couponDataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean"
		init-method="init" destroy-method="close">
		<description>mysql xa datasource</description>
		<property name="uniqueResourceName">  
			<value>couponDataSource</value>  
		</property>
		<property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" />
		<property name="xaProperties">  
			<props>  
				<prop key="user">${luckybee.coupon.jdbc.username}</prop>  
				<prop key="password">${luckybee.coupon.jdbc.password}</prop>  
				<prop key="URL">${luckybee.coupon.jdbc.url}</prop>  
			</props>  
		</property>
		<property name="poolSize" value="3"/>  
	</bean>
	<bean id="couponJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" autowire="default">
		<property name="dataSource">
			<ref bean="couponDataSource" />
		</property>
	</bean>
	
    <!--数据源 couponDataSource-->
	<bean id="shopDataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean"
		init-method="init" destroy-method="close">
		<description>mysql xa datasource</description>
		<property name="uniqueResourceName">  
            <value>shopDataSource</value>  
        </property>
        <property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" />
        <property name="xaProperties">  
            <props>  
                <prop key="user">${luckybee.shop.jdbc.username}</prop>  
                <prop key="password">${luckybee.shop.jdbc.password}</prop>  
                <prop key="URL">${luckybee.shop.jdbc.url}</prop>  
            </props>  
        </property>
        <property name="poolSize" value="3"/>   
	</bean>
	<bean id="shopJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" autowire="default">
		<property name="dataSource">
			<ref bean="shopDataSource" />
		</property>
	</bean>	
	
	<!-- atomikos事务管理器 -->  
	<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager"  
		init-method="init" destroy-method="close">  
		<description>UserTransactionManager</description>   
		<property name="forceShutdown">  
			<value>true</value>  
		</property>  
	</bean> 
	<bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp">  
		<property name="transactionTimeout" value="300" />  
	</bean>   
	<bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager">
		<property name="transactionManager">
			<ref bean="atomikosTransactionManager"  />
		</property>
		<property name="userTransaction">
			<ref bean="atomikosUserTransaction"/>
		</property>
		<property name="allowCustomIsolationLevels" value="true"/>
	</bean>
	<tx:advice id="shopTxAdvice" transaction-manager="txManager">
		<tx:attributes>
			<tx:method name="get*" read-only="true" />
			<tx:method name="query*" read-only="true" />
			<tx:method name="find*" read-only="true" />
			<tx:method name="insert*" read-only="false" isolation="READ_COMMITTED" rollback-for="Exception" />
			<tx:method name="update*" read-only="false" isolation="READ_COMMITTED" rollback-for="Exception" />
			<tx:method name="delete*" read-only="false" isolation="READ_COMMITTED" rollback-for="Exception" />
			<tx:method name="execute*" read-only="false" isolation="READ_COMMITTED" rollback-for="Exception" />
			<tx:method name="add*" read-only="false" isolation="READ_COMMITTED" rollback-for="Exception" />
			<tx:method name="modify*" read-only="false" isolation="READ_COMMITTED" rollback-for="Exception" />
			<tx:method name="create*" read-only="false" isolation="READ_COMMITTED" rollback-for="Exception" />
			<tx:method name="increase*" read-only="false" isolation="READ_COMMITTED" rollback-for="Exception" />
			<tx:method name="subPoint*" read-only="false" isolation="READ_COMMITTED" rollback-for="Exception" />      
		</tx:attributes>
	</tx:advice>

	<aop:config>
		<aop:pointcut id="shopServiceOperation" expression="execution(* com.newstar.luckybee.*.service.*.*(..))" />
		<aop:advisor advice-ref="shopTxAdvice" pointcut-ref="shopServiceOperation" />
	</aop:config>
</beans>

 

第三.在src文件夹下面加入一个jta.properties文件. 
文件内容如下,这个文件是必须的.主是是设置atomikos启动的一些参数,比如日志的输出级别,日志文件的名称等. 

Java代码   收藏代码
  1. # SAMPLE PROPERTIES FILE FOR THE TRANSACTION SERVICE  
  2. # THIS FILE ILLUSTRATES THE DIFFERENT SETTINGS FOR THE TRANSACTION MANAGER  
  3. # UNCOMMENT THE ASSIGNMENTS TO OVERRIDE DEFAULT VALUES;  
  4.   
  5. # Required: factory implementation class of the transaction core.  
  6. # NOTE: there is no default for this, so it MUST be specified!   
  7. #   
  8. com.atomikos.icatch.service=com.atomikos.icatch.standalone.UserTransactionServiceFactory  
  9.   
  10.           
  11. # Set base name of file where messages are output   
  12. # (also known as the 'console file').  
  13. #  
  14. com.atomikos.icatch.console_file_name = tm.out  
  15.   
  16. # Size limit (in bytes) for the console file;  
  17. # negative means unlimited.  
  18. #  
  19. # com.atomikos.icatch.console_file_limit=-1  
  20.   
  21. # For size-limited console files, this option  
  22. # specifies a number of rotating files to   
  23. # maintain.  
  24. #  
  25. # com.atomikos.icatch.console_file_count=1  
  26.   
  27. # Set the number of log writes between checkpoints  
  28. #  
  29. # com.atomikos.icatch.checkpoint_interval=500  
  30.   
  31. # Set output directory where console file and other files are to be put  
  32. # make sure this directory exists!  
  33. #  
  34. # com.atomikos.icatch.output_dir = ./  
  35.   
  36. # Set directory of log files; make sure this directory exists!  
  37. #  
  38. # com.atomikos.icatch.log_base_dir = ./  
  39.   
  40. # Set base name of log file  
  41. this name will be  used as the first part of   
  42. # the system-generated log file name  
  43. #  
  44. com.atomikos.icatch.log_base_name = tmlog  
  45.   
  46. # Set the max number of active local transactions   
  47. # or -1 for unlimited.  
  48. #  
  49. # com.atomikos.icatch.max_actives = 50  
  50.   
  51. # Set the default timeout (in milliseconds) for local transactions  
  52. #  
  53. # com.atomikos.icatch.default_jta_timeout = 10000  
  54.   
  55. # Set the max timeout (in milliseconds) for local transactions  
  56. #  
  57. # com.atomikos.icatch.max_timeout = 300000  
  58.   
  59. # The globally unique name of this transaction manager process  
  60. # override this value with a globally unique name  
  61. #  
  62. com.atomikos.icatch.tm_unique_name = tm  
  63.       
  64. # Do we want to use parallel subtransactions? JTA's default  
  65. # is NO for J2EE compatibility  
  66. #  
  67. # com.atomikos.icatch.serial_jta_transactions=true  
  68.                       
  69. # If you want to do explicit resource registration then  
  70. # you need to set this value to false.  
  71. #  
  72. # com.atomikos.icatch.automatic_resource_registration=true    
  73.       
  74. # Set this to WARN, INFO or DEBUG to control the granularity  
  75. # of output to the console file.  
  76. #  
  77. com.atomikos.icatch.console_log_level=INFO  
  78.       
  79. # Do you want transaction logging to be enabled or not?  
  80. # If set to false, then no logging overhead will be done  
  81. # at the risk of losing data after restart or crash.  
  82. #  
  83. # com.atomikos.icatch.enable_logging=true  
  84.   
  85. # Should two-phase commit be done in (multi-)threaded mode or not?  
  86. # Set this to false if you want commits to be ordered according  
  87. # to the order in which resources are added to the transaction.  
  88. #  
  89. # NOTE: threads are reused on JDK 1.5 or higher.   
  90. # For JDK 1.4, thread reuse is enabled as soon as the   
  91. # concurrent backport is in the classpath - see   
  92. # http://mirrors.ibiblio.org/pub/mirrors/maven2/backport-util-concurrent/backport-util-concurrent/  
  93. #  
  94. # com.atomikos.icatch.threaded_2pc=false  
  95.   
  96. # Should shutdown of the VM trigger shutdown of the transaction core too?  
  97. #  
  98. # com.atomikos.icatch.force_shutdown_on_vm_exit=false  

第四.具体应用 
在dao中应用不同的JdbcTemplate即可。

http://gongjiayun.iteye.com/blog/1570111

 

分享到:
评论

相关推荐

    Spring3.1+Hibernate4.1+Atomikos3.9+MySql5.1+Tomcat5/6/7实现JTA事务管理

    标题中的“Spring3.1+Hibernate4.1+Atomikos3.9+MySql5.1+Tomcat5/6/7实现JTA事务管理”揭示了一个集成开发环境,用于构建分布式、事务一致性的Java应用程序。这个组合利用了Spring框架的依赖注入和AOP(面向切面...

    spring-boot-reference.pdf

    37.1. Using an Atomikos Transaction Manager 37.2. Using a Bitronix Transaction Manager 37.3. Using a Narayana Transaction Manager 37.4. Using a Java EE Managed Transaction Manager 37.5. Mixing XA and ...

    springboot参考指南

    使用JTA处理分布式事务 i. 32.1. 使用一个Atomikos事务管理器 ii. 32.2. 使用一个Bitronix事务管理器 iii. 32.3. 使用一个J2EE管理的事务管理器 iv. 32.4. 混合XA和non-XA的JMS连接 v. 32.5. 支持可替代的内嵌事务...

    不平衡电网电压下基于Simulink的虚拟同步发电机模型预测控制研究与实现

    内容概要:本文详细介绍了针对不平衡电网电压情况下的虚拟同步发电机(VSG)模型预测控制(MPC)的研究与实现。主要内容涵盖正负序电流分解、模型预测控制的核心算法设计、代价函数优化、电压矢量选择策略等方面。文中通过MATLAB/Simulink平台进行了详细的建模与仿真,展示了MPC在抑制电流畸变、稳定功率输出方面的显著优势。仿真结果显示,在电网电压不平衡情况下,MPC能够将电流THD从12%降至4.8%,功率波动从±15%减小到±3%以内。 适合人群:电力电子工程师、自动化控制研究人员、新能源并网技术人员。 使用场景及目标:适用于解决电网电压不平衡导致的电流畸变和功率波动问题,特别是在风电、光伏等新能源发电系统的并网应用中。目标是提高系统的稳定性、可靠性和电能质量。 其他说明:该方案对处理器性能有一定要求,建议采用高性能DSP或FPGA进行硬件加速。同时提供了丰富的仿真结果和代码片段,便于理解和复现。

    C#与西门子S7-200SMART PLC基于原生Socket的异步通讯实现及优化

    内容概要:本文详细介绍了使用C#通过原生Socket与西门子S7-200SMART PLC进行异步通讯的方法和技术要点。首先展示了如何建立TCP连接,使用Poll方法检测连接状态,以及通过异步读写实现高效的通讯机制。接着讨论了多线程并发处理多个PLC连接的技术,如使用Parallel.ForEach和SemaphoreSlim控制并发量,确保系统稳定性。此外,文中还提供了具体的代码示例,包括构造读取DB块的报文、处理数据交互、优化内存管理和提高性能等方面的内容。最后,作者分享了一些实战经验,强调了异步编程、线程安全和资源管理的重要性。 适合人群:从事工业自动化领域的工程师,特别是熟悉C#编程并且需要与PLC进行通讯的开发者。 使用场景及目标:适用于需要高效、稳定的PLC通讯解决方案的工业环境,旨在帮助工程师掌握C#与PLC通讯的关键技术和最佳实践,从而提升系统的性能和可靠性。 其他说明:文中提供的代码示例和技巧经过实际项目验证,能够有效应对大规模PLC连接的需求,降低系统资源消耗,提高通讯效率。

    基于NSGA-III与Optuna的随机森林模型多目标优化及3D可视化

    内容概要:本文详细介绍了如何使用NSGA-III算法结合Optuna库进行随机森林模型的多目标优化。首先定义了一个目标函数,该函数旨在最小化交叉验证误差和测试集误差。接着,通过Optuna创建研究对象并执行优化操作,在此过程中,NSGA-III算法用于寻找帕累托前沿上的最佳解。优化完成后,作者展示了多种可视化手段,如3D曲面图、热力图以及预测对比图,帮助理解参数间的关系及其对模型性能的影响。此外,还探讨了一些实用技巧,例如调整采样范围、种群规模等。 适用人群:熟悉机器学习基本概念和技术栈的研究人员或工程师,特别是对随机森林模型有深入研究兴趣的人士。 使用场景及目标:适用于希望提高随机森林模型性能,同时掌握多目标优化理论的应用场景。主要目标是通过合理的参数配置使模型达到更好的泛化能力和更高的效率。 其他说明:文中提供了完整的代码片段,便于读者复现实验结果。强调了调参过程中需要注意的问题,如避免过度扩展搜索空间、合理设定种群规模等。

    永磁同步电机伺服控制系统中三环PI参数自整定的Matlab建模与仿真

    内容概要:本文详细介绍了利用Matlab进行永磁同步电机(PMSM)伺服控制系统中三环PI参数自整定的方法。首先,文章展示了电流环、转速环和位置环的具体实现细节,包括前馈解耦、带宽设定以及参数计算等关键步骤。其次,文中提供了具体的Matlab代码片段,解释了各个控制环节的工作原理和技术要点。此外,作者分享了一些实践经验,如参数边界保护、转动惯量估算、采样周期选择等,并指出了一些常见的错误及其解决方案。最后,附带的论文资料进一步补充了理论背景。 适合人群:从事电机控制研究的技术人员、高校相关专业师生、自动化领域的工程师。 使用场景及目标:适用于需要快速掌握PMSM伺服控制系统三环PI参数自整定方法的研究人员和工程师。主要目标是提高系统的稳定性和响应速度,减少人工调参的时间成本。 其他说明:文中提供的模型和代码可以在Matlab 2018及以上版本中运行,同时建议使用者结合实际情况调整参数并参考附带的学术文献以获得更好的效果。

    道路多类别交通目标检测数据集.zip

    数据集介绍:道路多类别交通目标检测数据集 一、基础信息 数据集名称:道路多类别交通目标检测数据集 数据规模: - 训练集:728张道路场景图片 - 验证集:217张道路场景图片 - 测试集:100张道路场景图片 分类类别: Animal(动物)、Auto(机动车)、Bus(公交车)、Car(轿车)、Carts(手推车)、Person(行人)、Rikshaw(人力车)、Truck(卡车)、Two-wheeler(两轮车) 标注格式: YOLO格式标注,包含标准化中心坐标和宽高比例,每行标注对应一个检测目标 数据特性:JPEG格式真实道路采集图像,涵盖日间多种光照条件场景 二、适用场景 自动驾驶系统开发: 支持开发适用于印度复杂道路环境的感知系统,可识别9类典型交通参与者与障碍物 智能交通监控系统: 用于训练交通流量统计、违规行为检测等AI模型,适配路口监控设备部署 车载安全预警系统: 提供典型印度道路元素识别能力,支持开发两轮车预警、行人防撞等车载安全功能 区域交通研究: 包含特色交通元素(人力车、动物等),支持南亚地区交通特征研究 三、数据集优势 典型道路元素全覆盖: 包含印度道路特有的三轮人力车、动物穿行等特色场景,9个类别精准覆盖机动车/非机动车/行人等核心交通要素 真实场景适配性强: 数据采集自真实道路环境,包含密集车流、混合交通等复杂场景,提升模型实际部署效果 标注质量保障: 专业标注团队进行三轮质量校验,确保边界框定位准确率和类别标注正确率>98% 模型训练友好性: 严格划分训练集/验证集/测试集,标注文件与图片文件一一对应,支持YOLO系列模型即插即用训练 地域特征突出: 专注印度及南亚地区道路环境,包含右舵驾驶、特殊交通标志等区域特征数据

    对冲燃烧锅炉FLUENT数值模拟:非预混燃烧模型与实战技巧

    内容概要:本文详细介绍了使用FLUENT进行对冲燃烧锅炉的数值模拟,特别是针对非预混燃烧模型的实际应用。文章首先讲解了网格划分的方法,强调了ICEM六面体网格在燃烧器附近的精细处理以及边界层的设置。接着讨论了燃烧模型的选择和设置,包括非预混燃烧模型的具体参数设定、自定义UDF用于挥发分释放速率计算、以及求解器设置的优化方法。此外,还提供了后处理技巧,如利用POST工具生成温度场和NOx分布图,并给出了多个实用的实战技巧和注意事项,帮助避免常见的模拟错误。 适合人群:从事燃烧模拟研究的技术人员、热电厂工程师、高校相关专业师生。 使用场景及目标:适用于需要进行对冲燃烧锅炉数值模拟的研究项目,旨在提高模拟精度和效率,减少常见错误,确保模型能够准确反映实际工况。 其他说明:文中附带了完整的cas/dat文件、ICEM网格文件和POST后处理模板,便于读者直接应用于实际工作中。同时,作者分享了许多基于实践经验的技巧和建议,有助于初学者快速掌握并应用这些技术。

    优化算法领域:改进逃离优化算法IESC的创新与应用

    内容概要:本文介绍了2024年11月发表在《Artificial Intelligence Review》上的改进逃离优化算法IESC。IESC通过一系列创新策略如动态步长调整、自适应逃逸机制、群体协同搜索以及混沌映射初始化等,显著提高了原始ESC算法的性能。具体来说,IESC能够在复杂搜索空间中更快、更准确地找到全局最优解,避免陷入局部最优。此外,IESC还在多个标准测试函数上展示了优越的性能,特别是在处理高维、多峰问题时表现出色。 适合人群:对优化算法感兴趣的科研人员、算法开发者、工程师。 使用场景及目标:适用于需要解决复杂优化问题的实际应用场景,如工程设计、资源分配、数据分析等。IESC的目标是提供一种更高效的优化解决方案,帮助用户在各种复杂环境中找到最优解。 其他说明:尽管IESC在大多数情况下表现出色,但在某些特定条件下(如超平坦的Sphere函数测试)可能会不如原版ESC。因此,选择合适的算法应根据具体问题的特点进行权衡。

    三菱FX3U PLC的PID控制与触摸屏交互程序详解:电气自动化入门教程

    内容概要:本文详细介绍了三菱FX3U系列PLC用于温度控制的PID程序及其配套的触摸屏程序。主要内容涵盖PLC梯形图编程中的PID指令应用、参数配置方法、触摸屏界面设计以及调试技巧。文中通过具体实例展示了如何设置PID参数(如比例带、积分时间和微分时间),并解释了如何利用触摸屏进行参数设定和实时监控。此外,还提供了关于如何处理报警和防止过热的安全措施。文章强调了良好的注释对于理解和维护程序的重要性。 适合人群:初学者和初级电气工程师,尤其是那些希望深入了解PLC编程和PID控制的人群。 使用场景及目标:①帮助读者理解PLC中PID控制的工作原理;②提供实际项目的编程经验和调试技巧;③指导读者完成一个完整的温度控制系统的设计与实现。 其他说明:本文不仅提供了详细的代码片段和技术细节,还包括了许多实用的小贴士和注意事项,旨在帮助读者避免常见的错误并提高编程效率。

    基于Matlab/Simulink的三段式距离保护仿真与优化

    内容概要:本文详细介绍了如何利用Matlab/Simulink进行三段式距离保护的仿真建模及其优化。首先解释了三段式距离保护的基本概念,即分为三个保护区段,每个区段有不同的响应时间和保护范围。接着,文章展示了具体的建模步骤,包括创建距离保护模块、配置测量输入、处理振荡闭锁以及零序分量的特殊处理。此外,还提供了自动化测试的方法来验证模型的有效性,并探讨了针对分布式电源接入时的自适应保护策略。文中多次强调了参数设置的重要性,如振荡闭锁阈值、零序补偿系数等,并分享了一些实用的经验和技术细节。 适合人群:从事电力系统保护研究的技术人员、高校相关专业师生、对电力系统保护感兴趣的工程技术人员。 使用场景及目标:适用于希望深入了解三段式距离保护原理及其实现方法的研究者;希望通过仿真手段提高保护系统性能的工程师;以及需要掌握最新电力系统保护技术和应用的专业人士。 其他说明:文章不仅涵盖了理论知识,还包括大量实际操作指导和代码片段,有助于读者更好地理解和应用所学内容。同时,作者分享了许多来自实践经验的宝贵建议,使读者能够避开常见陷阱并提升工作效率。

    1_part1.wav

    1_part1.wav

    c++总结(xmind官网:https://xmind.cn/)

    c++总结(xmind官网:https://xmind.cn/)

    大语言模型生成控制参数详解:温度、Top-K与Top-P.md

    大语言模型生成控制参数详解:温度、Top-K与Top-P.md

    基于springboot+vue3的智能算法中台管理系统(源码+数据库)186

    基于springboot+vue3的智能算法中台管理系统:前端 vue、element-plus,后端 maven、springmvc、spring、mybatis;集成数据管理、标签管理、算法配置、模型中心等功能于一体的系统。 ## 功能介绍 - 系统首页:当前最优模型表现,待办事项,样本数量,训练完成模型数量,训练中模型数量 - 数据管理:数据集增删改查,数据集导入,按数据集名称模糊搜索,按标注类型搜索 - 标签管理:标签信息的增删改查,按标签组名称和描述模糊搜索 - 算法配置:算法信息的增删改查,多条件搜索,启用,停用 - 算法验证:状态显示,开始训练操作 - 算法性能评估:启用,停用,详情查看 - 模型中心:创建模型,训练模型,校验模型,发布模型 ## 环境 - <b>IntelliJ IDEA 2021.3</b> - <b>Mysql 5.7.26</b> - <b>Node 14.14.0</b> - <b>JDK 1.8</b>

    基于Abaqus的超声导波无损检测有限元分析方法及其工业应用

    内容概要:本文详细介绍了如何使用Abaqus进行超声导波无损检测的有限元分析。首先概述了超声导波的基本原理,即通过分析导波在材料中传播特性的变化来检测内部缺陷。然后,文章逐步讲解了在Abaqus中建立几何模型、定义材料属性、划分网格、施加边界条件和载荷以及求解和结果分析的具体步骤。特别强调了材料参数设定、网格尺寸控制、边界条件处理等方面的技术细节,并提供了相应的Python脚本示例。此外,文中还讨论了一些常见的错误和注意事项,如单位制统一、时间步长的选择等。最后,文章指出超声导波检测在工业领域的广泛应用前景,特别是在管道腐蚀检测和复合材料分层识别方面。 适合人群:从事无损检测研究和技术开发的专业人士,尤其是那些希望深入了解超声导波检测机制并对现有检测方案进行优化的研究人员和工程师。 使用场景及目标:适用于需要评估材料内部结构完整性和寻找潜在缺陷的应用场合。通过对超声导波传播行为的模拟,可以帮助研究人员更好地理解检测过程中涉及的各种因素,从而提高检测精度和可靠性。 其他说明:文章不仅涵盖了理论知识,还包括大量实用的操作指南和技巧提示,有助于读者快速掌握Abaqus平台上的超声导波仿真技能。同时提醒使用者关注一些容易忽视的问题,确保仿真的准确性。

    随身WiFi IMEI修改工具v2.0

    随身WiFi IMEI修改工具v2.0

    基于java+jsp的网上购物商城管理系统(源码+数据库)191

    基于java+jsp的网上购物商城管理系统:前端 jsp、jquery,后端 servlet、jdbc;角色分为管理员、用户;集成商品浏览、购物车、在线结算、订单查询、商品发布等功能于一体的系统。 ## 功能介绍 - 基本功能:登录,注册,退出 - 网站首页:全局搜索,主导航栏,分类导航,轮播图,热门商品展示,限时特卖,新闻资讯 - 商品购买:商品列表展示,商品详情,购物车,在线结算,填写收货地址 - 订单中心:订单列表查询 - 用户列表:用户信息的增删改查,也可以由用户自行注册 - 分类管理:分类信息的增删改查 - 商品管理:商品信息的增删改查,商品图片上传 - 资讯列表:资讯信息的列表查询,资讯详情 ## 环境 - <b>IntelliJ IDEA 2021.3</b> - <b>Mysql 5.7.26</b> - <b>Tomcat 7.0.73</b> - <b>JDK 1.8</b>

    基于MATLAB+YALMIP+CPLEX的双层优化微电网系统容量配置方法

    内容概要:本文详细介绍了利用MATLAB、YALMIP和CPLEX实现的双层优化方法进行微电网系统容量配置。上层优化负责确定光伏板、风力发电机和储能系统的容量,目标是最小化全生命周期成本;下层优化则关注每日运行调度,确保电力供需平衡并降低成本。文中展示了具体的建模步骤、目标函数设定以及约束条件处理,并讨论了储能系统在不同场景下的表现及其对总成本的影响。 适合人群:从事微电网研究与应用的专业人士,尤其是对优化算法感兴趣的工程师和技术人员。 使用场景及目标:适用于需要精确规划和优化微电网资源配置的实际工程项目,旨在提高能源利用效率,减少运营成本,增强系统的稳定性和鲁棒性。 其他说明:文章强调了实际应用中应注意的问题,如设备成本、维护费用、风光出力预测误差等,并提醒读者不要直接使用示例代码中的参数,而应根据具体情况进行调整。

Global site tag (gtag.js) - Google Analytics