2012-04-12 18 views
5

Tôi mới sử dụng WebSphere MQ và tôi đang cố di chuyển các tệp thông qua WebSphere MQ dưới dạng thông báo bằng mã C#. Có thể WebSphere MQ truyền tệp (ví dụ: * .txt) trực tiếp không?Có thể trực tiếp chuyển tệp WebSphere MQ (ví dụ: * .txt) không?

Cảm ơn trước.

+0

Tiêu đề bài hỏi hỏi liệu WMQ có thể truyền tệp nhưng cơ thể đề cập đến WMQ File Transfer Edition hay không. Nó không rõ ràng mà bạn đang đề cập đến. Bạn có thể làm rõ? Bạn đang cố gắng viết mã để đặt các tập tin trong tin nhắn? Hoặc là bạn đang cố gắng lái xe FTE chuyển từ mã? –

+0

Xin lỗi vì đã gây nhầm lẫn. Tôi không có ấn bản Chuyển tệp WMQ nào, chỉ muốn viết mã để đặt tệp trong tin nhắn. Bây giờ tôi sử dụng FileStream để đọc nội dung tệp dưới dạng chuỗi, sau đó đặt chuỗi trong thông điệp.Không sao hơn? Cảm ơn! –

Trả lời

3

Không, cơ sở WebSphere MQ không trực tiếp truyền tệp. Ngữ nghĩa cho việc di chuyển tệp bao gồm những thứ như tên tệp, đường dẫn thư mục, chuyển đổi tên trên các loại hệ thống tệp khác nhau (ví dụ: tập tin UNIX so với tập dữ liệu phân vùng z/OS). Nhắn tin sử dụng ngữ nghĩa cụ thể cho hàng đợi và chủ đề và chúng khác biệt đáng kể so với các chủ đề cho tệp.

Theo đó, cơ sở WMQ không cố gắng thực hiện ngữ nghĩa tệp như là một phần của chức năng cốt lõi của nó. WebSphere MQ File Transfer EditionIBM Sterling Connect:Direct cung cấp chức năng đó. Trong trường hợp của FTE, chuyển tập tin được quản lý được xây dựng nguyên bản trên đầu trang của WebSphere MQ.

Nhiều người có trong các giải pháp bằng văn bản trước đây để di chuyển tệp bằng tin nhắn, cho dù đó là WebSphere MQ hay một nhà cung cấp dịch vụ vận tải khác. Nó chỉ ra rằng làm như vậy một cách mạnh mẽ là một nhiệm vụ không tầm thường. Dưới đây là một số vấn đề:

  • Nếu bạn đặt từng tệp một thư thì kích thước thư sẽ khác nhau đáng kể. Rất khó điều chỉnh công cụ nhắn tin để thực hiện đồng thời với các thông điệp rất lớn và rất nhỏ.
  • Nếu bạn chia nhỏ các tệp thành nhiều phần thì bạn cna điều chỉnh kích thước chunk cho hiệu suất nhắn tin tối ưu nhưng bây giờ bạn phải xử lý việc lưu giữ chuỗi và gửi lại các thư bị thiếu.
  • Sự cố chung về việc có thêm, thay thế hoặc đổi tên tệp đích có cùng tên hay không.
  • Vấn đề chung về cách làm cho tệp có sẵn tại đích theo cách giao dịch. Bạn không muốn người nhận lấy một nửa tệp.
  • Tính toàn vẹn tệp (FTE băm tệp để đảm bảo tệp không bị thay đổi khi chuyển tiếp).

Đây là một ví dụ về các vấn đề để thực hiện việc này theo cách tổng quát. Tuy nhiên, nếu tất cả những gì bạn cần là giải pháp một lần, điểm-điểm, hãy xem SupportPac MA01, chương trình Q. Nó sẽ lấy các tập tin và hoặc đặt một dòng tại một thời điểm vào một tin nhắn hoặc làm cho toàn bộ tập tin một tin nhắn duy nhất. Nó cũng có thể được sử dụng như một đường ống để có thể có hai trường hợp của Q, nơi một ống thông điệp đến một hàng đợi và người kia lấy chúng.

+0

Cảm ơn bạn rất nhiều!Bạn đã đề cập đến vấn đề đầu tiên, "Rất khó điều chỉnh công cụ nhắn tin để thực hiện đồng thời với các thông điệp rất lớn và rất nhỏ", điều đó có nghĩa là gì? Nó sẽ làm giảm hiệu suất, phải không? –

+0

Cảm ơn bạn đã trả lời! Hiệu năng này rất quan trọng đối với ứng dụng và phải tránh tạm dừng dữ liệu từ luồng trong kênh. Sau khi nhận được các thông báo, chúng ta nên giải phóng tài nguyên liên quan, đúng không? Trong ứng dụng của tôi, tôi gọi qmgr.Disconnect() để giải phóng tài nguyên.Điều đó có đủ không? cách tốt hơn? –

+0

Xác định "cách tốt hơn". Một vài nhân viên của FTE sẽ tốn ít hơn số tiền bạn sẽ cố gắng để có được các kinks được tạo ra từ phiên bản trong nhà của bạn. Và nếu bạn dự đoán triển khai vào một mạng lớn các nút cần di chuyển tệp, sự khác biệt về hiệu suất, độ tin cậy và khả năng quản lý sẽ trả cho các đại lý. Tuy nhiên, nếu bạn vẫn muốn khám phá các tùy chọn thiết kế, vui lòng đặt câu hỏi mới. SO không hoạt động như một diễn đàn thảo luận mà đúng hơn là do các câu hỏi và phiếu bầu rời rạc. Một câu hỏi mới với các thẻ và câu trả lời của chính nó sẽ giúp người tiếp theo có vấn đề tương tự tốt hơn. –

3

Phiên bản chuyển tệp WebSphere MQ (FTE) là một sản phẩm được xây dựng trên đầu trang của WebSphere MQ để truyền tệp. Không yêu cầu mã hóa để truyền tệp. Có lệnh và MQ Explorer thông qua đó bạn có thể cấu hình chuyển tập tin của bạn. Bạn cũng có thể bắt đầu chuyển tập tin thông qua kịch bản.

Đọc qua developerWorks article

+0

Xin lỗi vì đã gây hiểu lầm, nhưng tôi không có FTE. Tôi phải viết mã để tự chuyển tập tin. Ngoài ra cảm ơn bạn! –

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