Bagikan melalui


RUI_WRITE

Kata kerja RUI_WRITE mengirimkan unit permintaan atau respons SNA dari aplikasi unit logis (LUA) ke host melalui sesi LU atau sesi titik kontrol layanan sistem (SSCP), dan mengirim respons, perintah SNA, dan data dari aplikasi MICROSOFT® Windows® LUA ke LU host.

Struktur berikut menjelaskan anggota LUA_COMMON blok kontrol kata kerja (VCB) yang digunakan oleh RUI_WRITE.

Sintaksis

  
struct LUA_COMMON {  
    unsigned short lua_verb;  
    unsigned short lua_verb_length;  
    unsigned short lua_prim_rc;  
    unsigned long  lua_sec_rc;  
    unsigned short lua_opcode;  
    unsigned long  lua_correlator;  
    unsigned char  lua_luname[8];  
    unsigned short lua_extension_list_offset;  
    unsigned short lua_cobol_offset;  
    unsigned long  lua_sid;  
    unsigned short lua_max_length;  
    unsigned short lua_data_length;  
    char FAR *     lua_data_ptr;  
    unsigned long  lua_post_handle;  
    struct LUA_TH  lua_th;  
    struct LUA_RH  lua_rh;  
    struct LUA_FLAG1 lua_flag1;  
    unsigned char  lua_message_type;  
    struct LUA_FLAG2 lua_flag2;   
    unsigned char  lua_resv56[7];  
    unsigned char  lua_encr_decr_option;  
};  

Anggota

lua_verb
Parameter yang disediakan. Berisi kode kata kerja, LUA_VERB_RUI untuk kata kerja Request Unit Interface (RUI).

lua_verb_length
Parameter yang disediakan. Menentukan panjang dalam byte DARI LUA VCB. Ini harus berisi panjang catatan kata kerja yang dikeluarkan.

lua_prim_rc
Kode pengembalian utama yang ditetapkan oleh LUA pada penyelesaian kata kerja. Kode pengembalian yang valid bervariasi tergantung pada kata kerja LUA yang dikeluarkan.

lua_sec_rc
Kode pengembalian sekunder yang ditetapkan oleh LUA pada penyelesaian kata kerja. Kode pengembalian yang valid bervariasi tergantung pada kata kerja LUA yang dikeluarkan.

lua_opcode
Parameter yang disediakan. Berisi kode perintah LUA (kode operasi kata kerja) agar kata kerja dikeluarkan, LUA_OPCODE_RUI_WRITE.

lua_correlator
Parameter yang disediakan. Berisi nilai yang disediakan pengguna yang menautkan kata kerja dengan informasi lain yang disediakan pengguna. LUA tidak menggunakan atau mengubah informasi ini. Parameter ini bersifat opsional.

lua_luname
Parameter yang disediakan. Menentukan nama ASCII dari LU lokal yang digunakan oleh sesi LUA Windows.

RUI_WRITE hanya memerlukan parameter ini jika lua_sid nol.

Parameter ini panjangnya delapan byte, diisi di sebelah kanan dengan spasi (0x20) jika namanya lebih pendek dari delapan karakter.

lua_extension_list_offset
Tidak digunakan oleh RUI di Microsoft® Host Integration Server dan harus diatur ke nol.

lua_cobol_offset
Tidak digunakan oleh LUA di Server Integrasi Host dan harus nol.

lua_sid
Parameter yang disediakan dan dikembalikan. Menentukan pengidentifikasi sesi dan dikembalikan oleh SLI_OPEN dan RUI_INIT. Kata kerja lain menggunakan parameter ini untuk mengidentifikasi sesi yang digunakan untuk perintah . Jika kata kerja lain menggunakan parameter lua_luname untuk mengidentifikasi sesi, atur parameter lua_sid ke nol.

lua_max_length
Tidak digunakan oleh RUI_WRITE dan harus diatur ke nol.

lua_data_length
Parameter yang dikembalikan. Menentukan panjang data yang dikembalikan dalam lua_peek_data untuk kata kerja RUI_BID .

lua_data_ptr
Arahkan ke buffer yang berisi data yang akan dikirim ke host dengan RUI_WRITE.

