快速业务通道

如何在Weblogic的全局事务执行多线程操作 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
   } 28 29     private  UserTransaction getUserTransaction() throws NamingException,  SQLException 30     { 31         InitialContext  ctx = initializeEnv(null); 32         return  (UserTransaction)ctx.lookup ("javax/transaction/UserTransaction"); 33     } 34 35      private InitialContext initializeEnv(String url) throws  NamingException 36     { 37         Properties  prop = new Properties(); 38         if(url == null) 39             prop.put(Context.PROVIDER_URL,  PROVIDER_URL); 40         else 41              prop.put(Context.PROVIDER_URL, url); 42          prop.put(Context.INITIAL_CONTEXT_FACTORY,  INITIAL_CONTEXT_FACTORY); 43         return new  InitialContext(prop); 44     } 45 46     private  void executeInsertInPSMT(Connection conn, String sql) 47      { 48         PreparedStatement pstmt = null; 49          try{ 50             pstmt =  conn.prepareStatement(sql); 51              pstmt.setString(1, "data_to_insert"); 52              pstmt.executeUpdate(); 53             pstmt.close (); 54         }catch(SQLException e){ 55                  e.printStackTrace(); 56         } 57     } 58 59     public void  multiThreadXATest() 60     { 61         ArrayList  result = new ArrayList(); 62         try{ 63              UserTransaction userTx = getUserTransaction (); 64             userTx.setTransactionTimeout (1000); 65             userTx.begin(); 66              Transaction tx = TxHelper.getTransaction(); 67              Connection conn = getConnection ("t3://localhost:8011", "TestXADS"); 68              if(conn != null) conn.close(); SQLThread thread1 = new  SQLThread(tx,result,"t3://localhost:8011","TestXADS",  SQL_INSERT); 69             SQLThread thread2 = new  SQLThread(tx,result,"t3://localhost:8021","TestXADS_1",  ANO_SQL_INSERT); 70             thread1.start(); 71              thread2.start(); 72              while(result.size() != 2){ 73                  Thread.currentThread().sleep(1); 74             } 75             if(checkCompletion(result)){ 76                  userTx.commit(); 77              } 78             else{ 79                  userTx.rollback(); 80             } 81         }catch(Exception e){ 82              e.printStackTrace(); 83         } 84      } 85 86     private boolean checkCompletion(ArrayList  result){ 87    

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号