1 23 24 28 50 package com.sun.jts.CosTransactions; 51 52 import java.util.*; 53 54 import org.omg.CORBA.*; 55 import org.omg.CosTransactions.*; 56 57 import com.sun.jts.trace.*; 58 import java.util.logging.Logger ; 59 import java.util.logging.Level ; 60 import com.sun.logging.LogDomains; 61 import com.sun.jts.utils.LogFormatter; 62 63 75 76 83 class RegisteredSyncs { 84 85 private Vector registered = new Vector(); 86 87 90 static Logger _logger = LogDomains.getLogger(LogDomains.TRANSACTION_LOGGER); 91 92 101 RegisteredSyncs() {} 102 103 111 public void finalize() { 112 if (registered != null) { 113 registered.removeAllElements(); 114 } 115 registered = null; 116 } 117 118 130 boolean distributeBefore() { 131 132 boolean result = true; 133 134 for (int i = 0; i < registered.size() && result == true; i++) { 135 Synchronization sync = (Synchronization) registered.elementAt(i); 136 try { 137 if(_logger.isLoggable(Level.FINEST)) 138 { 139 _logger.logp(Level.FINEST,"RegisterdSyncs","distributeBefore()", 140 "Before invoking before_completion() on synchronization object " + sync); 141 } 142 143 sync.before_completion(); 144 145 if(_logger.isLoggable(Level.FINEST)) 146 { 147 _logger.logp(Level.FINEST,"RegisterdSyncs","distributeBefore()", 148 "After invoking before_completion() on synchronization object " + sync); 149 } 150 } catch (Throwable exc) { 151 152 if (!(exc instanceof INVALID_TRANSACTION)) { 154 _logger.log(Level.WARNING, 155 "jts.exception_in_synchronization_operation", 156 new java.lang.Object [] { exc.toString(),"before_completion"}); 157 } 158 result = false; 159 } 160 } 161 162 return result; 163 } 164 165 175 void distributeAfter(Status status) { 176 177 for (int i = 0; i < registered.size(); i++) { 178 boolean isProxy = false; 179 Synchronization sync = (Synchronization) registered.elementAt(i); 180 181 if (!(sync instanceof com.sun.jts.jta.SynchronizationImpl)) { 185 isProxy = Configuration.getProxyChecker().isProxy(sync); 186 } 187 188 try { 189 if(_logger.isLoggable(Level.FINEST)) 190 { 191 _logger.logp(Level.FINEST,"RegisterdSyncs","distributeAfter()", 192 "Before invoking after_completion() on synchronization object " + sync); 193 } 194 195 sync.after_completion(status); 196 197 if(_logger.isLoggable(Level.FINEST)) 198 { 199 _logger.logp(Level.FINEST,"RegisterdSyncs","distributeAfter()", 200 "After invoking after_completion() on"+ 201 "synchronization object"+ sync); 202 } 203 } catch (Throwable exc) { 204 if (exc instanceof OBJECT_NOT_EXIST || 206 exc instanceof COMM_FAILURE) { 207 } else { 213 _logger.log(Level.WARNING, 214 "jts.exception_in_synchronization_operation", 215 new java.lang.Object [] { exc.toString(), 216 "after_completion"}); 217 } 218 } 219 220 if (isProxy) { 222 sync._release(); 223 } 224 } 225 } 226 227 239 void addSync(Synchronization obj) { 240 registered.addElement(obj); 241 } 242 243 252 void empty() { 253 registered.removeAllElements(); 254 } 255 256 267 boolean involved() { 268 269 boolean result = (registered.size() != 0); 270 return result; 271 } 272 } 273 | Popular Tags |