java file transaction_[Original]Java文件事务(commons-transaction)

今天上网看到apache的commons包中提供了一个Transaction,可以控制文件的事务。做了测试,看是否可以成功。

Commons-Transaction: http://commons.apache.org/transaction/

下面是测试的代码TestTransaction.java:

Log log = LogFactory.getLog(TestTransaction.class);

//这个是commons-transaction包中的类

LoggerFacade logger = new CommonsLoggingLogger(log);;

//存储的路径

String toDir = "d:/";

//临时路径

String tempDir = "e:/";

//构造函数的第三个参数:false,标识是否encoding文档的url,这个一般不需要设置为true

FileResourceManager frm = new FileResourceManager(toDir, tempDir, false, logger);

//这标识frm的状态为start

frm.start();

//下面需要frm的状态为start

String txId = frm.generatedUniqueTxId();

try {

//开启Transaction

frm.startTransaction(txId);

frm.deleteResource(txId, "RFID.rtf");

//   throw new Exception("sdf");

} catch (Exception e) {

try {

//回滚事务

frm.rollbackTransaction(txId);

} catch (ResourceManagerException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

//提交事务

frm.commitTransaction(txId);

在这个application运行过程中,会在tempDir产生一个临时目录(是由一些阿拉伯数字和字母组成的),里面有两个文件夹:change和delete,还有一个日志transaction.log,而要操作的目录就会在delete目录中。事务的过程也是这样的:先将file存放的tempDir,然后监控transaction的状态,如果commit,它就会将file写到destination中,然后删除tempDir。不过,既然apache已经有了这个,就可以直接拿来用了

980984_1.gif.commons-transaction,还支持jta的事务,希望将来会更加强大.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值