Mengembangkan Aplikasi Antrean RPC-Message

Sangat sedikit upaya yang diperlukan untuk memanfaatkan transportasi MSMQ dalam aplikasi RPC Anda. Untuk pesan sinkron, Anda hanya perlu menentukan transportasi antrean pesan (ncadg_mq) sebagai urutan protokol. Protokol ncadg_mq mendukung semua fitur datagram standar kecuali panggilan siaran. Selain itu, perhatikan bahwa saat ini transportasi antrean pesan tidak mendukung titik akhir dinamis.

Dengan menerapkan atribut [pesan] ke deklarasi prosedur jarak jauh dalam file IDL, Anda secara otomatis menerapkan antrean pesan mode asinkron untuk panggilan tersebut. Hal ini memungkinkan aplikasi klien dan server mengontrol banyak properti yang terkait dengan pesan dan antrean pesan, termasuk:

  • Kualitas layanan
  • Pengakuan tanda terima
  • Jurnal
  • Prioritas panggilan
  • Persistensi Antrean Proses Server

Kualitas layanan adalah upaya yang akan dilakukan transportasi untuk mengirimkan panggilan ke proses server. Pengiriman ekspres akan diantrekan dalam memori, sehingga cukup cepat, tetapi panggilan akan hilang jika komputer atau koneksi jaringan tidak berfungsi pada waktu yang salah. Pengiriman yang dapat dipulihkan akan diposting ke file disk sampai dikirimkan, sehingga panggilan tidak akan hilang, bahkan dalam menghadapi crash komputer. Ini memberikan pengiriman yang dijamin, tetapi dengan biaya dalam performa karena setiap panggilan ditulis ke disk.

Anda juga dapat memberi tahu transportasi MSMQ untuk menunggu pengakuan bahwa panggilan mencapai antrean tujuan (server) sebelum kembali. Memilih opsi ini memblokir klien sampai server mengakui panggilan, jika tidak, kontrol akan segera kembali ke klien setelah melakukan panggilan.

Dengan menggunakan penjurrensian, panggilan dapat dicatat ke disk. Jika penjurjuran diaktifkan, setiap panggilan dicatat ke disk karena dikirimkan ke hop berikutnya dalam perjalanan ke proses server.

Prioritas panggilan dapat digunakan bersama dengan atribut fungsi RPC [pesan] untuk memungkinkan panggilan dengan prioritas yang lebih tinggi untuk diutamakan daripada panggilan dengan prioritas yang lebih rendah, bahkan jika panggilan prioritas tinggi tiba nanti. Prioritas panggilan juga akan berfungsi secara terbatas dengan RPC sinkron, tetapi panggilan RPC sinkron tidak dapat menumpuk dengan cara yang sama seperti panggilan asinkron.

Proses klien mengontrol semua properti di atas dengan memanggil RpcBindingSetOption. Setelah diatur, properti ini tetap berlaku sampai diubah dalam panggilan lain ke RpcBindingSetOption.

Proses server RPC dapat mengontrol masa pakai antrean penerimanya. Secara default, antrean dihapus saat proses server keluar. Namun, proses server dapat menggunakan RpcServerUseProtseqEpEx saat menyiapkan titik akhirnya untuk memberi tahu transportasi agar antrean terus ada dan menerima permintaan panggilan bahkan ketika proses server tidak berjalan. Dalam hal ini, panggilan diantrekan dan dijalankan nanti, ketika proses server kembali online.

Catatan

Jika Anda menggunakan panggilan [pesan] asinkron di antarmuka, Anda harus mendaftarkan antarmuka dengan memanggil RpcServerRegisterIf atau RpcServerRegisterIfEx sebelum memanggil RpcServerUseProtseqEpEx(ncadg_mq). Setelah Anda mengaktifkan urutan protokol, setiap panggilan yang sudah menunggu antrean untuk server akan mulai dibaca dari antrean. Jika antarmuka RPC yang sesuai belum didaftarkan, panggilan akan gagal. Situasi ini dapat terjadi jika Anda memiliki titik akhir permanen untuk panggilan prosedur jarak jauh Anda, server telah dimatikan, dan klien terus mengirim panggilan ke server. Panggilan ini akan ditumpuk dalam antrean, menunggu untuk dibaca setelah server kembali online.

 

Untuk informasi selengkapnya, lihat RpcBindingSetOption, RpcServerUseProtseqEpEx, dan [message], ncadg_mq.