Bagikan melalui


Pertimbangan SNA dengan LUA

Bagian ini menjelaskan informasi SNA yang perlu Anda pertimbangkan saat menulis aplikasi aplikasi unit logis (LUA).

Pemeriksaan BIND

Selama inisialisasi sesi LU, host mengirim ke aplikasi LUA pesan BIND yang berisi informasi seperti ukuran unit permintaan/respons (RU) untuk digunakan oleh sesi LU. Microsoft® Host Integration Server mengembalikan pesan ini ke aplikasi LUA di RUI_READ. Aplikasi LUA harus memverifikasi bahwa parameter yang ditentukan pada BIND cocok. Aplikasi ini memiliki opsi berikut:

  • Ini dapat menerima BIND apa adanya, dengan mengeluarkan RUI_WRITE berisi respons OK terhadap BIND. Tidak ada data BIND tambahan yang dapat dikirim pada respons.

  • Ini dapat mencoba menegosiasikan satu atau beberapa parameter BIND. (Ini hanya diizinkan jika BIND dapat dinegosiasikan.) Untuk melakukan ini, aplikasi mengeluarkan RUI_WRITE berisi respons OK, tetapi menyertakan BIND yang dimodifikasi sebagai data.

  • Ini dapat menolak BIND dengan mengeluarkan RUI_WRITE berisi respons negatif, menggunakan kode indera SNA yang sesuai sebagai data.

    Memvalidasi parameter BIND dan memastikan bahwa semua pesan yang dikirim konsisten dengan mereka adalah tanggung jawab aplikasi LUA. Namun, dua batasan berikut berlaku:

  • Server Integrasi Host menolak RUI_WRITE apa pun yang menentukan panjang RU lebih besar dari ukuran yang ditentukan pada BIND.

  • Server Integrasi Host mengharuskan BIND untuk menentukan bahwa LU sekunder adalah pemenang ketidakcocokan dan bahwa pemulihan kesalahan adalah tanggung jawab pecundang ketidakcocokan.

    Catatan

    Untuk SLI, aplikasi harus menentukan bahwa aplikasi akan menggunakan SLI_BIND_ROUTINE pada SLI_OPEN jika akan melakukan pemeriksaan BIND.

Pengakuan kesantunan

Server Integrasi Host menyimpan catatan permintaan yang diterima dari host untuk menghubungkan respons apa pun yang dikirim oleh aplikasi dengan permintaan yang sesuai. Ketika aplikasi mengirim respons, Server Integrasi Host menghubungkan respons dengan data dari permintaan asli, dan kemudian dapat membebaskan penyimpanan yang terkait dengannya.

Jika host hanya menentukan respons pengecualian (respons negatif dapat dikirim tetapi respons positif tidak boleh dikirim), Server Integrasi Host masih harus menyimpan catatan permintaan jika aplikasi kemudian mengirim respons negatif. Jika aplikasi tidak mengirim respons, penyimpanan yang terkait dengan permintaan ini tidak dapat dibebaskan.

Karena itu, Server Integrasi Host memungkinkan aplikasi LUA untuk mengeluarkan respons positif terhadap permintaan khusus respons pengecualian dari host. (Ini dikenal sebagai pengakuan sopan.) Respons tidak dikirim ke host, tetapi digunakan oleh LUA untuk menghapus penyimpanan yang terkait dengan permintaan.

Catatan

Aplikasi tidak perlu mengirim pengakuan sopan untuk setiap permintaan khusus respons pengecualian. Untuk efisiensi, aplikasi dapat merespons lebih jarang. Simpul memperlakukan pengakuan sopan sebagai pengakuan implisit untuk semua permintaan yang tertunda sebelumnya.

Membedakan kode indera SNA dari kode pengembalian sekunder lainnya

Kode pengembalian sekunder yang bukan kode indera selalu berisi nilai nol dalam dua byte pertamanya.

Kode indera SNA selalu berisi nilai bukan nol dalam dua byte pertamanya. Byte pertama memberikan kategori kode pengertian dan yang kedua mengidentifikasi kode pengertian tertentu dalam kategori tersebut. (Byte ketiga dan keempat dapat berisi informasi tambahan atau bisa nol.)

Informasi tentang kode indera SNA

Jika Anda memerlukan informasi tentang kode indera yang dikembalikan, lihat

Respons negatif dan kode indera SNA

