Một lần chạy đồng bộ có thể dừng giữa chừng vì một worker khởi động lại, hệ thống bên kia gặp sự cố hoặc một bản ghi bị từ chối. Sau khi một worker dừng hoặc một sự cố tạm thời qua đi, Tajo tự tiếp tục đồng bộ. Tajo không gửi lại các bản ghi đã ghi trong bảy ngày gần nhất. Trang này cho biết Tajo làm gì, bạn thấy gì trên trang của đồng bộ, và vài trường hợp bạn cần hành động.
Kiểm tra nhanh Mở đồng bộ từ Syncs and mappings trong Connections và đọc lần chạy mới nhất trong Run history. Một lần chạy thất bại sẽ cho biết điều gì đã xảy ra và cần làm gì tiếp theo.
Tajo tự làm gì
Cursor. Một lần chạy đọc nguồn theo từng lô, bắt đầu từ cursor đã lưu của đồng bộ. Cursor chỉ tiến lên ở cuối một lô khi mọi bản ghi trong lô đó đều đã đến nơi. Nếu lần chạy thất bại, vị trí cuối cùng mà nó đạt được trọn vẹn sẽ được giữ lại. Lần chạy tiếp theo bắt đầu từ đó, nên lô bị gián đoạn được đọc lại thay vì bị bỏ qua.
Sổ giao nhận. Trước khi một bản ghi được ghi, nó nhận một khóa giao nhận. Khóa là một giá trị băm của đồng bộ, nguồn, cursor của trang, vị trí của bản ghi trên trang và chính bản ghi, nên nó không chứa dữ liệu cá nhân. Trước khi gọi đến đích, khóa được giữ chỗ. Khi lần ghi thành công, khóa được đánh dấu là hoàn tất và giữ trong bảy ngày. Khóa không phụ thuộc vào lần chạy nào đang hỏi, nên một lần thử lại hoặc một lần chạy theo lịch sau đó sẽ tạo ra cùng một khóa cho cùng một bản ghi. Trong bảy ngày đó, kết quả đã lưu được dùng lại và đích không bị gọi lại. Đó là lý do một lô được phát lại không bị ghi hai lần.
Mỗi lúc một lần chạy. Mỗi đồng bộ có một quyền thuê (lease), do lần chạy đang diễn ra giữ trong suốt thời gian tồn tại của nó. Quyền thuê có token riêng và thời hạn 15 phút, được gia hạn mỗi 5 phút khi lần chạy đang làm việc. Một lần chạy mất quyền thuê sẽ dừng trước lần ghi hoặc điểm kiểm tra (checkpoint) tiếp theo, để tránh ghi hai lần. Khi một worker dừng, quyền thuê của nó không còn được gia hạn và hết hạn trong vòng 15 phút.
Tự động thử lại. Một lần chạy trong hàng đợi bị thất bại sẽ được tối đa năm lần thử. Tajo chờ 60 giây trước lần thử thứ hai, rồi 120, 240 và 480 giây. Một lần thử lại hoặc lần chạy thử do bạn tự bắt đầu chỉ chạy một lần. Lần chạy va chạm với một lần chạy đang diễn ra sẽ không được thử lại, và lần chạy có phiên bản đã xuất bản hoặc kết nối không còn hợp lệ cũng vậy.
Lần chạy bị treo. Với đồng bộ mà Tajo chạy theo lịch, một lần chạy sẽ bị đóng và một lần chạy mới được đưa vào hàng đợi khi nó đã bắt đầu hơn một giờ trước và không còn giữ quyền thuê. Lần chạy bị đóng hiển thị “The run stopped reporting progress and was closed.” (lần chạy đã ngừng báo cáo tiến độ và bị đóng). Như vậy, quyền thuê của một lần chạy bị dừng kéo dài tối đa 15 phút, và lần chạy bị treo của một đồng bộ theo lịch được thay thế sau một giờ. Tìm hiểu về đồng bộ dữ liệu liệt kê những đồng bộ nào chạy theo lịch.
Tạm dừng sau nhiều lần thất bại. Nếu năm lần chạy đã kết thúc gần nhất kể từ lần cuối đồng bộ được thay đổi đều thất bại, Tajo sẽ tạm dừng đồng bộ. Trang của đồng bộ hiển thị “Paused automatically by the failure circuit breaker” kèm lỗi cuối cùng. Chỉ cần một lần chạy thành công là bộ đếm được đặt lại. Không có gì tự khởi động lại một đồng bộ đã tạm dừng: nó giữ trạng thái tạm dừng cho đến khi bạn khắc phục nguyên nhân và xuất bản lại.
Kiểm tra hằng giờ. Mỗi giờ, vào phút thứ 13, Tajo cảnh báo đội ngũ của chính mình về mọi không gian làm việc có đồng bộ đang hoạt động nhưng không có lần chạy thành công nào trong 24 giờ qua. Điều này bao gồm cả không gian làm việc chưa ghi nhận lần chạy nào. Cảnh báo được gửi một lần, và chỉ gửi lại sau khi có một lần chạy thành công. Không gian làm việc có đồng bộ đang hoạt động lâu nhất được bật hoặc thay đổi chưa đầy 24 giờ trước thì chưa được kiểm tra. Cảnh báo này đến Tajo chứ không đến bạn, và nó không thay đổi đồng bộ của bạn.
Bạn thấy gì
Mở đồng bộ từ Syncs and mappings. Run history liệt kê từng lần chạy với số bản ghi đã ghi trên số bản ghi đã đọc, số thất bại, thời lượng và thời điểm bắt đầu. Trạng thái là Queued, Running, Succeeded, Partial (một số bản ghi thất bại) hoặc Failed.
- Một lần chạy đang chạy mà 2 phút chưa báo cáo tiến độ sẽ hiển thị “Waiting for a fresh progress update” (đang chờ cập nhật tiến độ mới).
- Một lần chạy thất bại hiển thị một câu về điều đã xảy ra, một câu về việc cần làm tiếp theo, tên lỗi và id của lần chạy.
- View DLQ trên trang Syncs liệt kê các lần chạy thất bại và thành công một phần của mọi đồng bộ, mỗi lần có một nút Retry.
Cần làm gì
- Đọc lần chạy thất bại mới nhất. Dòng “cần làm gì” của nó là bước tiếp theo. Bảng bên dưới liệt kê các lỗi bạn dễ gặp nhất.
- Nếu nó ghi “Nothing” (không cần làm gì), hãy chờ. Lần chạy theo lịch tiếp theo sẽ tự khôi phục.
- Nếu nó bảo chạy lại đồng bộ, hãy nhấn Retry trên lần chạy thất bại trong View DLQ. Lần thử lại bắt đầu từ cursor đã lưu, nên các lô đã ghi sẽ không bị ghi lại. Một lần thử lại thành công sẽ đưa lần chạy thất bại ra khỏi danh sách.
- Nếu đồng bộ đã bị tạm dừng, hãy khắc phục nguyên nhân mà thông báo nêu ra, rồi xuất bản lại đồng bộ bằng Publish sync hoặc Request publish approval.
- Nếu cùng một lỗi quay lại, hãy gửi cho chúng tôi id của lần chạy hiển thị bên dưới lần chạy thất bại.
Mỗi tên lỗi tương ứng với một câu về điều đã xảy ra, một câu về việc cần làm tiếp theo, và ai là người sửa: bạn hay Tajo.
| Tên lỗi | Điều đã xảy ra | Cần làm gì | Ai sửa |
|---|---|---|---|
lease_conflict | Một lần chạy khác của đồng bộ này đang diễn ra. | Không cần làm gì. Lần chạy đang diễn ra sẽ hoàn tất; lần chạy theo lịch tiếp theo bắt đầu bình thường. | Tajo |
lease_lost | Lần chạy mất suất của nó giữa chừng và đã dừng để tránh ghi hai lần. | Chạy lại đồng bộ. | Tajo |
lease_unavailable | Đồng bộ không thể giữ suất chạy của nó. | Chạy lại đồng bộ. Nếu vẫn thất bại theo cùng cách, hãy gửi cho chúng tôi id của lần chạy. | Tajo |
stale_job_swept | Lần chạy đã ngừng báo cáo tiến độ và bị đóng. | Chạy lại đồng bộ. | Tajo |
provider_rate_limited | Hệ thống bên kia yêu cầu chúng tôi chậm lại. | Không cần làm gì. Chờ lần chạy theo lịch tiếp theo. | Tajo |
provider_unavailable | Hệ thống bên kia không khả dụng hoặc không trả lời kịp thời. | Không cần làm gì. Chờ lần chạy theo lịch tiếp theo. Nếu thất bại theo cùng cách trong một ngày, hãy gửi cho chúng tôi id của lần chạy. | Tajo |
connection_missing | Một công cụ mà đồng bộ sử dụng chưa được kết nối trong không gian làm việc này; lần chạy nêu tên công cụ đó. | Kết nối công cụ, rồi chạy lại đồng bộ. | Bạn |
connection_unauthorized | Hệ thống bên kia từ chối quyền truy cập của chúng tôi. | Kết nối lại kết nối đó để nhận ủy quyền mới, rồi chạy lại đồng bộ. | Bạn |
destination_rejected | Đích đã từ chối mọi bản ghi trong lần chạy này. | Đối chiếu ánh xạ trường với các trường bắt buộc và định dạng của đích, rồi chạy lại đồng bộ. | Bạn |
node_failed | Một bước của đồng bộ thất bại khi đọc, chuyển đổi hoặc ghi bản ghi. | Mở lần chạy để xem bước nào thất bại và vì sao, sửa điều đó, rồi chạy lại đồng bộ. | Bạn |
attestation_rule_not_active | Đồng bộ này đang tạm dừng. | Tiếp tục đồng bộ để chạy nó. | Bạn |
attestation_publication_not_attested | Phiên bản này của đồng bộ chưa được xuất bản. | Xuất bản đồng bộ. Các thay đổi của một đồng bộ chỉ chạy sau khi được xuất bản. | Bạn |
unclassified_exception | Đồng bộ thất bại vì một lý do chúng tôi chưa phân loại. | Chạy lại đồng bộ. Nếu vẫn thất bại theo cùng cách, hãy gửi cho chúng tôi id của lần chạy. | Tajo |
Điều gì có thể sai
- Retry trả lời “This sync rule is already running.” Một lần thử lại hoặc lần chạy thử do bạn bắt đầu sẽ bị từ chối khi bất kỳ lần chạy nào của đồng bộ đang hiển thị Queued hoặc Running, kể cả lần chạy có worker đã dừng. Với đồng bộ mà Tajo chạy theo lịch, lần chạy đó sẽ bị đóng và thay thế khi nó đã bắt đầu hơn một giờ trước. Với mọi đồng bộ khác, hãy gửi cho chúng tôi id của lần chạy.
- Một đồng bộ thất bại hơn bảy ngày. Sau bảy ngày, sổ giao nhận quên một lần ghi đã hoàn tất. Một lô được phát lại sau thời điểm đó có thể ghi lại bản ghi, vì vậy hãy kiểm tra đích xem có liên hệ trùng lặp không.
- Một đồng bộ im lặng trong khi đồng bộ khác vẫn chạy. Kiểm tra hằng giờ theo dõi không gian làm việc, không theo dõi từng đồng bộ. Một đồng bộ khỏe mạnh sẽ che đi một đồng bộ im lặng trong cùng không gian làm việc, vì vậy hãy đọc Run history của từng đồng bộ.
- Bạn muốn giới hạn khác. Việc tạm dừng sau năm lần thất bại và kiểm tra 24 giờ được đặt cho toàn bộ hệ thống Tajo, không theo từng đồng bộ.