org.mule.transport.jdbc
Class JdbcMessageReceiver

java.lang.Object
  extended by org.mule.transport.AbstractTransportMessageHandler
      extended by org.mule.transport.AbstractMessageReceiver
          extended by org.mule.transport.AbstractPollingMessageReceiver
              extended by org.mule.transport.TransactedPollingMessageReceiver
                  extended by org.mule.transport.jdbc.JdbcMessageReceiver
All Implemented Interfaces:
Disposable, Initialisable, Lifecycle, LifecycleStateEnabled, Startable, Stoppable, MessageSource, Connectable, MessageReceiver

public class JdbcMessageReceiver
extends TransactedPollingMessageReceiver

Implements TransactedPollingMessageReceiver reading data from a database. Provides a way to acknowledge each read data using a SQL statement.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.mule.transport.TransactedPollingMessageReceiver
TransactedPollingMessageReceiver.MessageProcessorWorker
 
Field Summary
protected  List<String> ackParams
           
protected  String ackStmt
           
protected  JdbcConnector connector
           
protected  List<String> readParams
           
protected  String readStmt
           
static String RECEIVE_MESSAGE_IN_TRANSCTION
           
static String RECEIVE_MESSAGES_IN_XA_TRANSCTION
           
 boolean receiveMessagesInXaTransaction
           
 
Fields inherited from class org.mule.transport.AbstractPollingMessageReceiver
DEFAULT_POLL_FREQUENCY, DEFAULT_POLL_TIMEUNIT, DEFAULT_STARTUP_DELAY, schedules
 
Fields inherited from class org.mule.transport.AbstractMessageReceiver
defaultInboundTransformers, defaultResponseTransformers, flowConstruct, listener, receiverKey, replyToHandler
 
Fields inherited from class org.mule.transport.AbstractTransportMessageHandler
connected, endpoint, lifecycleManager, logger, muleMessageFactory, retryTemplate
 
Fields inherited from interface org.mule.api.lifecycle.Initialisable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Startable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Stoppable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Disposable
PHASE_NAME
 
Constructor Summary
JdbcMessageReceiver(Connector connector, FlowConstruct flowConstruct, InboundEndpoint endpoint, String readStmt, String ackStmt)
           
 
Method Summary
protected  List<MuleMessage> createMuleMessages(List<Object> records)
          Creates a mule message per each data record.
protected  void doConnect()
           
protected  void doDisconnect()
           
protected  void doDispose()
           
protected  int executeAckStatement(Connection con, MuleMessage muleMessage)
          Executes the acknowledge SQL statement for a given message.
protected  int[] executeBatchAckStatement(Connection con, List<MuleMessage> messages)
          Executes the acknowledge SQL statement for a list of messages.
protected  List executeReadStatement(Connection con)
          Executes the read SQL statement to get data from the database.
 List getMessages()
           
protected  boolean hasAckStatement()
           
protected  void parseStatements(String readStmt, String ackStmt)
          Parses the read and acknowledge SQL statements
 void processMessage(Object message)
           
 
Methods inherited from class org.mule.transport.TransactedPollingMessageReceiver
doStart, hasNoMessages, isReceiveMessagesInTransaction, isUseMultipleTransactedReceivers, poll, setReceiveMessagesInTransaction, setUseMultipleTransactedReceivers
 
Methods inherited from class org.mule.transport.AbstractPollingMessageReceiver
createWork, disableNativeScheduling, doStop, getBatchSize, getFrequency, getTimeUnit, performPoll, pollOnPrimaryInstanceOnly, schedule, setFrequency, setTimeUnit, unschedule
 
Methods inherited from class org.mule.transport.AbstractMessageReceiver
applyInboundTransformers, applyResponseTransformers, connectHandler, createExecutionTemplate, createLifecycleManager, createMuleEvent, doStartHandler, getConnectEventId, getConnectionDescription, getEndpoint, getEndpointURI, getFlowConstruct, getReceiverKey, getReplyToHandler, getWorkManager, handleUnacceptedFilter, initialise, processMessage, propagateRootMessageIdProperty, routeEvent, routeMessage, routeMessage, routeMessage, routeMessage, routeMessage, setEndpoint, setListener, setReceiverKey, shouldConsumeInEveryNode, toString, warnIfMuleClientSendUsed
 