Kode indera SNA dapat dikembalikan ke aplikasi LUA dalam kasus berikut:

  • Ketika host mengirimkan respons negatif terhadap permintaan dari aplikasi LUA, itu termasuk kode indera SNA yang menunjukkan alasan respons negatif. Ini dilaporkan ke aplikasi pada RUI_READ berikutnya atau SLI_RECEIVE dengan informasi berikut.

    Kode pengertian Deskripsi
    Kode pengembalian utama LUA_OK.
    Indikator permintaan/respons, indikator jenis respons, dan indikator yang disertakan dalam data pengertian Semua diatur ke 1, menunjukkan respons negatif yang menyertakan data yang masuk akal.
    Data dikembalikan Kode pengertian SNA.
  • Ketika Server Integrasi Host menerima data yang tidak valid dari host, umumnya mengirim respons negatif ke host dan tidak meneruskan data yang tidak valid ke aplikasi LUA. Ini dilaporkan ke aplikasi pada RUI_READ, SLI_RECEIVE, RUI_BID, atauSLI_BID berikutnya dengan informasi berikut:

    Kode pengertian Deskripsi
    Kode pengembalian utama LUA_NEGATIVE_RESPONSE.
    Kode pengembalian sekunder Kode indera SNA dikirim ke host.
  • Dalam beberapa kasus, Server Integrasi Host mendeteksi bahwa data yang disediakan oleh host tidak valid, tetapi tidak dapat menentukan kode indera yang benar untuk dikirim. Dalam hal ini, ini meneruskan data yang tidak valid dalam permintaan pengecualian (EXR) ke aplikasi LUA pada RUI_READ atau SLI_RECEIVE dengan informasi berikut.

    Kode pengertian Deskripsi
    Indikator permintaan/respons Atur ke 0, menunjukkan permintaan.
    Indikator yang disertakan data sense Atur ke 1, menunjukkan bahwa data pengertian disertakan. (Indikator ini biasanya digunakan hanya untuk respons.)
    Data pesan Kode masukan SNA yang disarankan.

    Aplikasi kemudian harus mengirim respons negatif ke pesan. Ini dapat menggunakan kode indera yang disarankan oleh Server Integrasi Host, atau dapat mengubah kode pengertian.

  • Server Integrasi Host dapat mengirim kode masuk akal ke aplikasi untuk menunjukkan bahwa data yang disediakan oleh aplikasi tidak valid. Ini dilaporkan ke aplikasi pada RUI_WRITE atau SLI_SEND dengan informasi berikut.

    Kode pengertian Deskripsi
    Kode pengembalian utama LUA_UNSUCCESSFUL.
    Kode pengembalian sekunder Kode pengertian SNA.

    Kode indera yang dapat dikembalikan sebagai kode pengembalian sekunder pada kata kerja LUA tercantum di WINLUA. File header H. Untuk file ini, lihat Server Integrasi Host atau SNA SDK.

Mondar

Pacing ditangani oleh antarmuka LUA. Aplikasi LUA tidak perlu mengontrol kecepatan dan tidak boleh mengatur bendera indikator pacing.

Jika pacing digunakan pada data yang dikirim dari aplikasi LUA ke host (ditentukan oleh BIND), RUI_WRITE atau SLI_SEND mungkin membutuhkan waktu untuk diselesaikan. Ini karena LUA harus menunggu respons pacing dari host sebelum dapat mengirim lebih banyak data.

Jika aplikasi LUA mentransfer data dalam jumlah besar dalam satu arah, baik ke host atau dari host (misalnya, aplikasi transfer file), konfigurasi host harus menentukan bahwa pacing digunakan ke arah tersebut. Ini memastikan bahwa simpul yang menerima data tidak dibanjiri data dan tidak kehabisan penyimpanan data.

Menghapus menyeluruh data ke ujung rantai

Ketika host mengirim rantai unit permintaan ke aplikasi LUA, aplikasi dapat menunggu sampai RU terakhir dalam rantai diterima sebelum mengirim respons, atau dapat mengirim respons negatif ke RU yang bukan yang terakhir dalam rantai. Jika respons negatif dikirim pertengahan rantai, LUA menghapus menyeluruh semua RU berikutnya dari rantai ini dan tidak mengirimkannya ke aplikasi.

Ketika LUA menerima RU terakhir dalam rantai, ini menunjukkan ini ke aplikasi dengan mengatur kode pengembalian utama RUI_READ atau RUI_BID ke LUA_NEGATIVE_RESPONSE dengan kode pengembalian sekunder nol.

Host dapat mengakhiri rantai dengan mengirim pesan seperti CANCEL saat berada di rantai menengah. Dalam hal ini, pesan CANCEL dikembalikan ke aplikasi pada RUI_READ. Kode pengembalian LUA_NEGATIVE_RESPONSE tidak digunakan.

Segmentasi

Segmentasi RU ditangani oleh antarmuka LUA. LUA selalu meneruskan RU lengkap ke aplikasi, dan aplikasi harus meneruskan RU lengkap ke LUA.