Search in sources :

Example 1 with IbisTransaction

use of nl.nn.adapterframework.core.IbisTransaction in project iaf by ibissource.

the class JobDef method executeJob.

protected void executeJob(IbisManager ibisManager) {
    if (incrementCountThreads()) {
        try {
            IbisTransaction itx = null;
            TransactionStatus txStatus = null;
            if (getTxManager() != null) {
                // txStatus = getTxManager().getTransaction(txDef);
                itx = new IbisTransaction(getTxManager(), txDef, "scheduled job [" + getName() + "]");
                txStatus = itx.getStatus();
            }
            try {
                if (getLocker() != null) {
                    String objectId = null;
                    try {
                        try {
                            objectId = getLocker().lock();
                        } catch (Exception e) {
                            boolean isUniqueConstraintViolation = false;
                            if (e instanceof SQLException) {
                                SQLException sqle = (SQLException) e;
                                isUniqueConstraintViolation = locker.getDbmsSupport().isUniqueConstraintViolation(sqle);
                            }
                            String msg = "error while setting lock: " + e.getMessage();
                            if (isUniqueConstraintViolation) {
                                getMessageKeeper().add(msg, MessageKeeperMessage.INFO_LEVEL);
                                log.info(getLogPrefix() + msg);
                            } else {
                                getMessageKeeper().add(msg, MessageKeeperMessage.ERROR_LEVEL);
                                log.error(getLogPrefix() + msg);
                            }
                        }
                        if (objectId != null) {
                            TimeoutGuard tg = new TimeoutGuard("Job " + getName());
                            try {
                                tg.activateGuard(getTransactionTimeout());
                                runJob(ibisManager);
                            } finally {
                                if (tg.cancel()) {
                                    log.error(getLogPrefix() + "thread has been interrupted");
                                }
                            }
                        }
                    } finally {
                        if (objectId != null) {
                            try {
                                getLocker().unlock(objectId);
                            } catch (Exception e) {
                                String msg = "error while removing lock: " + e.getMessage();
                                getMessageKeeper().add(msg, MessageKeeperMessage.WARN_LEVEL);
                                log.warn(getLogPrefix() + msg);
                            }
                        }
                    }
                } else {
                    runJob(ibisManager);
                }
            } finally {
                if (txStatus != null) {
                    // getTxManager().commit(txStatus);
                    itx.commit();
                }
            }
        } finally {
            decrementCountThreads();
        }
    } else {
        String msg = "maximum number of threads that may execute concurrently [" + getNumThreads() + "] is exceeded, the processing of this thread will be interrupted";
        getMessageKeeper().add(msg, MessageKeeperMessage.ERROR_LEVEL);
        log.error(getLogPrefix() + msg);
    }
}
Also used : SQLException(java.sql.SQLException) IbisTransaction(nl.nn.adapterframework.core.IbisTransaction) TransactionStatus(org.springframework.transaction.TransactionStatus) TimeoutGuard(nl.nn.adapterframework.task.TimeoutGuard) SQLException(java.sql.SQLException) ConfigurationException(nl.nn.adapterframework.configuration.ConfigurationException)

Example 2 with IbisTransaction

use of nl.nn.adapterframework.core.IbisTransaction in project iaf by ibissource.

the class TransactionAttributePipeLineProcessor method processPipeLine.

