public void begin() throws ResourceException { if (DEBUG) { try { throw new NullPointerException("Asif:JCALocalTransaction:begin"); } catch (NullPointerException npe) { npe.printStackTrace(); } } try { if (!initDone || this.cache.isClosed()) { this.init(); } // System.out.println("JCALocalTransaction:Asif: cache is ="+cache + // " for tx ="+this); LogWriter logger = cache.getLogger(); if (logger.fineEnabled()) { logger.fine("JCALocalTransaction::begin:"); } TransactionManager tm = cache.getJTATransactionManager(); if (this.tid != null) { throw new LocalTransactionException(" A transaction is already in progress"); } if (tm != null && tm.getTransaction() != null) { if (logger.fineEnabled()) { logger.fine("JCAManagedConnection: JTA transaction is on"); } // This is having a JTA transaction. Assuming ignore jta flag is true, // explicitly being a gemfire transaction. TXStateProxy tsp = this.gfTxMgr.getTXState(); if (tsp == null) { this.gfTxMgr.begin(); tsp = this.gfTxMgr.getTXState(); tsp.setJCATransaction(); this.tid = tsp.getTransactionId(); if (logger.fineEnabled()) { logger.fine("JCALocalTransaction:begun GFE transaction"); } } else { throw new LocalTransactionException("GemFire is already associated with a transaction"); } } else { if (logger.fineEnabled()) { logger.fine("JCAManagedConnection: JTA Transaction does not exist."); } } } catch (SystemException e) { // this.onError(); throw new ResourceException(e); } // Not to be invoked for local transactions managed by the container // Iterator<ConnectionEventListener> itr = this.listeners.iterator(); // ConnectionEvent ce = new ConnectionEvent(this, // ConnectionEvent.LOCAL_TRANSACTION_STARTED); // while (itr.hasNext()) { // itr.next().localTransactionStarted(ce); // } }