本章介绍hosts()函数的多种用法。
描述:
设置或取出本分机上任务的内存区号。
语法:
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,hs;j)
备注:
在分机序列hs中找出任务j的内存区号返回值为1,…,n的可用分机序列。
有缺失者则在hosts()为空的分机用相应缺失值执行初始化(init.dfx),找不到足够多分机返回空。
n==0时返回可用分机,不可用分机的位置填成null。
参数:
n |
分机总数。 |
hs |
分机序列。 |
j |
任务名称。 |
返回值:
示例:
分机192.168.46.1的init.dfx参数设置:
分机192.168.31.39的init.dfx参数设置:
init.dfx脚本内容:
|
A |
B |
|
1 |
if i>0 |
|
|
2 |
|
=file("emp.ctx":i) |
分机192.168.46.1、192.168.31.39的主目录下分别存放了1.emp.ctx 、2.emp.ctx文件。 |
3 |
|
=B2.open().cursor().fetch() |
|
4 |
|
>env(EMP,B3) |
将B3的返回结果保存到全局变量EMP中。 |
启动分机192.168.46.1:8281与192.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 、内存区号为1,2的分机序列。
|
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") |
|
参数n为0,返回所有可用分机,不可用分机位置填为null。
|