特定のユーザー・セッションまたは要求を終了します。
構文
EsbKillRequest (hCtx, ReqInfo)
ByVal hCtx As Long
ByVal pReqInfo As ESB_REQUESTINFO_T
| パラメータ | 説明 |
|---|---|
hCtx |
コンテキスト・ハンドル |
pReqInfo |
要求情報構造体を指すポインタ。 |
備考
EsbKillRequest()はESB_REQUESTINFO_T内の現行セッションに関する情報を使用して、特定のユーザー・セッションの終了を要求します。この関数は、ユーザー・セッション中に、アプリケーション、データベースまたはシステムに対して行われているアクティブな要求を終了(ユーザーをログアウトせずに)する場合にも使用できます。
セッションとは、ユーザーがログインしてからログアウトするまでの時間を秒数で表したものです。
要求とは、ユーザーまたは他のプロセスがEssbaseサーバーに対して送信するクエリーです。たとえば、アプリケーションの起動やデータベース・アウトラインの再構築に対する要求などがあります。各セッションは同時に複数の要求を処理できないため、セッションと要求は1対1の関係にあります。
この関数は、ESB_REQUESTINFO_T構造体の「UserName」、「AppName」、「DbName」で指定されたセッションおよび要求を終了します。これらのフィールドがNULLの場合、この関数はこのプロセス(ユーザー)によって起動されたすべてのセッションと要求を終了します。アプリケーション・プログラムは、ESB_REQUESTINFO_Tによって使用されるメモリーの割当てと解放を行います。
戻り値
正常終了の場合は、ユーザー数がItemsに戻され、指定したアプリケーションおよびデータベースに対してアクセス権を持っているユーザーのリストが生成されます。このリストにアクセスするには、EsbGetNextItem()を使用します。
アクセス
この関数を使用するのに、特別な権限は必要ありません。
例
Declare Function EsbKillRequest Lib "ESAPINW" (ByVal hCtx As Long, pReqInfo As ESB_REQUESTINFO_T) As Long
Sub ESB_KillRequest()
Dim Items As Integer
Dim ReqInfo As ESB_REQUESTINFO_T
Dim sts As Long
Dim pAccess As Integer
'*********
' List Requests
'*************
'sts = EsbSetActive(hCtx, AppName, DbName, pAccess)
'Debug.Print "EsbSetActive = " & sts
'sts = EsbDefaultCalc(hCtx)
'Debug.Print "EsbDefaultCalc = " & sts
sts = EsbListRequests(hCtx, UserName, AppName, DbName, Items)
Debug.Print "EsbListRequests = " & sts & " " & Items
For n = 1 To Items
'********************
' Get next Request Info
' from the list
'********************
sts = EsbGetNextItem(hCtx, ESB_REQUESTINFO_TYPE, ReqInfo)
Debug.Print "EsbGetNextItem = " & sts & " " & ReqInfo.LoginId & " " &
ReqInfo.DbRequestCode
sts = EsbKillRequest(hCtx, ReqInfo)
Debug.Print "EsbKillRequest = " & sts
Next
End Sub
関連トピック