Skip to main content

How to configure the maximum time taken to establish a binding

Summary
  • How to configure the maximum time taken to establish a binding
  • Binding establishment timings
  • Establish bindings
Environment Orbix 6.3
All supported platforms
Question/Problem Description How can the maximum time spent establishing a binding be configured?
Resolution There are a number of policies governing the time taken to establish a binding. These can be set with the following configuration variables:
policies:binding_establishment:initial_iteration_delay
Time, in milliseconds, between the first and second attempt to establish a binding.
Defaults to 100 milliseconds.
policies:binding_establishment:backoff_ratio
Degree to which delays between binding retries increase from one retry to the next. Defaults to 2.
policies:binding_establishment:max_binding_iterations
Number of times a client can try to establish a binding before raising a TRANSIENT exception. Defaults to 5.
policies:binding_establishment:max_forwards
Number of forward attempts that are allowed during binding establishment. Defaults to 20.
policies:binding_establishment:relative_expiry
Time, in milliseconds, allowed to establish a binding.
For example, take the following settings:
policies:binding_establishment:initial_iteration_delay = 100ms
policies:binding_establishment:backoff_ratio = 2
policies:binding_establishment:max_binding_iterations = 5
policies:binding_establishment:max_forwards = 20
policies:binding_establishment:relative_expiry = 1000ms
For this example, we will assume the binding will ultimately fail (allowing the above settings to come into play). As per the max_binding_iterations, the client will make 5 attempt to bind.
  • When the first attempt is not successful after 1 second (relative_expiry), the client will wait 100 milliseconds (initial_iteration_delay) before trying again.
  • When this second attempt is not successful after 1 second (relative_expiry), the client will wait 200 milliseconds (previous delay * backoff_ratio) before trying again.
  • When this third attempt is not successful after 1 second (relative_expiry), the client will wait 400 milliseconds (previous delay * backoff_ratio) before trying again.
  • When this fourth attempt is not successful after 1 second (relative_expiry), the client will wait 800 milliseconds (previous delay * backoff_ratio) before trying again.
  • Finally, when this fifth attempt is not successful after 1 second (relative_expiry), the client will return with a TRANSIENT error.

The above timings total 6500 milliseconds. This is the maximum amount of time the client will take to establish a binding, before throwing a transient exception.


Note that the server may throw other exceptions during the above procedure, which will greatly reduce the time taken before the client reports an exception.


#Orbix
#configuration
#Orbix6
#KnowledgeDocs