Monitor Asynchronous Actions using Event Handlers

The fetch actions sent to a connector are asynchronous. Asynchronous actions do not run immediately, but are added to a queue. This means that the person or application that sends the action does not receive an immediate response. However, you can configure the connector to call an event handler when an asynchronous action starts, finishes, or encounters an error.

You can use an event handler to:

  • return data about an event back to the application that sent the action.
  • write event data to a text file, to log any errors that occur.

You can also use event handlers to monitor the size of asynchronous action queues. If a queue becomes full this might indicate a problem, or that applications are making requests to Lync Connector faster than they can be processed.

Lync Connector can call an event handler for the following events.

OnStart The OnStart event handler is called when Lync Connector starts processing an asynchronous action.
OnFinish The OnFinish event handler is called when Lync Connector successfully finishes processing an asynchronous action.
OnError The OnError event handler is called when an asynchronous action fails and cannot continue.
OnQueueEvent

The OnQueueEvent handler is called when an asynchronous action queue becomes full, becomes empty, or the queue size passes certain thresholds.

  • A QueueFull event occurs when the action queue becomes full.
  • A QueueFilling event occurs when the queue size exceeds a configurable threshold (QueueFillingThreshold) and the last event was a QueueEmpty or QueueEmptying event.
  • A QueueEmptying event occurs when the queue size falls below a configurable threshold (QueueEmptyingThreshold) and the last event was a QueueFull or QueueFilling event.
  • A QueueEmpty event occurs when the action queue becomes empty.

Lync Connector supports the following types of event handler:

  • The TextFileHandler writes event data to a text file.
  • The HttpHandler sends event data to a URL.
  • The LuaHandler runs a Lua script. The event data is passed into the script.