public class JGroupsTransportManager extends BroadcastTransportManager

Purpose: Provide a transport implementation for the Remote Command Module (RCM) that publishes to a JGroup channel.

JGroups is a library for distributed communications.

If issues are encountered with the default setting try,
-Djava.net.preferIPv4Stack=true

Since:
EclipseLink 2.6
  • Constructor Details

    • JGroupsTransportManager

      public JGroupsTransportManager()
      PUBLIC: Creates a JGroupsTransportManager.
    • JGroupsTransportManager

      public JGroupsTransportManager(RemoteCommandManager rcm)
      PUBLIC: Creates a JGroupsTransportManager.
  • Method Details

    • createConnection

      protected BroadcastRemoteConnection createConnection(boolean isLocalConnectionBeingCreated) throws RemoteCommandManagerException
      INTERNAL: This method creates JGroupsRemoteConnection to be used by this TransportManager. It uses a JGroups JChannel using the RCM channel name and specified (or defaulted) config file. Channel is set to not receive own messages.
      Throws:
      RemoteCommandManagerException
    • createConnections

      public void createConnections()
      INTERNAL: JGroups does not require a DiscoveryManager, therefore this method is called during RCM initialization to create all the necessary connections.
      Overrides:
      createConnections in class BroadcastTransportManager
    • createExternalConnection

      public void createExternalConnection()
      INTERNAL: JGroups only has a single connection. Verify there are no external connections, use the local connection as the external connection.
    • createLocalConnection

      public void createLocalConnection()
      INTERNAL: JGroups only requires a single connection. In case the local connection doesn't exist, this method creates it.
      Specified by:
      createLocalConnection in class TransportManager
    • getConnectionsToExternalServicesForCommandPropagation

      public Map<String,RemoteConnection> getConnectionsToExternalServicesForCommandPropagation()
      INTERNAL: In case there's no external connection attempts to create one. Returns external connections (only a single connection for JGroups).
      Overrides:
      getConnectionsToExternalServicesForCommandPropagation in class TransportManager
    • removeLocalConnection

      public void removeLocalConnection()
      INTERNAL: No-op, as the local connection does not need to be removed as JGroups manages registration.
      Specified by:
      removeLocalConnection in class TransportManager
    • getConfigFile

      public String getConfigFile()
      PUBLIC: Return the JGroups config xml file name.
    • setConfigFile

      @Deprecated public void setConfigFile(String configFile)
      Deprecated.
      PUBLIC: Set the JGroups config xml file name.
    • setConfig

      public void setConfig(String config)
      Description copied from class: TransportManager
      Generic API to allow config to be set.
      Overrides:
      setConfig in class TransportManager