HandyCafe Docs
owner it-admin

Cài đặt Máy khách Cũ

HandyCafe có thể chạy song song với các cài đặt máy khách V3 và V4 cũ mà không gây gián đoạn. Trang Cài đặt Máy khách Cũ điều khiển hai tính năng khác nhau:

  1. Runtime Protocol. Bật các bộ lắng nghe mạng để máy khách V3 và V4 có thể kết nối tới máy chủ này trên các cổng gốc của chúng.
  2. Database Migration. Tùy chọn nhập hội viên, giá cả, sản phẩm, đơn hàng, giao dịch và nhật ký từ một cài đặt cục bộ cũ vào cơ sở dữ liệu HandyCafe mới. Chỉ hỗ trợ trên Windows.

Hai tính năng này độc lập với nhau. Bạn có thể bật hỗ trợ thời gian chạy mà không di chuyển dữ liệu, di chuyển dữ liệu mà không bật hỗ trợ thời gian chạy, hoặc làm cả hai.

Phần Runtime Protocol

Enable Legacy Client Support

Một công tắc tổng ở đầu phần này. Khi bật, máy chủ sẽ khởi động ba bộ lắng nghe mạng:

  • Một bộ lắng nghe UDP trên nhóm multicast đã cấu hình.
  • Một bộ lắng nghe lệnh TCP trên UDP port + 2.
  • Một bộ lắng nghe truyền file TCP trên UDP port + 7.

Tắt công tắc sẽ dừng cả ba bộ lắng nghe theo nguyên tử. Bạn có thể chỉnh số cổng hoặc mã hóa khi đang tắt, rồi bật lại để áp dụng thay đổi.

Các trường Cấu hình

Trường Mặc định Mô tả
Auth Key HANDYCAFE Khóa dùng chung gồm 10 ký tự. Mọi frame đi vào và đi ra đều mang chuỗi này. Những frame không khớp sẽ bị loại bỏ. Tất cả máy khách cũ của bạn phải dùng cùng khóa.
UDP Multicast IP 230.4.4.46 Nhóm multicast dùng cho beacon phát hiện máy khách và cho việc phát lệnh qua UDP. Được hard-code trong hầu hết bản build máy khách cũ.
Server UDP Port 710 Cổng UDP mà máy chủ lắng nghe beacon và lệnh từ máy khách. Máy khách cũ sẽ gửi tới cổng này.
Client UDP Port 711 Cổng UDP mà máy khách cũ lắng nghe. Máy chủ gửi lệnh quản lý unicast tới cổng này trên IP máy khách đã phát hiện.
Encoding cp1254 Bộ mã ký tự cho các trường chuỗi trong wire-format. Dùng cp1254 cho cài đặt Thổ Nhĩ Kỳ, cp1252 cho Tây Âu. Giá trị lạ sẽ quay về cp1254 kèm cảnh báo trong log máy chủ.
Server Version 3.4.01 Chuỗi phiên bản được broadcast trong mọi beacon UDP. Một số máy khách cũ sẽ từ chối frame từ các phiên bản không nhận ra. Hãy đặt khớp với chuỗi phiên bản của máy chủ gốc.
Protocol Variant STE Lựa chọn wire format. Xem phần so sánh biến thể bên dưới.
Inactivity Timeout 10 Giây. Bộ giám sát theo MAC. Nếu không có traffic từ máy khách trong khoảng này, máy khách sẽ bị đánh dấu ngoại tuyến. Mức 10 giây phù hợp cho các máy khách cũ phát beacon mỗi 2 hoặc 3 giây.

Các cổng được suy ra

Bên dưới biểu mẫu, trang sẽ hiển thị một dòng chỉ đọc cho các cổng TCP suy ra:

TCP Command Port: 712   File Transfer Port: 717

Các cổng này được tính từ cổng UDP của máy chủ. Bạn không cấu hình riêng chúng. Nếu đổi Server UDP Port sang giá trị khác, các cổng suy ra sẽ thay đổi theo.

Protocol Variant

Trường Protocol Variant chọn wire format mà máy chủ sẽ dùng. Hãy chọn biến thể khớp với cách máy chủ cũ của bạn được xây dựng.

Biến thể Khi nào dùng
STE (Smart/Turbo Edition) Cơ sở mã legacy hiện đại. Thêm prefix thông tin giấy phép dài 70 byte vào cấu trúc frame. Kích thước frame là 1337 byte. Chọn nếu bản cài đặt cũ dùng bản Smart hoặc Turbo Edition.
Standard Bản legacy nền tảng thuần túy. Kích thước frame là 1267 byte, không có prefix thông tin giấy phép. Chỉ chọn nếu bản cài đặt cũ là Standard edition không có đăng ký giấy phép.

Chọn sai biến thể sẽ làm frame bị bỏ hoặc đọc sai. Triệu chứng có thể là máy khách vẫn online nhưng bỏ qua mọi lệnh, hoặc dữ liệu lệnh bị lệch 70 byte.

Chạy song song với máy khách hiện đại

Các cổng legacy (710, 711, 712, 717) hoàn toàn tách biệt với các cổng giao thức HandyCafe hiện đại (TCP 5001, 5002, 5003, UDP 5004). Hai ngăn xếp giao thức chạy đồng thời mà không xung đột. Bạn có thể trộn máy khách cũ và mới trên cùng một LAN và quản lý chúng từ cùng Bảng Quản trị.

Áp dụng thay đổi

Mọi trường trong phần Runtime Protocol được lưu bằng nút Save toàn cục ở cuối trang. Khi lưu, máy chủ sẽ:

  1. Dừng ba bộ lắng nghe legacy nếu chúng đang chạy.
  2. Xác thực Auth Key (không được rỗng).
  3. Xây dựng cấu hình bộ lắng nghe mới từ các trường đã cập nhật.
  4. Khởi động lại các bộ lắng nghe đồng thời.
  5. Gửi thông báo khi cả ba đã online trở lại.

Nếu một cổng đã bị tiến trình khác sử dụng, máy chủ sẽ báo lỗi và công tắc sẽ bật lại thành tắt. Hãy kiểm tra firewall và các dịch vụ khác bằng netstat và chọn một dải cổng còn trống.

Phần Database Migration (Chỉ Windows)

Tính năng này chỉ khả dụng khi HandyCafe chạy trên Windows. Trên macOS và Linux, phần này sẽ hiển thị thông báo: "Database migration is supported on Windows only."

Phát hiện

Khi mở, máy chủ sẽ quét hệ thống của bạn để tìm bản cài đặt cũ. Việc phát hiện kiểm tra:

  • Registry và các đường dẫn cài đặt phổ biến như Program Files\HandyCafeC:\HandyCafe.
  • Tệp cơ sở dữ liệu nằm cạnh bản cài đặt.
  • Các file cấu hình INI trong thư mục cài đặt.

Khi phát hiện thành công, trang sẽ hiển thị:

Nhãn Ý nghĩa
Install Path Nơi bản cài đặt cũ nằm trên đĩa.
Database Path Đường dẫn đầy đủ tới file cơ sở dữ liệu cũ.
Server Version Phiên bản được phân tích từ cấu hình cũ.
INI File Count Số file cấu hình được phát hiện. Hữu ích để kiểm tra nhanh xem bản cài đặt có đầy đủ không.

Nếu không phát hiện thấy bản cài đặt nào, trang sẽ hiển thị "No legacy installation detected." Bạn vẫn có thể bật hỗ trợ thời gian chạy; chỉ là tính năng di chuyển không có gì để nhập.

Trạng thái Di chuyển

Trang theo dõi lịch sử di chuyển:

Trạng thái Ý nghĩa
never Bạn chưa chạy di chuyển lần nào.
in_progress Một lần di chuyển đang chạy. Đừng đóng máy chủ trong trạng thái này.
completed Lần di chuyển gần nhất kết thúc không có cảnh báo.
completed_with_warnings Lần di chuyển gần nhất đã hoàn tất nhưng có một số bản ghi bị bỏ qua, ví dụ do lỗi mã hóa hoặc ngày giờ không hợp lệ. Hãy xem cảnh báo trước khi tiếp tục.
undone Lần di chuyển gần nhất đã được hoàn tác.

Sau lần chạy thành công đầu tiên, nút Start Migration sẽ đổi nhãn thành Re-run Migration.

Những gì được Di chuyển

Bảng Mô tả
Members Hồ sơ khách hàng với tên, thông tin liên hệ và số dư tài khoản.
Pricing Bảng giá và các mức giá theo giờ.
Products Mục trong danh mục sản phẩm.
Orders Lịch sử đơn hàng có tham chiếu đến phiên.
Transactions Các bản ghi sổ cái với dấu thời gian, số tiền và phương thức thanh toán.
Logs Các mục kiểm toán và cảnh báo từ cơ sở dữ liệu cũ.

Cam kết "Files Safe"

Trang hiển thị một thông báo màu xanh: "Các file cơ sở dữ liệu gốc không bị xóa. Bạn có thể an toàn xóa chúng sau khi xác nhận quá trình di chuyển." Việc di chuyển chỉ đọc trên nguồn. Ngay cả khi bạn chạy di chuyển nhiều lần, cơ sở dữ liệu legacy gốc vẫn không bị động tới. Điều này cho phép bạn thử nhập, xem lại số lượng và quay lại mà không rủi ro.

Start, Re-run và Undo

  • Start Migration. Mở một hộp thoại tiến trình. Hộp thoại hiển thị giai đoạn hiện tại và số bản ghi đã xử lý khi quá trình nhập chạy. Đừng đóng HandyCafe trong lúc này.
  • Re-run Migration. Có sau khi chạy xong. Chạy lại quá trình nhập từ đầu. Kết quả nhập mới sẽ thay thế dữ liệu trước đó trong HandyCafe.
  • Undo Migration. Có sau khi chạy xong. Mở hộp thoại xác nhận. Khi xác nhận, mọi dòng đã di chuyển sẽ bị xóa khỏi HandyCafe. Nguồn legacy không bị đụng tới. Sau khi hoàn tác, trạng thái trở lại never.

Completed with Warnings

Nếu quá trình di chuyển kết thúc với completed_with_warnings, một banner vàng sẽ xuất hiện cùng liên kết Details. Nhấp để mở danh sách các bản ghi bị bỏ qua kèm lý do. Các lý do thường gặp:

  • Encoding mismatch. Dòng nguồn chứa ký tự không giải mã sạch bằng bộ mã đã cấu hình. Hãy đổi trường encoding (cp1254 hoặc cp1252) và chạy lại di chuyển.
  • Malformed dates. Một số bản ghi cũ có dấu thời gian không hợp lệ. Chúng sẽ bị bỏ qua để các dòng hợp lệ vẫn được nhập.
  • Duplicate keys. Một bản ghi có cùng định danh đã tồn tại trong HandyCafe. Quá trình di chuyển giữ bản ghi hiện có và bỏ qua bản sao.

Mẹo

  • Hãy dừng máy chủ legacy trước khi chạy di chuyển. Nếu hệ thống cũ vẫn đang ghi vào cơ sở dữ liệu, quá trình nhập có thể thấy dữ liệu cũ hoặc ghi dở dang.
  • Khớp trường Encoding với locale cũ của bạn trước lần di chuyển đầu tiên. Đổi nó sau khi dữ liệu đã được nhập sẽ không sửa ngược lại những tên đã bị hỏng.
  • Luôn chạy một lần di chuyển thử trước. Kiểm tra số lượng bản ghi trong "Last Counts" và xem nhanh vài dòng hội viên và giao dịch trước khi chuyển nhân viên sang hệ thống mới.
  • Bật hỗ trợ thời gian chạy và giữ các máy khách cũ kết nối trong một giai đoạn chuyển tiếp. Điều này giúp bạn xác minh rằng máy chủ mới phục vụ chúng giống hệt trước khi loại bỏ máy chủ cũ.
  • Nếu đổi Server UDP Port, hãy nhớ rằng các cổng lệnh và truyền file suy ra cũng đổi theo. Quy tắc firewall cần được cập nhật tương ứng.