APPC 動詞摘要

本節簡要描述每個 APPC 動詞,並依功能分組。

開啟對話的動詞

分配或 MC_ALLOCATE
由本地交易計畫(TP)發行。 此動詞在本地邏輯單元(LU)與夥伴 LU 之間分配會話,並建立本地 TP 與夥伴 TP 之間的對話。

ALLOCATE 可以建立基本對話或映射對話。 MC_ALLOCATE 只能開始一段映射式對話。 在對話分配後,APPC 會使用此動詞回傳對話識別碼(conv_id)。

RECEIVE_ALLOCATE
由合作夥伴TP發行。 此動詞確認夥伴 TP 已準備好與發出 ALLOCATE 或 MC_ALLOCATE 的本地 TP 展開對話。 成功執行後,此動詞會回傳夥伴 TP 與 conv_id 的 TP 識別碼(tp_id)。

TP_STARTED
由當地衛生局發行。 這個動詞會通知 APPC 本地 TP 正在啟動。 成功執行後,此動詞會回傳本地 TP 的 tp_id 。

傳送資料的動詞

確認或 MC_CONFIRM
將本地 LU 的 send buffer 內容及確認請求傳送給合作夥伴 TP。

同花還是MC_FLUSH
清除本地 LU 的 send buffer,將緩衝區內容傳送給合作夥伴的 LU 與 TP。 如果傳送緩衝區為空,則不會發生任何動作。

PREPARE_TO_RECEIVE或 MC_PREPARE_TO_RECEIVE
將對話狀態從發送(SEND)改為接收(RECEIVE)。 在改變對話狀態之前,這個動詞會執行類似 FLUSH、 MC_FLUSH、 CONFIRM 或 MC_CONFIRM 的動作。 當這個動詞成功執行後,本地 TP 就能接收資料。

REQUEST_TO_SEND或 MC_REQUEST_TO_SEND
通知合作夥伴 TP 本地 TP 想傳送資料。 本地 TP 必須等待合作夥伴 TP 發出 PREPARE_TO_RECEIVE、 MC_PREPARE_TO_RECEIVE、 RECEIVE_AND_WAIT 或 MC_RECEIVE_AND_WAIT,且對話狀態對合作夥伴 TP 的狀態變為 RECEIVE,然後才開始傳送資料。

SEND_DATA或 MC_SEND_DATA
將資料放入本地 LU 的傳送緩衝區,以便傳送給合作夥伴的 TP。

當發生以下任一情況時,本地 LU 發送緩衝區收集的資料會傳送給合作夥伴 LU 與合作夥伴 TP:

  • 傳送緩衝區會被填滿。

  • 本地傳送埠會發出 FLUSH、MC_FLUSH、CONFIRM、MC_CONFIRM、DEALLOCATE、MC_DEALLOCATE 或其他能清除本地 LU 發送緩衝區的動詞。

接收資料的動詞

POST_ON_RECEIPT或 MC_POST_ON_RECEIPT
發出此動詞後,應用程式能註冊接收當地 LU 的資料或狀態通知,但實際上並未同時接收。 此動詞只能在接收狀態下發出,且不會改變對話狀態。

當 TP 發出此動詞時,APPC 立即將控制權交還給 TP。 當符合指定條件時,會標示為參數的 Win32® 事件,動詞完成。 接著 TP 會查看動詞控制區塊中的回傳碼,判斷是否有資料或狀態通知抵達本地 LU,並發出一個 RECEIVE_IMMEDIATE 或 RECEIVE_AND_WAIT 動詞以實際接收資料或狀態通知。

RECEIVE_AND_POST或 MC_RECEIVE_AND_POST
在對話處於接收狀態時發出此動詞,會將對話狀態改為PENDING_POST,並使本地傳送中心非同步接收資料。 這讓本地 TP 在資料還在抵達本地 LU 時,就能繼續處理。

在對話處於 SEND 狀態時發出此動詞,會清除 LU 的 send 緩衝區,並將對話狀態改為 PENDING_POST。 本地 TP 接著開始非同步接收資料。

RECEIVE_AND_WAIT或 MC_RECEIVE_AND_WAIT
在對話處於接收狀態時發出此動詞,會使本地傳送埠接收目前合作夥伴傳送所提供的資料。 若無資料可用,本地傳送端會等待資料抵達。

在對話處於 SEND 狀態時發出此動詞,會清除 LU 的 send 緩衝區,並將對話狀態改為 RECEIVE。 本地 TP 接著開始接收資料。

RECEIVE_IMMEDIATE或 MC_RECEIVE_IMMEDIATE
接收目前合作夥伴 TP 可取得的資料。 若無資料可用,本地 TP 不會等待。

TEST_RTS或 MC_TEST_RTS
判斷是否已收到 REQUEST_TO_SEND 、 MC_REQUEST_TO_SEND 或通知。

用於確認資料或回報錯誤的動詞

確認還是 MC_CONFIRMED
回覆合作夥伴 TP 的確認請求。 它會通知合作夥伴 TP,本地 TP 已無錯誤地接收並處理資料。

RECEIVE_LOG_DATA或 MC_RECEIVE_LOG_DATA
發出此動詞後,使用者可註冊接收與入站函式管理標頭 7(FMH7)錯誤報告相關的日誌資料。 動詞會將緩衝區傳給 APPC,接收到的任何日誌資料都會被放入該緩衝區。 APPC 持續使用此緩衝區,直到 FMH7 陸續抵達,直到提供另一個緩衝區(也就是說,TP 再次發出指定不同緩衝區或不設緩衝區的 RECEIVE_LOG_DATA 或 MC_RECEIVE_LOG_DATA )。

SEND_CONVERSATION或 MC_SEND_CONVERSATION
由呼叫的 TP 發出,此動詞在本地 LU 與合作夥伴 LU 之間分配會話,傳送會話資料,然後解除會話。

SEND_ERROR或 MC_SEND_ERROR
通知合作夥伴 TP 本地 TP 遇到應用層級錯誤。

獲取與設定資訊的動詞

GET_ATTRIBUTES或 MC_GET_ATTRIBUTES
TP 用來取得對話的屬性。

GET_LU_STATUS
用於回報特定遠端 LU 的狀態。

GET_STATE
TP 用來詢問特定對話的狀態。

GET_TP_PROPERTIES
回傳 TP 的屬性及目前交易。

GET_TYPE
TP 用來判斷特定對話的對話類型(基本或映射)。 有了這些資訊,TP 可以決定是發出基本動詞還是映射動詞。

SET_TP_PROPERTIES
用來設定 TP 和目前交易的屬性。

提供管理功能的動詞

ACTIVATE_SESSION
以指定模式啟動本地 LU 與指定合作夥伴 LU 之間的會話。

CNOS(會議次數變更)
確立APPC LU 6.2的會話限制。

DEACTIVATE_SESSION
停用特定會話,或停用特定模式的所有會話。

顯示
回傳 SNA 節點的配置資訊及目前運作值。

結束對話的動詞

要麼分配,要麼 就MC_DEALLOCATE
分配兩個TP之間的對話。 在分配對話前,此動詞執行類似 FLUSH、 MC_FLUSH、 CONFIRM 或 MC_CONFIRM 的動作。

TP_ENDED
由當地和合作的TPs共同發行。 它會通知 APPC TP 即將結束。 發出這個動詞也會終止所有正在進行的對話。