Bagikan melalui


Kirim Operasi Adapter

Adaptor pengiriman dapat melakukan operasi berikut:

  • Kirim ulang: pengiriman ulang batal(IBaseMessage msg, DateTime timeStamp). Setelah kegagalan transmisi terjadi pada pesan, adaptor mengirimkannya kembali jika sesuai. Ini dipanggil berdasarkan per pesan. Jika batch pesan dikirimkan tidak berhasil, adaptor harus menentukan pesan yang menyebabkan kegagalan, dan mengirim ulang pesan yang tidak menyebabkan batch gagal dalam panggilan terpisah ke Pengiriman Ulang. Ada informasi di akhir topik ini tentang cara mempertahankan nilai properti konteks pesan saat Anda memanggil Kirim Ulang.

  • Pindah ke Transportasi Berikutnya: moveToNextTransport(IBaseMessage msg) kosong. Jika pesan gagal selama operasi pengiriman dan upaya coba lagi telah habis, adaptor dapat mengirim pesan ke transportasi yang dikonfigurasi berikutnya untuk transmisi ulang.

  • Tangguhkan: batalkan MoveToSuspendQ(IBaseMessage msg). Adaptor memindahkan pesan pengiriman yang gagal ke antrean Ditangguhkan jika tidak ada transportasi cadangan tambahan yang dikonfigurasi. Ada informasi di akhir topik ini tentang cara mempertahankan nilai properti konteks pesan saat Anda memanggil Tangguhkan.

  • Hapus: batalkan DeleteMessage(IBaseMessage msg). Adaptor menghapus pesan setelah diberi tahu oleh BizTalk Server tentang keberhasilan transmisinya. Menghapus pesan memberi tahu BizTalk Server bahwa adaptor selesai dengan pesan. Umumnya operasi SubmitResponse dilakukan dalam batch yang sama dengan operasi Hapus terkait.

  • Kirim Respons: void SubmitResponseMessage(IBaseMessage solicitMsgSent, IBaseMessage responseMsgToSubmit). Adaptor mengirimkan respons ke batch untuk dikirim kembali ke BizTalk Server. Operasi ini mencakup pesan asli dalam panggilan bersama dengan respons sehingga BizTalk Server dapat menghubungkannya.

  • Batalkan Respons: batalkan CancelResponseMessages(string correlationToken). Jika pengiriman pesan respons perlu dibatalkan sebelum batch dikirimkan, metode CancelResponseMessages digunakan, meneruskan token korelasi agar pesan respons terkait dihapus.

    Saat memanggil Kirim Ulang atau Tangguhkan pada pesan, Anda mungkin ingin mempertahankan nilai properti konteks pesan tertentu. Anda dapat melakukan ini dengan menyimpan nilai properti dalam format XML. Ketika pesan dikirim ulang atau ditangguhkan, properti terkait tetap tersedia dalam konteks pesan.

    String XML berikut ini menjelaskan format tempat informasi disimpan:

<PropertiesToUpdate>  
<Property name="StringProperty" nameSpace="http://MyNamespace1" vt="8">SomeString</Property>  
<Property name="IntProperty" nameSpace="http://schemas.microsoft.com/BizTalk/2005/test-properties" vt="3">4</Property>  
<Property name="BoolProperty" nameSpace="http://schemas.microsoft.com/BizTalk/2005/test-properties" vt="11">0</Property>  
</PropertiesToUpdate>  

String XML ini dihasilkan oleh kode berikut:

private string GetPropsToUpdateXml(int nextRetryAttempt)  
{  
string result = "<PropertiesToUpdate><Property name=\"RetryAttempts\" nameSpace=\"http://schemas.microsoft.com/BizTalk/2005/test-properties\" vt=\"3\">" + nextRetryAttempt.ToString() + "</Property></PropertiesToUpdate>";  
return result;  
}  

String ini kemudian disimpan ke konteks pesan dengan menggunakan kode ini:

Message.Context.Write("PropertiesToUpdate", "http://schemas.microsoft.com/BizTalk/2003/system-properties", GetPropsToUpdateXml(++retryAttempt));  

Saat pesan dikirim ulang, adaptor dapat membaca properti ini dengan menggunakan baris kode berikut:

propValue = inmsg.Context.Read("RetryAttempts", "http://schemas.microsoft.com/BizTalk/2005/test-properties");