External Agent COM API Reference Guide › About the External Agent COM API › WgnActiveImportConnector Object › Single-pass Processing Versus Deferred Completion
Single-pass Processing Versus Deferred Completion
Calls to WgnActiveImportConnector can use single-pass processing or two-pass processing (that is, the caller can enable 'deferred completion'. Deferred completion allows the caller greater control over which events are saved in the CMS database.
- Single-pass processing: When the call to ImportObject() or ImportObjectAync() returns, policy processing for that e-mail is fully complete and the e‑mail may already have been saved in the CMS database (if the e-mail activated any policy triggers configured to capture events).
- Deferred completion: Also known as 'two-pass processing'. When deferred completion is enabled, events cannot be saved to the CMS until the caller has assessed the outcome of any policy processing. This allows the caller to filter out communications that do not need archiving (for example, because they are exempt from compliance regulations).
For example, smart tags are applied to an e-mail. When the External Agent returns these smart tags to the calling application, the caller uses these smart tags to categorize the e‑mail. If the e-mail is in a category that does not require archiving (such as an Outlook meeting request), the caller can delete the e-mail and signal to the External Agent that the e-mail does not need saving in the CMS database.
Deferred completion is controlled by the allowDeferredCompletion parameter in the ImportObject() and ImportObjectAsync() methods. If deferred completion:
- Is enabled, events processed by the policy engine will not be committed to the CMS database until the caller has processed the results of policy analysis. The caller calls methods in the IWgnImportConnectorDeferredCompletion interface to instruct the External Agent to save (commit) or not save (rollback) the e-mail to the CMS database.
- Is not enabled, events processed by the policy engine can be committed to the CMS database without waiting for the caller to process the results of policy analysis.
When deferred completion is enabled, the e-mail can be committed synchronously or asynchronously.
- Synchronous: If the e-mail is committed synchronously by calling Commit(), the call is blocked while the e-mail is committed. The call is only returned when processing is complete.
- Asynchrounous: If the e-mail is committed asynchronously by calling CommitAsync(), the call will not block while the External Agent processes the commit. The caller must pass the IWgnImportConnectorCallback interface to the External Agent API so it can inform the caller of the result of the commit.
Important! The synchronous mode of the commit must match that of the import. So if an e-mail is imported using ImportObject(), it must be committed using Commit(), and if an e-mail is imported using ImportObjectAsync(), it must be committed using CommitAsync().
Copyright © 2014 CA.
All rights reserved.
|
|