Class EdnJmsConnection

java.lang.Object
oracle.integration.platform.blocks.event.jms2.BaseEdnConnection
oracle.integration.platform.blocks.event.jms2.EdnJmsConnection
All Implemented Interfaces:
BusinessEventConnection, EdnConnection

public final class EdnJmsConnection extends BaseEdnConnection
Remote EDN connection where events can be published and subscribed. The implementation of this class is based on plain JMS API, and is typically used by J2SE client.
Since:
12.1.2
  • Field Details

    • JNDI_DEFAULT_WLJMS_XA_CONN_FACTORY

      public static final String JNDI_DEFAULT_WLJMS_XA_CONN_FACTORY
      See Also:
    • JNDI_DEFAULT_WLJMS_LOCALTX_CONN_FACTORY

      public static final String JNDI_DEFAULT_WLJMS_LOCALTX_CONN_FACTORY
      See Also:
    • JNDI_DEFAULT_AQJMS_XA_CONN_FACTORY

      public static final String JNDI_DEFAULT_AQJMS_XA_CONN_FACTORY
      See Also:
    • JNDI_DEFAULT_AQJMS_LOCALTX_CONN_FACTORY

      public static final String JNDI_DEFAULT_AQJMS_LOCALTX_CONN_FACTORY
      See Also:
  • Constructor Details

    • EdnJmsConnection

      public EdnJmsConnection(Context ctx)
      Construct a remote JMS Connection to EDN.
      Parameters:
      ctx - - JNDI Context.
  • Method Details

    • getTopicConnectionFactory

      public javax.jms.TopicConnectionFactory getTopicConnectionFactory()
      Get non-XA TopicConnectionFactory instance.
      Returns:
      non-XA TopicConnectionFactory instance.
    • setTopicConnectionFactory

      public void setTopicConnectionFactory(javax.jms.TopicConnectionFactory topicConnectionFactory)
      Set a non-XA TopicConnectionFactory instance.
      Parameters:
      topicConnectionFactory - - non-XA TopicConnectionFactory instance.
    • getXaTopicConnectionFactory

      public javax.jms.TopicConnectionFactory getXaTopicConnectionFactory()
      Get XA TopicConnectionFactory instance.
      Returns:
      XA TopicConnectionFactory instance.
    • setXaTopicConnectionFactory

      public void setXaTopicConnectionFactory(javax.jms.TopicConnectionFactory xaTopicConnectionFactory)
      Set a XA TopicConnectionFactory instance.
      Parameters:
      xaTopicConnectionFactory - - XA TopicConnectionFactory instance.
    • getUserTransaction

      public UserTransaction getUserTransaction()
      Get UserTranasction instance for XA.
      Returns:
      UserTranasction instance for XA.
    • setUserTransaction

      public void setUserTransaction(UserTransaction userTransaction)
    • getClientID

      public String getClientID()
    • setClientID

      public void setClientID(String clientID)
    • close

      public void close()
      Description copied from interface: BusinessEventConnection
      Close the connection
      Specified by:
      close in interface BusinessEventConnection
      Overrides:
      close in class BaseEdnConnection
    • forceClose

      public void forceClose()
    • publishEvent

      public void publishEvent(BusinessEvent event) throws oracle.fabric.common.FabricException
      Description copied from interface: EdnConnection
      Publish an event with default persistent, priority, time to live, and EDL as input source.
      Specified by:
      publishEvent in interface EdnConnection
      Overrides:
      publishEvent in class BaseEdnConnection
      Parameters:
      event - Business Event to be published
      Throws:
      oracle.fabric.common.FabricException - If it fails to publish the event with default options.
    • publishEvent

      public void publishEvent(BusinessEvent event, int priority) throws oracle.fabric.common.FabricException
      Description copied from interface: BusinessEventConnection
      Publish an event with indicated priority
      Specified by:
      publishEvent in interface BusinessEventConnection
      Overrides:
      publishEvent in class BaseEdnConnection
      Parameters:
      event - - Business Event to be published
      priority - - event priority
      Throws:
      oracle.fabric.common.FabricException - if fabric exception occurs
    • publishEvent

      public void publishEvent(BusinessEvent event, boolean persistent, int priority, long timeToLive, String edlURI) throws oracle.fabric.common.FabricException
      Description copied from interface: EdnConnection
      Publish an event with specified delivery mode, priority, time to live, and EDL URI.
      Specified by:
      publishEvent in interface EdnConnection
      Overrides:
      publishEvent in class BaseEdnConnection
      Parameters:
      event - Business Event to be published
      persistent - Persistent (or non persistent) delivery mode
      priority - Event priority
      timeToLive - Time to live in milliseconds
      edlURI - URI with "oramds" referencing Event definition content
      Throws:
      oracle.fabric.common.FabricException - If it fails to publish the event with specified options.
    • subscribe

      public void subscribe(QName eventName, String durableSubscriptionName) throws oracle.fabric.common.FabricException
      Description copied from interface: EdnConnection
      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.

      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.

      Specified by:
      subscribe in interface EdnConnection
      Overrides:
      subscribe in class BaseEdnConnection
      Parameters:
      eventName - Event QName to subscribe to
      durableSubscriptionName - Durable subscription name.
      Throws:
      oracle.fabric.common.FabricException - If it fails to subscribe to events with specified options.
    • subscribe

      public void subscribe(QName eventName, ConsistencyLevel qos, XPathFilter filter, BusinessEventHandler handler, boolean runAsPublisher, long timeout, String durableSubName) throws oracle.fabric.common.FabricException
      Description copied from interface: EdnConnection
      Subscribe to events with specified event name (QName), consistency level, XPath filter, and event handler that consumes subscribed events.

      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.

      Specified by:
      subscribe in interface EdnConnection
      Overrides:
      subscribe in class BaseEdnConnection
      Parameters:
      eventName - Event QName to subscribe to
      qos - Delivery guarantee, either ConsistencyLevel.ONE_AND_ONLY_ONE or ConsistencyLevel.GUARANTEED_DELIVERY
      filter - XPath filter to limit events. This filter is convertible into JMS message selector to apply on events
      handler - 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.
      Throws:
      oracle.fabric.common.FabricException - If it fails to subscribe to events with specified options.
    • waitSubscriberCreationComplete

      public void waitSubscriberCreationComplete() throws InterruptedException
      block on the latch until latch zero'd
      Throws:
      InterruptedException
    • waitSubscriberCreationComplete

      public boolean waitSubscriberCreationComplete(long timeout, TimeUnit unit) throws InterruptedException
      block on the latch with a timeout;
      Parameters:
      timeout -
      unit -
      Returns:
      Throws:
      InterruptedException
    • subscribeOnly

      public oracle.integration.platform.blocks.event.jms2.EdnJmsEventReader subscribeOnly(QName eventName, String durableSubscriptionName) throws Exception
      Throws:
      Exception
    • subscribe

      public oracle.integration.platform.blocks.event.jms2.EdnJmsEventReader subscribe(QName eventName, ConsistencyLevel qos, XPathFilter filter, boolean runAsPublisher, long timeout, String durableSubName) throws Exception
      Throws:
      Exception
    • unsubscribe

      public void unsubscribe(QName eventName, String durableSubName) throws oracle.fabric.common.FabricException
      remove the subscribe
      Specified by:
      unsubscribe in interface EdnConnection
      Overrides:
      unsubscribe in class BaseEdnConnection
      Parameters:
      eventName - Event QName to unsubscribe to
      durableSubName - Durable subscription name whose subscription is to be removed.
      Throws:
      oracle.fabric.common.FabricException - if it fails to remove the durable subscription due to some internal error, or the subscription name is invalid.
    • setJmsConfig

      public void setJmsConfig(JmsConfig config)
      Custom JmsConfig for all the events to be published and subscribed via this Event Connection.
      Parameters:
      config - - JmsConfig object to set
    • isReceiving

      public boolean isReceiving()
      check if the receiver is receiving events.
      Returns:
      true - receiver is receiving events (in the receiving loop), false - receiver has been stopped or no receiver (no receiver created yet).
    • stopReceiving

      public void stopReceiving()
      request that receiver stop receiving events (exit the while loop - next time it checked the flag: stopReceivingRequested)
    • waitOnReceiver

      public void waitOnReceiver() throws InterruptedException
      alternative for client sync with event receiving thread (long running)
      Throws:
      InterruptedException
    • waitOnReceiver

      public void waitOnReceiver(long millis) throws InterruptedException
      alternative for client sync with event receiving thread (long running)
      Parameters:
      millis -
      Throws:
      InterruptedException