private static boolean isWSATTransactionRunning() { UserTransaction ut = UserTransactionFactory.userTransaction(); return !ut.transactionIdentifier().equals("Unknown"); }
/** * Return an InboundBridge instance that maps the current Thread's WS transaction context * to a JTA context. Control of the latter is provided by the returned instance. * * @return an InboundBridge corresponding to the calling Thread's current WS-AT transaction context. * @throws WrongStateException * @throws UnknownTransactionException * @throws com.arjuna.wst.SystemException * @throws AlreadyRegisteredException */ public static InboundBridge getInboundBridge() throws XAException, WrongStateException, UnknownTransactionException, com.arjuna.wst.SystemException, javax.transaction.SystemException, AlreadyRegisteredException { txbridgeLogger.logger.trace("InboundBridgeManager.getInboundBridge()"); String externalTxId = UserTransactionFactory.userTransaction().toString(); if(!inboundBridgeMappings.containsKey(externalTxId)) { createMapping(externalTxId); } return inboundBridgeMappings.get(externalTxId); }
private static String getCurrentTXID() throws TXFrameworkException { String txid; //Try WS-AT txid = UserTransactionFactory.userTransaction().transactionIdentifier(); if (!txid.equals("Unknown")) { return txid; } //Try WS-BA try { BusinessActivityManager businessActivityManager = BusinessActivityManagerFactory.businessActivityManager(); if (businessActivityManager.currentTransaction() != null) { txid = businessActivityManager.currentTransaction().toString(); if (!txid.equals("Unknown")) { return txid; } } } catch (SystemException e) { throw new TXFrameworkException("Error when looking up Business Activity", e); } //Try REST-AT HttpServletRequest req = ResteasyProviderFactory.getContextData(HttpServletRequest.class); String enlistUrl = req.getHeader("enlistURL"); if (enlistUrl != null) { String[] parts = enlistUrl.split("/"); return parts[parts.length - 1]; } throw new TXFrameworkException("No Transaction detected"); }