com.sun.slamd.example
Class IdentityServerJobClass

java.lang.Object
  extended by java.lang.Thread
      extended by com.sun.slamd.job.JobClass
          extended by com.sun.slamd.example.IdentityServerJobClass
All Implemented Interfaces:
java.lang.Runnable

public class IdentityServerJobClass
extends JobClass

This class implements a SLAMD job class for benchmarking Identity Server. All of the configuration for this job class can be provided through parameters.

Author:
Chuck Mortimore

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
static java.lang.String FAILED_AUTH
          The display name for the failed authentications stat tracker.
static java.lang.String STAT_TRACKER_AUTHENTICATION_RESULTS
          The display name for the authentication results stat tracker.
static java.lang.String STAT_TRACKER_AUTHN_PERFORMED
          The display name for the authentications performed stat tracker.
static java.lang.String STAT_TRACKER_AUTHN_TIME
          The display name for the authentication txn time stat tracker.
static java.lang.String STAT_TRACKER_AUTHORIZATION_RESULTS
          The display name for the authorization results stat tracker.
static java.lang.String STAT_TRACKER_AUTHZ_PERFORMED
          The display name for the authorizations performed stat tracker.
static java.lang.String STAT_TRACKER_AUTHZ_TIME
          The display name for the post-authentication txn time stat tracker.
static java.lang.String STAT_TRACKER_COMPLETE_TRANSACTIONS
          The display name for the complete transactions stat tracker.
static java.lang.String STAT_TRACKER_EXCEPTIONS_CAUGHT
          The display name for the exceptions caught stat tracker.
static java.lang.String STAT_TRACKER_LOGOUT_RESULTS
          The display name for the logout results stat tracker.
static java.lang.String STAT_TRACKER_LOGOUT_TIME
          The display name for the logout time stat tracker.
static java.lang.String STAT_TRACKER_LOGOUTS_PERFORMED
          The display name for the logout attempts stat tracker.
static java.lang.String STAT_TRACKER_PREAUTH_TIME
          The display name for the pre-authentication txn time stat tracker.
static java.lang.String STAT_TRACKER_TRANSACTION_TIME
          The display name for the complete transaction time stat tracker.
static java.lang.String STAT_TRACKER_UNAUTHD_PERFORMED
          The display name for the unauthenticatd URLs stat tracker.
static java.lang.String STAT_TRACKER_UNAUTHD_RESULTS
          The display name for the unauthenticated results stat tracker.
static java.lang.String STAT_TRACKER_UNAUTHD_TIME
          The display name for the unauthenticated transaction time stat tracker.
static java.lang.String SUCCESSFUL_AUTH
          The display name for the successful authentications stat tracker.
static java.lang.String TOKEN1
          The name of the Login.Token1 header.
static java.lang.String TOKEN2
          The name of the Login.Token2 header.
static java.lang.String X_AUTHERRORCODE
          The name of the X-autherrorcode header.
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
IdentityServerJobClass()
          Creates a new instance of this HTTP Client job class.
 
Method Summary
 void buildAuthZUrls()
          Builds the list of authorization URLs.
 void destroy()
          Attempts to force this thread to exit.
 java.lang.String getJobCategoryName()
          Retrieves the name of the category in which this job class exists.
 java.lang.String getJobDescription()
          Retrieves a description of the job performed by this job thread.
 java.lang.String getJobName()
          Retrieves the name of the job performed by this job thread.
 java.lang.String[] getLoginInfo()
          Retrieves an array containing the login ID and password that should be used to authenticate to the directory.
 ParameterList getParameterStubs()
          Retrieve a parameter list that can be used to determine all of the customizable options that are available for this job.
 StatTracker[] getStatTrackers()
          Retrieves the stat trackers that are maintained for this job thread.
 StatTracker[] getStatTrackerStubs(java.lang.String clientID, java.lang.String threadID, int collectionInterval)
          Retrieves the set of stat trackers that will be maintained by this job class.
 void initializeClient(java.lang.String clientID, ParameterList parameters)
          Performs client-level initialization for this job, including retrieving the values of all the parameters and reading the filter file (if one has been specified).
 void initializeThread(java.lang.String clientID, java.lang.String threadID, int collectionInterval, ParameterList parameters)
          Initializes this job thread to be used to actually run the job on the client.
 void runJob()
          Perform the work of this job thread by establishing the connection(s) to the server and issuing all the appropriate queries.
 void validateJobInfo(int numClients, int threadsPerClient, int threadStartupDelay, java.util.Date startTime, java.util.Date stopTime, int duration, int collectionInterval, ParameterList parameters)
          Provides a means of validating the information used to schedule the job, including the scheduling information and list of parameters.
 