Perintah dan data SNA ditempatkan dalam buffer ini, dan dapat dalam format EBCDIC.

lua_post_handle
Parameter yang disediakan. Digunakan di bawah Microsoft Windows jika pemberitahuan asinkron akan dicapai oleh peristiwa. Variabel ini berisi handel peristiwa yang akan disinyalir atau handel jendela.

lua_th
Parameter yang dikembalikan. Berisi header transmisi SNA (TH) pesan yang dikirim atau diterima. Berbagai subparameter diatur untuk fungsi tulis dan dikembalikan untuk fungsi baca dan bid. Subparameternya adalah sebagai berikut:

lua_th.flags_fid

Format identifikasi tipe 2, empat bit.

lua_th.flags_mpf

Bidang pemetaan segmenting, dua bit. Menentukan jenis segmen data. Nilai berikut ini valid:

segmen 0x00 Tengah0x04 Segmen terakhir0x08 Segmen pertama0x0C Segmen saja

lua_th.flags_odai

Indikator penugasan bidang alamat asal–alamat tujuan (OAF–DAF), satu bit.

lua_th.flags_efi

Indikator alur yang dipercepat, satu bit.

lua_th.daf

Bidang alamat tujuan (DAF), karakter yang tidak ditandatangani.

lua_th.oaf

Bidang alamat asal (OAF), karakter yang tidak ditandatangani.

lua_th.snf

Bidang nomor urut, karakter yang tidak ditandatangani[2].

lua_rh
Parameter yang dikembalikan. Berisi header permintaan/respons SNA (RH) dari pesan yang dikirim atau diterima. Untuk RH untuk RUI_WRITE, semua bidang kecuali indikator respons antrean (lua_rh.qri) dan indikator pacing (lua_rh.pi) digunakan. Subparameternya adalah sebagai berikut:

lua_rh.rri

Indikator respons permintaan, satu bit.

lua_rh.ruc

Kategori RU, dua bit. Nilai berikut ini valid:

LUA_RH_FMD (0x00) segmen data FMLUA_RH_NC (0x20) Kontrol aliran dataLUA_RH_DFC (0x40) Kontrol sesi LUA_RH_SC (0x60) Kontrol aliran data (0x60)

lua_rh.fi

Indikator format, satu bit.

lua_rh.sdi

Merasakan data menyertakan indikator, satu bit.

lua_rh.bci

Mulai indikator rantai, satu bit.

lua_rh.eci

Indikator rantai akhir, satu bit.

lua_rh.dr1i

Indikator respons pasti 1, satu bit.

lua_rh.dr2i

Indikator respons pasti 2, satu bit.

lua_rh.ri

Indikator respons pengecualian (untuk permintaan), atau indikator jenis respons (untuk respons), satu bit.

lua_rh.qri

Indikator respons antrean, satu bit.

lua_rh.pi

Indikator pacing, satu bit.

lua_rh.bbi

Mulai indikator tanda kurung siku, satu bit.

lua_rh.ebi

Indikator tanda kurung akhir, satu bit.

lua_rh.cdi

Ubah indikator arah, satu bit.

lua_rh.csi

Indikator pemilihan kode, satu bit.

lua_rh.edi

Indikator data yang disandikan, satu bit.

lua_rh.pdi

Indikator data berlapis, satu bit.

lua_flag1
Parameter yang disediakan. Berisi struktur data yang berisi bendera untuk pesan yang disediakan oleh aplikasi. Subparameternya adalah sebagai berikut:

lua_flag1.bid_enable

Indikator pengaktifan bid, satu bit.

lua_flag1.close_abend

Tutup indikator langsung, satu bit.

lua_flag1.nowait

Tidak menunggu bendera data, satu bit.

lua_flag1.sscp_exp

Alur yang dipercepat SSCP, satu bit.

lua_flag1.sscp_norm

Aliran normal SSCP, satu bit.

lua_flag1.lu_exp

LU dipercepat alur, satu bit.

lua_flag1.lu_norm

Lu aliran normal, satu bit.

