|
ABLE 2.3.0 07/13/2005 14:21:00 | |||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||||
java.lang.Objectjava.rmi.server.RemoteObject
org.jagent.service.util.RMIBasicService
com.ibm.able.platform.AbleBasicService
com.ibm.able.platform.RmiAgentLoggingSystem
This is the implementation of an RMI-based Agent Logging Service.
This keeps track of all of the the AbleAgentSituationReports of a platform. Any part of the platform could log/update/delete/search AbleAgentSituationReports with this Service. Parts of the platform will also come here to find logs:
The logging service does more than just store logs. When someone might want to answer a problem of an agent, this service can be used to delegate this answer back to the originator of the problem request. It will be entirely up to the originator of the problem request to authorize the answer when secure. If secure, the service will authenticate the caller, but go no further.
| Field Summary |
|---|
| Fields inherited from class com.ibm.able.platform.AbleBasicService |
|---|
ANS_PRINCIPAL, LOCAL_PRINCIPAL, myAnsPrincipal, myKeyPair, myMsgLog, myPrincipal, mySecSppt, myServiceEventListeners, myServiceProperties, myTrcLog, myTrustLevel, myVerifiableAgentName, myVerifiableNamingService, Refreshing, REQUESTORS_PORT, Running, SOCKET_FACTORY, Terminated, Unknown |
| Fields inherited from class java.rmi.server.RemoteObject |
|---|
ref |
| Fields inherited from interface org.jagent.service.RMIService |
|---|
RMI, SERVICE_PROTOCOL |
| Fields inherited from interface org.jagent.service.IPService |
|---|
SERVICE_HOST, SERVICE_PORT |
| Constructor Summary | |
|---|---|
RmiAgentLoggingSystem()
Create an instance of an RMI-based Agent Logging Service. |
|
RmiAgentLoggingSystem(javax.agent.service.ServiceProperties theServiceProperties)
Create an instance of an RMI-based Agent Logging Service with the given service properties. |
|
| Method Summary | |
|---|---|
void |
addAblePlatformServiceEventListener(AblePlatformServiceEventListener theListener)
Since this Logging Service will be persisting listeners, AbleBasicService's addAblePlatformServiceEventListener method must be overridden to handle the
adding of this service's listeners from persistence. |
void |
answerAgentRequest(AbleAgentSituationReport asr,
AbleSecureKey key)
When someone is attempting to answer and existing problem AgentSituationReport, this method will take the answered AgentSituationReport and contact the one who originally logged the request. |
java.util.Vector |
getAgentHistory(javax.agent.AgentName agentName)
Returns all of the AgentSituationReports from the Logging Service that belong to a certain agent that are not in the problem state. |
java.util.Vector |
getAgentProblems(javax.agent.AgentName agentName)
Returns all of the AgentSituationReports from the Logging Service that belong to a certain agent that are in the problem state. |
java.util.Vector |
getAllLogs()
Return a Vector of all the AbleAgentSituationReports from the Logging Service. |
java.util.Vector |
getAllProblems()
Returns all of the AgentSituationReports from the Logging Service that are in the problem state. |
java.lang.String |
getBindingName()
Abstract method from org.jagent.service.util.RMIBasicService. |
void |
logAgentSituationReport(AbleAgentSituationReport theAbleAgentSituationReport,
AbleSecureKey key)
Log an AbleAgentSituationReport to the Logging Service, and notify all interested listeners about this added log. |
void |
refreshLocalFromPersistence(AblePersistenceSupport thePersistenceSupport,
java.lang.Object[] persistedRecords)
Takes the persisted Objects that are read in, and sets them locally. |
void |
removeAblePlatformServiceEventListener(AblePlatformServiceEventListener theListener)
Since this Verifiable Directory Service will be persisting listeners, AbleBasicService's removeAblePlatformServiceEventListener method must be overridden to handle the
removing of this service's listeners from persistence. |
void |
removeAgentLogs(javax.agent.AgentName agentName,
AbleSecureKey key)
Removes all of the AgentSituationReports that belong to a certain agent. |
void |
removeAgentSituationReports(java.util.Vector asrsToRemove,
AbleSecureKey key)
Removes AgentSituationReports from the Logging Service, and notify all interested listeners about these removals. |
java.util.Vector |
search(AbleAgentSituationReport asr)
Return a Vector of all of the AgentSituationReports that match the criteria supplied in the passed in AgentSituationReport. |
void |
terminateService(AbleSecureKey key)
When this service is terminated, there will be Logging Service specific cleanup that needs to be done. |
void |
updateAgentSituationReport(AbleAgentSituationReport oldLog,
AbleAgentSituationReport updatedLog,
AbleSecureKey key)
Update an AgentSituationReport in the Logging Service, and notify all interested listeners about this update. |
| Methods inherited from class com.ibm.able.platform.AbleBasicService |
|---|
getAblePlatformServiceEventListeners, getState, notifyAblePlatformServiceEventListeners, setState, thenNotifyAblePlatformServiceEventListeners |
| Methods inherited from class org.jagent.service.util.RMIBasicService |
|---|
bindServiceToRegistry, getServiceProperties, setServiceProperties, shutdown |
| Methods inherited from class java.rmi.server.RemoteObject |
|---|
equals, getRef, hashCode, toString, toStub |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface com.ibm.able.platform.RmiAblePlatformService |
|---|
getState |
| Methods inherited from interface com.ibm.able.platform.RmiAblePlatformServiceEventGenerator |
|---|
getAblePlatformServiceEventListeners |
| Constructor Detail |
public RmiAgentLoggingSystem()
throws java.lang.Exception
java.lang.Exception - On all errors calling the constructor of the super class.
On errors setting up the persistence support in ctorHelper.
On errors binding this service.
public RmiAgentLoggingSystem(javax.agent.service.ServiceProperties theServiceProperties)
throws java.lang.Exception
theServiceProperties - The properties that will help define this Service.
java.lang.Exception - On all errors calling the constructor of the super class.
On errors setting up the persistence support in ctorHelper.
On errors binding this service.
| Method Detail |
public java.lang.String getBindingName()
public void addAblePlatformServiceEventListener(AblePlatformServiceEventListener theListener)
throws AbleException
addAblePlatformServiceEventListener method must be overridden to handle the
adding of this service's listeners from persistence.
addAblePlatformServiceEventListener in interface RmiAblePlatformServiceEventGeneratoraddAblePlatformServiceEventListener in class AbleBasicServiceAbleException - On any error adding the listener.
public void removeAblePlatformServiceEventListener(AblePlatformServiceEventListener theListener)
throws AbleException
removeAblePlatformServiceEventListener method must be overridden to handle the
removing of this service's listeners from persistence.
removeAblePlatformServiceEventListener in interface RmiAblePlatformServiceEventGeneratorremoveAblePlatformServiceEventListener in class AbleBasicServiceAbleException - On any error adding the listener.
public void terminateService(AbleSecureKey key)
throws AbleException,
javax.agent.service.naming.NamingException
AbleBasicService's terminateService
method has been overridden to take care of this cleanup.
Since this service is persisting information, it's persistence support Object will do some cleanup when being terminated.
terminateService in interface RmiAblePlatformServiceterminateService in class AbleBasicServicekey - The key that is used to secure this communication.
AbleException - If the caller was not authorized to make this call.
javax.agent.service.naming.NamingException - On all naming errors.
public void refreshLocalFromPersistence(AblePersistenceSupport thePersistenceSupport,
java.lang.Object[] persistedRecords)
throws java.lang.Exception
AblePersistenceSupportProcessorThis method is called one time during the lifetime of this AblePersistenceSupportProcessor Object. This method will be called the first time a successful connection is made to the PlatformPersistenceService and the persisted Objects are read in.
refreshLocalFromPersistence in interface AblePersistenceSupportProcessorthePersistenceSupport - the object making the callback so that the processor can
tell which AblePersistenceSupport object is making the call.
persistedRecords - Object[] containing all of the rows of
the table this Object persists to.
java.lang.Exception - On any error locally restoring the persisted data.
public void logAgentSituationReport(AbleAgentSituationReport theAbleAgentSituationReport,
AbleSecureKey key)
throws java.rmi.RemoteException,
AgentLoggingException
RmiAgentLoggingServiceIf secure, the log request will proceed as long as the caller is authenticated.
The logging of duplicate AbleAgentSituationReports will fail.
logAgentSituationReport in interface RmiAgentLoggingServicetheAbleAgentSituationReport - The AgentSituationReport that is to be logged.key - The AbleSecureKey that secures communication.
java.rmi.RemoteException - On all remote errors.
AgentLoggingException - If the AbleAgentSituationReport to be logged is null.
If the caller is not authenticated.
If a duplicate AbleAgentSituationReport is already logged.
public void updateAgentSituationReport(AbleAgentSituationReport oldLog,
AbleAgentSituationReport updatedLog,
AbleSecureKey key)
throws java.rmi.RemoteException,
AgentLoggingException
RmiAgentLoggingServiceAn AgentSituationReport can only be updated if it is in the problem state. History logs may never be changed.
When secure, an AgentSituationReport in the problem state can only be updated by its own VerifiableAgentName.
This method call cannot be delegated. The VerifiableAgentName of the AgentSituationReport that is to be updated must directly make the call.
updateAgentSituationReport in interface RmiAgentLoggingServiceoldLog - The AgentSituationReport that is to be updated.updatedLog - The AgentSituationReport that is to replace the old
AgentSituationReport.key - The AbleSecureKey that secures communication.
java.rmi.RemoteException - On all remote errors.
AgentLoggingException - If the updated AbleAgentSituationReport is null.
If the caller is not authenticated.
If the log to be updated does not exist.
If the log being updated to already exists.
If the log we are updating is a history log.
If the caller is not the one who originally logged the log being updated.
public void removeAgentSituationReports(java.util.Vector asrsToRemove,
AbleSecureKey key)
throws java.rmi.RemoteException,
AgentLoggingException
RmiAgentLoggingServiceWhen secure and the AgentSituationReport is verifiable, an AgentSituationReport in the problem state can only be removed by it own VerifiableAgentName, so this method call cannot be delegated in this case.
An AgentSituationReport in the history state can be removed by anyone with equal or greater authority to the VerifiableAgentName of the AgentSituationReport. This call can be delegated in this case.
removeAgentSituationReports in interface RmiAgentLoggingServiceasrsToRemove - A Vector of all the AbleAgentSituationReports that
should be removed.key - The AbleSecureKey that secures communication.
AgentLoggingException - If the remove Vector is null.
If an AgentSituationReport that is to be removed does not exist.
If the caller is not authenticated.
If attempting to remove a problem log, and the caller is not the one who originally logged it.
If attempting to remove a history log, and the caller does not have equal to or greater authority as the one who originally logged it.
java.rmi.RemoteException - On all remote error.
public java.util.Vector getAllLogs()
throws java.rmi.RemoteException
RmiAgentLoggingService
getAllLogs in interface RmiAgentLoggingServicejava.rmi.RemoteException - On all remote errors.
public java.util.Vector getAllProblems()
throws java.rmi.RemoteException
RmiAgentLoggingService
getAllProblems in interface RmiAgentLoggingServicejava.rmi.RemoteException - On all remote errors.
public java.util.Vector getAgentHistory(javax.agent.AgentName agentName)
throws java.rmi.RemoteException
RmiAgentLoggingService
getAgentHistory in interface RmiAgentLoggingServiceagentName - The AgentName of the agent whose history logs will be
returned.
java.rmi.RemoteException - On all remote errors.
public java.util.Vector getAgentProblems(javax.agent.AgentName agentName)
throws java.rmi.RemoteException
RmiAgentLoggingService
getAgentProblems in interface RmiAgentLoggingServiceagentName - The AgentName of the agent whose problem logs will be
returned.
java.rmi.RemoteException - On all remote errors.
public void answerAgentRequest(AbleAgentSituationReport asr,
AbleSecureKey key)
throws AbleException,
java.rmi.RemoteException,
AgentLoggingException
RmiAgentLoggingService
answerAgentRequest in interface RmiAgentLoggingServiceasr - The answered problem AgentSituationReport.key - The key that is used to secure this communication.
java.rmi.RemoteException - On all remote errors.
AbleException - On errors coming back from the agent.
AgentLoggingException - If the answered AbleAgentSituationReport is null.
If the caller is not authenticated.
If the AbleAgentSituationReport that is being answered does not exist.
If unable to locate the agent who originally logged the request.
If using a History log to answer a request.
On any remote error calling the agent.
public void removeAgentLogs(javax.agent.AgentName agentName,
AbleSecureKey key)
throws java.rmi.RemoteException,
AgentLoggingException
RmiAgentLoggingServiceWhen secure, this method can only be called by the actaul agent that logged these logs. This method call cannot be delegated.
removeAgentLogs in interface RmiAgentLoggingServiceagentName - The AgentName of the agent that is to have all of it's
AgentSituationReports removed.key - The key that is used to secure this communication.
java.rmi.RemoteException - On all remote errors.
AgentLoggingException - If the agentName parameter is null.
If the caller is not authenticated.
public java.util.Vector search(AbleAgentSituationReport asr)
throws java.rmi.RemoteException,
AgentLoggingException
RmiAgentLoggingServiceIf fields in the AgentSituationReport are left as null, a match can contain anything in this field. Since timeSent is a primitive type and cannot be set to null, set it to zero to wildcard that field. There is no way to wildcard the search for the state.
search in interface RmiAgentLoggingServiceasr - The AgentSituationReport which represents the criteria
that will be searched for.
java.rmi.RemoteException - On all remote errors.
AgentLoggingException - If the search AgentSituationReport is null.
|
ABLE 2.3.0 07/13/2005 14:21:00 | |||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||||