The agent framework ensures that only one entry point is running for a given resource at one time. If multiple requests are received or multiple events are scheduled for the same resource, the agent queues them and processes them one at a time. An exception to this behavior is an optimization such that the agent framework discards internally generated periodic monitoring requests for a resource that is already being monitored or that has a monitor request pending.
The agent framework is multithreaded. This means a single agent process can run entry points for multiple resources simultaneously. However, if an agent receives a request to take a given resource offline and simultaneously receives a request to close it, it calls the offline
entry point first. The close
entry point is called only after the offline
request returns or times out. If the offline
request is received for one resource, and the close
request is received for another, the agent can call both simultaneously.
The entry points supported by agent framework are described in the following sections. With the exception of monitor
, all entry points are optional. Each may be implemented in C++ or scripts.