Atur salah satu bendera berikut ke 1 untuk menunjukkan aliran pesan mana data akan dikirim:

lua_flag1.sscp_exp

lua_flag1.sscp_norm

lua_flag1.lu_exp

lua_flag1.lu_norm

lua_message_type
Tidak digunakan oleh RUI_WRITE dan harus diatur ke nol.

lua_flag2
Parameter yang dikembalikan. Berisi bendera untuk pesan yang dikembalikan oleh LUA. Subparameternya adalah sebagai berikut:

lua_flag2.bid_enable

Menunjukkan bahwa RUI_BID berhasil diaktifkan kembali jika diatur ke 1.

lua_flag2.asinkron

Menunjukkan bahwa kata kerja antarmuka LUA selesai secara asinkron jika diatur ke 1.

lua_flag2.sscp_exp

Menunjukkan alur yang dipercepat SSCP jika diatur ke 1.

lua_flag2.sscp_norm

Menunjukkan alur normal SSCP jika diatur ke 1.

lua_flag2.lu_exp

Menunjukkan alur lu yang dipercepat jika diatur ke 1.

lua_flag2.lu_norm

Menunjukkan alur normal LU jika diatur ke 1.

lua_resv56
Dicadangkan dan harus diatur ke nol.

lua_encr_decr_option
Dicadangkan dan harus diatur ke nol.

Kode Pengembalian

LUA_OK
Kode pengembalian utama; kata kerja berhasil dijalankan.

LUA_CANCELED
Kode pengembalian utama; kata kerja tidak berhasil diselesaikan karena dibatalkan oleh kata kerja lain.

LUA_TERMINATED

Kode pengembalian sekunder; kata kerja dibatalkan karena RUI_TERM dikeluarkan untuk sesi ini.

LUA_PARAMETER_CHECK
Kode pengembalian utama; kata kerja tidak dijalankan karena kesalahan parameter.

LUA_BAD_DATA_PTR

Kode pengembalian sekunder; parameter lua_data_ptr berisi nilai yang tidak valid.

LUA_BAD_SESSION_ID

Kode pengembalian sekunder; nilai yang tidak valid untuk lua_sid ditentukan dalam VCB.

LUA_DUPLICATE_WRITE_FLOW

Kode pengembalian sekunder; RUI_WRITE sudah terutang untuk alur sesi yang ditentukan pada kata kerja ini (alur sesi ditentukan dengan mengatur salah satu bendera alur lua_flag1 ke 1). Hanya satu RUI_WRITE pada satu waktu yang dapat luar biasa pada setiap alur sesi.

LUA_INVALID_FLOW

Kode pengembalian sekunder; bendera alur lua_flag1.sscp_exp diatur, menunjukkan bahwa pesan harus dikirim pada alur yang dipercepat SSCP. LUA tidak mengizinkan aplikasi untuk mengirim data pada alur ini.

LUA_INVALID_POST_HANDLE

Kode pengembalian sekunder; untuk sistem operasi Windows yang menggunakan peristiwa sebagai metode posting asinkron, Windows LUA VCB tidak berisi handel peristiwa yang valid.

LUA_MULTIPLE_WRITE_FLOWS

Kode pengembalian sekunder; lebih dari salah satu bendera alur lua_flag1 diatur ke 1. Satu dan hanya satu dari bendera ini harus diatur ke 1, untuk menunjukkan aliran sesi mana yang akan dikirim data.

LUA_REQUIRED_FIELD_MISSING

