public final class EdnJmsConnection extends BaseEdnConnection
Modifier and Type | Field and Description |
---|---|
static String |
JNDI_DEFAULT_AQJMS_LOCALTX_CONN_FACTORY |
static String |
JNDI_DEFAULT_AQJMS_XA_CONN_FACTORY |
static String |
JNDI_DEFAULT_WLJMS_LOCALTX_CONN_FACTORY |
static String |
JNDI_DEFAULT_WLJMS_XA_CONN_FACTORY |
Constructor and Description |
---|
EdnJmsConnection(Context ctx)
Construct a remote JMS Connection to EDN.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Close the connection
|
void |
forceClose() |
String |
getClientID() |
javax.jms.TopicConnectionFactory |
getTopicConnectionFactory()
Get non-XA TopicConnectionFactory instance.
|
UserTransaction |
getUserTransaction()
Get UserTranasction instance for XA.
|
javax.jms.TopicConnectionFactory |
getXaTopicConnectionFactory()
Get XA TopicConnectionFactory instance.
|
boolean |
isReceiving()
check if the receiver is receiving events.
|
void |
publishEvent(BusinessEvent event)
Publish an event with default persistent, priority, time to live, and EDL as input source.
|
void |
publishEvent(BusinessEvent event, boolean persistent, int priority, long timeToLive, String edlURI)
Publish an event with specified delivery mode, priority, time to live, and EDL URI.
|
void |
publishEvent(BusinessEvent event, int priority)
Publish an event with indicated priority
|
void |
setClientID(String clientID) |
void |
setJmsConfig(JmsConfig config)
Custom JmsConfig for all the events to be published and subscribed via this Event Connection.
|
void |
setTopicConnectionFactory(javax.jms.TopicConnectionFactory topicConnectionFactory)
Set a non-XA TopicConnectionFactory instance.
|
void |
setUserTransaction(UserTransaction userTransaction) |
void |
setXaTopicConnectionFactory(javax.jms.TopicConnectionFactory xaTopicConnectionFactory)
Set a XA TopicConnectionFactory instance.
|
void |
stopReceiving()
request that receiver stop receiving events (exit the while loop - next time it checked the flag: stopReceivingRequested)
|
oracle.integration.platform.blocks.event.jms2.EdnJmsEventReader |
subscribe(QName eventName, ConsistencyLevel qos, XPathFilter filter, boolean runAsPublisher, long timeout, String durableSubName) |
void |
subscribe(QName eventName, ConsistencyLevel qos, XPathFilter filter, BusinessEventHandler handler, boolean runAsPublisher, long timeout, String durableSubName)
Subscribe to events with specified event name (QName), consistency level, XPath filter, and event handler that consumes subscribed events.
|
void |
subscribe(QName eventName, String durableSubscriptionName)
Subscribe to events with specified event name (QName) and default consistency level, XPath filter (if a default one exists), timeout, and event handler that consumes subscribed events.
|
oracle.integration.platform.blocks.event.jms2.EdnJmsEventReader |
subscribeOnly(QName eventName, String durableSubscriptionName) |
void |
unsubscribe(QName eventName, String durableSubName)
remove the subscribe
|
void |
waitOnReceiver()
alternative for client sync with event receiving thread (long running)
|
void |
waitOnReceiver(long millis)
alternative for client sync with event receiving thread (long running)
|
void |
waitSubscriberCreationComplete()
block on the latch until latch zero'd
|
boolean |
waitSubscriberCreationComplete(long timeout, TimeUnit unit)
block on the latch with a timeout;
|
getConsistencyLevel, getContextProvider, getEDL, getEDN, getEventHandler, getEventToJmsMapping, getPriority, getTimeout, getTimeToLive, getXPathFilter, isPersistent, isRunAsPublisher, setConsistencyLevel, setContextProvider, setEDL, setEDN, setEventHandler, setEventToJmsMapping, setPersistent, setPriority, setRunAsPublisher, setTimeout, setTimeToLive, setXPathFilter
public static final String JNDI_DEFAULT_WLJMS_XA_CONN_FACTORY
public static final String JNDI_DEFAULT_WLJMS_LOCALTX_CONN_FACTORY
public static final String JNDI_DEFAULT_AQJMS_XA_CONN_FACTORY
public static final String JNDI_DEFAULT_AQJMS_LOCALTX_CONN_FACTORY
public EdnJmsConnection(Context ctx)
ctx
- - JNDI Context.public javax.jms.TopicConnectionFactory getTopicConnectionFactory()
public void setTopicConnectionFactory(javax.jms.TopicConnectionFactory topicConnectionFactory)
topicConnectionFactory
- - non-XA TopicConnectionFactory instance.public javax.jms.TopicConnectionFactory getXaTopicConnectionFactory()
public void setXaTopicConnectionFactory(javax.jms.TopicConnectionFactory xaTopicConnectionFactory)
xaTopicConnectionFactory
- - XA TopicConnectionFactory instance.public UserTransaction getUserTransaction()
public void setUserTransaction(UserTransaction userTransaction)
public String getClientID()
public void setClientID(String clientID)
public void close()
BusinessEventConnection
close
in interface BusinessEventConnection
close
in class BaseEdnConnection
public void forceClose()
public void publishEvent(BusinessEvent event) throws oracle.fabric.common.FabricException
EdnConnection
publishEvent
in interface EdnConnection
publishEvent
in class BaseEdnConnection
event
- Business Event to be publishedoracle.fabric.common.FabricException
- If it fails to publish the event with default options.public void publishEvent(BusinessEvent event, int priority) throws oracle.fabric.common.FabricException
BusinessEventConnection
publishEvent
in interface BusinessEventConnection
publishEvent
in class BaseEdnConnection
event
- - Business Event to be publishedpriority
- - event priorityoracle.fabric.common.FabricException
- if fabric exception occurspublic void publishEvent(BusinessEvent event, boolean persistent, int priority, long timeToLive, String edlURI) throws oracle.fabric.common.FabricException
EdnConnection
publishEvent
in interface EdnConnection
publishEvent
in class BaseEdnConnection
event
- Business Event to be publishedpersistent
- Persistent (or non persistent) delivery modepriority
- Event prioritytimeToLive
- Time to live in millisecondsedlURI
- URI with "oramds" referencing Event definition contentoracle.fabric.common.FabricException
- If it fails to publish the event with specified options.public void subscribe(QName eventName, String durableSubscriptionName) throws oracle.fabric.common.FabricException
EdnConnection
Whether or not the subscription is durable depends on if the durableSubscriptionName is specified. Passing null or empty string as durableSubscriptionName indicates non-durable subscription.
If durableSubscriptionName is specified, it first creates a durable subscription if the subscription has not been created previously. Then it attempts to receive an event.
Note that the event receiving call blocks until an event arrives, or the timeout expires, or the connection is closed. A timeout value of 0 never expires, and the receive call blocks indefinitely. A negative timeout value means to receive the next event if one is immediately available without blocking.
subscribe
in interface EdnConnection
subscribe
in class BaseEdnConnection
eventName
- Event QName to subscribe todurableSubscriptionName
- Durable subscription name.oracle.fabric.common.FabricException
- If it fails to subscribe to events with specified options.public void subscribe(QName eventName, ConsistencyLevel qos, XPathFilter filter, BusinessEventHandler handler, boolean runAsPublisher, long timeout, String durableSubName) throws oracle.fabric.common.FabricException
EdnConnection
Whether or not the subscription is durable depends on if the durableSubscriptionName is specified. Passing null or empty string as durableSubscriptionName indicates non-durable subscription.
If durableSubscriptionName is specified, it first creates a durable subscription if the subscription has not been created previously. Then it attempts to receive an event.
Note that the event receiving call blocks until an event arrives, or the timeout expires, or the connection is closed. A timeout value of 0 never expires, and the receive call blocks indefinitely. A negative timeout value means to receive the next event if one is immediately available without blocking.
subscribe
in interface EdnConnection
subscribe
in class BaseEdnConnection
eventName
- Event QName to subscribe toqos
- Delivery guarantee, either ConsistencyLevel.ONE_AND_ONLY_ONE or ConsistencyLevel.GUARANTEED_DELIVERYfilter
- XPath filter to limit events. This filter is convertible into JMS message selector to apply on eventshandler
- Event handler to consume subscribed events.runAsPublisher
- Whether or not to consume events as publisher's identity.timeout
- Timeout value (in milliseconds). A value of 0 never expires, and this call blocks indefinitely. A negative value means to receive the next event if one is immediately available without blocking.durableSubName
- Durable subscription name.oracle.fabric.common.FabricException
- If it fails to subscribe to events with specified options.public void waitSubscriberCreationComplete() throws InterruptedException
InterruptedException
public boolean waitSubscriberCreationComplete(long timeout, TimeUnit unit) throws InterruptedException
timeout
-unit
-InterruptedException
public oracle.integration.platform.blocks.event.jms2.EdnJmsEventReader subscribeOnly(QName eventName, String durableSubscriptionName) throws Exception
Exception
public oracle.integration.platform.blocks.event.jms2.EdnJmsEventReader subscribe(QName eventName, ConsistencyLevel qos, XPathFilter filter, boolean runAsPublisher, long timeout, String durableSubName) throws Exception
Exception
public void unsubscribe(QName eventName, String durableSubName) throws oracle.fabric.common.FabricException
unsubscribe
in interface EdnConnection
unsubscribe
in class BaseEdnConnection
eventName
- Event QName to unsubscribe todurableSubName
- Durable subscription name whose subscription is to be removed.oracle.fabric.common.FabricException
- if it fails to remove the durable subscription due to some internal error, or the subscription name is invalid.public void setJmsConfig(JmsConfig config)
config
- - JmsConfig object to setpublic boolean isReceiving()
public void stopReceiving()
public void waitOnReceiver() throws InterruptedException
InterruptedException
public void waitOnReceiver(long millis) throws InterruptedException
millis
-InterruptedException