/** execute a collection of InputInfo objects in one transaction */ public Collection execute(Collection inputInfoList) throws BaseSQLException { if (inputInfoList == null) throw new IllegalArgumentException("inputs list is null."); ImplicitTransactionManager tm = TransactionManagerUtil.getImplicitTransactionManager(); Collection returnTOList = new ArrayList(); try { tm.beginTransactionImplicit(); Iterator it = inputInfoList.iterator(); while (it.hasNext()) { InputInfo ip = (InputInfo) it.next(); UserDatabaseConnection connection = findOrCreateConnection(ip); OmniDTO returnTO = executeKeepConnection( connection, ip.getInputs(), ip.getProcessorType(), ip.getProcessorName(), ip.getOutputFilters()); returnTOList.add(returnTO); // now execute child InputInfo Collection childList = ip.getChildInputInfoObjects(); Iterator childIt = childList.iterator(); while (childIt.hasNext()) { InputInfo childIp = (InputInfo) childIt.next(); OmniDTO returnTO2 = executeKeepConnection( connection, childIp.getInputs(), childIp.getProcessorType(), childIp.getProcessorName(), childIp.getOutputFilters()); returnTO.addChildrenOmniDTOToList(returnTO2); } } tm.commitTransactionImplicit(); } catch (BaseSQLException bdex) { tm.rollbackTransactionImplicit(); throw bdex; } finally { tm.releaseResourcesImplicit(); } return returnTOList; }
/** execute with output filter */ public OmniDTO execute(Map inputs, String processorType, String processorName, Map outputFilters) throws BaseSQLException { if (processorType == null || processorName == null) throw new IllegalArgumentException("processorType or processorName is null."); if (inputs == null) inputs = new HashMap(); ImplicitTransactionManager tm = TransactionManagerUtil.getImplicitTransactionManager(); OmniDTO returnTO = null; try { tm.beginTransactionImplicit(); // if (log.isDebugEnabled()) // displayDS((String)inputs.get(DataProcessor.input_key_database_connection_name), // "beforeConnection"); UserDatabaseConnection connection = findOrCreateConnection(inputs); // if (log.isDebugEnabled()) // displayDS((String)inputs.get(DataProcessor.input_key_database_connection_name), // "beforeExecute"); returnTO = executeKeepConnection(connection, inputs, processorType, processorName, outputFilters); // if (log.isDebugEnabled()) // displayDS((String)inputs.get(DataProcessor.input_key_database_connection_name), // "afterExecute"); tm.commitTransactionImplicit(); // if (log.isDebugEnabled()) // displayDS((String)inputs.get(DataProcessor.input_key_database_connection_name), // "afterCommit"); } catch (BaseSQLException bdex) { tm.rollbackTransactionImplicit(); throw bdex; } finally { tm.releaseResourcesImplicit(); displayDS( (String) inputs.get(DataProcessor.input_key_database_connection_name), "afterRelease"); } return returnTO; }