public PipeLineResult processPipeLine(PipeLine pipeLine, String messageId, String message, IPipeLineSession pipeLineSession, String firstPipe) throws PipeRunException {
    try {
        // TransactionStatus txStatus = txManager.getTransaction(txDef);
        IbisTransaction itx = new IbisTransaction(txManager, pipeLine.getTxDef(), "pipeline of adapter [" + pipeLine.getOwner().getName() + "]");
        TransactionStatus txStatus = itx.getStatus();
        try {
            TimeoutGuard tg = new TimeoutGuard("pipeline of adapter [" + pipeLine.getOwner().getName() + "]");
            Throwable tCaught = null;
            try {
                tg.activateGuard(pipeLine.getTransactionTimeout());
                PipeLineResult pipeLineResult = pipeLineProcessor.processPipeLine(pipeLine, messageId, message, pipeLineSession, firstPipe);
                boolean mustRollback = false;
                if (pipeLineResult == null) {
                    mustRollback = true;
                    log.warn("Pipeline received null result for messageId [" + messageId + "], transaction (when present and active) will be rolled back");
                } else {
                    if (StringUtils.isNotEmpty(pipeLine.getCommitOnState()) && !pipeLine.getCommitOnState().equalsIgnoreCase(pipeLineResult.getState())) {
                        mustRollback = true;
                        log.warn("Pipeline result state [" + pipeLineResult.getState() + "] for messageId [" + messageId + "] is not equal to commitOnState [" + pipeLine.getCommitOnState() + "], transaction (when present and active) will be rolled back");
                    }
                }
                if (mustRollback) {
                    try {
                        txStatus.setRollbackOnly();
                    } catch (Exception e) {
                        throw new PipeRunException(null, "Could not set RollBackOnly", e);
                    }
                }
                return pipeLineResult;
            } catch (Throwable t) {
                tCaught = t;
                throw tCaught;
            } finally {
                if (tg.cancel()) {
                    if (tCaught == null) {
                        throw new InterruptedException(tg.getDescription() + " was interrupted");
                    } else {
                        log.warn("Thread interrupted, but propagating other caught exception of type [" + ClassUtils.nameOf(tCaught) + "]");
                    }
                }
            }
        } catch (Throwable t) {
            log.debug("setting RollBackOnly for pipeline after catching exception");
            txStatus.setRollbackOnly();
            if (t instanceof Error) {
                throw (Error) t;
            } else if (t instanceof RuntimeException) {
                throw (RuntimeException) t;
            } else if (t instanceof PipeRunException) {
                throw (PipeRunException) t;
            } else {
                throw new PipeRunException(null, "Caught unknown checked exception", t);
            }
        } finally {
            // txManager.commit(txStatus);
            itx.commit();
        }
    } catch (RuntimeException e) {
        throw new PipeRunException(null, "RuntimeException calling PipeLine with tx attribute [" + pipeLine.getTransactionAttribute() + "]", e);
    }
}
Also used : IbisTransaction(nl.nn.adapterframework.core.IbisTransaction) PipeLineResult(nl.nn.adapterframework.core.PipeLineResult) PipeRunException(nl.nn.adapterframework.core.PipeRunException) TransactionStatus(org.springframework.transaction.TransactionStatus) TimeoutGuard(nl.nn.adapterframework.task.TimeoutGuard) PipeRunException(nl.nn.adapterframework.core.PipeRunException)

Example 3 with IbisTransaction

use of nl.nn.adapterframework.core.IbisTransaction in project iaf by ibissource.

the class TransactionAttributePipeProcessor method processPipe.

public PipeRunResult processPipe(PipeLine pipeLine, IPipe pipe, String messageId, Object message, IPipeLineSession pipeLineSession) throws PipeRunException {
    PipeRunResult pipeRunResult;
    int txOption;
    int txTimeout = 0;
    if (pipe instanceof HasTransactionAttribute) {
        HasTransactionAttribute taPipe = (HasTransactionAttribute) pipe;
        txOption = taPipe.getTransactionAttributeNum();
        txTimeout = taPipe.getTransactionTimeout();
    } else {
        txOption = TransactionDefinition.PROPAGATION_SUPPORTS;
    }
    // TransactionStatus txStatus = txManager.getTransaction(SpringTxManagerProxy.getTransactionDefinition(txOption,txTimeout));
    IbisTransaction itx = new IbisTransaction(txManager, SpringTxManagerProxy.getTransactionDefinition(txOption, txTimeout), "pipe [" + pipe.getName() + "]");
    TransactionStatus txStatus = itx.getStatus();
    try {
        TimeoutGuard tg = new TimeoutGuard("pipeline of adapter [" + pipeLine.getOwner().getName() + "] running pipe [" + pipe.getName() + "]");
        Throwable tCaught = null;
        try {
            tg.activateGuard(txTimeout);
            pipeRunResult = pipeProcessor.processPipe(pipeLine, pipe, messageId, message, pipeLineSession);
        } catch (Throwable t) {
            tCaught = t;
            throw tCaught;
        } finally {
            if (tg.cancel()) {
                if (tCaught == null) {
                    throw new PipeRunException(pipe, tg.getDescription() + " was interrupted");
                } else {
                    log.warn("Thread interrupted, but propagating other caught exception of type [" + ClassUtils.nameOf(tCaught) + "]");
                }
            }
        }
    } catch (Throwable t) {
        log.debug("setting RollBackOnly for pipe [" + pipe.getName() + "] after catching exception");
        txStatus.setRollbackOnly();
        if (t instanceof Error) {
            throw (Error) t;
        } else if (t instanceof RuntimeException) {
            throw (RuntimeException) t;
        } else if (t instanceof PipeRunException) {
            throw (PipeRunException) t;
        } else {
            throw new PipeRunException(pipe, "Caught unknown checked exception", t);
        }
    } finally {
        // txManager.commit(txStatus);
        itx.commit();
    }
    return pipeRunResult;
}
Also used : PipeRunResult(nl.nn.adapterframework.core.PipeRunResult) IbisTransaction(nl.nn.adapterframework.core.IbisTransaction) HasTransactionAttribute(nl.nn.adapterframework.core.HasTransactionAttribute) PipeRunException(nl.nn.adapterframework.core.PipeRunException) TransactionStatus(org.springframework.transaction.TransactionStatus) TimeoutGuard(nl.nn.adapterframework.task.TimeoutGuard)