Methods inherited from class com.sun.slamd.job.JobClass
enableRealTimeStats, finalizeClient, finalizeJob, finalizeThread, getActiveThreadCount, getClientID, getClientNumber, getClientSideJob, getClientSideParameterStubs, getCollectionInterval, getJobID, getScheduledDuration, getShouldStopTime, getStatReporter, getThreadID, getThreadNumber, indicateCompletedWithErrors, indicateStoppedDueToError, initializeJob, initializeJobThread, isDeprecated, isRunning, logMessage, overrideCollectionInterval, overrideNumClients, overrideThreadsPerClient, providesParameterTest, run, setClientNumber, setClientSideJob, setThreadNumber, shouldStop, stackTraceToString, startJob, stopAndWait, stopJob, stopRequested, testJobParameters, writeVerbose
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

X_AUTHERRORCODE

public static final java.lang.String X_AUTHERRORCODE
The name of the X-autherrorcode header.

See Also:
Constant Field Values

TOKEN1

public static final java.lang.String TOKEN1
The name of the Login.Token1 header.

See Also:
Constant Field Values

TOKEN2

public static final java.lang.String TOKEN2
The name of the Login.Token2 header.

See Also:
Constant Field Values

SUCCESSFUL_AUTH

public static final java.lang.String SUCCESSFUL_AUTH
The display name for the successful authentications stat tracker.

See Also:
Constant Field Values

FAILED_AUTH

public static final java.lang.String FAILED_AUTH
The display name for the failed authentications stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_TRANSACTION_TIME

public static final java.lang.String STAT_TRACKER_TRANSACTION_TIME
The display name for the complete transaction time stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_UNAUTHD_TIME

public static final java.lang.String STAT_TRACKER_UNAUTHD_TIME
The display name for the unauthenticated transaction time stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_PREAUTH_TIME

public static final java.lang.String STAT_TRACKER_PREAUTH_TIME
The display name for the pre-authentication txn time stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_AUTHN_TIME

public static final java.lang.String STAT_TRACKER_AUTHN_TIME
The display name for the authentication txn time stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_AUTHZ_TIME

public static final java.lang.String STAT_TRACKER_AUTHZ_TIME
The display name for the post-authentication txn time stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_LOGOUT_TIME

public static final java.lang.String STAT_TRACKER_LOGOUT_TIME
The display name for the logout time stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_COMPLETE_TRANSACTIONS

public static final java.lang.String STAT_TRACKER_COMPLETE_TRANSACTIONS
The display name for the complete transactions stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_UNAUTHD_PERFORMED

public static final java.lang.String STAT_TRACKER_UNAUTHD_PERFORMED
The display name for the unauthenticatd URLs stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_AUTHN_PERFORMED

public static final java.lang.String STAT_TRACKER_AUTHN_PERFORMED
The display name for the authentications performed stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_AUTHZ_PERFORMED

public static final java.lang.String STAT_TRACKER_AUTHZ_PERFORMED
The display name for the authorizations performed stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_LOGOUTS_PERFORMED

public static final java.lang.String STAT_TRACKER_LOGOUTS_PERFORMED
The display name for the logout attempts stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_EXCEPTIONS_CAUGHT

public static final java.lang.String STAT_TRACKER_EXCEPTIONS_CAUGHT
The display name for the exceptions caught stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_UNAUTHD_RESULTS

public static final java.lang.String STAT_TRACKER_UNAUTHD_RESULTS
The display name for the unauthenticated results stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_AUTHENTICATION_RESULTS

public static final java.lang.String STAT_TRACKER_AUTHENTICATION_RESULTS
The display name for the authentication results stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_AUTHORIZATION_RESULTS

public static final java.lang.String STAT_TRACKER_AUTHORIZATION_RESULTS
The display name for the authorization results stat tracker.

See Also:
Constant Field Values

STAT_TRACKER_LOGOUT_RESULTS

public static final java.lang.String STAT_TRACKER_LOGOUT_RESULTS
The display name for the logout results stat tracker.

See Also:
Constant Field Values
Constructor Detail

IdentityServerJobClass

public IdentityServerJobClass()
Creates a new instance of this HTTP Client job class.

Method Detail

getJobName

public java.lang.String getJobName()
Retrieves the name of the job performed by this job thread.

Specified by:
getJobName in class JobClass
Returns:
The name of the job performed by this job thread.

getJobDescription

public java.lang.String getJobDescription()
Retrieves a description of the job performed by this job thread.

Specified by:
getJobDescription in class JobClass
Returns:
A description of the job performed by this job thread.

getJobCategoryName