Methods inherited from class org.mule.transport.AbstractTransportMessageHandler
activate, connect, createMuleMessage, createMuleMessage, createMuleMessage, createMuleMessageFactory, createNullMuleMessage, disconnect, dispose, disposeAndLogException, doInitialise, getConnectEventId, getConnector, getLifecycleState, initializeMessageFactory, initializeRetryPolicy, isConnected, isDoThreading, isStarted, isStarting, isStopped, isStopping, passivate, setEndpoint, start, stop, validate, validateConnection
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.mule.api.transport.MessageReceiver
createMuleMessage, createMuleMessage
 
Methods inherited from interface org.mule.api.transport.Connectable
connect, disconnect, isConnected, validateConnection
 
Methods inherited from interface org.mule.api.lifecycle.Startable
start
 
Methods inherited from interface org.mule.api.lifecycle.Stoppable
stop
 
Methods inherited from interface org.mule.api.lifecycle.Disposable
dispose
 

Field Detail

RECEIVE_MESSAGE_IN_TRANSCTION

public static final String RECEIVE_MESSAGE_IN_TRANSCTION
See Also:
Constant Field Values

RECEIVE_MESSAGES_IN_XA_TRANSCTION

public static final String RECEIVE_MESSAGES_IN_XA_TRANSCTION
See Also:
Constant Field Values

connector

protected JdbcConnector connector

readStmt

protected String readStmt

ackStmt

protected String ackStmt

readParams

protected List<String> readParams

ackParams

protected List<String> ackParams

receiveMessagesInXaTransaction

public boolean receiveMessagesInXaTransaction
Constructor Detail

JdbcMessageReceiver

public JdbcMessageReceiver(Connector connector,
                           FlowConstruct flowConstruct,
                           InboundEndpoint endpoint,
                           String readStmt,
                           String ackStmt)
                    throws CreateException
Throws:
CreateException
Method Detail

parseStatements

protected void parseStatements(String readStmt,
                               String ackStmt)
Parses the read and acknowledge SQL statements


doDispose

protected void doDispose()
Overrides:
doDispose in class AbstractMessageReceiver

doConnect

protected void doConnect()
                  throws Exception
Overrides:
doConnect in class AbstractTransportMessageHandler
Throws:
Exception

doDisconnect

protected void doDisconnect()
                     throws Exception
Overrides:
doDisconnect in class AbstractTransportMessageHandler
Throws:
Exception

processMessage

public void processMessage(Object message)
                    throws Exception
Specified by:
processMessage in class TransactedPollingMessageReceiver
Throws:
Exception

hasAckStatement

protected boolean hasAckStatement()

createMuleMessages

protected List<MuleMessage> createMuleMessages(List<Object> records)
Creates a mule message per each data record.

Parameters:
records - data records used to created the payload of the new messages.
Returns:
the created messages

executeAckStatement

protected int executeAckStatement(Connection con,
                                  MuleMessage muleMessage)
                           throws Exception
Executes the acknowledge SQL statement for a given message.

Parameters:
con - database connection to execute the statement
muleMessage - message to been acknowledge
Returns:
the number of updated rows by the SQL statement
Throws:
Exception

executeBatchAckStatement

protected int[] executeBatchAckStatement(Connection con,
                                         List<MuleMessage> messages)
                                  throws Exception
Executes the acknowledge SQL statement for a list of messages.

Parameters:
con - database connection to execute the statement
messages - messages to be acknowledge
Returns:
the number of updated rows by each batched execution
Throws:
Exception

getMessages

public List getMessages()
                 throws Exception
Specified by:
getMessages in class TransactedPollingMessageReceiver
Throws:
Exception

executeReadStatement

protected List executeReadStatement(Connection con)
                             throws Exception
Executes the read SQL statement to get data from the database.

Parameters:
con - database connection to execute the statement
Returns:
the list of read records
Throws:
Exception


Copyright © 2003-2014 MuleSoft, Inc.. All Rights Reserved.