### Automatic Continuation and Referral Handling

The interface provides automatic handling of continuation references and referrals in order to reduce the burden on application programs. These facilities can be inhibited to meet special needs.

A continuation reference describes how the performance of all or part of an operation can be continued at a different DSA or DSAs. A single continuation reference returned as the entire response to an operation is called a referral and is classified as an error. One or more continuation references can also be returned as part of DS_PARTIAL_OUTCOME_QUAL returned from a ds_list( ) or ds_search( ) operation.

A DSA returns a referral if it has administrative, operational, or technical reasons for preferring not to chain. It can return a referral if DS_CHAINING_PROHIB is set in the DS_C_CONTEXT, or instead it can report a service error (DS_E_CHAINING_REQUIRED) in this case.

By default, the implementation uses any continuation references it receives to try to contact the other DSA or DSAs, enabling it to make further progress in the operation, whenever practical. It only returns the result, or an error, to the application after it has made this attempt. Note that continuation references can still be returned to the application; for example, if the relevant DSA cannot be contacted.

The default behavior is the simplest for most applications but, if necessary, the application can cause all continuation references to be returned to it. It does this by setting the value of the OM attribute DS_AUTOMATIC_CONTINUATION in the DS_C_CONTEXT to OM_FALSE.

###