Tivoli 服务台 6.0 开发工具包接口设计器指南
本节定义 CPIC 内置语句,说明它们的语法,包括一些可能有帮助的注释。
这些语句以字母顺序列出。
许多语句使用 Tivoli 服务台(TSD)开发工具包系统定义的常数。
对于每个语句,在可用时提供下列信息:
接受入网 CPIC 或 APPC 对话。
conv : CONVERSATION
参数 | 说明 |
conv | 要用入网对话特性初始化的对话句柄 |
INTEGER
此调用为各种对话特性初始化值。认为此函数的调用者是对话的“接收者”。
每个 CPIC 对话由 CONVERSATION 句柄标识,此句柄用 CPICAccept 初始化。TSD 脚本应用程序使用 CPIC 调用中的此句柄用于该对话。此应用程序在其他调用可引用此对话前,必须发出 CPICAccept 语句。
目前,尽管对于一个应用程序可分配的对话数目没有限制,但是 CPIC 允许应用程序只接受一个对话。
下列两个应用程序(FIRST 和 SECOND)传送一个文本文件。SECOND 是对话的启动程序。
-- FIRST.KB -- This application is the receiver of a file transfer. -- The file will be sent one text line at a time. -- After the transfer is complete, the routine will send back the entire file in one buffer (this return trip will only work for files < 32K).
KNOWLEDGEBASE FIRST;
ROUTINES PROCEDURE GetConversation;
PRIVATE TYPES FileRec IS RECORD LineNbr:INTEGER; Buff:STRING; END;
ROUTINES
PROCEDURE GetConversation IS VARIABLES Conv :CONVERSATION; Buff :STRING; FileLine :FileRec; TotalBuff:STRING; DataRcvd :INTEGER; StatRcvd :INTEGER; ReqTSRcvd:INTEGER; didreqts :BOOLEAN; rc :INTEGER; count :INTEGER; ACTIONS rc := CPICAccept(Conv); TotalBuff := ''; count := 0; didreqts := FALSE; while (rc = 1) and (not(StatRcvd = 1)) do rc := CPICReceive(Conv,'FILEREC.DDF', FileLine,DataRcvd,StatRcvd, ReqTSRcvd); if ((DataRcvd = $CPICDataReceived) or (DataRcvd = $CPICCompleteDataReceived)) then TotalBuff := TotalBuff & FileLine.Buff; end; count := count + 1; if ((StatRcvd = $CPICConfirmReceived) or (StatRcvd = $CPICConfirmSendReceived)) then rc := CPICConfirmed(Conv); end;
if (count = 3) then rc := CPICRequestToSend(Conv); didreqts := TRUE; end;
if (((StatRcvd = $CPICConfirmSendReceived) or (StatRcvd = $CPICSendReceived)) and (didreqts)) then Buff := 'DATA SENT BY FIRST.KB AFTER REQUEST TO SEND'; rc := CPICSend(Conv,'STD3.DDF', Buff,ReqTSRcvd); Buff := 'DO RAY ME FA LA SO.'; rc := CPICSend(Conv,'STD3.DDF', Buff,ReqTSRcvd); rc := CPICPrepareToReceive(Conv); didreqts := FALSE; StatRcvd := 0; end; end; rc := CPICSend(Conv,'TOTALBUF.DDF',TotalBuff, ReqTSRcvd); rc := CPICDeallocate(Conv); END;
-- SECOND.KB -- This file reads in a text file, transmitting each line to FIRST. -- When finished, SECOND will receive the entire file in one buffer from FIRST.
KNOWLEDGEBASE SECOND;
ROUTINES PROCEDURE DoConversation(VAL Args:List of String); (* Expecting sdn, infile *)
PRIVATE
ROUTINES
PROCEDURE RcvData(VAL Conv:Conversation) IS VARIABLES Buff :STRING; DataRcvd :INTEGER; StatRcvd :INTEGER; ReqTSRcvd:INTEGER; rc :INTEGER; ACTIONS rc := 1; while (rc = 1) and (not((StatRcvd = $CPICSendReceived) or (StatRcvd = $CPICconfirmSendReceived))) do rc := CPICReceive(Conv,'STD.DDF', Buff,DataRcvd,StatRcvd, ReqTSRcvd); if ((StatRcvd = $CPICConfirmReceived) or (StatRcvd = $CPICConfirmSendReceived)) then rc := CPICConfirmed(Conv); end; end; END; -- RcvData PROCEDURE DoConversation(VAL Args:List of String) IS VARIABLES Conv :Conversation; Buff :STRING; DataRcvd :INTEGER; StatRcvd :INTEGER; ReqTSRcvd:INTEGER; rc :INTEGER; inf :file; ACTIONS if (ListLength(Args) < 3) then WinMessageBox($DESKTOP,'Oops',$MBOK, 'KML SECOND SDN INFILE'); Exit; end;
FOpen(inf,Args[2],$Read);
rc := CPICInitialize(Conv,Args[1]); rc := CPICSetSyncLevel(Conv, $CPICConfirm); rc := CPICSetTPName(Conv,'RUNRCV '); rc := CPICSetPartnerLUName(Conv,'SAI.DVORJAK '); rc := CPICSetConvType(Conv,$CPICBasicConversation); rc := CPICAllocate(Conv);
rc := CPICSetSendType(Conv, $CPICBufferData); rc := CPICSetPrepareToReceiveType (Conv,$CPICPrepToReceiveFlush);
while (FReadLn(inf,Buff) > 0) do Buff:= Buff & Char(13) & Char(10); -- add on CR LF rc := CPICSend(Conv,'FILEREC.DDF', Buff,ReqTSRcvd); if (ReqTSRcvd = $CPICReqToSendReceived) then RcvData(Conv); end;
-- the confirms have been randomized for this example if (random(1,10) < 2) then CPICConfirm(Conv,ReqTSRcvd); if (ReqTSRcvd = $CPICReqToSendReceived) then RcvData(Conv); end; end; end; FClose(inf);
rc := CPICPrepareToReceive(Conv);
rc := CPICReceive(Conv,'TOTALBUF.DDF', Buff,DataRcvd,StatRcvd,ReqTSRcvd); rc := CPICDeallocate(Conv); END;
与伙伴应用程序建立基本对话或映射对话。
conv: CONVERSATION EXPRESSION
参数 | 说明 |
conv | 已初始化并要分配的对话 |
INTEGER
发出此调用后,应用程序就处于“发送”状态。
应用程序在尝试 CPICAllocate 之前,必须发出带相同 CONVERSATION 变量的 CPICInitialize 命令。
在 CPIC 补充信息 SND(在调用 CPICInitialize 中指定)的 TP 名称特性中指定伙伴应用程序。在发出 CPICAllocate 之前且在发出 CPICInitialize 之后,TSD 脚本应用程序可能发出下列调用之一:
本地 LU 可能对某个分配请求进行缓存,直到此 LU 从一个或多个 CPICSend 调用中积累了足够的传送信息,或直到本地 TSD 脚本应用程序发出明确刷新此缓冲区的调用。
本地应用程序可以在 CPICAllocate 之后立即发出 CPICFlush,以确保连接。
在接受对话后,远程应用程序就处于“接收”状态。
调用 CPICAllocate 时,报告由于本地 LU 故障而导致的分配错误。
在随后的对话调用中报告由于在伙伴 LU 拒绝请求而导致的分配错误。
请参见 CPICAccept 的代码段,以获取一个完整的实例。
请求伙伴应用程序对有关数据接收进行确认,然后等待答复。
conv : CONVERSATION EXPRESSION reqTSRcvd: INTEGER PARAMETER
参数 | 说明 |
conv | 已初始化并要分配的对话 |
reqTSRcvd | 指示伙伴是否已请求发送数据。此变量的值可以为 $CPICRequestToSendReceived 或 $CPICRequestToSendNotReceived:
|
INTEGER
本地应用程序暂停进一步的处理,直到伙伴应用程序答复此请求。此调用刷新本地 LU 的发送缓冲区。
请参见 CPICAccept 的代码段,以获取一个完整的实例。
答复伙伴的确认请求。
conv: CONVERSATION EXPRESSION
参数 | 说明 |
conv | 已初始化并要分配的对话 |
INTEGER
只有当伙伴已请求确认时,才应该调用此函数。
请参见 CPICAccept 的代码段,以获取一个完整的实例。
终止对话并释放专用于此对话的资源。
conv: CONVERSATION EXPRESSION
参数 | 说明 |
conv | 已初始化并要分配的对话 |
INTEGER
用此功能刷新本地 LU 的发送缓冲区。
伙伴通过返回代码或 CPICReceive 的 statusReceived 参数接收解除分配的通知。
如果 statusReceived 参数是 $CPICConfirmDeallocReceived,则本地应用程序发出带下列项的 CPICDeallocate:
请参见 CPICAccept 的代码段,以获取一个完整的实例。
删除指定的 CPIC 补充信息条目。
keylock : STRING EXPRESSION symDestName: STRING EXPRESSION
参数 | 说明 |
keylock | 打开通信管理器键锁功能时的通信管理器键。当不使用此功能时,指定‘’(八个空格)。 |
symDestName | 通信管理器设置信息中条目的 SDN |
INTEGER
如果返回代码不是 1,则此条目尚未删除。
此调用不影响活动对话。立即删除此条目,意味着拒绝以后用此 SDN 创建的所有 CPICInitialize 调用。通信管理器正在删除此条目时,暂停任何其他应用程序对 CPICInitialize 的尝试,直到完成删除操作。
获得对话的安全类型。
conv : CONVERSATION convSecurityType: INTEGER PARAMETER
参数 | 说明 |
conv | 指定正在为其检查安全类型的对话 |
convSecurityType | 包含指示安全类型的整数。TSD 脚本用一些系统常数作为这些类型的助记符:
|
INTEGER
调用 CPICInitialize 时,将对话的安全类型设置为缺省值。可用调用 CPICSetConvSecurityType 来更改它。
获得与对话关联的安全用户标识。
conv : CONVERSATION EXPRESSION securityUserID: STRING PARAMETER
参数 | 说明 |
conv | 安全用户标识的对话句柄 |
securityUserID | 包含访问此对话所用的用户标识 |
INTEGER
将安全用户标识设置为调用 CPICInitialize 时的缺省值。可用调用 CPICSetConvSecurityUserID 来更改它。
获得给定对话的状态。
conv : CONVERSATION EXPRESSION state: INTEGER PARAMETER
参数 | 说明 |
conv | 希望知道其状态的对话句柄 |
状态 | 包含用于本地伙伴 TSD 脚本系统常数的对话状态:
|
INTEGER
获得给定对话的类型。
conv : CONVERSATION PARAMETER convType: INTEGER PARAMETER
参数 | 说明 |
conv | 希望知道其类型的对话句柄。 |
convType | 包含对话的类型。此值可以是下列 TSD 脚本系统常数之一:
|
INTEGER
在 CPICInitialize 处理期间,对话的类型缺省为 $CPICMappedConversation。
在调用 CPICInitialize 之前但在调用 CPICAllocate 之后,调用 CPICSetConvType 改变对话类型。
获得给定对话的模式名称。
conv : CONVERSATION EXPRESSION modeName: STRING PARAMETER
参数 | 说明 |
conv | 希望知道其模式名称的对话句柄 |
modeName | 包含对话的模式名称。它为携带此对话的会话指定网络属性。 |
INTEGER
获得伙伴应用程序的 LU 名称。
conv : CONVERSATION EXPRESSION partnerLUName: STRING PARAMETER
参数 | 说明 |
conv | 指示某个对话,从此对话中希望知道伙伴应用程序的 LU 名称 |
partnerLUName | 包含伙伴的 LU 名称 |
INTEGER
获得指示的 SDN 的参数。
entryNbr : INTEGER EXPRESSION symDestName : STRING EXPRESSION partnerLUName : STRING PARAMETER TPNameType : INTEGER PARAMETER TPName : STRING PARAMETER modeName : STRING PARAMETER convSecurityType: INTEGER PARAMETER securityUserID : STRING PARAMETER
参数 | 说明 |
entryNbr | 所需的值在 CPIC 补充信息表中的索引号。如果此索引号为 0,则通信管理器根据给定的 SDN 搜索。 |
symDestName | 为 entryNbr 指定 0 时,用此值搜索 CPIC 补充信息表。 |
partnerLUName | CPIC 补充信息条目中指定的伙伴 LU 名称。 |
TPNameType | 指示 TP 类型的整数。这些类型的 TSD 脚本系统常数是 $CPICApplicationTP 和 $CPICSNAServiceTP。 |
TPName | TP 的名称。 |
modeName | 在使用此 SDN 分配的对话中所使用的模式。 |
convSecurityType | 用此 CPIC 补充信息条目分配的任意对话所使用的安全类型。 |
securityUserID | 访问此对话的安全用户标识。当安全类型为 CPICSecurityProgram 时,在分配请求期间,将安全用户标识传送给伙伴 LU。 |
INTEGER
不返回表条目的安全口令。
当通信管理器执行此命令时,暂停任何其他应用程序有关更改此信息的调用。
此条目编号在内部 CPIC 补充信息条目的当前列表中指定一个索引。如果删除条目,则更改索引。
获得对话的当前同步级别。
conv : CONVERSATION EXPRESSION SYNCLEVEL: INTEGER PARAMETER
参数 | 说明 |
conv | 需要其同步级别的对话句柄。 |
SYNCLEVEL | 指定的对话的当前同步级别。 |
这些值的 TSD 脚本系统常数助记符为:
INTEGER
同步级别值 $CPICNone 指示伙伴不执行确认处理。
同步级别值 $CPICConfirm 指示应用程序执行确认处理。即它们发出合适的确认调用并识别返回的与确认有关的参数。
使通信管理器发送内部处理器中的任何数据。
conv: CONVERSATION EXPRESSION
参数 | 说明 |
conv | 刷新数据所在的对话句柄 |
INTEGER
当应用程序发出 CPICAllocate、CPICSend 或 CPICSendError 时,通信管理器可能在内部存储数据,以尽可能确保网络信息量的效率。通信管理器搁置数据,直到内部缓冲区变满或应用程序强制刷新。如果内部缓冲区中没有数据,则不将任何数据发送到伙伴应用程序。
应用程序可使用 CPICFlush 明确强制执行刷新,或使用 CPICConfirm、CPICPrepareToReceive、CPICDeallocate 等暗含方式强制执行刷新。
如果计划在每个 CPICSend 之后进行刷新,则可能要使用 CPICSetSendType 将发送类型设置为 $CPICSendAndFlush。注意这样做会影响通信管理器采取措施的效率。
配置和准备对话的内部资源。将许多特性设置为缺省值并与指定的对话句柄关联。
conv : CONVERSATION PARAMETER symDestName: STRING EXPRESSION
参数 | 说明 |
conv | 要为对话准备的对话句柄。 |
symDestName | 设置对话特性时要使用的 CPIC 补充信息表中某个条目的 SDN。 |
INTEGER
应用程序通过调用合适的 CPICSet,可覆盖在此调用中初始化的属性。请记住必须在调用 CPICAllocate 之前创建这些调用。
在以后调用 CPIC 命令时,都要使用此命令所配置的对话句柄。应用程序通过为每个要分配的对话调用一次 CPICInitialize,可携带多个对话。
如果 CPIC 补充信息表提供此对话的无效信息,则在调用 CPICAllocate 时会检测到这种情况。
应用程序可能向此函数提供空白 symDestName。通过这样做,就由此应用程序负责调用 TSD 脚本函数以设置对话特性。
请参见 CPICAccept 的代码段,以获取一个完整的实例。
将对话的本地端从“发送”状态更改为“接收”状态,以准备接收数据。
conv: CONVERSATION EXPRESSION
参数 | 说明 |
conv | 此句柄标识要进入“接收”状态的对话。 |
INTEGER
如果此对话的接收准备类型是 $CPICPrepareToReceiveConfirm,或接收准备类型是 $CPICPrepareToReceiveSyncLevel 且同步级别是 $CPICConfirm,则通信管理器向伙伴应用程序发送确认请求。
本地应用程序等待一段时间,直到接收到确认的答复。此命令暗示强制执行刷新。
远程应用程序通过状态接收参数来接收发送控制的通知。
如果状态接收到的值为 $CPICSendReceived,则本地应用程序发出不带确认请求的 CPICPrepareToReceive 命令。
如果值为 $CPICConfirmSendReceived,则本地应用程序发出带确认请求的命令,通过将接收准备类型设置为 $CPICPrepToReceiveConfirm,或将接收准备类型设置为 $CPICPrepToReceiveSyncLevel 且将同步级别设置为 $CPICConfirm 做到这点。
远程应用程序的对话端开始进入“发送”或“发送挂起”状态。
请参见 CPICAccept 的代码段,以获取一个完整的实例。
接收来自指定对话的入网数据。
conv : CONVERSATION EXPRESSION DDFName : STRING EXPRESSION buffer : ANY PARAMETER dataReceived : INTEGER PARAMETER statusReceived: INTEGER PARAMETER reqTSRcvd : INTEGER PARAMETER
参数 | 说明 |
conv | 要从中获得数据的对话句柄。 |
DDFName | DDF 名称,用来定义字节的入网块结构。 |
buffer | 简单类型(INTEGER、BOOLEAN、TIME、DATE、STRING)或用户定义的记录类型的 TSD 脚本变量。此变量与 DDFName 参数密切相关,因为 DDFName 应指定足以说明缓冲区格式的 DDF。 |
dataReceived | 指定应用程序是否接收到任何数据。 适用于此值的 TSD 脚本系统常数如下:
|
reqTSRcvd | 指示伙伴是否已请求发送数据。此变量的值可以为 $CPICRequestToSendReceived 或 $CPICRequestToSendNotReceived。$CPICRequestToSendReceived 表示伙伴已发出一个 CPICRequestToSend。这个请求要求本地应用程序进入“接收”状态。
|
INTEGER
如果接收类型设置为 $CPICReceiveAndWait(缺省值),则 TSD 脚本应用程序暂停(等待)直到接收到数据。等待的时间限制在通信管理器目录的 NDF(节点定义文件)中设置。
注:通信管理器将此值缺省为 INFINITE。
请参见“使用 CPIC”一章中关于 DDF 的章节,以获取正确使用 DDF 的深入说明。此命令暗示要刷新内部缓冲区。在同一调用中应用程序可同时接收数据和对话状态。
请参见 CPICAccept 的代码段,以获取一个完整的实例。
向伙伴应用程序发出发送数据的请求。
conv: CONVERSATION EXPRESSION
参数 | 说明 |
conv | 希望其进入“发送”状态的对话。 |
INTEGER
通过 CPICSend、CPICSendError、CPICConfirm 或 CPICTestRequestToSendReceived 命令之一所用的 reqTSRcvd 参数,通知远程应用程序请求到达。
此值是 $CPICReqToSendReceived。
远程应用程序通过发出合适的命令进入“接收”状态之后,本地应用程序处于“发送”或“发送挂起”状态。远程 LU 对每个对话一次只发送一个请求。在 CPIC 调用期间,在通知远程应用程序之前,放弃附加的通知。
请注意这意味着应用程序发出的 CPICRequestToSend 调用数可能多于指示给远程应用程序的此调用数。
请参见 CPICAccept 的代码段,以获取一个完整的实例。
在给定的对话上向伙伴应用程序发送数据。
conv : CONVERSATION EXPRESSION DDFName : STRING EXPRESSION buffer : ANY EXPRESSION reqTSRcvd: INTEGER PARAMETER
参数 | 说明 |
conv | 要在上面发送数据的对话。 |
DDFName | 在从缓冲区提取值并创建要传送的字节块中所使用的 DDF。 |
buffer | 包含要发送的数据的 TSD 脚本变量。此变量的类型可能是 TSD 脚本简单类型(INTEGER、REAL、BOOLEAN、TIME、DATE)或用户定义的记录类型。 |
reqTSRcvd | 指示伙伴是否已请求发送数据。 此变量的值可以为:
|
INTEGER
本地 LU 保存要发送给远程 LU 的数据,直到有足够的量用于传送,或直到应用程序明确或暗含强制执行刷新之后,才不再保存这些数据。传送的数据量大小由分配来支持此对话的会话特性决定。
当 reqTSRcvd 指示 $CPICReqToSendReceived 时,远程应用程序正在请求本地应用程序进入“接收”状态。如果经常将 CPICSend 与 CPICFlush、CPICConfirm 或 CPICPrepareToReceive 一起使用,则检查 CPICSetSendType 的用法。使用此组命令可能更有效。
请参见 CPICAccept 的代码段,以获取一个完整的实例。
通知远程应用程序,在对话期间本地应用程序检测到错误。
conv : CONVERSATION EXPRESSION reqTSRcvd: INTEGER PARAMETER
参数 | 说明 |
conv | 要在其上指示错误的对话。 |
reqTScvd | 指示伙伴是否已请求发送数据。 此变量的值可以为:
|
INTEGER
本地 LU 可能延迟发送错误通知(不立即发送)。如果这样,则将通知缓存,直到有足够的量用于传输,或直到应用程序明确或暗含强制执行刷新之后,才不再保存通知。为确保伙伴应用程序立即接收到错误通知,本地应用程序可发出 CPICFlush。
当从“接收”、“确认”、“确认发送”、“确认解除分配”或“发送挂起”状态发出此调用时,本地应用程序进入“发送”状态。当从“发送”状态发出此调用时,不更改状态。
设置要发送给伙伴的安全口令。
conv : CONVERSATION EXPRESSION securityPassword: STRING EXPRESSION
参数 | 说明 |
conv | 要为其设置口令的对话。 |
securityPassword | 新安全口令。伙伴 LU 使用此口令和安全用户标识来验证请求者身份。 |
INTEGER
只有当对话安全类型为 $CPICSecurityProgram 时才生成此调用。应在 CPICInitialize 之后且在 CPICAllocate 之前生成此调用。
初始化时,将口令设置为缺省特性(在 CPIC 补充信息条目中设置)。
此调用不检测无效口令的规范。当接收到分配请求时由伙伴 LU 检测此规范。本地应用程序接收随后的 CPIC 调用上的错误指示。
设置对话的安全类型。
conv : CONVERSATION EXPRESSION convSecurityType: INTEGER EXPRESSION
参数 | 说明 |
conv | 要为其设置安全类型的对话句柄。 |
convSecurityType | INTEGER 指示安全类型。TSD 脚本系统常数为:
|
INTEGER
在 CPICInitialize 处理期间,将安全类型设置为 CPIC 补充信息条目中指定的缺省值。
对于 $CPICSecurityNone 安全类型,将分配请求发送到不带安全信息的伙伴 LU。
对于 $CPICSecuritySame 安全类型,此分配请求包含相同级别的访问安全信息(无或用户标识),以用于启动应用程序,前提是伙伴 LU 接受已验证的安全信息。如果伙伴不接受已验证的安全信息,则分配请求不包含安全信息。
对于 $CPICSecurityProgram 安全类型,如果伙伴接受本地 LU 的安全信息,则分配请求包含相应对话属性中的用户标识和口令。
如果 TSD 脚本应用程序设置安全类型为 $CPICSecurityProgram,此程序可能接着调用 CPICSetConvSecurityPassword 和 CPICSetConvSecurityUserID。
如果 TSD 脚本应用程序不将安全类型设置为 $CPICSecurityProgram,则采用 CPIC 补充信息条目中的值。
设置对话的安全用户标识。此用户标识对于安全类型为 $CPICSecurityProgram 的对话是必需的。
conv : CONVERSATION EXPRESSION securityUserID: STRING EXPRESSION
参数 | 说明 |
conv | 为其设置安全用户标识的对话。 |
securityUserID | 安全用户标识。伙伴 LU 使用此安全用户标识和安全口令来验证请求者身份。 |
INTEGER
在 CPICInitialize 处理期间,用户标识的初始值取自 CPIC 补充信息条目。
此调用不检测无效安全用户标识的规范。当伙伴 LU 接收到分配请求时,由伙伴 LU 检测此规范。本地应用程序接收随后的 CPIC 调用上的通知。
设置对话类型。
conv : CONVERSATION PARAMETER convType: INTEGER EXPRESSION
参数 | 说明 |
conv | 要为其更改对话类型的对话句柄。 |
convType | 指示对话类型的整数。TSD 脚本系统常数为:
|
INTEGER
在 CPICInitialize 处理期间,将对话类型设置为 $CPICMappedConversation。应用程序在 CPICInitialize 之后需要调用此函数,以将类型更改为 $CPICBasicConversation。基本对话应被认为是高级编程技巧。
请参见 CPICAccept 的代码段,以获取一个完整的实例。
设置要执行的解除分配处理的类型。
conv : CONVERSATION EXPRESSION deallocateType: INTEGER EXPRESSION
参数 | 说明 |
conv | 正在为其设置解除分配类型的对话句柄 |
deallocateType | 指示期望的解除分配类型的整数。TSD 脚本系统常数为:
|
INTEGER
当调用 CPICDeallocate 函数时,由 CPIC 使用解除分配类型属性。
如果接收到成功的答复,则正常地解除分配此对话。如果接收到不成功的答复,则此对话的状态由返回代码来确定。
请注意只有当同步级别是 $CPICConfirm 时,才能使用 $CPICDeallocateConfirm 类型。
设置对话的错误方向属性。
conv : CONVERSATION EXPRESSION errorDirection: INTEGER EXPRESSION
参数 | 说明 |
conv | 要为其设置错误方向的对话句柄。 |
errorDirection | 指示在其中检测到错误的数据流方向的整数。TSD 脚本系统常数为 $CPICReceiveError 和 $CPICSendError。 |
INTEGER
$CPICReceiveError 值指示本地应用程序从伙伴接收数据时,在数据中检测到错误。本地应用程序发出 CPICSendError 时,远程应用程序收到返回代码 -22(CM_PROGRAM_ERROR_PURGING)。$CPICSendError 值指示当准备要发送给伙伴的数据时,本地应用程序遇到了问题。本地应用程序发出 CPICSendError 时,远程应用程序收到返回代码 -21(CM_PROGRAM_ERROR_NO_TRUNC)。
只有在应用程序处于“发送挂起”状态时,才能使用此错误方向属性。只有在“发送挂起”时刻,才不能确认错误是接收错误还是发送错误。在 CPICReceive(即同时接收到数据和 $CPICSendReceived 状态)之后,应用程序处于“发送挂起”状态。错误方向缺省为 $CPICReceiveError。
一旦更改错误方向,则在应用程序再次更改它之前新值一直有效。
设置对话要使用的模式名称。
conv : CONVERSATION EXPRESSION modeName: STRING EXPRESSION
参数 | 说明 |
conv | 要为其设置模式名称的对话句柄 |
modeName | 对话要使用的模式名称。模式名称为携带此对话的会话指定网络属性。这些网络属性包括服务的类以及是否加密数据。 |
INTEGER
此调用不检测无效的模式名称。以后的 CPICAllocate 返回错误。
设置对话的伙伴 LU 名称。
conv : CONVERSATION EXPRESSION partnerLUName: STRING EXPRESSION
参数 | 说明 |
conv | 为其更改伙伴 LU 名称的对话 |
partnerLUName | 对话的新伙伴 LU 名称。这是远程应用程序所在的 LU 的名称。本地 LU 借助此 LU 名称为了分配对话而了解远程 LU 的情况。 |
INTEGER
应在 CPICInitialize 之后、但在 CPICAllocate 之前发出此调用。发出此调用不更改 CPIC 补充信息条目中的信息。
请参见 CPICAccept 的代码段,以获取一个完整的实例。
当调用 CPICPrepareToReceive 时,设置要使用的属性。
conv : CONVERSATION EXPRESSION prepToRcvType: INTEGER EXPRESSION
参数 | 说明 |
conv | 为其设置接收准备类型的对话。 |
prepToRcvType | 一个整数,指示对要执行的接收处理的准备类型。TSD 脚本系统常数是 $CPICPrepToReceiveSyncLevel、$CPICPrepToReceiveFlush 和 $CPICPrepToReceiveConfirm。 |
INTEGER
对于 $CPICPrepToReceiveFlush,刷新缓冲区且应用程序进入“接收”状态。
对于 $CPICPrepToReceiveConfirm,发送确认请求。如果成功,则应用程序进入“接收”状态。如果不成功,则对话的状态由返回代码来确定。
对于 $CPICPrepToReceiveSyncLevel,根据同步级别确定处理。如果同步级别是 $CPICNone,则操作与 $CPICPrepToReceiveFlush 所用的操作相同。
如果同步级别是 $CPICConfirm,则处理与 $CPICPrepToReceiveConfirm 所用到的处理相同。
请参见 CPICAccept 的代码段,以获取一个完整的实例。
设置要执行的接收操作的类型。
conv : CONVERSATION EXPRESSION rcvType: INTEGER EXPRESSION
参数 | 说明 |
conv | 为其更改接收类型的对话 |
rcvType | 指示接收处理类型的整数。TSD 脚本系统常数是 $CPICReceiveAndWait 和 $CPICReceiveImmediate。 |
INTEGER
可能在 CPICInitialize(对于对话的启动程序)或 CPICAccept(对于对话的接收程序)之后的任意时间调用此函数。
$CPICReceiveAndWait 值表示对 CPICReceive 函数的调用要等待一段时间,直到信息传到。$CPICReceiveImmediate 表示 CPICReceive 函数接收任何可用的数据,但不等待更多信息的到来。
设置对话的返回控制属性。调用 CPICAllocate 时要用到它。
conv : CONVERSATION EXPRESSION returnControl: INTEGER EXPRESSION
参数 | 说明 |
conv | 为其更改返回控制的对话 |
returnControl | 一个整数,指示 TSD 脚本应用程序在何时重新获得调用 CPICAllocate 的控制权。TSD 脚本系统常数是 $CPICWhenSessionAllocated 和 $CPICImmediate。 |
INTEGER
对于 $CPICWhenSessionAllocated,TSD 脚本应用程序等待分配此会话。对于 $CPICImmediate,只有可立即获得空闲会话时才分配此会话。在 CPICAllocate 调用上报告由于本地 LU 不能获得此对话的会话而导致的分配错误。在随后的对话调用中报告伙伴 LU 拒绝请求。
设置对话的发送类型属性。
conv : CONVERSATION EXPRESSION sendType: INTEGER EXPRESSION
参数 | 说明 |
conv | 为其更改发送类型的对话。 |
sendType | 指示每次调用 CPICSend 时要采取的操作的整数。TSD 脚本系统常数为:
|
INTEGER
值为 $CPICBufferData(缺省值)时,除了发送数据之外,不需要执行其他操作。数据也可能存储在内部,直到通过多个 CPICSend 调用积累了足够用于传输的数据量。
$CPICSendAndFlush 指示在每个 CPICSend 之后执行刷新操作。
$CPICSendAndConfirm 指示在每个 CPICSend 之后发送确认请求。
$CPICSendAndPrepToReceive 指示在调用 CPICSend 时,本地应用程序将发送控制权给予远程应用程序。
$CPICSendAndDeallocate 指示在发送数据之后,解除分配此对话。
请参见 CPICAccept 的代码段,以获取一个完整的实例。
在 CPIC 补充信息表中添加或替换 CPIC 补充信息条目。
keylock : STRING EXPRESSION symDestName : STRING EXPRESSION partnerLUName : STRING EXPRESSION TPNameType : INTEGER EXPRESSION TPName: STRING EXPRESSION modeName : STRING EXPRESSION convSecurityType: INTEGER EXPRESSION securityUserID : STRING EXPRESSION securityPassword: STRING EXPRESSION
参数注释
参数 | 说明 |
keylock | 获得通信管理器锁键功能的母板或服务键。在必要时用空白将此键填充到八个字符。 |
symDestName | 条目的 SDN。此值用作表中的键。如果在表中找不到此值,则更新此值。否则,在表中创建一个新条目。 |
partnerLUName | 远程应用程序的 LU 名称。 |
TPNameType | 指示 TP 类型的整数。TSD 脚本系统常数是 $CPICApplicationTP 和 $CPICSNAServiceTP。 |
TPName | 作为此对话的伙伴的事务应用程序名称。如果指定了 $CPICSNAServiceTP,则必须以‘\xhhaaa’格式指定名称,其中 hh 作为十六进制值处理,其他字符作为字母数字字符处理。 |
modeName | 对话要使用的模式名称。 |
convSecurityType | 一个整数,指示用此补充信息条目分配的任何对话的安全类型。TSD 脚本系统常数是 $CPICSecurityNone、$CPICSecuritySame 和 $CPICSecurityProgram。 |
securityUserID | 要发送给伙伴、用于验证的用户标识。如果 convSecurityType 是 $CPICSecurityProgram,则必须设置此值。 |
securityPassword | 在安全验证期间发送给伙伴的口令。只有在 convSecurityType 为 $CPICSecurityProgram 时才需要此值。 |
INTEGER
此调用不更改通信管理器配置文件。因此,只要正在运行本地应用程序,对补充信息条目进行的修改就存在。
此调用不检查传送给此函数的字符串值的有效性。
此函数不影响任何活动的对话。当通信管理器正在更新 CPIC 补充信息条目时,暂停任何其他应用程序的调用(这些调用用于更改或提取此条目信息)直到完成更新。这包括另一个应用程序对 CPICInitialize 的调用。
设置对话的同步级别属性。
conv : CONVERSATION EXPRESSION SYNCLEVEL: INTEGER EXPRESSION
参数 | 说明 |
conv | 为其更改同步级别的对话句柄。 |
SYNCLEVEL | 指示对话要使用的同步级别的整数。TSD 脚本系统常数是 $CPICNone 和 $CPICConfirm。 |
INTEGER
$CPICNone 表示应用程序在此对话上不执行任何确认处理。$CPICConfirm 表示应用程序可执行确认处理。只能在 CPICInitialize 之后、但在 CPICAllocate 之前设置同步级别。只有对话的启动程序才能使用此函数。
请参见 CPICAccept 的代码段,以获取一个完整的实例。
设置对话的 TP 名称。将此名称给予伙伴 LU,作为要作为对话的远程应用程序来执行的事务应用程序名称。
conv : CONVERSATION EXPRESSION TPName: STRING EXPRESSION
参数 | 说明 |
conv | 为其更改 TP 名称的对话。 |
TPName | 对话的新 TP 名称。请注意此 TP 必须是应用程序 TP,而不是 SNA 服务 TP。 |
INTEGER
此函数只能用来设置应用程序 TP 名称,而不能用来设置 SNA 服务 TP 名称。
请参见 CPICAccept 的代码段,以获取一个完整的实例。
检查伙伴应用程序是否已发出发送请求。
conv : CONVERSATION EXPRESSION reqTSRcvd: INTEGER PARAMETER
参数 | 说明 |
conv | 要测试的对话。 |
reqTSRcvd | 包含指示是否接收到来自伙伴的发送请求的整数。TSD 脚本系统常数是 $CPICReqToSendReceived 和 $CPICReqToSendNotReceived。 |
INTEGER
当本地 LU 接收到此请求通知时,它保留此通知,直到本地应用程序发出带 reqTSRcvd 参数的调用。一次只能保留一个通知,因此在通知本地应用程序之前放弃其他请求。
Tivoli 服务台 6.0 开发工具包旧 API 指南