Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## oracle.ifs.core.runtime
Class ClusteredServer

    java.lang.Object
      oracle.ifs.core.runtime.Server
          oracle.ifs.core.runtime.IfsServer
              oracle.ifs.core.runtime.ClusteredServer

All Implemented Interfaces:
  ServerInterface, TimerContext

Direct Known Subclasses:
  AccessControlListIndexAgent, AuditEventDispatchAgent, BaseAgent, EventHandlerAgent, FolderIndexAgent, InboundQueueListenerAgent, LifecycleAgent, LockExpirationAgent, NonCompetingClusteredServer, RetainedEventAgent, ServiceWarmupAgent, StatisticsAgent

    public abstract class ClusteredServer

extends IfsServer

A ClusteredServer is an abstract base class for IfsServers that participate in a clustered environment.

(Unpublished)

Nested Class Summary

Nested classes/interfaces inherited from class oracle.ifs.core.runtime.IfsServer
`IfsServer.ServerRequest`

Field Summary
`protected static int` | `REQUESTTYPE_CHECK_REGISTRATION` A "check registration" request.
`protected static int` | `REQUESTTYPE_FORCE_CHECK_REGISTRATION` A "force check registration" request.

Fields inherited from class oracle.ifs.core.runtime.Server
`LEVEL_HIGH, LEVEL_LOW, LEVEL_MEDIUM, LEVEL_OFF`

Fields inherited from interface oracle.ifs.core.runtime.ServerInterface
`SERVERSTATUS_DISPOSED, SERVERSTATUS_RUNNING, SERVERSTATUS_STARTING, SERVERSTATUS_STOPPED, SERVERSTATUS_STOPPING, SERVERSTATUS_SUSPENDED, SERVERSTATUS_UNKNOWN`

Constructor Summary
`ClusteredServer()` Constructs a ClusteredServer.

Method Summary
`void` | `cancelRegistration()` Cancels the registration for this Server.
`boolean` | `checkRegistration(java.lang.Long tokenId)` Checks the registration for this Server.
`protected java.lang.String` | `deriveAgentIdentifier()` Determines the value to use as the agent identifier for this server.
`protected java.lang.String` | `deriveRunningServerIdentifier()` Derives the string used to identify a running server.
`java.lang.String` | `getAgentIdentifier()` Gets the agent identifier.
`protected java.lang.String` | `getAgentIdentifierPrefix()` Gets the prefix to use for deriving the agent identifier for this server.
`protected long` | `getRegistrationPeriod()` Gets the registration period.
`java.lang.String` | `getRunningNodeIdentifier()` Gets the string used to identify a running node.
`java.lang.String` | `getRunningNodeName()` Gets the running node name.
`java.lang.String` | `getRunningServerIdentifier()` Gets the string used to identify a running server.
`java.util.Enumeration` | `getRunningServersEnumeration()` Gets the set of running servers as an Enumeration.
`protected void` | `handleRequest(IfsServer.ServerRequest request)` Handles the specified pending request for this Server.
`boolean` | `initializeRegistration()` Initializes the registration for this Server.
`boolean` | `isPropertyReadonly(java.lang.String name)` Returns true if the property name specified is readonly.
`boolean` | `isRegistered()` Checks to see if this Server is registered to handle the processing in the cluster.
`boolean` | `isServerRunning()` Checks to see if the Server is considered a "running server", by adding itself to the table of running servers.
`protected boolean` | `isTokenNonCompeting()` Returns indication as to whether the server token is non-competing.
`protected void` | `releaseTokenRegistration(LibrarySession session, ClusteringToken token)` Releases the registration for a specified token.
`void` | `requestForcedRegistrationCheck(java.lang.Long appTokenId)` Request the target server to post a request to forcefully re-check its registration.
`void` | `requestRegistrationCheck()` Request the target server to post a request to re-check its registration if the time period indicated by the "Registration Period" clustering property has elapsed since the last check.

Methods inherited from class oracle.ifs.core.runtime.IfsServer
`checkSession, connectSession, constructSession, convertTimerInterval, convertTimerInterval, convertTimerInterval, dispose, getLastTimerActivation, getNextTimerActivation, getService, getTimerActivationPeriod, getTimerClassName, getTimerConfiguration, handlePriorityChangeRequest, handlePropertyChangeRequest, handlePropertyChangeRequest, handleRequests, handleResumeRequest, handleStopRequest, handleSuspendRequest, handleTimerExpired, isTimerActive, postRequest, postRun, preRun, processEvent, processEvents, queueEvent, resetTimer, restart, resume, run, setPriority, setProperty, setProperty, start, startTimer, stop, stopRequested, stopTimer, suspend, timerExpired, waitServer`