public java.lang.String getJobCategoryName()
Retrieves the name of the category in which this job class exists. This is used to help arrange the job classes in the administrative interface.

Overrides:
getJobCategoryName in class JobClass
Returns:
The name of the category in which this job class exists.

getParameterStubs

public ParameterList getParameterStubs()
Retrieve a parameter list that can be used to determine all of the customizable options that are available for this job.

Specified by:
getParameterStubs in class JobClass
Returns:
A parameter list that can be used to determine all of the customizable options that are available for this job.

getStatTrackerStubs

public StatTracker[] getStatTrackerStubs(java.lang.String clientID,
                                         java.lang.String threadID,
                                         int collectionInterval)
Retrieves the set of stat trackers that will be maintained by this job class. The stat trackers returned by this method do not have to actually contain any statistics -- the display name and stat tracker class should be the only information that callers of this method should rely upon. Note that this list can be different from the list of statistics actually collected by the job in some cases (e.g., if the job may not return all the stat trackers it advertises in all cases, or if the job may return stat trackers that it did not advertise), but it is a possibility that only the stat trackers returned by this method will be accessible for some features in the SLAMD server.

Specified by:
getStatTrackerStubs in class JobClass
Parameters:
clientID - The client ID that should be used for the returned stat trackers.
threadID - The thread ID that should be used for the returned stat trackers.
collectionInterval - The collection interval that should be used for the returned stat trackers.
Returns:
The set of stat trackers that will be maintained by this job class.

getStatTrackers

public StatTracker[] getStatTrackers()
Retrieves the stat trackers that are maintained for this job thread.

Specified by:
getStatTrackers in class JobClass
Returns:
The stat trackers that are maintained for this job thread.

validateJobInfo

public void validateJobInfo(int numClients,
                            int threadsPerClient,
                            int threadStartupDelay,
                            java.util.Date startTime,
                            java.util.Date stopTime,
                            int duration,
                            int collectionInterval,
                            ParameterList parameters)
                     throws InvalidValueException
Provides a means of validating the information used to schedule the job, including the scheduling information and list of parameters.

Overrides:
validateJobInfo in class JobClass
Parameters:
numClients - The number of clients that should be used to run the job.
threadsPerClient - The number of threads that should be created on each client to run the job.
threadStartupDelay - The delay in milliseconds that should be used when starting the client threads.
startTime - The time that the job should start running.
stopTime - The time that the job should stop running.
duration - The maximum length of time in seconds that the job should be allowed to run.
collectionInterval - The collection interval that should be used when gathering statistics for the job.
parameters - The set of parameters provided to this job that can be used to customize its behavior.
Throws:
InvalidValueException - If the provided information is not appropriate for running this job.

initializeClient

public void initializeClient(java.lang.String clientID,
                             ParameterList parameters)
                      throws UnableToRunException
Performs client-level initialization for this job, including retrieving the values of all the parameters and reading the filter file (if one has been specified).

Overrides:
initializeClient in class JobClass
Parameters:
clientID - The ID assigned to the client that will be running the job.
parameters - The list of parameters defined for this job.
Throws:
UnableToRunException - If the initialization fails for some reason.

initializeThread

public void initializeThread(java.lang.String clientID,
                             java.lang.String threadID,
                             int collectionInterval,
                             ParameterList parameters)
                      throws UnableToRunException
Initializes this job thread to be used to actually run the job on the client. The provided parameter list should be processed to customize the behavior of this job thread, and any other initialization that needs to be done in order for the job to run should be performed here as well.

Specified by:
initializeThread in class JobClass
Parameters:
clientID - The client ID for this job thread.
threadID - The thread ID for this job thread.
collectionInterval - The length of time in seconds to use as the statistics collection interval.
parameters - The set of parameters provided to this job that can be used to customize its behavior.
Throws:
UnableToRunException - If a problem occurs during the initialization.

destroy

public void destroy()
Attempts to force this thread to exit.

Overrides:
destroy in class JobClass

getLoginInfo

public java.lang.String[] getLoginInfo()
Retrieves an array containing the login ID and password that should be used to authenticate to the directory.

Returns:
An array containing the login ID and password.

runJob

public void runJob()
Perform the work of this job thread by establishing the connection(s) to the server and issuing all the appropriate queries. The job will continue until the specified number of iterations have been performed, the stop time has been reached, the maximum duration has been reached, or the SLAMD server indicates that a stop has been requested.

Specified by:
runJob in class JobClass

buildAuthZUrls

public void buildAuthZUrls()
                    throws UnableToRunException
Builds the list of authorization URLs.

Throws:
UnableToRunException - If a problem occurs.