22.8 APEX_ACTIVITY_LOGを使用したカスタム・アクティビティ・レポートの作成
APEX_ACTIVITY_LOGビューを使用して、現在のワークスペースのアクティビティを問い合せる方法について学習します。
            
- アプリケーションのロギングの有効化
 アプリケーション定義の編集ページでアプリケーションのロギングを有効にできます。
- APEX_ACTIVITY_LOG
 APEX_ACTIVITY_LOGを使用して、現在のワークスペースのすべてのアクティビティを表示および問い合せます。
- APEX_ACTIVITY_LOGのサンプル問合せ
親トピック: アプリケーション・パフォーマンスの管理
22.8.1 アプリケーションのロギングの有効化
アプリケーション定義の編集ページでアプリケーションのロギングを有効にできます。
アプリケーション定義を編集するには:
ヒント:
Oracle Application Express管理サービスの「アプリケーション・アクティビティのロギング」属性が「アプリケーションの設定を使用(デフォルト)」に設定されている場合、「ロギング」属性の変更のみ可能です。
関連項目:
『Oracle Application Express管理ガイド』のロギングでのアプリケーション・アクティビティの有効化に関する項
22.8.2 APEX_ACTIVITY_LOG
APEX_ACTIVITY_LOGを使用して、現在のワークスペースのすべてのアクティビティを表示および問い合せます。 
                  
APEX_ACTIVITY_LOGビューには、開発者アクティビティ、アプリケーション実行時アクティビティなど、ワークスペースのすべてのアクティビティが記録されます。APEX_ACTIVITY_LOG使用して、現在のワークスペースのすべてのアクティビティを表示および問い合せることができます。たとえば、このビューを使用して、リアルタイムのパフォーマンス分析を提供する特定のアプリケーション内の監視レポートを開発できます。
                     
表 22-1に、APEX_ACTIVITY_LOGビューの列を示します。
                     
表 22-1 APEX_ACTIVITY_LOGの列
| 列 | データ型 | 説明 | 
|---|---|---|
| 
 | DATE | アクティビティがページ・ビューの末尾に記録された日時 | 
| 
 | VARCHAR2(255) | 将来の使用のために予約されています。 | 
| 
 | VARCHAR2(255) | 将来の使用のために予約されています。 | 
| 
 | VARCHAR2(4000) | ページのタイトル | 
| 
 | VARCHAR2(4000) | 将来の使用のために予約されています。 | 
| 
 | NUMBER | ページ・ビューの経過時間(秒)。 | 
| 
 | NUMBER | ページ上で処理された行数 | 
| 
 | VARCHAR2(255) | ページ・ビューを実行しているユーザーのID | 
| 
 | VARCHAR2(4000) | クライアントのIPアドレス | 
| 
 | NUMBER | 対話モード・レポートID | 
| 
 | VARCHAR2 | ユーザーが入力した対話モード・レポート検索条件。 | 
| 
 | VARCHAR2(4000) | クライアントのWebブラウザ・ユーザー・エージェント。 | 
| 
 | NUMBER | アプリケーションID | 
| 
 | NUMBER | ページ番号 | 
| 
 | NUMBER | Oracle Application Expressセッション識別子。 | 
| 
 | VARCHAR2(4000) | SQLエラー・メッセージ | 
| 
 | VARCHAR2(255) | 将来の使用のために予約されています。 | 
| 
 | VARCHAR2(255) | 将来の使用のために予約されています。 | 
アクティビティ・ログの領域を節約するため、一意のセッションそれぞれの最初のログ・エントリにのみIPアドレスとWebブラウザ・ユーザー・エージェントが含まれます。
22.8.3 APEX_ACTIVITY_LOGのサンプル問合せ
次に、アプリケーション9529に関する過去24時間のページ・ビュー合計数および平均ページ・ビュー時間がユーザーID別に表示されるレポートを作成する方法の例を示します。
SELECT COUNT(*), AVG(elap), userid
    FROM APEX_ACTIVITY_LOG
 WHERE time_stamp > (SYSDATE-1)
   AND flow_id = 9529
GROUP BY userid
Oracle Application Expressインスタンスでのアクティビティ・ロギングは2つの異なるログ表を順番に使用することに注意してください。ログ表は2つあるので、ロギング情報はログのうち古い方の使用可能なエントリのみとなります。アプリケーションの特定のログ情報を常に保持する場合は、所有するアプリケーション表に両方のログ情報をコピーするか、アプリケーションに直接ロギングを実装する必要があります。