Methods inherited from class oracle.ifs.core.runtime.Server
`acquireSession, constructLibrarySessionPool, createServerState, deregister, disconnectSession, getConfigurationOverridesTable, getConfigurationTable, getCredential, getDesiredStatus, getIfsHome, getInitialConfigurationTable, getLoggerForLegacyLogging, getName, getNode, getNodeName, getOracleHome, getParameterTable, getPriority, getProperties, getProperty, getServerConfigurationName, getServerState, getServerStateValue, getServerType, getServiceName, getSession, getStateTable, getStatus, getSystemUserCredential, handleServerConfigurationOverrideRequest, handleServerStateEvent, initialize, initialize, initialize, isAgent, isDisposed, isInitialized, isLogged, log, log, log, postAuditEvent, releaseSession, releaseSession, setDesiredStatus, setDesiredStatus, setSessionTimeoutPrevented, setStateProperty, setStatus, startStandalone, startStandalone, supportsPriority, supportsSuspendResume, toStatusLabel, toStatusLabel, toStatusLabel, verifyNotDisposed, verifyNotDisposed`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### REQUESTTYPE_CHECK_REGISTRATION

    protected static final int REQUESTTYPE_CHECK_REGISTRATION

  Description copied from class: `ClusteredServer`
  A "check registration" request.

  See Also:
    Constant Field Values

### REQUESTTYPE_FORCE_CHECK_REGISTRATION

    protected static final int REQUESTTYPE_FORCE_CHECK_REGISTRATION

  Description copied from class: `ClusteredServer`
  A "force check registration" request.

  See Also:
    Constant Field Values

Constructor Detail

### ClusteredServer

    public ClusteredServer()
                    throws IfsException

  Constructs a ClusteredServer.

  Throws:
    `IfsException` - if the operation fails

Method Detail

### getAgentIdentifier

    public java.lang.String getAgentIdentifier()
                                        throws IfsException

  Description copied from class: `ClusteredServer`
  Gets the agent identifier.

  Will derive this on this first call by invoking `deriveAgentIdentifier`.

  Returns:
    the agent identifier
  Throws:
    `IfsException` - if the operation fails

### getRunningNodeName

    public java.lang.String getRunningNodeName()
                                        throws IfsException

  Description copied from class: `ClusteredServer`
  Gets the running node name.

  Will derive this on this first call by using either the real node name, or using the node name set in standalone mode.

  Returns:
    the running node name
  Throws:
    `IfsException` - if the operation fails

### getRunningNodeIdentifier

    public java.lang.String getRunningNodeIdentifier()
                                              throws IfsException

  Description copied from class: `ClusteredServer`
  Gets the string used to identify a running node.

  Is a composite of the running node name and the service ID, e.g. "stadc35_node1:9461928".

  Returns:
    the running node identifier
  Throws:
    `IfsException` - if the operation fails

### getRunningServerIdentifier

    public java.lang.String getRunningServerIdentifier()
                                                throws IfsException

  Description copied from class: `ClusteredServer`
  Gets the string used to identify a running server.

  Is a composite of the agent identifier and the running node identifer, e.g. "IFS.AGENT.INTERNAL.CleanupAgent:stadc35_node1:9461928".

  Returns:
    the running server identifier
  Throws:
    `IfsException` - if the operation fails

### getAgentIdentifierPrefix

    protected java.lang.String getAgentIdentifierPrefix()
                                                 throws IfsException

  Description copied from class: `ClusteredServer`
  Gets the prefix to use for deriving the agent identifier for this server.

  The default implementation in this class returns the constant `ClusteringUtilities.TOKEN_NAME_INTERNAL_AGENT_PREFIX`, which currently has the value of "IFS.AGENT.INTERNAL.".

  Can be overridden by subclasses that wish to use a different value.

  Returns:
    the agent identifier prefix to use
  Throws:
    `IfsException` - if the operation fails

### deriveAgentIdentifier

    protected java.lang.String deriveAgentIdentifier()
                                              throws IfsException

  Description copied from class: `ClusteredServer`
  Determines the value to use as the agent identifier for this server.

  The default implementation in this class uses the unqualified name of the agent prefixed with "IFS.AGENT.INTERNAL.". For example, "IFS.AGENT.INTERNAL.CleanupAgent".

  Can be overridden by subclasses that wish to use a different value.

  Returns:
    the agent identifier to use
  Throws:
    `IfsException` - if the operation fails

### deriveRunningServerIdentifier

    protected java.lang.String deriveRunningServerIdentifier()
                                                      throws IfsException

  Description copied from class: `ClusteredServer`
  Derives the string used to identify a running server.

  By default, it is a composite of the agent identifier and the running node identifer, e.g. "IFS.AGENT.INTERNAL.CleanupAgent:stadc35_node1:9461928".

  Returns:
    the running server identifier to use
  Throws:
    `IfsException` - if the operation fails

### isTokenNonCompeting

    protected boolean isTokenNonCompeting()
                                   throws IfsException

  Description copied from class: `ClusteredServer`
  Returns indication as to whether the server token is non-competing.

  A non-competing token is one that always assumes a Primary registration type, and always attempts to free the ApplicationToken upon unregistration.

  Returns:
    true if token is non-competing; false otherwise
  Throws:
    `IfsException` - if the operation fails

