Reconfiguring endpoints
The Qlik Enterprise Manager SDK provides a method for overriding the source endpoint settings in a Replicate task with settings from another endpoint of the same type. Such functionality may be useful in the event of database failover or when migrating to a different environment, for example.
Using this method requires you to set up relevant Qlik Replicate task(s) with three separate source endpoints - two inactive source endpoints defined with the primary and secondary database connection settings, and one active source endpoint (initially defined with the primary database connection settings).
Full instructions are provided in Setting up the Replicate task and Switching to the secondary Replicate endpoint below.
In this appendix, the term "Primary" denotes the database in use before the switchover, whereas the term "Secondary" denotes the database in use after the switchover.
Supported with the Oracle source endpoint only.
The method name differs according to the SDK type:
- REST SDK: AEMReconfigureEndpointNoWait
- .NET SDK: ReconfigureEndpointNoWait
- Python SDK: reconfigure_endpoint_no_wait
Setting up the Replicate task
To use this method, you need to define three separate endpoints:
- Endpoint 1: Points to the primary database.
- Endpoint 2: Points to the secondary database.
- Endpoint 3: This is a duplicate of Endpoint 1. Endpoint 3 serves as the source endpoint for the Replicate task(s) and will be updated with the settings of Endpoint 2 or Endpoint 1 (when reverting to the primary database) when the method is called.
To set up the Replicate task:
Before starting the procedure, you need to allocate a name for the source endpoint (referred to as Endpoint 3 above). This is because the source endpoint name forms part of the primary and secondary endpoint names (referred to above as Endpoint 1 and Endpoint 2 respectively), which are defined before the source endpoint.
-
Define a new endpoint pointing to the primary database and name it using the following format:
EndpointName__ConfigurationName, for example, MyOracle__PrimaryOracle.
where EndpointName is the name of the source endpoint and ConfigurationName is the name of this endpoint.
- Set the internal parameter supportResetLog in the Advanced tab of the endpoint connection settings.
-
Define another endpoint pointing to the secondary database and name it using the following format:
EndpointName__ConfigurationName, for example, MyOracle__SecondaryOracle.
where EndpointName is the name of the source endpoint and ConfigurationName is the name of this endpoint.
- Set the internal parameter supportResetLog in the Advanced tab of the endpoint connection settings.
-
Define the source endpoint by duplicating the endpoint pointing to the primary database (defined in Step 1). Give it the name that you allocated for it before starting this procedure, for example, MyOracle.
- Set up and run the Replicate task(s) using the source endpoint defined in Step 5 above.
Switching to the secondary Replicate endpoint
The procedures below explain how to switch to the secondary Replicate endpoint. The first procedure is suitable for most use cases, although you may want to perform the second procedure should you desire to manually stop and resume the Replicate tasks.
Procedure 1: Failover or planned switchover
Make sure that the secondary database has fully taken over and then call the method - using a script (recommended) or manually - with the appropriate parameters.
Procedure 2: Planned switchover with manual control
- Stop the task(s) using the source endpoint.
- Switch over to the secondary database.
-
Make sure that the secondary database has fully taken over and then call the method with the appropriate parameters.
- If the method completes successfully, resume the task(s) manually.
For a description of the parameters, see the section for the SDK you are working with.
Reverting to the primary Replicate endpoint
To revert to the primary endpoint, you simply need to perform one of the procedures described in Switching to the secondary Replicate endpoint described above. However, when calling the method, specify the name of the primary endpoint (instead of the secondary endpoint) as the configuration parameter.