|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sun.grizzly.filter.ReadFilter
com.sun.grizzly.filter.ParserProtocolFilter
com.sun.grizzly.rcm.ResourceAllocationFilter
public class ResourceAllocationFilter
This ProtocolFilter is an implementation of a Resource Consumption Management
(RCM) system. RCM system are allowing you to enable virtualization of system
resources per web application, similar to Solaris 10 Zone or the outcome of
the upcoming JSR 284.
This ProtocolFiler uses a ProtocolParser
to determine which
token to use to enable virtualization. As an example, configuring this class
to use the ContextRootAlgorithm
will allow virtualization
and isolation of http request. As an example, if you define:
-Dcom.sun.grizzly.rcm.policyMetric="/myApplication|0.9"
This ProtocolFilter will allocate 90% of the current threads count to
application myApplication, and the remaining 10% to any other context-root
(or application). See com.sun.grizzly.rcm.RCM for an example.
Field Summary | |
---|---|
protected static String |
ALLOCATION_MODE
|
protected static String |
allocationPolicy
The allocation mode used: celling or Reserve. |
protected static String |
ASTERISK_STRING
|
static String |
BYTE_BUFFER
|
static String |
BYTEBUFFER_INPUTSTREAM
|
protected static String |
CEILING
|
static String |
INVOKE_NEXT
|
protected static double |
leftRatio
The thread ratio used when an application isn't listed as a privileged application. |
protected static String |
PATH_STRING
|
protected static ConcurrentHashMap<String,Double> |
privilegedTokens
The list of privileged token used to decide if a request can be serviced by the privileged ExecutorService . |
protected static String |
QUERY_STRING
|
protected static String |
RESERVE
|
protected static String |
RULE_TOKENS
|
protected static ConcurrentHashMap<String,ExecutorService> |
threadPools
The ExecutorService configured based on the
threadRatio . |
Fields inherited from class com.sun.grizzly.filter.ParserProtocolFilter |
---|
isSkipRead |
Fields inherited from class com.sun.grizzly.filter.ReadFilter |
---|
continousExecution, DELAYED_CLOSE_NOTIFICATION, readAttempts, UDP_SOCKETADDRESS |
Fields inherited from interface com.sun.grizzly.ProtocolFilter |
---|
SUCCESSFUL_READ |
Constructor Summary | |
---|---|
ResourceAllocationFilter()
|
Method Summary | |
---|---|
void |
closeConnection(Context ctx)
Close the connection. |
boolean |
execute(Context ctx)
Read available bytes and delegate the processing of them to the next ProtocolFilter in the ProtocolChain. |
ExecutorService |
filterRequest(String token,
ExecutorService p)
Filter the request and decide which thread pool to use. |
protected String |
getContextRoot(ByteBuffer byteBuffer)
Get the context-root from the ByteBuffer |
boolean |
invokeProtocolParser(Context ctx,
ProtocolParser protocolParser)
Invoke the ProtocolParser . |
protected boolean |
isThreadPoolInUse()
Check to see if the privileged thread pool are in-use right now. |
ProtocolParser |
newProtocolParser()
Return a new ProtocolParser>/code> or a cached |
protected ExecutorService |
newThreadPool(int threadCount,
ExecutorService p)
Creates a new ExecutorService |
Methods inherited from class com.sun.grizzly.filter.ParserProtocolFilter |
---|
isSkipRead, postExecute, setSkipRead, setSSLConfig |
Methods inherited from class com.sun.grizzly.filter.ReadFilter |
---|
checkEmptyRead, execute, getReadAttempts, isContinuousExecution, log, setContinuousExecution, setReadAttempts |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String BYTE_BUFFER
protected static final String RESERVE
protected static final String CEILING
protected static final String ALLOCATION_MODE
protected static final String RULE_TOKENS
protected static final String QUERY_STRING
protected static final String PATH_STRING
protected static final String ASTERISK_STRING
public static final String BYTEBUFFER_INPUTSTREAM
public static final String INVOKE_NEXT
protected static final ConcurrentHashMap<String,ExecutorService> threadPools
ExecutorService
configured based on the
threadRatio
. This ExecutorService
is only used
by privileged application.
protected static final ConcurrentHashMap<String,Double> privilegedTokens
ExecutorService
.
protected static double leftRatio
protected static String allocationPolicy
Constructor Detail |
---|
public ResourceAllocationFilter()
Method Detail |
---|
public boolean execute(Context ctx) throws IOException
ParserProtocolFilter
execute
in interface ProtocolFilter
execute
in class ParserProtocolFilter
ctx
- Context
IOException
public boolean invokeProtocolParser(Context ctx, ProtocolParser protocolParser)
ProtocolParser
. If more bytes are required,
register the SelectionKey
back to its associated
SelectorHandler
invokeProtocolParser
in class ParserProtocolFilter
ctx
- the Context object.
public ExecutorService filterRequest(String token, ExecutorService p)
protected ExecutorService newThreadPool(int threadCount, ExecutorService p)
ExecutorService
protected boolean isThreadPoolInUse()
protected String getContextRoot(ByteBuffer byteBuffer)
ByteBuffer
public void closeConnection(Context ctx)
public ProtocolParser newProtocolParser()
ProtocolParser>/code> or a cached
- Specified by:
newProtocolParser
in class ParserProtocolFilter
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |