2011-10-04 26 views
8

Chỉ muốn nhận được xác nhận về cách gửi tin nhắn đến hàng đợi tin nhắn giao dịch từ xa hoạt động.Phân phối thư giao dịch MSMQ hoạt động như thế nào?

Giả sử tôi có một hai máy, A và B.

Máy A có một hàng đợi giao dịch được sử dụng để nhận tin nhắn. Một dịch vụ Windows sẽ giám sát hàng đợi này và thực hiện điều gì đó với dữ liệu (vẫn tồn tại trong SQL Server). Máy B đang chạy một ứng dụng mà cần phải viết vào hàng đợi trên máy A.

Một vài câu hỏi:

  1. Khi gửi tin nhắn, là một bản sao cục bộ tạo ra trên máy B, trước khi nó được giao cho máy A?
    a. Nếu vậy, hành vi này theo mặc định hay nó chỉ xảy ra khi thuộc tính "IsRecoverable" được gửi?
    b. Thực tế là hàng đợi là giao dịch có ảnh hưởng đến hành vi này không?

  2. Vì tôi đang sử dụng hàng đợi giao dịch, ở đâu dữ liệu sau khi giao dịch cam kết? a. Là nó ngồi tại địa phương, chờ đợi cho các dịch vụ msmq để cung cấp tin nhắn đến hàng đợi từ xa?
    b. Hoặc tin nhắn có nằm trong hàng đợi trên máy từ xa không?

Tôi đang gặp sự cố khi diễn giải tài liệu. Ở một số nơi tôi thấy rằng hành vi lưu trữ và chuyển tiếp được mô tả, nhưng tôi đang gặp khó khăn khi hiểu đó là hành vi mặc định với hàng đợi giao dịch hay tôi cần làm điều gì đó rõ ràng để thực hiện điều đó.

Trả lời

6

Điều chính cần hiểu về MSMQ giao dịch là thực tế có 3 giao dịch riêng biệt liên quan đến việc chuyển giao giao dịch thư đến hàng đợi từ xa.

  1. Người gửi viết thư đến hàng đợi tạm thời địa phương.
  2. Trình quản lý hàng đợi trên máy người gửi truyền thông báo trên dây đến trình quản lý hàng đợi trên máy người nhận.
  3. Dịch vụ người nhận xử lý thông điệp xếp hàng và sau đó xóa tin nhắn khỏi hàng đợi.

Vì vậy, trong câu trả lời cho câu hỏi của bạn:

Khi gửi tin nhắn, là một bản sao cục bộ tạo ra trên máy B, trước khi nó được phân phối cho máy A?

Nếu vậy, là hành vi này theo mặc định, hoặc dùng nó chỉ xảy ra khi "IsRecoverable" tài sản được gửi?

Theo mặc định. Đây là những gì được gọi là store and forward.

Thực tế là hàng đợi là giao dịch có ảnh hưởng đến hành vi này không?

Không ngoại trừ khi có sự cố.

Vì tôi đang sử dụng hàng đợi giao dịch, dữ liệu nào sau khi cam kết giao dịch ?

Nó phụ thuộc mà giao dịch bạn có ý nghĩa (xem ở trên)

Is it ngồi tại địa phương, chờ đợi cho các dịch vụ msmq để cung cấp những thông điệp vào hàng đợi từ xa?

Chỉ khi hàng đợi từ xa không khả dụng.

Hoặc thư có nằm trong hàng đợi trên máy từ xa không?

Nếu dịch vụ người nhận không xử lý tin nhắn thành công (có ngoại lệ trong trình xử lý), thông báo sẽ ở trên hàng đợi từ xa.

+0

Cảm ơn Hugh, điều này rất hữu ích! – Kartik

Các vấn đề liên quan