### getRegistrationPeriod

    protected long getRegistrationPeriod()

  Description copied from class: `ClusteredServer`
  Gets the registration period.

  Returns:
    the registration period

### isPropertyReadonly

    public boolean isPropertyReadonly(java.lang.String name)
                               throws IfsException

  Description copied from class: `ClusteredServer`
  Returns true if the property name specified is readonly.

  Specified by:
    `isPropertyReadonly` in interface `ServerInterface`
  Overrides:
    `isPropertyReadonly` in class `IfsServer`
  Parameters:
    `name` - name of the property
  Returns:
    true if property is readonly; false otherwise
  Throws:
    `IfsException` - if the operation fails

### initializeRegistration

    public boolean initializeRegistration()
                                   throws IfsException

  Description copied from class: `ClusteredServer`
  Initializes the registration for this Server.

  This method is called when the Server is about to enter the run loop, and when it is resumed.

  Returns:
    true if the server instance is registered; false otherwise
  Throws:
    `IfsException` - if the operation fails

### cancelRegistration

    public void cancelRegistration()
                            throws IfsException

  Description copied from class: `ClusteredServer`
  Cancels the registration for this Server.

  This method is called when the Server exits the run loop, and when it is suspended.

  Can be extended by clustered servers that have subordinate agent IDs to release (e.g. in EventHandlerAgent).

  Throws:
    `IfsException` - if the operation fails

### releaseTokenRegistration

    protected void releaseTokenRegistration(LibrarySession session,
                                            ClusteringToken token)
                                     throws IfsException

  Description copied from class: `ClusteredServer`
  Releases the registration for a specified token.

  Also performs a check for a test environment setting, that prevents a release of the registration.

  Parameters:
    `session` - session context
    `token` - the token to release
  Throws:
    `IfsException` - if the operation fails

### checkRegistration

    public boolean checkRegistration(java.lang.Long tokenId)
                              throws IfsException

  Description copied from class: `ClusteredServer`
  Checks the registration for this Server.

  The tokenId argument specified indicates whether there is a specific token context for the check registration request, which can occur is the re-check is triggered by an event. If the tokenId specified is null, the re-check should be performed without exception.

  Parameters:
    `tokenId` - the token Id context; null indicates that the registration check should unequivocally
  Returns:
    true if the server instance is registered; false otherwise
  Throws:
    `IfsException` - if the operation fails

### isRegistered

    public final boolean isRegistered()
                               throws IfsException

  Description copied from class: `ClusteredServer`
  Checks to see if this Server is registered to handle the processing in the cluster.

  This method is called prior to any processing in the server, e.g. the timer expired handler, any event handlers, etc.

  Returns:
    true if the server instance is registered; false otherwise
  Throws:
    `IfsException` - if the operation fails

### isServerRunning

    public boolean isServerRunning()
                            throws IfsException

  Description copied from class: `ClusteredServer`
  Checks to see if the Server is considered a "running server", by adding itself to the table of running servers.

  Returns:
    true if the server is considered a "running server"; false otherwise
  Throws:
    `IfsException` - if the operation fails

### getRunningServersEnumeration

    public java.util.Enumeration getRunningServersEnumeration()
                                                       throws IfsException

  Description copied from class: `ClusteredServer`
  Gets the set of running servers as an Enumeration.

  Returns:
    the set of running servers
  Throws:
    `IfsException` - if the operation fails

### requestRegistrationCheck

    public void requestRegistrationCheck()
                                  throws IfsException

  Description copied from class: `ClusteredServer`
  Request the target server to post a request to re-check its registration if the time period indicated by the "Registration Period" clustering property has elapsed since the last check.

  Throws:
    `IfsException` - if the operation fails

### requestForcedRegistrationCheck

    public void requestForcedRegistrationCheck(java.lang.Long appTokenId)
                                        throws IfsException

  Description copied from class: `ClusteredServer`
  Request the target server to post a request to forcefully re-check its registration.

  Parameters:
    `appTokenId` - the token Id context for the registration check
  Throws:
    `IfsException` - if the operation fails

### handleRequest

    protected void handleRequest(IfsServer.ServerRequest request)
                          throws IfsException

  Description copied from class: `ClusteredServer`
  Handles the specified pending request for this Server.

  This method can be overridden by subclasses to process requests custom for the particular agent. The implmentation in this base class handles the standard requests, which result in calls to `handleRequest`, which in turn calls `handleTimerExpired`, `handleStopRequest`, `handleSuspendRequest`, `handleResumeRequest`, `handlePriorityChangeRequest`, or `handlePropertyChangeRequest`. These calls occur in the same thread that called this method. Should one of these methods throw, request handling will cease, any requests not yet dispatched will remain pending, and this method will rethrow the exception.

  Overrides:
    `handleRequest` in class `IfsServer`
  Throws:
    `IfsException` - (IFS-45370) if the operation fails

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD