美文网首页
第四十七章 Caché 变量大全 ^$JOB 变量

第四十七章 Caché 变量大全 ^$JOB 变量

作者: Cache技术分享 | 来源:发表于2021-02-26 06:54 被阅读0次

    第四十七章 Caché 变量大全 ^$JOB 变量

    提供系统间IRIS进程(JOB)信息。

    大纲

    ^$JOB(job_number)
    ^$J(job_number)
    

    参数

    • job_number 输入ObjectScript命令时创建的系统特定OBJ编号。每个活动的InterSystems IRIS进程都有一个唯一的作业号。登录到系统会启动一个作业。在UNIX®系统上,作业号是调用InterSystems IRIS时启动的子进程的PIDJOB_NUMBER必须指定为整数;不支持十六进制值。

    描述

    可以将^$JOB结构化系统变量用作$DATA$ORDER$QUERY函数的参数,以获取有关本地InterSystems IRIS系统上是否存在InterSystems IRIS作业的信息。

    示例

    以下示例显示如何将^$JOB用作$DATA$ORDER$QUERY函数的参数。

    作为$DATA的参数

    $DATA(^$JOB(job_number))

    ^$JOB作为$DATA的参数返回一个整数值,该值指示指定的作业是否作为节点存在于^$JOB中。下表显示了$DATA可以返回的整数值。

    Value Meaning
    0 JOB不存在
    1 JOB存在

    以下示例测试系统间IRIS进程是否存在。

    DHC-APP>SET x=$JOB
     
    DHC-APP>WRITE !,$DATA(^$JOB(x))
     
    1
    

    变量x设置为当前进程的作业号(例如:4294219937)。写入操作返回布尔值1,表示此进程存在。

    作为$ORDER的参数

    $ORDER(^$JOB(job_number),direction)

    ^$JOB作为$ORDER的参数,按排序顺序将下一个或上一个^$JOB编号返回到指定的作业编号。如果不存在作为^$JOB节点的此类JOB编号,$ORDER将返回空字符串。

    Direction参数指定是否返回下一个或上一个job编号。如果不提供方向参数,InterSystems IRIS会将排序顺序中的下一个job编号返回给指定的job编号。

    以下子例程搜索InterSystems IRIS作业表,并将job号存储在名为job的本地数组中。

    /// d ##class(PHA.TEST.SpecialVariables).JOB()
    ClassMethod JOB()
    {
    JOB
        SET pid=""
        FOR i=1:1 {
            SET pid=$ORDER(^$JOB(pid))
            QUIT:pid="" 
            SET JOB(i)=pid
        }
        zw JOB
        WRITE "总共job有: ",i
        QUIT
    }
    
    
    DHC-APP>d ##class(PHA.TEST.SpecialVariables).JOB()
    JOB(1)=612
    JOB(2)=1424
    JOB(3)=1972
    JOB(4)=5624
    JOB(5)=7244
    JOB(6)=7864
    JOB(7)=7872
    JOB(8)=7892
    JOB(9)=7920
    JOB(10)=8332
    JOB(11)=9048
    JOB(12)=9084
    JOB(13)=9340
    JOB(14)=10084
    JOB(15)=10112
    JOB(16)=10156
    JOB(17)=10200
    JOB(18)=10212
    JOB(19)=10828
    JOB(20)=22432
    总共job有: 21
    

    作为$QUERY的参数

    $QUERY(^$JOB(job_number))

    ^$JOB作为$QUERY的参数,按排序顺序将下一个^$JOB编号返回到指定的JOB编号。如果^$JOB中没有这样的JOB编号作为节点,则$QUERY将返回空字符串。

    以下示例返回InterSystems IRISJOB表中的前两个JOB。请注意间接运算符(@)的用法:

    DHC-APP>SET x=$QUERY(^$JOB(""))
     
    DHC-APP> WRITE !,x
     
    ^$JOB("612")
    DHC-APP>WRITE !,$QUERY(@x)
     
    ^$JOB("1424")
    

    相关文章

      网友评论

          本文标题:第四十七章 Caché 变量大全 ^$JOB 变量

          本文链接:https://www.haomeiwen.com/subject/ktopfltx.html