Cách thức thiết lập kết nối dữ liệu dự phòng (Failover data connection) trong Qlik

Một trong các giải pháp phổ biến để tăng tính chịu lỗi của nguồn dữ liệu là nhân bản dữ liệu trên nhiều máy chủ (server) khác nhau. Khi server chính gặp sự cố, hệ thống ngay lập tức sẽ chuyển qua server dự phòng để bảo đảm không làm gián đoạn việc truy vấn dữ liệu.

Đối với những giải pháp database hiện đại như Oracle, việc chuyển đổi sang hệ thống chịu lỗi được thực hiện mà không cần có thêm bất kỳ cài đặt nào ở lớp ứng dụng. Theo hình minh họa dưới đây, ứng dụng (Qlik Dashboard) sẽ giao tiếp trực tiếp với failover module của cụm server (cluster) Oracle. Việc kết nối đến database chính hay dự phòng là do failover module quyết định.

Tuy nhiên không phải lúc nào hệ thống cũng có tính năng này (ví dụ như server data chính và dự phòng không được điều phối bởi cùng một failover module chung).

Hiện tại, hầu hết các connection của Qlik cũng không hỗ trợ chức năng tự động chuyển đổi sang dữ liệu dự phòng khi dữ liệu chính gặp sự cố. Bài viết này sẽ hướng dẫn bạn đọc cách thiết lập failover connection trên các app của Qlik, bằng cách bắt lỗi trên kết nối dữ liệu chính và chuyển sang kết nối dữ liệu dự phòng theo các bước sau:

  1. Thiết lập 2 connections đến mỗi database.
  2. Đặt biến system ErrorMode = 0 để script có thể tiếp tục chạy khi lỗi kết nối xảy ra.
  3. Thử kết nối đầu tiên đến database chính
  4. Kiểm tra biến ScriptError để xem có xảy ra lỗi với kết nối đầu tiên hay không
  5. Nếu xảy ra lỗi, sử dụng kết nối còn lại đến database failover.
  6. Reset lại biến ErrorMode nếu cần để phát hiện lỗi cho phần còn lại của script.

Ví dụ sau đây là cách mình triển khai connection failover:

SET ErrorMode = 0; //Nếu xảy ra lỗi, tiếp tục chạy script
CONNECT To MainConnection;
IF ScriptError >0 then //Nếu xảy ra lỗi với connection, thử các bước sau đây
     SET ErrorMode = 1; // Nếu kết nối dự phòng cũng thất bại, dừng script và báo lỗi
     CONNECT TO FailoverConnection;
ENDIF
SET ErrorMode = 1; // Nếu không có lỗi, set lại biến ErrorMode = 1 để tiếp tục chạy script.

Để hiểu rõ hơn về các biến xử lý lỗi trong Qlik, bạn đọc có thể tìm hiểu thêm tại Help site của Qlik:

http://help.qlik.com/en-US/sense/November2017/Subsystems/Hub/Content/Scripting/ErrorVariables/ErrorVariables.htm

 Nguồn: https://vietqlikies.wordpress.com