Class RMIRemoteSessionControllerDispatcher

  • All Implemented Interfaces:
    java.rmi.Remote, RMIRemoteSessionController

    public class RMIRemoteSessionControllerDispatcher
    extends javax.rmi.PortableRemoteObject
    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.
    • Field Summary

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.eclipse.persistence.internal.sessions.remote.Transporter beginEarlyTransaction()
      Begin an early unit of work transaction, all further queries must be isolated.
      org.eclipse.persistence.internal.sessions.remote.Transporter beginTransaction()
      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 commited locally.
      org.eclipse.persistence.internal.sessions.remote.Transporter commitTransaction()
      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 getController()
      Return the controller.
      org.eclipse.persistence.internal.sessions.remote.Transporter getDefaultReadOnlyClasses()
      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 getLogin()
      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 initializeIdentityMapsOnServerSession()  
      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 rollbackTransaction()
      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 javax.rmi.PortableRemoteObject

        connect, exportObject, narrow, toStub, unexportObject
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • controller

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

      • RMIRemoteSessionControllerDispatcher

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

        public RMIRemoteSessionControllerDispatcher​(Session session)
                                             throws java.rmi.RemoteException
        Throws:
        java.rmi.RemoteException
    • Method Detail

      • 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
      • beginEarlyTransaction

        public org.eclipse.persistence.internal.sessions.remote.Transporter beginEarlyTransaction()
        Begin an early unit of work transaction, all further queries must be isolated.
        Specified by:
        beginEarlyTransaction in interface RMIRemoteSessionController
      • beginTransaction

        public org.eclipse.persistence.internal.sessions.remote.Transporter beginTransaction()
        Begin a transaction on the database.
        Specified by:
        beginTransaction 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 commited 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.
      • 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
      • 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.