The idle migration timer and session idle timer configuration parameters control when idle clients migrate. The sum of these two parameters determines the upper limit for the number of seconds during which migration is expected to complete.
The default setting for idle migration timer is 60, measured in seconds. The default setting for session idle timer is 600, measured in seconds.
If you set idle migration timer to 0, the instance closes the connection on which a migration request was issued immediately after it sends the migration request. If you set session idle timer to 0, the instance invalidates any idle migration not completed before idle migration timer expires.
Setting session idle timer to a high value increases the chance for idle connections to migrate successfully. However, the instance must preserve the contexts of the migrating clients for a long time. It also means that setting both idle migration timer and session idle timer to 0 disables migration. See the System Administration Guide: Volume 1.
The examples below describe various configurations for idle migration timer and session idle timer.
If an instance issues a migration request against an idle client that cannot process asynchronous notifications, and the user or the application issues a command on the client before the expiration of the idle migration timer, the client migrates immediately and the command is executed on the destination instance.
“Read ahead” clients read any pending data from the network before the application requests it.
The instance closes the connection to the client, if the following are all true:
Both idle migration timer and session idle timer are set to their default values.
An instance issues a migration request against an idle, non read-ahead client.
The client remains idle for the duration of idle migration timer.
If a command is issued on the client during the first 600 seconds (default value of idle migration timer) following the closure of the connection by the instance, the client migrates successfully and the command is executed on the target instance.
An instance closes the connection to the client if the following are true:
Both idle migration timer and session idle timer are set to their default values.
An instance issues a migration request against an idle, non read-ahead client.
No command is issued against the client before the expiration of the idle migration timer.
An instance invalidates the migration if the following are true:
Both idle migration timer and session idle timer are set to their default values.
An instance issues a migration request against an idle, non read-ahead client.
No command is issued against the client before idle migration timer expires.
The client attempts to migrate as soon as it detects the migration request, because a command is issued. However, the instance rejects the migration request and the client tries to continue on the initial instance. Because the connection to the instance is closed (idle migration timer timed out), the client attempts an HA failover if it has HA capability, otherwise, it reports a disconnect to the application.
If an instance issues a migration request against a idle, non-read-ahead client, the instance closes the connection to the client immediately after sending the migration request. If a command is issued against the client during the initial 600 seconds, the client migrates successfully, otherwise, it fails in the same manner described in the previous bullet.
The instance issues a migration request against an idle, non-read-ahead client. If a command is issued against the client before idle migration timer expires, the client migrates successfully. However, if no command is issued before idle migration timer expires, the client can migrate, since session idle timer is set to 0.
If both parameters are set to 0, neither instance migrates clients.