セッションメソッド アクションセット: 例

セッション情報を表示し、セッションを管理するアクションを提供します

セッションのアクションキューにあるアクションのリスト

この例では、listactionqアクションを実行して、UUIDで識別されるセッションMysessのキューに現在あるアクションをリストします。この例では、セッションMysessがSAS Cloud Analytic Servicesで実行されており、ACTIONステートメントのASYNC=パラメーターを使用して実行のためにキューに入れられた1つ以上のアクションがあることを前提としています。ASYNC=パラメーターの詳細については、xisError - link not found - The element n0w3x61bw2s5a3n1i2oywybloafc was not found in the link database を参照してください。

/*options cashost="cloud.example.com" casport=5570;*/
cas casauto;                                          /* 1 */
proc cas;
   session casauto;
   uuid = uuid("mysess");                             /* 2 */
   if uuid != "" then
      do;
         session.listactionq result=res / uuid=uuid;  /* 3 */
         print res;
      end;
run;
quit;
  1. 必要に応じて、セッションCasautoを作成します。システムオプションCASHOST=とCASPORT=をサイトで有効なホストとポートに設定します。

  2. 関数UUIDを使用してセッションMysessのUUIDを取得し、その結果を変数Uuidに割り当てます。

  3. セッションMysessのUUIDが正常に取得された場合は、listactionq UUID=パラメーターのUUIDを使用して、セッションMysessの現在のアクションキューを取得します。結果を出力します。

結果

次の結果は例です。

listactionqアクションの結果

この例では、listactionqアクションを実行して、UUIDで識別されるセッションMysessのキューに現在あるアクションをリストします。この例では、セッションMysessがSAS Cloud Analytic Servicesで実行されており、ACTIONステートメントのASYNC=パラメーターを使用して実行のためにキューに入れられた1つ以上のアクションがあることを前提としています。ASYNC=パラメーターの詳細については、xisError - link not found - The element n0w3x61bw2s5a3n1i2oywybloafc was not found in the link database を参照してください。

import swat                                       # 1

s = swat.CAS("cloud.example.com", 5570)           # 2
s.sessionName(name="casauto")

def getUUID(s, sessname):                         # 3
    actstat = 0
    uuid = ""
    lst = s.session.listSessions()                # 4
    tab = lst.pop("Session")
    ucname = sessname.upper()
    for i in range(len(tab.index)):
        row = tab.iloc[i,0]
        name = row[:row.find(":")].upper()
        if name == ucname:
            uuid = tab.iloc[i,1]
            break
    return uuid

uuid = getUUID(s, "mysess")                       # 5
if uuid == "":
    print("Session MYSESS was not found.")
else:
    res = s.session.listactionq(uuid = uuid)
    display(res)
  1. 必要に応じて、セッションCasautoを作成します。システムオプションCASHOST=とCASPORT=をサイトで有効なホストとポートに設定します。

  2. 任意のセッションのUUIDを取得するために使用するCASL関数getUUIDを作成します。この関数は、セッションの名前を受け入れ、指定されたセッションのUUIDを返すか、指定されたセッションが見つからない場合は空の文字列を返す必要があります。この単純な例では必須ではありませんが、このステップでは、1つ以上のセッションのUUIDを頻繁に取得する必要がある場合に、CASL関数でこのアクションを使用する方法を示します。

  3. listSessionsアクションを使用して、サーバーで現在実行されているすべてのセッションのリストを取得し、結果を変数Resに割り当てます。指定されたセッションの結果を検索し、見つかった場合は、セッションのUUIDを返します。それ以外の場合は、空の文字列を返します。

    注: デモンストレーションの目的で、この例では、セッションのUUIDを見つけるための簡単なアプローチを使用しています。同じ名前のセッションを区別する試みは行われません。このアプローチでは、指定された名前のセッションが複数存在する場合、listSessionsアクションの結果で最初に見つかったものが使用されます。
  4. 関数getUUIDを使用してセッションMysessのUUIDを取得し、その結果を変数Uuidに割り当てます。

  5. セッションMysessのUUIDが正常に取得された場合は、listactionq UUID=パラメーターのUUIDを使用して、セッションMysessの現在のアクションキューを取得します。結果を出力します。

結果

次の結果は例です。

listactionqアクションの結果

この例では、listactionqアクションを実行して、UUIDで識別されるセッションMysessのキューに現在あるアクションをリストします。この例では、セッションMysessがSAS Cloud Analytic Servicesで実行されており、ACTIONステートメントのASYNC=パラメーターを使用して実行のためにキューに入れられた1つ以上のアクションがあることを前提としています。ASYNC=パラメーターの詳細については、xisError - link not found - The element n0w3x61bw2s5a3n1i2oywybloafc was not found in the link database を参照してください。

swat = require "swat"                                        -- 1

s = swat.CAS("cloud.example.com", 5770)                      -- 2
s:sessionName{name="casauto"}

function getUUID(s, sessname)                                -- 3
  uuid = ""
  lst = s:session_listSessions{};                            -- 4
  idx = 1
  while lst.Session.columns["SessionName"][idx] ~= nil do
    fullname = string.upper(lst.Session.columns["SessionName"][idx])
    name = string.sub(fullname, 1, (string.len(sessname)+1))
    if name == string.upper(sessname) .. ":" then
      uuid = lst.Session.columns["UUID"][idx]
      break
    end
    idx = idx + 1
  end;
  return uuid;
end

