You can use forceModificationMode=REPLACE to normalize all requests to REPLACE requests only. This is valuable for connectors and endpoints that can accept only REPLACE requests, including the SAP connector. For more information about this setting, see Updating an Object.
Identity Manager splits DELTA requests mentioning multiple objects into multiple separate requests, to allow for different workflows for each change. However, this splitting can cause race conditions in which DELTA requests can end up overwriting each other.
To avoid this problem, when the JCS receives multiple requests targeting the same object, it locks those requests to permit only one request being processed at a time. Each lock is keyed to the connector-speak Distinguished Name of the target object. The JCS maintains these locks in a cache.
However, this locking works only for connectors within a single JCS instance. If you have multiple JCS instances running, and connectors from each instance are targeting the same endpoint, you might see problems due to race conditions.
Note: CA Identity Manager uses DELTA and splits, for communications between its internal components. The forceModificationMode setting affects requests only when they are sent from the connector to the endpoint.
Example: Add roles to an SAP account
The SAP connector can accept REPLACE requests only, so this connector uses forceModificationMode=REPLACE.
This ensures that each request is fully processed before the next is sent. If these fifteen requests were sent at the same time without locking, some would probably overwrite others, leading to some roles not being added to the account.
If you are writing or modifying your own connectors and you need to avoid race conditions, you can use the same cache of locks.
To use it, call the MetaConnector.getModifyMonitorCache() method. The key is the connector-speak DN of the target object. You can then use normal Java synchronize calls on the object returned from the cache to lock.
Copyright © 2011 CA. All rights reserved. | Email CA Technologies about this topic |