Class BroadcastTransportManager

java.lang.Object
org.eclipse.persistence.sessions.coordination.TransportManager
org.eclipse.persistence.sessions.coordination.broadcast.BroadcastTransportManager
Direct Known Subclasses:
JMSPublishingTransportManager

public abstract class BroadcastTransportManager extends TransportManager

Purpose: Base class transport manager for broadcasting RCM protocols: JMS and Oc4jJGroups.

Description: The class doesn't use DiscoveryManager - instead the class (and it's ancestors) implement createConnections method that creates all the necessary connections. This method is called by RemoteCommendManager during initialization.

Author:
Andrei Ilitchev
  • Field Details

    • topicName

      protected String topicName
  • Constructor Details

    • BroadcastTransportManager

      public BroadcastTransportManager()
    • BroadcastTransportManager

      public BroadcastTransportManager(RemoteCommandManager rcm)
  • Method Details

    • createDiscoveryManager

      public DiscoveryManager createDiscoveryManager()
      ADVANCED: BroadcastTransportManager doesn't use DiscoveryManager - instead RemoteCommandManager calls createConnections method during initialization.
      Overrides:
      createDiscoveryManager in class TransportManager
    • createConnections

      public void createConnections()
      INTERNAL: BroadcastTransportManager doesn't use DiscoveryManager (createDiscoveryManager method returns null) therefore this method called during RCM initialization to create all the necessary connections. BroadcastTransportManager ancestors may need to override this method.
      Overrides:
      createConnections in class TransportManager
    • createConnection

      public org.eclipse.persistence.internal.sessions.coordination.RemoteConnection createConnection(ServiceId serviceId)
      INTERNAL: No-op implementation of super abstract method since there is only one connection to a known topic.
      Specified by:
      createConnection in class TransportManager
    • addConnectionToExternalService

      public void addConnectionToExternalService(org.eclipse.persistence.internal.sessions.coordination.RemoteConnection connection)
      INTERNAL: Add a remote Connection to a remote service.
      Overrides:
      addConnectionToExternalService in class TransportManager
    • connectBackToRemote

      public void connectBackToRemote(org.eclipse.persistence.internal.sessions.coordination.RemoteConnection connection) throws Exception
      INTERNAL: Prepare receiving messages by registering this connection as a listener to the Subscriber. This method is called by the remote command manager when this service should connect back ('handshake') to the service from which this remote connection came.
      Overrides:
      connectBackToRemote in class TransportManager
      Throws:
      Exception
    • getTopicName

      public String getTopicName()
      PUBLIC: Return the topic name that this TransportManager will be connecting to.
    • setTopicName

      public void setTopicName(String newTopicName)
      PUBLIC: Configure the Topic name for the Topic that this TransportManager will be connecting to. For some subclasses (JMS) this is a required setting and must be set; for other (Oc4jJGroups) it's typically not set.