uuid = getUUID(s, "mysess");                                 -- 5

if uuid == "" then
  print("Session MYSESS was not found.")
else
  actqueue = s:session_listactionq{uuid=uuid}                -- 6
  print(actqueue)
end
  1. SAS Scripting Wrapper for Analytics Transferパッケージをインポートします。

  2. 必要に応じて、セッションCasautoを作成します。システムオプションCASHOST=とCASPORT=をサイトで有効なホストとポートに設定します。

  3. 任意のセッションのUUIDを取得するために使用するCASL関数getUUIDを作成します。この関数は、セッションの名前を受け入れ、指定されたセッションのUUIDを返すか、指定されたセッションが見つからない場合は空の文字列を返す必要があります。この単純な例では必須ではありませんが、このステップでは、1つ以上のセッションのUUIDを頻繁に取得する必要がある場合に、CASL関数でこのアクションを使用する方法を示します。

  4. listSessionsアクションを使用して、サーバーで現在実行されているすべてのセッションのリストを取得し、結果を変数Resに割り当てます。指定されたセッションの結果を検索し、見つかった場合は、セッションのUUIDを返します。それ以外の場合は、空の文字列を返します。

    注: デモンストレーションの目的で、この例では、セッションのUUIDを見つけるための簡単なアプローチを使用しています。同じ名前のセッションを区別する試みは行われません。このアプローチでは、指定された名前のセッションが複数存在する場合、listSessionsアクションの結果で最初に見つかったものが使用されます。
  5. 関数getUUIDを使用してセッションMysessのUUIDを取得し、その結果を変数Uuidに割り当てます。

  6. セッションMysessのUUIDが正常に取得された場合は、listactionq UUID=パラメーターのUUIDを使用して、セッションMysessの現在のアクションキューを取得します。結果を出力します。

結果

次の結果は例です。

[Queued Results]

                          Actions Queue
Connection ID  Sequence Number  Timestamp  Action                 
           18               12  1.8815E15  myActionSet.prepareData
           18               13  1.8815E15  sessionProp.addFmtLib  
           18               14  1.8815E15  simple.summary         

                          Actions Queue
Action Parameter Count  Action Tag    Action is Active
                     1  data_prep     Running         
                     3  load_formats  Active          
                     3  summarize     Active

この例では、listactionqアクションを実行して、UUIDで識別されるセッションMysessのキューに現在あるアクションをリストします。この例では、セッションMysessがSAS Cloud Analytic Servicesで実行されており、ACTIONステートメントのASYNC=パラメーターを使用して実行のためにキューに入れられた1つ以上のアクションがあることを前提としています。ASYNC=パラメーターの詳細については、xisError - link not found - The element n0w3x61bw2s5a3n1i2oywybloafc was not found in the link database を参照してください。


library("swat")                           # 1

s <- CAS("cloud.example.com", 5770)       # 2
cas.session.sessionName(s, name = "casauto")

getUUID <- function(s, sessname) {        # 3
  uuid <- ""
  ucname <- toupper(sessname)
  lst <- cas.session.listSessions(s)      # 4
  for (row in 1:nrow(lst$Session)) {
    fullname = lst$Session[row,1]
    name <- toupper(substr(fullname, 1,
                           (regexpr(":", fullname)[1] - 1)))
    if (name == ucname) {
      uuid = lst$Session[row,2]
      break
    }
  }
  return(uuid);
}

uuid <- getUUID(s, "mysess")              # 5
if (uuid == "") {
  print("Session MYSESS was not found.")
} else {
  res <- cas.session.listactionq(s, uuid=uuid)
  print(res)
}
  1. 必要に応じて、セッションCasautoを作成します。システムオプションCASHOST=とCASPORT=をサイトで有効なホストとポートに設定します。

  2. 任意のセッションのUUIDを取得するために使用するCASL関数getUUIDを作成します。この関数は、セッションの名前を受け入れ、指定されたセッションのUUIDを返すか、指定されたセッションが見つからない場合は空の文字列を返す必要があります。この単純な例では必須ではありませんが、このステップでは、1つ以上のセッションのUUIDを頻繁に取得する必要がある場合に、CASL関数でこのアクションを使用する方法を示します。

  3. listSessionsアクションを使用して、サーバーで現在実行されているすべてのセッションのリストを取得し、結果を変数Resに割り当てます。指定されたセッションの結果を検索し、見つかった場合は、セッションのUUIDを返します。それ以外の場合は、空の文字列を返します。

    注: デモンストレーションの目的で、この例では、セッションのUUIDを見つけるための簡単なアプローチを使用しています。同じ名前のセッションを区別する試みは行われません。このアプローチでは、指定された名前のセッションが複数存在する場合、listSessionsアクションの結果で最初に見つかったものが使用されます。
  4. 関数getUUIDを使用してセッションMysessのUUIDを取得し、その結果を変数Uuidに割り当てます。

  5. セッションMysessのUUIDが正常に取得された場合は、listactionq UUID=パラメーターのUUIDを使用して、セッションMysessの現在のアクションキューを取得します。結果を出力します。

結果

次の結果は例です。

$`Queued Results`
  connid seqid  timestamp                  action parameterCount    actiontag   state
1     38    12 1566581502 myActionSet.prepareData              1    data_prep Running
2     38    13 1566581502   sessionProp.addFmtLib              3 load_formats  Active
3     38    14 1566581502          simple.summary              3    summarize  Active
最終更新: 2026年1月14日