简单的多终端对同一数据的互斥插入
来源:互联网 发布:java ee8如何安装 编辑:程序博客网 时间:2024/05/11 04:40
简单的多终端对同一数据的互斥插入
相关问题说明:
两台设置了F5的服务器上,要求部署完全相同程序代码的应用。
设置了一个定时任务,每天向日志表中插入数据。如果不做限制,一定会生成两条重复的记录。现在要求数据库中的数据不能重复。
基本策略:
各个服务器上的应用向数据库中执行了查询锁行操作(select * from .... where .... for update),如果有数据则返回false,如果没有数据则插入需要日志数据。
主要代码:
/** * 检查是否需要生成支付对账文件 * @param dateTime * @return */public boolean checkNeedGenPayChkFile(PayOrderCheckGenLog log, String dateTime) {String sql = "SELECT COUNT(*) FROM T_PAY_ORDER_CHECK_GEN_LOG WHERE CHECK_DATE = ? for update ";int count = this.getJdbcTemplate().queryForInt(sql,new Object[] { dateTime });if (count == 0) {// insert;long id = sequence12.nextLongValue();String sql2 = "INSERT INTO T_PAY_ORDER_CHECK_GEN_LOG(CHECK_ID,CHECK_DATE,GATHER_CHECK_FILENAME,STATE,CREATE_TIME ) VALUES(?,?,?,'1',SYSDATE)";this.getJdbcTemplate().update(sql2,new Object[] { id, log.getCheckDate(),log.getGatherCheckFilename() });return true;} else {return false;}}注:在SERVICE中编写方法,用 @Transactional 将其下的方法设定为原子方法。
- 简单的多终端对同一数据的互斥插入
- 同一数据中中插入符合条件的数据
- VC++中数据访问互斥的简单实现方法
- JPA简单对一对多关系的数据进行插入,先一后多
- 2.使用synchronized关键字实现多线程的同步和互斥(不同线程同时读写同一数据)
- mysql将多个表的多个数据插入到同一张表
- 多线程的数据互斥
- 对线程、互斥、同步、信号量的内在关联性的简单讨论
- java对互斥同步的优化
- Django 多对多字段的更新和插入数据
- sql对access数据的插入操作
- 进程间同步(互斥) 以及 同一DLL的不同进程copy共享全局变量
- 共享数据的线程互斥
- 简单的将数据插入excel表
- mongodb简单的数据插入和查询
- 多个线程对同一控件的修改
- 多个进程对同一文件写入的问题
- mysql 同一IP 产生太多终端的数据库连接导致阻塞
- C#如何创建、读取cookie
- 效率极低人群之七大习惯
- 满分通过科目一
- Formatting Types 标准及自定义数字格式字符串
- record
- 简单的多终端对同一数据的互斥插入
- Cookie在网站中的两大使用方法[cookie使用]
- 关于char字符移位问题
- C++中继承的内存分布
- C# 细说Cookie
- jquery学习
- .Net下的线程同步:Part 4 of N--(Locks or Critical sections)
- 第13周报告3之函数的嵌套应用
- 在web.xml中使用资源注射(@Resource) (Tomcat7此路不通,Tomcat6大多可以)