|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectuka.karmi.rmi.Technology
uka.karmi.stream.StreamTechnology
The socket technology opens connections for remote calls and caches these connections. Connections which have not been used for some time are closed.
The socket technology does not support a method counter. It does not implement the true unexport() semantics. This implementation is currently limited to communication with a maximum of 50 hosts.
Supported properties:
timeout: unused connections are closed after "timeout" ms. The default is 5000.
Export point configuration:
karmi.technology.NUMBER.EXPORTPOINTNAME.port = portnumber e.g. : karmi.technology.1.registry.port = 1099 The wire format of void foo(byte[] b) - call -- header byte cid int oid int mid -- parameter --- descriptor byte TC_ARRAY byte TC_REFERENCE int handle --- object int length byte[length] data = 19 + length bytes - result byte code = 1 byte + length of result value
| Nested Class Summary | |
static interface |
StreamTechnology.CallBack
|
protected class |
StreamTechnology.LocalID
A LocalID references a remote technology. |
| Field Summary | |
private static int |
BUFFERSIZE
|
protected int |
CONNECTION_TIMEOUT
|
(package private) java.util.HashMap |
exportPointInfo
|
(package private) EnlargingArray |
localIDArray
|
(package private) java.util.HashMap |
localIDMap
{UTID -> LocalID}: hashtable that maps UTID objects for remote technologies to their local identifiers. |
(package private) IDPool |
localIDPool
Pool of local identifiers for remote technologies. |
| Fields inherited from class uka.karmi.rmi.Technology |
config, dgc, domainId, ep2utid, protocol, utid2ep |
| Fields inherited from interface uka.karmi.rmi.server.Constants |
APP_CALL, COLLECTIVE_OPERATION, DGC_ACK, DGC_CALL, DGC_CALL_ASYNC, MID_BARRIER, MID_COLLECTIVE_EXCHANGE, MID_COLLECTIVE_UPDATE, MID_EXCLUSIVE_LOCK, MID_EXCLUSIVE_UPDATE, MID_REQUEST_TICKET, MID_REQUEST_WAIT, MID_RMA, MID_SERVICE_CREATE_REPLICA, MID_SERVICE_GET_STUB, MID_SERVICE_INTERRUPT, MID_SERVICE_MIGRATE, MID_SERVICE_UPDATE_REFERENCES, MID_WAKEUP, SERVICE_CALL, SKELETON_EXTENSION, STUB_EXTENSION |
| Constructor Summary | |
StreamTechnology()
|
|
| Method Summary | |
void |
collectConnections()
Entry method for the collection process of unused connections. |
abstract StreamClientConnection |
createConnection(UTID utid,
StreamTechnology.CallBack cb)
Create a new connection to the remote technology referenced by utid. |
ClientConnection |
getContext(byte cid,
int mid,
int oid,
long tid,
UTID useUtid)
On the client side, the type of the connection class is determined by the remote object reference that decides about the best technology to use for a call. |
private StreamTechnology.LocalID |
getLocalID(UTID utid)
Access is synchronized in the context. |
void |
init(ConfigBundle config)
This method is called after the standard constructor. |
void |
probeConfig()
|
| Methods inherited from class uka.karmi.rmi.Technology |
asyncDgcCall, buildUTID, buildUTID, dgcCall, getContext, getLocalExportPoint, getMonitorFor, getUTID, initExportPoint, rmaAcquire, rmaRelease, serviceCreateReplica, serviceCreateReplicaBody, serviceGetStub, serviceInterrupt, serviceMigrate, serviceUpdateReferences, serviceUpdateReferencesBody |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
private static final int BUFFERSIZE
protected int CONNECTION_TIMEOUT
java.util.HashMap exportPointInfo
IDPool localIDPool
java.util.HashMap localIDMap
EnlargingArray localIDArray
| Constructor Detail |
public StreamTechnology()
throws java.io.IOException
| Method Detail |
public ClientConnection getContext(byte cid,
int mid,
int oid,
long tid,
UTID useUtid)
throws RemoteException
Technology
getContext in class TechnologyRemoteExceptionConnection#setContext(byte cid, int oid, int mid, long tid)
public abstract StreamClientConnection createConnection(UTID utid,
StreamTechnology.CallBack cb)
throws java.io.IOException
utid. The returned connection is a specialized
subclass of StreamConnection for use with the concrete
transport technology.
java.io.IOExceptionprivate StreamTechnology.LocalID getLocalID(UTID utid)
public void collectConnections()
public void init(ConfigBundle config)
throws java.lang.Exception
TechnologySubclasses of Technology which overwrite this method must also call this method ( super.init(config) ).
init in class Technologyjava.lang.Exceptionpublic void probeConfig()
probeConfig in class Technology
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||