Kode pengembalian sekunder; menunjukkan salah satu kasus berikut:

  • Tidak ada bendera alur lua_flag1 yang diatur. Satu dan hanya satu dari bendera ini yang harus diatur ke 1.

  • RUI_WRITE digunakan untuk mengirim respons, dan respons memerlukan lebih banyak data daripada yang disediakan.

    LUA_RESERVED_FIELD_NOT_ZERO

    Kode pengembalian sekunder; bidang yang dipesan dalam rekaman kata kerja atau parameter yang tidak digunakan oleh kata kerja ini diatur ke nilai bukan nol.

    LUA_VERB_LENGTH_INVALID

    Kode pengembalian sekunder; kata kerja LUA dikeluarkan dengan nilai lua_verb_length tidak terduga oleh LUA.

    LUA_STATE_CHECK
    Kode pengembalian utama; kata kerja tidak dijalankan karena dikeluarkan dalam status tidak valid.

    LUA_MODE_INCONSISTENCY

    Kode pengembalian sekunder; pesan SNA yang dikirim pada RUI_WRITE tidak valid saat ini. Ini disebabkan oleh mencoba mengirim data pada sesi LU sebelum sesi terikat. Periksa urutan pesan SNA yang dikirim.

    LUA_NO_RUI_SESSION

    Kode pengembalian sekunder; RUI_INIT belum berhasil diselesaikan untuk nama LU yang ditentukan pada kata kerja ini.

    LUA_UNSUCCESSFUL
    Kode pengembalian utama; catatan kata kerja yang disediakan valid, tetapi kata kerja tidak berhasil diselesaikan.

    LUA_FUNCTION_NOT_SUPPORTED

    Kode pengembalian sekunder; menunjukkan salah satu kasus berikut:

  • bit lua_rh.fi (indikator format) diatur ke 1, tetapi byte pertama dari RU yang disediakan bukan kode permintaan yang dikenali.

  • Parameter lua_rh.ruc (kategori RU) menentukan kategori kontrol jaringan (NC) ; LUA tidak mengizinkan aplikasi untuk mengirim permintaan dalam kategori ini.

    LUA_INVALID_PROCESS

    Kode pengembalian sekunder; proses OS/2 yang mengeluarkan kata kerja ini bukanlah proses yang sama yang dikeluarkan RUI_INIT untuk sesi ini. Hanya proses yang memulai sesi yang dapat mengeluarkan kata kerja pada sesi tersebut.

    LUA_INVALID_SESSION_PARAMETERS

    Kode pengembalian sekunder; aplikasi yang digunakan RUI_WRITE untuk mengirim respons positif ke pesan BIND yang diterima dari host. Namun, Server Integrasi Host tidak dapat menerima parameter BIND seperti yang ditentukan, dan telah mengirim respons negatif ke host. Untuk informasi selengkapnya tentang profil BIND yang diterima oleh Server Integrasi Host, lihat Pertimbangan SNA Menggunakan LUA.

    LUA_RSP_CORRELATION_ERROR

    Kode pengembalian sekunder; saat menggunakan RUI_WRITE untuk mengirim respons, lua_th.snf (yang menunjukkan nomor urut pesan yang diterima yang ditanggapi) tidak berisi nilai yang valid.

    LUA_RU_LENGTH_ERROR

    Kode pengembalian sekunder; parameter lua_data_length berisi nilai yang tidak valid. Saat mengirim data pada alur normal LU, panjang maksimumnya adalah seperti yang ditentukan dalam BIND yang diterima dari host; untuk semua alur lainnya panjang maksimum adalah 256 byte.

Nota

Kode pengembalian sekunder lainnya adalah kode indra SNA yang menunjukkan bahwa data SNA yang disediakan tidak valid atau tidak dapat dikirim. Untuk informasi tentang menafsirkan kode indra SNA yang dapat dikembalikan, lihat Pertimbangan SNA Menggunakan LUA.