Example 4 with IbisTransaction

use of nl.nn.adapterframework.core.IbisTransaction in project iaf by ibissource.

the class ReceiverBase method processMessageInAdapter.

/*
	 * Assumes message is read, and when transacted, transaction is still open.
	 */
private String processMessageInAdapter(IListener origin, Object rawMessage, String message, String messageId, String technicalCorrelationId, Map threadContext, long waitingDuration, boolean manualRetry) throws ListenerException {
    String result = null;
    PipeLineResult pipeLineResult = null;
    long startProcessingTimestamp = System.currentTimeMillis();
    // if (message==null) {
    // requestSizeStatistics.addValue(0);
    // } else {
    // requestSizeStatistics.addValue(message.length());
    // }
    lastMessageDate = startProcessingTimestamp;
    log.debug(getLogPrefix() + "received message with messageId [" + messageId + "] (technical) correlationId [" + technicalCorrelationId + "]");
    if (StringUtils.isEmpty(messageId)) {
        messageId = Misc.createSimpleUUID();
        if (log.isDebugEnabled())
            log.debug(getLogPrefix() + "generated messageId [" + messageId + "]");
    }
    if (getChompCharSize() != null || getElementToMove() != null || getElementToMoveChain() != null) {
        log.debug(getLogPrefix() + "compact received message");
        try {
            InputStream xmlInput = IOUtils.toInputStream(message, "UTF-8");
            CompactSaxHandler handler = new CompactSaxHandler();
            handler.setChompCharSize(getChompCharSize());
            handler.setElementToMove(getElementToMove());
            handler.setElementToMoveChain(getElementToMoveChain());
            handler.setElementToMoveSessionKey(getElementToMoveSessionKey());
            handler.setRemoveCompactMsgNamespaces(isRemoveCompactMsgNamespaces());
            if (threadContext != null) {
                handler.setContext(threadContext);
            }
            SAXParserFactory parserFactory = XmlUtils.getSAXParserFactory();
            parserFactory.setNamespaceAware(true);
            SAXParser saxParser = parserFactory.newSAXParser();
            try {
                saxParser.parse(xmlInput, handler);
                message = handler.getXmlString();
            } catch (Exception e) {
                warn("received message could not be compacted: " + e.getMessage());
            }
            handler = null;
        } catch (Exception e) {
            throw new ListenerException("error during compacting received message to more compact format: " + e.getMessage());
        }
    }
    String businessCorrelationId = null;
    if (correlationIDTp != null) {
        try {
            businessCorrelationId = correlationIDTp.transform(message, null);
        } catch (Exception e) {
            // throw new ListenerException(getLogPrefix()+"could not extract businessCorrelationId",e);
            log.warn(getLogPrefix() + "could not extract businessCorrelationId");
        }
        if (StringUtils.isEmpty(businessCorrelationId)) {
            String cidText;
            if (StringUtils.isNotEmpty(getCorrelationIDXPath())) {
                cidText = "xpathExpression [" + getCorrelationIDXPath() + "]";
            } else {
                cidText = "styleSheet [" + getCorrelationIDStyleSheet() + "]";
            }
            if (StringUtils.isNotEmpty(technicalCorrelationId)) {
                log.info(getLogPrefix() + "did not find correlationId using " + cidText + ", reverting to correlationId of transfer [" + technicalCorrelationId + "]");
                businessCorrelationId = technicalCorrelationId;
            }
        }
    } else {
        businessCorrelationId = technicalCorrelationId;
    }
    if (StringUtils.isEmpty(businessCorrelationId)) {
        if (StringUtils.isNotEmpty(messageId)) {
            log.info(getLogPrefix() + "did not find (technical) correlationId, reverting to messageId [" + messageId + "]");
            businessCorrelationId = messageId;
        }
    }
    log.info(getLogPrefix() + "messageId [" + messageId + "] technicalCorrelationId [" + technicalCorrelationId + "] businessCorrelationId [" + businessCorrelationId + "]");
    threadContext.put(IPipeLineSession.businessCorrelationIdKey, businessCorrelationId);
    String label = null;
    if (labelTp != null) {
        try {
            label = labelTp.transform(message, null);
        } catch (Exception e) {
            // throw new ListenerException(getLogPrefix()+"could not extract label",e);
            log.warn(getLogPrefix() + "could not extract label: (" + ClassUtils.nameOf(e) + ") " + e.getMessage());
        }
    }
    if (hasProblematicHistory(messageId, manualRetry, rawMessage, message, threadContext, businessCorrelationId)) {
        if (!isTransacted()) {
            log.warn(getLogPrefix() + "received message with messageId [" + messageId + "] which has a problematic history; aborting processing");
        }
        numRejected.increase();
        return result;
    }
    if (isDuplicateAndSkip(getMessageLog(), messageId, businessCorrelationId)) {
        numRejected.increase();
        return result;
    }
    if (getCachedProcessResult(messageId) != null) {
        numRetried.increase();
    }
    int txOption = this.getTransactionAttributeNum();
    TransactionDefinition txDef = SpringTxManagerProxy.getTransactionDefinition(txOption, getTransactionTimeout());
    // TransactionStatus txStatus = txManager.getTransaction(txDef);
    IbisTransaction itx = new IbisTransaction(txManager, txDef, "receiver [" + getName() + "]");
    TransactionStatus txStatus = itx.getStatus();
    // update processing statistics
    // count in processing statistics includes messages that are rolled back to input
    startProcessingMessage(waitingDuration);
    IPipeLineSession pipelineSession = null;
    String errorMessage = "";
    boolean messageInError = false;
    try {
        String pipelineMessage;
        if (origin instanceof IBulkDataListener) {
            try {
                IBulkDataListener bdl = (IBulkDataListener) origin;
                pipelineMessage = bdl.retrieveBulkData(rawMessage, message, threadContext);
            } catch (Throwable t) {
                errorMessage = t.getMessage();
                messageInError = true;
                ListenerException l = wrapExceptionAsListenerException(t);
                throw l;
            }
        } else {
            pipelineMessage = message;
        }
        numReceived.increase();
        // Note: errorMessage is used to pass value from catch-clause to finally-clause!
        pipelineSession = createProcessingContext(businessCorrelationId, threadContext, messageId);
        // threadContext=pipelineSession; // this is to enable Listeners to use session variables, for instance in afterProcessMessage()
        try {
            if (getMessageLog() != null) {
                getMessageLog().storeMessage(messageId, businessCorrelationId, new Date(), RCV_MESSAGE_LOG_COMMENTS, label, pipelineMessage);
            }
            log.debug(getLogPrefix() + "preparing TimeoutGuard");
            TimeoutGuard tg = new TimeoutGuard("Receiver " + getName());
            try {
                if (log.isDebugEnabled())
                    log.debug(getLogPrefix() + "activating TimeoutGuard with transactionTimeout [" + transactionTimeout + "]s");
                tg.activateGuard(getTransactionTimeout());
                pipeLineResult = adapter.processMessageWithExceptions(businessCorrelationId, pipelineMessage, pipelineSession);
                pipelineSession.put("exitcode", "" + pipeLineResult.getExitCode());
                result = pipeLineResult.getResult();
                errorMessage = "exitState [" + pipeLineResult.getState() + "], result [" + result + "]";
                if (pipelineSession.containsKey("exitcode")) {
                    int status = Integer.parseInt("" + pipelineSession.get("exitcode"));
                    if (status > 0)
                        errorMessage += ", exitcode [" + status + "]";
                }
                if (log.isDebugEnabled()) {
                    log.debug(getLogPrefix() + "received result: " + errorMessage);
                }
                messageInError = txStatus.isRollbackOnly();
            } finally {
                log.debug(getLogPrefix() + "canceling TimeoutGuard, isInterrupted [" + Thread.currentThread().isInterrupted() + "]");
                if (tg.cancel()) {
                    errorMessage = "timeout exceeded";
                    if (StringUtils.isEmpty(result)) {
                        result = "<timeout/>";
                    }
                    messageInError = true;
                }
            }
            if (!messageInError && !isTransacted()) {
                String commitOnState = ((Adapter) adapter).getPipeLine().getCommitOnState();
                if (StringUtils.isNotEmpty(commitOnState) && !commitOnState.equalsIgnoreCase(pipeLineResult.getState())) {
                    messageInError = true;
                }
            }
        } catch (Throwable t) {
            if (TransactionSynchronizationManager.isActualTransactionActive()) {
                log.debug("<*>" + getLogPrefix() + "TX Update: Received failure, transaction " + (txStatus.isRollbackOnly() ? "already" : "not yet") + " marked for rollback-only");
            }
            errorMessage = t.getMessage();
            messageInError = true;
            if (pipeLineResult == null) {
                pipeLineResult = new PipeLineResult();
            }
            if (StringUtils.isEmpty(pipeLineResult.getResult())) {
                String formattedErrorMessage = adapter.formatErrorMessage("exception caught", t, message, messageId, this, startProcessingTimestamp);
                pipeLineResult.setResult(formattedErrorMessage);
            }
            ListenerException l = wrapExceptionAsListenerException(t);
            throw l;
        } finally {
            putSessionKeysIntoThreadContext(threadContext, pipelineSession);
        }
        // }
        if (getSender() != null) {
            String sendMsg = sendResultToSender(technicalCorrelationId, result);
            if (sendMsg != null) {
                errorMessage = sendMsg;
            }
        }
    } finally {
        cacheProcessResult(messageId, businessCorrelationId, errorMessage, new Date(startProcessingTimestamp));
        if (!isTransacted() && messageInError) {
            if (!manualRetry) {
                moveInProcessToError(messageId, businessCorrelationId, message, new Date(startProcessingTimestamp), errorMessage, rawMessage, TXNEW_CTRL);
            }
        }
        try {
            Map afterMessageProcessedMap;
            if (threadContext != null) {
                afterMessageProcessedMap = threadContext;
                if (pipelineSession != null) {
                    threadContext.putAll(pipelineSession);
                }
            } else {
                afterMessageProcessedMap = pipelineSession;
            }
            origin.afterMessageProcessed(pipeLineResult, rawMessage, afterMessageProcessedMap);
        } finally {
            long finishProcessingTimestamp = System.currentTimeMillis();
            finishProcessingMessage(finishProcessingTimestamp - startProcessingTimestamp);
            if (!txStatus.isCompleted()) {
                // NB: Spring will take care of executing a commit or a rollback;
                // Spring will also ONLY commit the transaction if it was newly created
                // by the above call to txManager.getTransaction().
                // txManager.commit(txStatus);
                itx.commit();
            } else {
                throw new ListenerException(getLogPrefix() + "Transaction already completed; we didn't expect this");
            }
        }
    }
    if (log.isDebugEnabled())
        log.debug(getLogPrefix() + "messageId [" + messageId + "] correlationId [" + businessCorrelationId + "] returning result [" + result + "]");
    return result;
}
Also used : DefaultTransactionDefinition(org.springframework.transaction.support.DefaultTransactionDefinition) TransactionDefinition(org.springframework.transaction.TransactionDefinition) InputStream(java.io.InputStream) TransactionStatus(org.springframework.transaction.TransactionStatus) TimeoutGuard(nl.nn.adapterframework.task.TimeoutGuard) SenderException(nl.nn.adapterframework.core.SenderException) ListenerException(nl.nn.adapterframework.core.ListenerException) ConfigurationException(nl.nn.adapterframework.configuration.ConfigurationException) Date(java.util.Date) ListenerException(nl.nn.adapterframework.core.ListenerException) IBulkDataListener(nl.nn.adapterframework.core.IBulkDataListener) CompactSaxHandler(nl.nn.adapterframework.util.CompactSaxHandler) IbisTransaction(nl.nn.adapterframework.core.IbisTransaction) PipeLineResult(nl.nn.adapterframework.core.PipeLineResult) SAXParser(javax.xml.parsers.SAXParser) IPipeLineSession(nl.nn.adapterframework.core.IPipeLineSession) Map(java.util.Map) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) SAXParserFactory(javax.xml.parsers.SAXParserFactory)

