ステートメントの実行に関する情報とイベント

RequestsManagementInfo MBean は、サーバーのデータベースによって処理される「読み取り専用」のデータ操作言語 (DML) クエリに関する情報を提供します。これらの MBean は com.denodo.vdb.management.mbeans > RequestsManagementInfo > データベース名 にあります。

RequestsManagementInfo MBean の属性

データベースごとに RequestsManagementInfo MBean が存在し、以下の属性があります。

  • DatabaseName: データベースの名前。

  • MaxRequests: この MBean で同時にエクスポートされたリクエストの最大数。各リクエストは、 Request<i> という形式の属性として表示されます。

  • TotalRequests: サーバーの起動以降に処理されたリクエストの合計数。

  • ActiveRequests: アクティブなリクエストの数。

RequestsManagementInfo MBean の通知

データベースの RequestsManagementInfo MBean では、以下の 2 つのタイプの通知が生成されます。

  1. リクエストの開始を示す通知。

  2. リクエストの終了を示す通知。

クライアントアプリケーションでこれらの通知をサブスクライブできます。Java VisualVM でサブスクライブするには、データベースの RequestsManagementInfo MBean を開き、[Notifications] タブをクリックして [Subscribe] をクリックします。

これらの通知には、以下の属性があります。

  • Timestamp: 通知が生成された日時。

  • Type: 通知のタイプ。想定される値は startRequest または endRequest です。

  • UserData: 複合エレメント。そのプロパティには、このデータベースに送信されたリクエストに関する情報が格納されます。リクエストを表示するには、MBeans ブラウザーでこの MBean のノードを展開します。 Request ノードが存在しない場合、このデータベースはまだリクエストを受信していないことを意味します。この MBean には、以下のプロパティがあります。

    • AccessInterface: リクエストを実行したクライアントのタイプ。表「 「access interface」属性の取り得る値 」に、この属性の想定される値のリストを示します。

    • Cache: クエリが実行中にキャッシュにアクセスした場合は true 、そうでない場合は false

    • ClientIP: クライアントの IP アドレス。Web サービスの場合、これは最終クライアント、つまり HTTP リクエストを送信したクライアントの IP アドレスです。

    • Completed: クエリが正常に完了した場合は true 、そうでない場合は false

    • DatabaseName: ステートメントが実行されたデータベースの名前。

    • Elements: クエリで参照されているビューまたはストアドプロシージャの名前とデータベース。このプロパティの形式は "<database of the view/stored procedure>"."<name of the view/stored procedure>" です。

    • EndTime: ステートメントの実行が終了した日時。

    • Identifier: リクエストの ID。この数値は一意ですが、連続していない場合があります (つまり、あるリクエストの ID が「123」で、その次のリクエストの ID が「125」になる場合があります)。サーバーが再起動されると、この値は 1 から再開されます。

    • NumRows: クエリによって返される行の数。

    • Queued: 同時クエリの最大数の制限に達したためにこのクエリがキューに入った場合は true 、そうでない場合は false

    • RequestType: ステートメントのタイプを示します。想定される値は、 SELECT BASE VIEWSELECT VIEWQUERY WRAPPERCALL STOREDPROCEDUREINSERTUPDATE 、または DELETE です。

    • SessionId: このリクエストが属するセッションの ID。

    • StartTime: サーバーがクエリを受信した日時。

    • State: 実行プランの最上位ノードの状態を保存します。想定される値は、 OKERROR 、または PROCESSING です。最上位ノードの状態が OK で、他のノードの状態が ERROR になる場合があります。たとえば、JOIN クエリの分岐の 1 つが失敗して結果を返さない場合、その状態は ERROR です。しかし、JOIN 操作は正常に完了するので、その状態は OK です。このシナリオでは、 State 属性は OKCompleted 属性は false です。

    • Swap: サーバーがクエリの実行中に中間結果をディスクにスワップした場合は true 、そうでない場合は false です。

    • TransactionId: トランザクションの ID。このリクエストがトランザクションの一部ではなかった場合は空文字列です。

    • UserAgent: リクエストを実行したアプリケーションの名前。アプリケーションでユーザーエージェントを設定すると、各コネクションを開いたアプリケーションを把握するのに役立ちます。この設定方法については、「 アプリケーションのユーザーエージェントの設定 」を参照してください。

    • UserName: ステートメントを実行したユーザーの ID。

    • VQLQuery: ステートメントの VQL コード。

    • WaitingTime: サーバーがクエリの実行を開始するまでクエリがキューで待機した時間 (ミリ秒単位)。同時リクエスト数の制限に達した場合、クエリはクエリのキューで保留されます。この制限の詳細、および制限の値を増やす方法については、「 同時リクエスト数の制限 」を参照してください。

    • WebServiceName: このリクエストが、Denodo サーバーによって公開された SOAP または REST Web サービスによって送信された場合は、その Web サービスの名前です。他のタイプのクライアントから送信されたリクエストである場合は空文字列です。

  • SeqNum: この通知の ID。

  • Message: このタイプの通知では、 Started the request または Finished the request の値を取ります。

  • Event: 次のような値になります。

    javax.management.Notification[source=com.denodo.vdb.management.mbeans:type=RequestsManagementInfo,databaseName=<dbname>][type=endRequest][message=Finished the request '<i>']
    

    <dbName> は Virtual DataPort データベースの名前、 <i> はステートメント ID です。

  • Source: MBean 名。