LUA_COMM_SUBSYSTEM_ABENDED
Kode pengembalian utama; menunjukkan salah satu kondisi berikut:

  • Simpul yang digunakan oleh percakapan ini menemukan ABEND.

  • Koneksi antara program transaksi (TP) dan simpul unit fisik (PU) 2.1 rusak (kesalahan LAN).

  • SnaBase di komputer TPs mengalami ABEND.

    LUA_SESSION_FAILURE
    Kode pengembalian utama; komponen Server Integrasi Host yang diperlukan telah dihentikan.

    LUA_LU_COMPONENT_DISCONNECTED

    Kode pengembalian sekunder; menunjukkan bahwa sesi LUA telah gagal karena masalah dengan layanan tautan atau dengan LU host.

    LUA_RUI_LOGIC_ERROR

    Kode pengembalian sekunder; kesalahan internal terdeteksi dalam LUA. Kesalahan ini tidak boleh terjadi selama operasi normal.

    LUA_INVALID_VERB
    Kode pengembalian utama; kode kata kerja atau kode operasi, atau keduanya, tidak valid. Kata kerja tidak dijalankan.

    LUA_STACK_TOO_SMALL
    Kode pengembalian utama; ukuran tumpukan aplikasi terlalu kecil untuk menjalankan kata kerja. Tingkatkan ukuran tumpukan aplikasi Anda.

    LUA_COMM_SUBSYSTEM_NOT_LOADED
    Kode pengembalian utama; komponen yang diperlukan tidak dapat dimuat atau telah dihentikan saat memproses kata kerja. Dengan demikian, komunikasi tidak dapat terjadi. Hubungi administrator sistem untuk tindakan korektif.

    LUA_UNEXPECTED_DOS_ERROR
    Kode pengembalian utama; setelah mengeluarkan panggilan sistem operasi, kode pengembalian sistem operasi yang tidak terduga diterima dan ditentukan dalam kode pengembalian sekunder.

Komentar

RUI_INIT harus berhasil dikeluarkan sebelum kata kerja ini diterbitkan.

Saat mengirim permintaan SNA, semua nilai yang berlaku dalam lua_rh harus diatur. Penautan dan bracketing adalah tanggung jawab aplikasi.

Saat mengirim respons, jenis respons menentukan informasi RUI_WRITE yang diperlukan. Untuk semua respons, Anda harus:

  • Atur bendera lua_rh.rri yang dipilih ke 1.

  • Berikan nomor urut di lua_th.snf untuk permintaan yang Anda tanggapi.

    Untuk respons pesan multi-rantai, nomor urutan elemen rantai terakhir yang diterima harus digunakan. Untuk respons terhadap pesan multi-rantai yang diakhir dengan perintah CANCEL, nomor urutan perintah CANCEL digunakan.

    Untuk respons positif yang hanya memerlukan kode permintaan, atur lua_rh.ri ke nol (menunjukkan bahwa respons positif) dan lua_data_length ke nol (menunjukkan bahwa tidak ada data yang disediakan). Kode permintaan diisi oleh RUI, menggunakan nomor urut yang disediakan.

    Untuk respons negatif, atur lua_rh.ri ke 1, lua_data_ptr ke alamat kode indera SNA, dan lua_data_length ke panjang kode indera SNA (empat byte). Nomor urut digunakan oleh RUI untuk mengisi kode permintaan.

    Untuk respons positif terhadap perintah BIND dan STSN yang memerlukan data dalam respons, atur lua_data_ptr untuk mengarahkan ke respons dan mengatur lua_data_length ke panjang data yang disediakan dalam lua_data_ptr.

    Saat RUI_WRITE yang ada tertunda, Anda dapat mengeluarkan RUI_WRITE kedua hanya jika menentukan alur sesi yang berbeda dari RUI_WRITE yang tertunda. Anda tidak boleh memiliki lebih dari satu RUI_WRITE terutang untuk alur sesi yang sama.

    RUI_WRITE dapat dikeluarkan pada alur normal SSCP kapan saja setelah RUI_INIT berhasil. RUI_WRITE kata kerja pada alur normal LU yang dipercepat atau LU diizinkan hanya setelah BIND diterima, dan harus mematuhi protokol yang ditentukan pada BIND.

    Keberhasilan penyelesaian RUI_WRITE menunjukkan bahwa pesan berhasil diantrekan ke tautan data. Ini tidak selalu menunjukkan bahwa pesan berhasil dikirim, atau bahwa host menerimanya.

    Pacing dapat digunakan pada sesi setengah sekunder ke primer (ditentukan pada BIND) untuk mencegah aplikasi LUA mengirim lebih banyak data daripada yang dapat ditangani LU lokal atau jarak jauh. Jika demikian, RUI_WRITE pada alur normal LU mungkin tertunda oleh LUA dan mungkin perlu waktu untuk menyelesaikannya.

Lihat Juga

RUI_INIT
RUI_READ
RUI_TERM
SLI_OPEN
SLI_PURGE
SLI_RECEIVE
SLI_SEND