hosts()

阅读(2080) 标签: hosts, 分机,

本章介绍hosts()函数的多种用法。

hosts(i;j)

描述:

设置或取出本分机上任务的内存区号。

语法:

hosts(i;j)

备注:

参数i省略表示取出本分机上任务j的内存区号;参数i与参数j同时存在时表示设置本分机任务j的内存区号,i=0表示清除任务j的内存区号。该函数一般用于初始化文件init.dfx中。

参数:

i

整数,内存区号。

j

任务名称,可省略。

返回值:

Boolean/整数

示例:

 

A

 

1

=hosts(2;"task2")

设置本分机上任务task2的内存区号为2,返回结果为true

2

=hosts(;"task2")

取出任务task2的内存区号,返回结果为2

3

=hosts(0;"task2")

参数i设为0,表示清除任务task2的内存区号,返回结果为true

4

=hosts(;"task2")

此时取出任务task2内存区号,返回结果为null

 

hosts(n,h s;j)

描述:

返回可用的分机序列。

语法:

hosts(n,hs;j)

备注:

在分机序列hs中找出任务j的内存区号返回值为1,…,n的可用分机序列。

有缺失者则在hosts()为空的分机用相应缺失值执行初始化(init.dfx),找不到足够多分机返回空。

n==0时返回可用分机,不可用分机的位置填成null

参数:

n

分机总数。

hs

分机序列。

j

任务名称。

返回值:

分机序列

示例:

分机192.168.46.1init.dfx参数设置:

 

分机192.168.31.39init.dfx参数设置:

 

init.dfx脚本内容:

 

A

B

 

1

if i>0

 

 

2

 

=file("emp.ctx":i)

分机192.168.46.1192.168.31.39的主目录下分别存放了1.emp.ctx 2.emp.ctx文件。

3

 

=B2.open().cursor().fetch()

 

4

 

>env(EMP,B3)

B3的返回结果保存到全局变量EMP中。

启动分机192.168.46.1:8281192.168.31.39:8281,查找可用分机序列,使用内存区中的数据执行计算:

 

A

B

 

1

[192.168.46.1:8281,192.168.31.39:8281,192.168.46.1:8282]

 

 

2

=hosts(2,A1;"task1")

 

从分机序列A1中返回任务名称为task1 、内存区号为12的分机序列。

3

if A2!=null

 

判断A2执行后是否能找到足够的分机,找不到足够的分机则会返回null

4

 

=memory(A2,EMP)

使用各个分机内存区中的全局变量EMP共同构成集群组表。

5

 

=B4.cursor().fetch()

查询集群组表中的数据。

6

else

 

 

7

 

>output("ERROR!")

 

8

=hosts(0,A1;"task1")

 

参数n0,返回所有可用分机,不可用分机位置填为null