Class RMIRemoteSessionControllerDispatcher

java.lang.Object
java.rmi.server.RemoteObject
java.rmi.server.RemoteServer
java.rmi.server.UnicastRemoteObject
org.eclipse.persistence.sessions.remote.rmi.RMIRemoteSessionControllerDispatcher
All Implemented Interfaces:
Serializable, Remote, RMIRemoteSessionController

public class RMIRemoteSessionControllerDispatcher extends UnicastRemoteObject implements RMIRemoteSessionController
RemoteSessionController sits between the remote session and the session. Any interaction between these two classes takes place through this object. As the object extends unicast remote object it listens to only single remote session during runtime.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected org.eclipse.persistence.internal.sessions.remote.RemoteSessionController
    Store the real controller.

    Fields inherited from class java.rmi.server.RemoteObject

    ref
  • Constructor Summary

    Constructors
    Constructor
    Description
    RMIRemoteSessionControllerDispatcher(org.eclipse.persistence.internal.sessions.AbstractSession session)
     
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.eclipse.persistence.internal.sessions.remote.Transporter
    Begin an early unit of work transaction.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    Begin a transaction on the database.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    commitRootUnitOfWork(org.eclipse.persistence.internal.sessions.remote.Transporter remoteUnitOfWork)
    Remote unit of work after serialization is committed locally.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    Commit a transaction on the database.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    cursoredStreamClose(org.eclipse.persistence.internal.sessions.remote.Transporter remoteCursoredStreamID)
    Used for closing cursored streams across RMI.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    cursoredStreamNextPage(org.eclipse.persistence.internal.sessions.remote.Transporter remoteCursoredStream, int pageSize)
    Retrieve next page size of objects from the remote cursored stream
    org.eclipse.persistence.internal.sessions.remote.Transporter
    cursoredStreamSize(org.eclipse.persistence.internal.sessions.remote.Transporter remoteCursoredStreamOid)
    Return the cursored stream size
    org.eclipse.persistence.internal.sessions.remote.Transporter
    cursorSelectObjects(org.eclipse.persistence.internal.sessions.remote.Transporter remoteTransporter)
    Returns a remote cursor stub in a transporter
    org.eclipse.persistence.internal.sessions.remote.Transporter
    executeNamedQuery(org.eclipse.persistence.internal.sessions.remote.Transporter nameTransporter, org.eclipse.persistence.internal.sessions.remote.Transporter classTransporter, org.eclipse.persistence.internal.sessions.remote.Transporter argumentsTransporter)
    A remote query after serialization is executed locally.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    executeQuery(org.eclipse.persistence.internal.sessions.remote.Transporter query)
    A remote query after serialization is executed locally.
    protected org.eclipse.persistence.internal.sessions.remote.RemoteSessionController
    Return the controller.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    Get the default read-only classes
    org.eclipse.persistence.internal.sessions.remote.Transporter
    getDescriptor(org.eclipse.persistence.internal.sessions.remote.Transporter theClass)
    Extract descriptor from the session
    org.eclipse.persistence.internal.sessions.remote.Transporter
    getDescriptorForAlias(org.eclipse.persistence.internal.sessions.remote.Transporter alias)
    Extract descriptor from the session
    org.eclipse.persistence.internal.sessions.remote.Transporter
    Get the associated session login.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    getSequenceNumberNamed(org.eclipse.persistence.internal.sessions.remote.Transporter remoteFunctionCall)
    INTERNAL: Get the value returned by remote function call
    org.eclipse.persistence.internal.sessions.remote.Transporter
     
    org.eclipse.persistence.internal.sessions.remote.Transporter
    instantiateRemoteValueHolderOnServer(org.eclipse.persistence.internal.sessions.remote.Transporter remoteValueHolder)
    The corresponding original value holder is instantiated.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    processCommand(org.eclipse.persistence.internal.sessions.remote.Transporter remoteTransporter)
    INTERNAL: This method is intended to be used by by sessions that wish to execute a command on a remote session
    org.eclipse.persistence.internal.sessions.remote.Transporter
    Rollback a transaction on the database.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorAbsolute(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursorOid, int rows)
    Moves the cursor to the given row number in the result set
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorAfterLast(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursorOid)
    Moves the cursor to the end of the result set, just after the last row.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorBeforeFirst(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
    Moves the cursor to the front of the result set, just before the first row
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorClose(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursorOid)
    Used for closing scrollable cursor across RMI.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorCurrentIndex(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
    Retrieves the current row index number
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorFirst(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
    Moves the cursor to the first row in the result set
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorIsAfterLast(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
    Indicates whether the cursor is after the last row in the result set.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorIsBeforeFirst(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
    Indicates whether the cursor is before the first row in the result set.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorIsFirst(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
    Indicates whether the cursor is on the first row of the result set.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorIsLast(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
    Indicates whether the cursor is on the last row of the result set.
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorLast(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
    Moves the cursor to the last row in the result set
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorNextObject(org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorOid)
    Retrieve next object from the scrollable cursor
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorPreviousObject(org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorOid)
    Retrieve previous object from the scrollable cursor
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorRelative(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor, int rows)
    Moves the cursor to the given row number in the result set
    org.eclipse.persistence.internal.sessions.remote.Transporter
    scrollableCursorSize(org.eclipse.persistence.internal.sessions.remote.Transporter remoteCursorOid)
    Return the cursor size
    protected void
    setController(org.eclipse.persistence.internal.sessions.remote.RemoteSessionController controller)
    Set the controller.

    Methods inherited from class java.rmi.server.UnicastRemoteObject

    clone, exportObject, exportObject, exportObject, unexportObject

    Methods inherited from class java.rmi.server.RemoteServer

    getClientHost, getLog, setLog

    Methods inherited from class java.rmi.server.RemoteObject

    equals, getRef, hashCode, toString, toStub

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • controller

      protected org.eclipse.persistence.internal.sessions.remote.RemoteSessionController controller
      Store the real controller.
  • Constructor Details

    • RMIRemoteSessionControllerDispatcher

      public RMIRemoteSessionControllerDispatcher(org.eclipse.persistence.internal.sessions.AbstractSession session) throws RemoteException
      Throws:
      RemoteException
    • RMIRemoteSessionControllerDispatcher

      public RMIRemoteSessionControllerDispatcher(Session session) throws RemoteException
      Throws:
      RemoteException
  • Method Details

    • processCommand

      public org.eclipse.persistence.internal.sessions.remote.Transporter processCommand(org.eclipse.persistence.internal.sessions.remote.Transporter remoteTransporter)
      INTERNAL: This method is intended to be used by by sessions that wish to execute a command on a remote session
      Specified by:
      processCommand in interface RMIRemoteSessionController
      Parameters:
      remoteTransporter - The Transporter carrying the command to be executed on the remote session
    • beginTransaction

      public org.eclipse.persistence.internal.sessions.remote.Transporter beginTransaction()
      Begin a transaction on the database.
      Specified by:
      beginTransaction in interface RMIRemoteSessionController
    • beginEarlyTransaction

      public org.eclipse.persistence.internal.sessions.remote.Transporter beginEarlyTransaction()
      Begin an early unit of work transaction.
      Specified by:
      beginEarlyTransaction in interface RMIRemoteSessionController
    • commitRootUnitOfWork

      public org.eclipse.persistence.internal.sessions.remote.Transporter commitRootUnitOfWork(org.eclipse.persistence.internal.sessions.remote.Transporter remoteUnitOfWork)
      Remote unit of work after serialization is committed locally.
      Specified by:
      commitRootUnitOfWork in interface RMIRemoteSessionController
    • commitTransaction

      public org.eclipse.persistence.internal.sessions.remote.Transporter commitTransaction()
      Commit a transaction on the database.
      Specified by:
      commitTransaction in interface RMIRemoteSessionController
    • cursoredStreamClose

      public org.eclipse.persistence.internal.sessions.remote.Transporter cursoredStreamClose(org.eclipse.persistence.internal.sessions.remote.Transporter remoteCursoredStreamID)
      Used for closing cursored streams across RMI.
      Specified by:
      cursoredStreamClose in interface RMIRemoteSessionController
    • cursoredStreamNextPage

      public org.eclipse.persistence.internal.sessions.remote.Transporter cursoredStreamNextPage(org.eclipse.persistence.internal.sessions.remote.Transporter remoteCursoredStream, int pageSize)
      Retrieve next page size of objects from the remote cursored stream
      Specified by:
      cursoredStreamNextPage in interface RMIRemoteSessionController
    • cursoredStreamSize

      public org.eclipse.persistence.internal.sessions.remote.Transporter cursoredStreamSize(org.eclipse.persistence.internal.sessions.remote.Transporter remoteCursoredStreamOid)
      Return the cursored stream size
      Specified by:
      cursoredStreamSize in interface RMIRemoteSessionController
    • cursorSelectObjects

      public org.eclipse.persistence.internal.sessions.remote.Transporter cursorSelectObjects(org.eclipse.persistence.internal.sessions.remote.Transporter remoteTransporter)
      Returns a remote cursor stub in a transporter
      Specified by:
      cursorSelectObjects in interface RMIRemoteSessionController
    • executeNamedQuery

      public org.eclipse.persistence.internal.sessions.remote.Transporter executeNamedQuery(org.eclipse.persistence.internal.sessions.remote.Transporter nameTransporter, org.eclipse.persistence.internal.sessions.remote.Transporter classTransporter, org.eclipse.persistence.internal.sessions.remote.Transporter argumentsTransporter)
      A remote query after serialization is executed locally.
      Specified by:
      executeNamedQuery in interface RMIRemoteSessionController
    • executeQuery

      public org.eclipse.persistence.internal.sessions.remote.Transporter executeQuery(org.eclipse.persistence.internal.sessions.remote.Transporter query)
      A remote query after serialization is executed locally.
      Specified by:
      executeQuery in interface RMIRemoteSessionController
    • getController

      protected org.eclipse.persistence.internal.sessions.remote.RemoteSessionController getController()
      Return the controller. All work is dispatched to the controller. This is required to be protocol independent.
    • getDefaultReadOnlyClasses

      public org.eclipse.persistence.internal.sessions.remote.Transporter getDefaultReadOnlyClasses()
      Get the default read-only classes
      Specified by:
      getDefaultReadOnlyClasses in interface RMIRemoteSessionController
    • getDescriptor

      public org.eclipse.persistence.internal.sessions.remote.Transporter getDescriptor(org.eclipse.persistence.internal.sessions.remote.Transporter theClass)
      Extract descriptor from the session
      Specified by:
      getDescriptor in interface RMIRemoteSessionController
    • getDescriptorForAlias

      public org.eclipse.persistence.internal.sessions.remote.Transporter getDescriptorForAlias(org.eclipse.persistence.internal.sessions.remote.Transporter alias)
      Extract descriptor from the session
      Specified by:
      getDescriptorForAlias in interface RMIRemoteSessionController
    • getLogin

      public org.eclipse.persistence.internal.sessions.remote.Transporter getLogin()
      Get the associated session login.
      Specified by:
      getLogin in interface RMIRemoteSessionController
    • getSequenceNumberNamed

      public org.eclipse.persistence.internal.sessions.remote.Transporter getSequenceNumberNamed(org.eclipse.persistence.internal.sessions.remote.Transporter remoteFunctionCall)
      INTERNAL: Get the value returned by remote function call
      Specified by:
      getSequenceNumberNamed in interface RMIRemoteSessionController
    • initializeIdentityMapsOnServerSession

      public org.eclipse.persistence.internal.sessions.remote.Transporter initializeIdentityMapsOnServerSession()
      Specified by:
      initializeIdentityMapsOnServerSession in interface RMIRemoteSessionController
    • instantiateRemoteValueHolderOnServer

      public org.eclipse.persistence.internal.sessions.remote.Transporter instantiateRemoteValueHolderOnServer(org.eclipse.persistence.internal.sessions.remote.Transporter remoteValueHolder)
      The corresponding original value holder is instantiated.
      Specified by:
      instantiateRemoteValueHolderOnServer in interface RMIRemoteSessionController
    • rollbackTransaction

      public org.eclipse.persistence.internal.sessions.remote.Transporter rollbackTransaction()
      Rollback a transaction on the database.
      Specified by:
      rollbackTransaction in interface RMIRemoteSessionController
    • scrollableCursorAbsolute

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorAbsolute(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursorOid, int rows)
      Moves the cursor to the given row number in the result set
      Specified by:
      scrollableCursorAbsolute in interface RMIRemoteSessionController
    • scrollableCursorAfterLast

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorAfterLast(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursorOid)
      Moves the cursor to the end of the result set, just after the last row.
      Specified by:
      scrollableCursorAfterLast in interface RMIRemoteSessionController
    • scrollableCursorBeforeFirst

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorBeforeFirst(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
      Moves the cursor to the front of the result set, just before the first row
      Specified by:
      scrollableCursorBeforeFirst in interface RMIRemoteSessionController
    • scrollableCursorClose

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorClose(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursorOid)
      Used for closing scrollable cursor across RMI.
      Specified by:
      scrollableCursorClose in interface RMIRemoteSessionController
    • scrollableCursorCurrentIndex

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorCurrentIndex(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
      Retrieves the current row index number
      Specified by:
      scrollableCursorCurrentIndex in interface RMIRemoteSessionController
    • scrollableCursorFirst

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorFirst(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
      Moves the cursor to the first row in the result set
      Specified by:
      scrollableCursorFirst in interface RMIRemoteSessionController
    • scrollableCursorIsAfterLast

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorIsAfterLast(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
      Indicates whether the cursor is after the last row in the result set.
      Specified by:
      scrollableCursorIsAfterLast in interface RMIRemoteSessionController
    • scrollableCursorIsBeforeFirst

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorIsBeforeFirst(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
      Indicates whether the cursor is before the first row in the result set.
      Specified by:
      scrollableCursorIsBeforeFirst in interface RMIRemoteSessionController
    • scrollableCursorIsFirst

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorIsFirst(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
      Indicates whether the cursor is on the first row of the result set.
      Specified by:
      scrollableCursorIsFirst in interface RMIRemoteSessionController
    • scrollableCursorIsLast

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorIsLast(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
      Indicates whether the cursor is on the last row of the result set.
      Specified by:
      scrollableCursorIsLast in interface RMIRemoteSessionController
    • scrollableCursorLast

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorLast(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)
      Moves the cursor to the last row in the result set
      Specified by:
      scrollableCursorLast in interface RMIRemoteSessionController
    • scrollableCursorNextObject

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorNextObject(org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorOid)
      Retrieve next object from the scrollable cursor
      Specified by:
      scrollableCursorNextObject in interface RMIRemoteSessionController
    • scrollableCursorPreviousObject

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorPreviousObject(org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorOid)
      Retrieve previous object from the scrollable cursor
      Specified by:
      scrollableCursorPreviousObject in interface RMIRemoteSessionController
    • scrollableCursorRelative

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorRelative(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor, int rows)
      Moves the cursor to the given row number in the result set
      Specified by:
      scrollableCursorRelative in interface RMIRemoteSessionController
    • scrollableCursorSize

      public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorSize(org.eclipse.persistence.internal.sessions.remote.Transporter remoteCursorOid)
      Return the cursor size
      Specified by:
      scrollableCursorSize in interface RMIRemoteSessionController
    • setController

      protected void setController(org.eclipse.persistence.internal.sessions.remote.RemoteSessionController controller)
      Set the controller. All work is dispatched to the controller. This is required to be protocol independent.