Example 5 with IbisTransaction

use of nl.nn.adapterframework.core.IbisTransaction in project iaf by ibissource.

the class ReceiverBase method retryMessage.

public void retryMessage(String messageId) throws ListenerException {
    if (getErrorStorage() == null) {
        throw new ListenerException(getLogPrefix() + "has no errorStorage, cannot retry messageId [" + messageId + "]");
    }
    PlatformTransactionManager txManager = getTxManager();
    // TransactionStatus txStatus = txManager.getTransaction(TXNEW);
    IbisTransaction itx = new IbisTransaction(txManager, TXNEW_PROC, "receiver [" + getName() + "]");
    TransactionStatus txStatus = itx.getStatus();
    Map threadContext = new HashMap();
    Object msg = null;
    try {
        try {
            ITransactionalStorage errorStorage = getErrorStorage();
            msg = errorStorage.getMessage(messageId);
            processRawMessage(getListener(), msg, threadContext, -1, true);
        } catch (Throwable t) {
            txStatus.setRollbackOnly();
            throw new ListenerException(t);
        } finally {
            txManager.commit(txStatus);
        }
    } catch (ListenerException e) {
        txStatus = txManager.getTransaction(TXNEW_CTRL);
        try {
            if (msg instanceof Serializable) {
                String correlationId = (String) threadContext.get(IPipeLineSession.businessCorrelationIdKey);
                String receivedDateStr = (String) threadContext.get(IPipeLineSession.tsReceivedKey);
                if (receivedDateStr == null) {
                    log.warn(getLogPrefix() + IPipeLineSession.tsReceivedKey + " is unknown, cannot update comments");
                } else {
                    Date receivedDate = DateUtils.parseToDate(receivedDateStr, DateUtils.FORMAT_FULL_GENERIC);
                    errorStorage.deleteMessage(messageId);
                    errorStorage.storeMessage(messageId, correlationId, receivedDate, "after retry: " + e.getMessage(), null, (Serializable) msg);
                }
            } else {
                log.warn(getLogPrefix() + "retried message is not serializable, cannot update comments");
            }
        } catch (SenderException e1) {
            txStatus.setRollbackOnly();
            log.warn(getLogPrefix() + "could not update comments in errorStorage", e1);
        } finally {
            txManager.commit(txStatus);
        }
        throw e;
    }
}
Also used : Serializable(java.io.Serializable) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) TransactionStatus(org.springframework.transaction.TransactionStatus) PlatformTransactionManager(org.springframework.transaction.PlatformTransactionManager) Date(java.util.Date) ITransactionalStorage(nl.nn.adapterframework.core.ITransactionalStorage) ListenerException(nl.nn.adapterframework.core.ListenerException) IbisTransaction(nl.nn.adapterframework.core.IbisTransaction) INamedObject(nl.nn.adapterframework.core.INamedObject) SenderException(nl.nn.adapterframework.core.SenderException) Map(java.util.Map) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap)

Aggregations

IbisTransaction (nl.nn.adapterframework.core.IbisTransaction)5 TransactionStatus (org.springframework.transaction.TransactionStatus)5 TimeoutGuard (nl.nn.adapterframework.task.TimeoutGuard)4 Date (java.util.Date)2 HashMap (java.util.HashMap)2 LinkedHashMap (java.util.LinkedHashMap)2 Map (java.util.Map)2 ConfigurationException (nl.nn.adapterframework.configuration.ConfigurationException)2 ListenerException (nl.nn.adapterframework.core.ListenerException)2 PipeLineResult (nl.nn.adapterframework.core.PipeLineResult)2 PipeRunException (nl.nn.adapterframework.core.PipeRunException)2 SenderException (nl.nn.adapterframework.core.SenderException)2 InputStream (java.io.InputStream)1 Serializable (java.io.Serializable)1 SQLException (java.sql.SQLException)1 SAXParser (javax.xml.parsers.SAXParser)1 SAXParserFactory (javax.xml.parsers.SAXParserFactory)1 HasTransactionAttribute (nl.nn.adapterframework.core.HasTransactionAttribute)1 IBulkDataListener (nl.nn.adapterframework.core.IBulkDataListener)1 INamedObject (nl.nn.adapterframework.core.INamedObject)1