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:
java.io.Serializable,java.rmi.Remote,RMIRemoteSessionController
public class RMIRemoteSessionControllerDispatcher extends java.rmi.server.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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected org.eclipse.persistence.internal.sessions.remote.RemoteSessionControllercontrollerStore the real controller.
-
Constructor Summary
Constructors Constructor Description RMIRemoteSessionControllerDispatcher(org.eclipse.persistence.internal.sessions.AbstractSession session)RMIRemoteSessionControllerDispatcher(Session session)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.eclipse.persistence.internal.sessions.remote.TransporterbeginEarlyTransaction()Begin an early unit of work transaction.org.eclipse.persistence.internal.sessions.remote.TransporterbeginTransaction()Begin a transaction on the database.org.eclipse.persistence.internal.sessions.remote.TransportercommitRootUnitOfWork(org.eclipse.persistence.internal.sessions.remote.Transporter remoteUnitOfWork)Remote unit of work after serialization is committed locally.org.eclipse.persistence.internal.sessions.remote.TransportercommitTransaction()Commit a transaction on the database.org.eclipse.persistence.internal.sessions.remote.TransportercursoredStreamClose(org.eclipse.persistence.internal.sessions.remote.Transporter remoteCursoredStreamID)Used for closing cursored streams across RMI.org.eclipse.persistence.internal.sessions.remote.TransportercursoredStreamNextPage(org.eclipse.persistence.internal.sessions.remote.Transporter remoteCursoredStream, int pageSize)Retrieve next page size of objects from the remote cursored streamorg.eclipse.persistence.internal.sessions.remote.TransportercursoredStreamSize(org.eclipse.persistence.internal.sessions.remote.Transporter remoteCursoredStreamOid)Return the cursored stream sizeorg.eclipse.persistence.internal.sessions.remote.TransportercursorSelectObjects(org.eclipse.persistence.internal.sessions.remote.Transporter remoteTransporter)Returns a remote cursor stub in a transporterorg.eclipse.persistence.internal.sessions.remote.TransporterexecuteNamedQuery(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.TransporterexecuteQuery(org.eclipse.persistence.internal.sessions.remote.Transporter query)A remote query after serialization is executed locally.protected org.eclipse.persistence.internal.sessions.remote.RemoteSessionControllergetController()Return the controller.org.eclipse.persistence.internal.sessions.remote.TransportergetDefaultReadOnlyClasses()Get the default read-only classesorg.eclipse.persistence.internal.sessions.remote.TransportergetDescriptor(org.eclipse.persistence.internal.sessions.remote.Transporter theClass)Extract descriptor from the sessionorg.eclipse.persistence.internal.sessions.remote.TransportergetDescriptorForAlias(org.eclipse.persistence.internal.sessions.remote.Transporter alias)Extract descriptor from the sessionorg.eclipse.persistence.internal.sessions.remote.TransportergetLogin()Get the associated session login.org.eclipse.persistence.internal.sessions.remote.TransportergetSequenceNumberNamed(org.eclipse.persistence.internal.sessions.remote.Transporter remoteFunctionCall)INTERNAL: Get the value returned by remote function callorg.eclipse.persistence.internal.sessions.remote.TransporterinitializeIdentityMapsOnServerSession()org.eclipse.persistence.internal.sessions.remote.TransporterinstantiateRemoteValueHolderOnServer(org.eclipse.persistence.internal.sessions.remote.Transporter remoteValueHolder)The corresponding original value holder is instantiated.org.eclipse.persistence.internal.sessions.remote.TransporterprocessCommand(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 sessionorg.eclipse.persistence.internal.sessions.remote.TransporterrollbackTransaction()Rollback a transaction on the database.org.eclipse.persistence.internal.sessions.remote.TransporterscrollableCursorAbsolute(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursorOid, int rows)Moves the cursor to the given row number in the result setorg.eclipse.persistence.internal.sessions.remote.TransporterscrollableCursorAfterLast(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.TransporterscrollableCursorBeforeFirst(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)Moves the cursor to the front of the result set, just before the first roworg.eclipse.persistence.internal.sessions.remote.TransporterscrollableCursorClose(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursorOid)Used for closing scrollable cursor across RMI.org.eclipse.persistence.internal.sessions.remote.TransporterscrollableCursorCurrentIndex(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)Retrieves the current row index numberorg.eclipse.persistence.internal.sessions.remote.TransporterscrollableCursorFirst(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)Moves the cursor to the first row in the result setorg.eclipse.persistence.internal.sessions.remote.TransporterscrollableCursorIsAfterLast(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.TransporterscrollableCursorIsBeforeFirst(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.TransporterscrollableCursorIsFirst(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.TransporterscrollableCursorIsLast(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.TransporterscrollableCursorLast(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor)Moves the cursor to the last row in the result setorg.eclipse.persistence.internal.sessions.remote.TransporterscrollableCursorNextObject(org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorOid)Retrieve next object from the scrollable cursororg.eclipse.persistence.internal.sessions.remote.TransporterscrollableCursorPreviousObject(org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorOid)Retrieve previous object from the scrollable cursororg.eclipse.persistence.internal.sessions.remote.TransporterscrollableCursorRelative(org.eclipse.persistence.internal.sessions.remote.Transporter remoteScrollableCursor, int rows)Moves the cursor to the given row number in the result setorg.eclipse.persistence.internal.sessions.remote.TransporterscrollableCursorSize(org.eclipse.persistence.internal.sessions.remote.Transporter remoteCursorOid)Return the cursor sizeprotected voidsetController(org.eclipse.persistence.internal.sessions.remote.RemoteSessionController controller)Set the controller.-
Methods inherited from class java.rmi.server.UnicastRemoteObject
clone, exportObject, exportObject, exportObject, exportObject, exportObject, unexportObject
-
-
-
-
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:
processCommandin interfaceRMIRemoteSessionController- 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:
beginTransactionin interfaceRMIRemoteSessionController
-
beginEarlyTransaction
public org.eclipse.persistence.internal.sessions.remote.Transporter beginEarlyTransaction()
Begin an early unit of work transaction.- Specified by:
beginEarlyTransactionin interfaceRMIRemoteSessionController
-
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:
commitRootUnitOfWorkin interfaceRMIRemoteSessionController
-
commitTransaction
public org.eclipse.persistence.internal.sessions.remote.Transporter commitTransaction()
Commit a transaction on the database.- Specified by:
commitTransactionin interfaceRMIRemoteSessionController
-
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:
cursoredStreamClosein interfaceRMIRemoteSessionController
-
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:
cursoredStreamNextPagein interfaceRMIRemoteSessionController
-
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:
cursoredStreamSizein interfaceRMIRemoteSessionController
-
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:
cursorSelectObjectsin interfaceRMIRemoteSessionController
-
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:
executeNamedQueryin interfaceRMIRemoteSessionController
-
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:
executeQueryin interfaceRMIRemoteSessionController
-
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:
getDefaultReadOnlyClassesin interfaceRMIRemoteSessionController
-
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:
getDescriptorin interfaceRMIRemoteSessionController
-
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:
getDescriptorForAliasin interfaceRMIRemoteSessionController
-
getLogin
public org.eclipse.persistence.internal.sessions.remote.Transporter getLogin()
Get the associated session login.- Specified by:
getLoginin interfaceRMIRemoteSessionController
-
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:
getSequenceNumberNamedin interfaceRMIRemoteSessionController
-
initializeIdentityMapsOnServerSession
public org.eclipse.persistence.internal.sessions.remote.Transporter initializeIdentityMapsOnServerSession()
- Specified by:
initializeIdentityMapsOnServerSessionin interfaceRMIRemoteSessionController
-
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:
instantiateRemoteValueHolderOnServerin interfaceRMIRemoteSessionController
-
rollbackTransaction
public org.eclipse.persistence.internal.sessions.remote.Transporter rollbackTransaction()
Rollback a transaction on the database.- Specified by:
rollbackTransactionin interfaceRMIRemoteSessionController
-
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:
scrollableCursorAbsolutein interfaceRMIRemoteSessionController
-
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:
scrollableCursorAfterLastin interfaceRMIRemoteSessionController
-
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:
scrollableCursorBeforeFirstin interfaceRMIRemoteSessionController
-
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:
scrollableCursorClosein interfaceRMIRemoteSessionController
-
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:
scrollableCursorCurrentIndexin interfaceRMIRemoteSessionController
-
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:
scrollableCursorFirstin interfaceRMIRemoteSessionController
-
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:
scrollableCursorIsAfterLastin interfaceRMIRemoteSessionController
-
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:
scrollableCursorIsBeforeFirstin interfaceRMIRemoteSessionController
-
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:
scrollableCursorIsFirstin interfaceRMIRemoteSessionController
-
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:
scrollableCursorIsLastin interfaceRMIRemoteSessionController
-
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:
scrollableCursorLastin interfaceRMIRemoteSessionController
-
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:
scrollableCursorNextObjectin interfaceRMIRemoteSessionController
-
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:
scrollableCursorPreviousObjectin interfaceRMIRemoteSessionController
-
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:
scrollableCursorRelativein interfaceRMIRemoteSessionController
-
scrollableCursorSize
public org.eclipse.persistence.internal.sessions.remote.Transporter scrollableCursorSize(org.eclipse.persistence.internal.sessions.remote.Transporter remoteCursorOid)
Return the cursor size- Specified by:
scrollableCursorSizein interfaceRMIRemoteSessionController
-
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.
-
-