|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.openorb.net.ServerManagerImpl
This class is the controler for most server side operations. It is responsible for registration and thread management for server protocols and channels, dispatch and thread management for requests, object reference construction and generates the adapter managers allowing flow control for adapters.
Inner Class Summary | |
class |
ServerManagerImpl.AdapterManagerImpl
This class provides an implementation for the AdapterManager interface. |
Inner classes inherited from class org.openorb.net.ServerManager |
ServerManager.AdapterManager |
Constructor Summary | |
ServerManagerImpl(ORB orb)
Construct new server manager. |
Method Summary | |
void |
channel_reaper()
This fuction runs in a separate thread and cleans up any channels which are not used for a long time. |
AdapterManager |
create_adapter_manager()
Create an adapter manager. |
byte[] |
create_cacheable_object_key(boolean use_suid,
byte[][] parts)
This function is used by adapters to generate a key which will participate in adapter lookup short-circuiting. |
void |
enqueue_request(ServerRequest request)
Begin dispatch sequence for incoming request. |
byte[][] |
extract_cacheable_object_key(byte[] object_key)
Extract the component parts of a cacheable object_key. |
ObjectAdapter |
find_adapter(byte[] object_key)
This function finds an adapter for the specified object id. |
java.lang.Object[] |
get_protocol_ids()
Return the array of registered protocols. |
boolean |
is_cacheable_object_key(byte[] object_key)
Returns true if the given object_key can be used in the cache. |
boolean |
is_local_cacheable_object_key(byte[] object_key)
Returns true if the given object_key is cacheable and was created by this server. |
boolean |
is_suid_object_key(byte[] object_key)
Returns true if the given object key has a persistent target. |
ORB |
orb()
Return the orb. |
void |
protocol_listening(ServerProtocol protocol)
This is called when a server protocol begins listening. |
void |
protocol_not_listening(ServerProtocol protocol,
boolean paused)
This is called when a server protocol is no longer listening. |
void |
register_adapter(byte[] aid,
ObjectAdapter adapter)
Register an adapter. |
void |
register_channel(ServerChannel channel)
This operation occours when a protocol accepts a new incoming channel. |
void |
register_protocol(int profile_tag,
ServerProtocol protocol)
Register a server protocol. |
boolean |
serve_request(boolean wait)
This is called from orb.perform_work, it serves a single request. |
void |
setMaxManagerHeldRequests(int maxManagerHeldRequests)
Maximum number of requests which may be held by an adapter in the HOLDING state. |
void |
setMaxQueueSize(int maxQueueSize)
Set maximum queue size. |
void |
setThreadPoolLimits(int min,
int max)
Set thread pool size ranges. |
void |
shutdown(boolean wait_for_complete)
Spawns a thread to do the shutdown if wait_for_complete is false. |
void |
startup(boolean block,
boolean allowPool)
Start the thread groups for server io operations and for channel reaping. |
void |
unregister_adapter(byte[] aid)
Unregister an adapter. |
void |
unregister_channel(ServerChannel channel)
Called when a channel enters the closed state. |
boolean |
work_pending()
Returns true if there are requests waiting in the incomming request queue for resources. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public ServerManagerImpl(ORB orb)
orb
- The controling orb.Method Detail |
public ORB orb()
orb
in interface ServerManager
public void setThreadPoolLimits(int min, int max)
setThreadPoolLimits
in interface ServerManager
min
- minimum size for thread pool. Must be greater than 0 and
less than max.max
- maximum thread pool size. If this is 0 then requests
will only be processed when the orb.perform_work function is
called. Must be greater than 0.public void setMaxQueueSize(int maxQueueSize)
setMaxQueueSize
in interface ServerManager
maxQueueSize
- maximum queue size. Must be greater than 1. Values
should be several times the maximum thread pool size.public void setMaxManagerHeldRequests(int maxManagerHeldRequests)
setMaxManagerHeldRequests
in interface ServerManager
maxAdapterHeldRequests
- ceiling on adapter held requests.
Individial adapter managers may modify this value downwards. Use 0 to
dissallow the adapter holding state, and Integer.MAX_VALUE for
no limit.public byte[] create_cacheable_object_key(boolean use_suid, byte[][] parts)
create_cacheable_object_key
in interface ServerManager
public byte[][] extract_cacheable_object_key(byte[] object_key)
extract_cacheable_object_key
in interface ServerManager
public boolean is_cacheable_object_key(byte[] object_key)
is_cacheable_object_key
in interface ServerManager
public boolean is_suid_object_key(byte[] object_key)
is_suid_object_key
in interface ServerManager
public boolean is_local_cacheable_object_key(byte[] object_key)
is_local_cacheable_object_key
in interface ServerManager
public void register_protocol(int profile_tag, ServerProtocol protocol)
register_protocol
in interface ServerManager
profile_tag
- Profile tag of IOR consturcted with the protocol.protocol
- The server protocol.public java.lang.Object[] get_protocol_ids()
get_protocol_ids
in interface ServerManager
public void protocol_listening(ServerProtocol protocol)
protocol_listening
in interface ServerManager
protocol
- The server protocol.public void protocol_not_listening(ServerProtocol protocol, boolean paused)
protocol_not_listening
in interface ServerManager
protocol
- The server protocol.paused
- If true when the server side is shut down close will still
be called on the protocol.public void register_channel(ServerChannel channel)
register_channel
in interface ServerManager
public void unregister_channel(ServerChannel channel)
unregister_channel
in interface ServerManager
public void channel_reaper()
channel_reaper
in interface ServerManager
public ObjectAdapter find_adapter(byte[] object_key)
find_adapter
in interface ServerManager
public void register_adapter(byte[] aid, ObjectAdapter adapter)
register_adapter
in interface ServerManager
public void unregister_adapter(byte[] aid)
unregister_adapter
in interface ServerManager
public AdapterManager create_adapter_manager()
create_adapter_manager
in interface ServerManager
public void enqueue_request(ServerRequest request)
enqueue_request
in interface ServerManager
public boolean work_pending()
ServerManager
work_pending
in interface ServerManager
public boolean serve_request(boolean wait)
serve_request
in interface ServerManager
public void startup(boolean block, boolean allowPool)
startup
in interface ServerManager
org.openorb.net.ServerManager
block
- true if this funtion should not return until
the server is shut down.allowPool
- true if the thread pool is allowed. Once a call
the thread pool has been started it cannot be dissallowed
in the future by calling this with a false.public void shutdown(boolean wait_for_complete)
shutdown
in interface ServerManager
org.openorb.net.ServerManager
wait_for_complete
- If true wait until all channels have closed
and incomming requests have finished processing. If false all
active requests will be canceled and the function will return once
connections have shutdown.
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |