數據加載中……
          [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已經有了這個,就可以直接拿來用了.commons-transaction,還支持jta的事務,希望將來會更加強大.

          posted on 2008-01-17 09:46 牛浪de流 閱讀(2361) 評論(1)  編輯  收藏 所屬分類: Framework

          評論

          # re: [Original]Java文件事務(commons-transaction) 2012-03-29 12:39 qiangbro

          為什么要在最后提交事務呢?我覺得是不是因該在
          frm.deleteResource(txId, "RFID.rtf");之后、
          } catch (Exception e) {之前
          提交事務?
            回復  更多評論    
          主站蜘蛛池模板: 博野县| 凉城县| 扶风县| 旬阳县| 炉霍县| 洪泽县| 温州市| 福贡县| 高碑店市| 深圳市| 温宿县| 福安市| 南通市| 贵州省| 平乐县| 永顺县| 沂南县| 吉首市| 双城市| 保定市| 乌鲁木齐市| 张家口市| 邵东县| 梁山县| 凤台县| 涞源县| 枣阳市| 彰化市| 正镶白旗| 临夏市| 桐乡市| 荔浦县| 乐东| 萍乡市| 沙坪坝区| 依兰县| 勃利县| 浦北县| 贵州省| 扶风县| 都江堰市|