Tivoli 服务台 6.0 开发工具包脚本语言参考
返回主页
NetAccept 使连接特定的事件处理器和实例数据与 NetListen 事件处理器以前处理过的连接相关联。
FUNCTION NetAccept (VAL hndlHost: NETCONNECTION, EventHandler {InstanceData} :EVENT, ): INTEGER:
自变量名称 | 说明 |
hndlHost | 连接的句柄。可以将该句柄用于对 SendMessage 和 PostMessage 的调用中,以同主机进行通信。要在对 NetAccept 的调用中使用它,必须由 NetListen 事件处理器为它提供服务。 |
EventHandler | 处理来自服务器的消息。 |
NetListen 事件处理器服务的所有连接共享相同的实例数据拷贝,这些实例数据是为 NetListen 事件处理器定义的。可以使一组特定的实例数据与一个打开的 NetListen 连接相关联,方法是为该连接调用 NetAccept 语句。
注:只能为 NetListen 连接调用 NetAccept,而且只能通过其句柄来调用它。
不能将与该连接关联的实例数据与其他打开的连接一起使用,或将它与以后可能会为 NetListen 事件处理器而打开的连接一起使用。调用 NetAccept,将更改该连接。对同一主机或服务的所有请求都将被传递给新的事件处理器。
当调用 NetAccept 来接收由 NetListen 提供服务的连接时,传送给 NetAccept 的事件处理器将接收到一个 $MsgCreate 来创建自己的实例数据。(NetListen 事件处理器在调用 NetAccept 之前打开连接。)
NetAccept 事件处理器进行入如下工作:
返回码通常发自本地计算机,除非作了指定。
返回码 | 说明 |
1 | 成功 |
-1 | BAD_HANDLE NetConnection 句柄没有引用到一个有效的句柄。如果在建立连接后,已停止并重新启动过服务器进程,则会发送该返回码。该返回码既可发自本地计算机也可发自远程计算机。 |
-2 | UNKNOWN_VALUE 对于需要参数具为已知值的调用使用了未知的参数值。 |
-3 | NO_MEMORY 得不到完成操作所需的充足内存。 |
-4 | NO_CREATE 不能创建连接。该返回可发自本地或远程计算机,可发自操作系统或网络层。也可以将它应用于服务器需要的其他系统对象。如果第二台 Tivoli 脚本服务器试图在相同的端口上启动,则 NetRegister 将返回该消息。 |
-5 | INVALID_TYPE 有三种消息用于在整个网络上传输数据。$MsgNetInteger、$MsgNetReal 和 $MsgNetString 只接受某些数据类型。如果向 SendMessage 或 PostMessage 语句传送了不合适的自变量,则将出现该返回码。 |
-10 | OS_CALL_FAILED 操作系统层的调用失败。这可能是由配置不当或资源不足引起的。 |
-12 | ERROR_BAD_MSG 调用 SendMessage 或 PostMessage 语句时,使用了 NETx 语句不支持的消息 (或使用了专与 NETx 语句一起使用的用户定义的 $MsgUser + n 消息)。 |
-13 | HOST_UNREACHABLE 不能到达被请求的服务器。可能是服务器已关闭,或没有到达服务器的路由,或服务器上没有运行的 NetListen 或 NetRegister 事件处理器。 |
-15 | RESOURCE_LOCK 其他连接正在使用为该调用提供服务所必需的共享资源。如果系统超载,可能会出现该返回码。 |
-16 | SERVICE_NOT_SUPPORTED 服务器不支持被请求的服务。 |
-17 | NO_CONNECTION 没有与句柄关联的有效连接。 |
-18 | BAD PORT 不能将服务字符串的端口部分解析到一个有效的端口或服务中。 |
NetClose 关闭连接。
FUNCTION NetClose (VAL hndlHost: NETCONNECTION ): INTEGER:
自变量名称 | 说明 |
hndlHost | 连接的句柄 |
在实例数据被损坏之前,连接的事件处理器将接收到一个 $MsgDestroy 消息。
注:如果该连接是由 NetListen 事件处理器切断的,则不会清除实例数据。
如果客户机启动关闭程序,NetClose 将在客户端关闭该连接。服务器检测已关闭的连接,并向连接事件处理器发送 MsgNetClose 消息。
服务器将损坏所有与该连接关联的实例数据,然后它将关闭该连接。
NetConnect 在已经联入网络的两台计算机之间建立连接。
NetConnect 有两种语法格式:客户机格式和对等格式。主要格式(作为客户机/服务器的变体)用于在客户机或对等结构中打开连接。
下面是客户机格式的语法。
FUNCTION NetConnect(REF hndlHost: NETCONNECTION, VAL hostName: STRING, VAL service: STRING ): INTEGER;
下面是对等格式的语法。
FUNCTION NetConnect( VAL hndlHost: NETCONNECTION ): INTEGER;
注:同级对等结构是创建返回连接的快捷方式。
自变量名称 | 说明 |
hndlHost | 服务器的句柄。在对 SendMessage 和 PostMessage 调用中使用该句柄,可与服务器通信。如果已经存在用于主机/服务对的句柄,则调用 NetConnect 将返回该句柄。如果使用对等格式,将为返回连接初始化该句柄。 |
hostName | 目标服务器的名称或 IP。 |
service | 客户机向服务器请求的特定服务的名称。如果将服务名称指定为长度为零的字符串或 $Unknown,服务器将搜索通配服务。(服务名称可以长达
256 个字符。) 如果在服务器上找不到该服务,服务器将试图用通配服务或类属服务(使用 NetListen 事件处理器注册的服务)来满足这一服务请求。 可以在服务字符串后面附上远程计算机的端口号码,其格式如下: service : nnnn 其中,nnnn 是一个 TCP/IP 端口号码。否则,采用这种格式: service : name 其中,name 是一个 TCP/IP 服务名称。 |
如果在一个与现存连接关联的句柄上调用 NetConnect,NetConnect 不会重新打开该连接,但要验证下述项目为真:
SourceName : Port
缺省服务是 ASENET/TCP。缺省端口是 5005。
返回与一个活动连接关联的远程地址。
FUNCTION NetGetAddress( VAL handle : NETCONNECTION ) : STRING;
自变量名称 | 说明 |
handle | 活动连接的句柄 |
如果出现错误,或该连接不是活动的,将返回未知。
在客户机上调用 NetGetHostName 时,它将返回与连接关联的服务器的名称(或计算机标识)。在服务器上调用 NetGetHostName 时,它将返回客户机的名称。
FUNCTION NetGetHostName( VAL hndlHost: NETCONNECTION ): STRING:
自变量名称 | 说明 |
hndlHost | 服务器句柄 |
可以从下列任一来源之一获得句柄:
返回码 | 说明 |
NetGetHostName | 返回与句柄关联的服务器的名称(或计算机标识) |
注:如果出现错误或没有与句柄关联的服务器,则将返回 $Unknown。
返回标准 IP 名字解析方法所报告的本地计算机 IP 地址(通常是 DNS 或主机文件)。
FUNCTION NetGetLocalAddress : STRING;
如果网络配置有差异,该函数可能不报告为该计算机配置的地址。如果主机具有多个地址,它将报告 DNS 或主机文件已知的那个地址。
出现错误时,返回未知。
NetGetService 返回与连接关联的网络服务的名称字符串。
FUNCTION NetGetService ( VAL hndlHost: NETCONNECTION ): STRING:
自变量名称 | 说明 |
hndlHost | 服务器句柄 |
可以从 NetConnect 获得句柄,也可以从 NetListen、NetAccept 或 NetRegister 服务的事件处理器的 $Handle 参数获得句柄。(NetGetService 不返回服务规范的端口部分。)
返回码 | 说明 |
NetGetService | 返回与句柄关联的服务名称 |
注:如果出现错误或没有与句柄关联的服务器,则将返回 $Unknown。
NetListen 注册一个类属事件处理器来处理客户机的请求。
FUNCTION NetListen( EventHandler EVENT): INTEGER:
自变量名称 | 说明 |
EventHandler | NetConnection 类型的事件处理器,处理客户机请求 |
请求服务
如果没有相匹配的 NetRegister 或通配服务,NetListen 事件处理器将接收服务请求。第二次调用 NetListen 时,将用新的实例数据来替换事件处理器和实例数据。
每次为 NetListen 事件处理器打开一个新的连接,都将向 NetListen 事件处理器发送 $MsgNetConnect。
NetListen 事件处理器具有一套共享的实例数据,用于所有为其打开的连接。在注册该事件处理器时,它将接收到 $MsgCreate 消息;而在取消对它的注册时,它接收到 $MsgDestroy 消息。
调用 NetListen 事件处理器将向 $Handle 中的客户机和 $Event 中的消息提供句柄。
当关闭由 NetListen 事件处理器处理的连接时,NetListen 事件处理器将接收到一个用于该连接的 $MsgNetClose。
NetLoopBack 将消息发送到本地事件处理器,该事件处理器为一个连到远程计算机的连接提供服务。
FUNCTION NetLoopBack (VAL hndlHost NETCONNECTION VAL message: INTEGER, ANY ... ): INTEGER:
自变量名称 | 说明 |
hndlHost | 服务器句柄。必须为连到远程计算机的打开的连接指定该句柄。 |
SendMessage
NetRegister 注册事件处理器源端口,该端口接受来自网络客户机的连接。与 NetListen 不一样的是,NetRegister 能在服务器上同时运行多个事件处理器。
FUNCTION NetRegister(EventHandler EVENT, VAL service STRING ): INTEGER:
自变量名称 | 说明 |
EventHandler | 处理来自客户机的消息。 |
service | 由服务器提供的服务名称。服务名称限于 255 个字符。 可以在服务字符串之后附上远程计算机的端口号码,其格式如下: service : nnnn 其中,nnnn 是一个 TCP/IP 端口号码。否则,采用这种格式: service : name 其中,name 是一个 TCP/IP 服务名称。 |
在注册事件处理器时,请为它提供的服务指定名称。如果将该服务注册为长度为零的字符串或 $Unknown,则该事件处理器可以处理请求的任何服务。
在注册事件处理器时,还可以使实例数据与它发生关联。在打开该连接时,将为该连接初始化该实例数据。(将端口指定为服务的一个部分将允许服务器进程在单个计算机上运行。)
启用网络跟踪。通常只对调试应用程序问题有帮助。
注:可以将一个可选的过滤器与 NetTrace 一起使用,以指定要跟踪的消息种类,因此不必接收所有的消息。 (例如,可能只要跟踪错误消息)。下列标准语法之后显示的是可选的语法。
FUNCTION NetTrace( VAL traceFile : STRING ) : INTEGER;
Function NetTrace( VAL fileName : STRING VAL flags : STRING ): INTEGER;
自变量名称 | 说明 |
traceFile | 要向其写入跟踪数据的文件名。 |
fileName | 要向其写入已过滤的跟踪数据的文件名。 |
flags | 控制写入何种数据。可以使用下列任一标志:
|
可能会产生大量的数据。
NetTrace 支持单一码的使用,该编码能识别亚洲语言中的双字节字符编码。环境变量如下:
SAI_NET_USE_UNICODE
默认情况下该变量是关闭的。
Tivoli 服务台 6.0 开发工具包脚本语言参考