プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebCenter Sitesでの開発
12c (12.2.1)
E72540-01
目次へ移動
目次

前
次

75 WebCenter Sitesでのアセット・イベントおよびパブリッシュ・イベントの理解

WebCenter Sitesでは現在、アセット・イベントおよびパブリッシュ・イベントの2つのイベント・タイプがサポートされています。

アセットおよびパブリッシュ・イベントの詳細は、次の項を参照してください。

75.1 アセット・イベント

アセット・イベントは、ユーザーまたはプログラムのいずれかによってアセットが追加、変更または削除された際に発生するイベントです。このイベントの発生時、構成済の一連のイベントがイベント・フレームワークによって参照および実行されます。この項では、アセット・イベント・リスナーの記述および登録方法について説明します。

75.1.1 アセット・イベント・リスナーの記述

アセット・リスナーでは、AssetEventListenerを拡張して、アセットの変更が通知されるようにする必要があります。WebCenter Sitesには、AbstractAssetEventListenerという便利なベース・クラスが用意されています。このクラスから拡張することで、イベントにつながる特定タイプのアクション(追加/変更/削除)が認識しやすくなります。

サンプル・コードを使用して、カスタム・アセット・リスナーを実装します。このコードでは、アセットIDを出力し、カスタム・ビジネス・ロジックをプラグインすることもできます。

package com.mycompany
public final class CustomAssetEventListener extends AbstractAssetEventListener
{
    public void assetAdded(AssetId id)
    {
        System.out.println("Asset " + id + " added");
    }
    public void assetUpdated(AssetId id)
    {
        System.out.println("Asset " + id + " added");
    }
    public void assetDeleted(AssetId id)
    {
        System.out.println("Asset " + id + " added");
    }
}

アセット・イベント・リスナーはアセット操作の発生後に起動され、データのコミット前には起動されません。

75.1.2 アセット・イベント・リスナーの登録

この項では、アセット・イベント・リスナーの登録方法について説明します。

注意:

WebCenter Sitesは、検索の索引付けに使用する標準リスナーを実装した状態で出荷されます。変更または削除は行わないでください。

アセット・イベント・リスナーは、AssetListener_regデータベース表に登録されます(表75-1)。

表75-1 AssetListener_regデータベース表

ID (整数) 行の一意のID

listener(String)

AssetEventListenerを実装する完全修飾されたクラス名。たとえば、com.mycompany.CustomAssetEventListenerなどです。

blocking(YまたはN)

'Yは、リスナーがブロッキング状態であることを示します(イベントを生成したスレッドと同時に実行されます)。

'N'は、リスナーがブロッキング状態でないことを示します(別のスレッドで実行されます)。

75.2 パブリッシュ・イベント

パブリッシュ・イベントは、パブリッシュ・プロセスの各手順でリアルタイム・パブリッシュ・フレームワークが生成するイベントです。この機能は、システム監視(SNMPなど)やその他のハウスキーピング・プロセスの促進を目的としています。この項には次のトピックが含まれます:

75.2.1 パブリッシュ・イベント・リスナーの記述

パブリッシュ・リスナーはPublishingEventListenerを実装する必要があります。リスナーに渡されるPublishingEventは、起動の要因となった特定のイベントを示します。

次の例は、pubsession IDをコンソールに出力するカスタム・イベント・リスナーの実装に使用します。

package com.mycompany;
public class CustomPublishingEventListener implements PublishingEventListener
{
    public void onEvent( PublishingEvent event ) throws EventException
    {
        System.out.println( "Publishing event fired for     pubsession: " + event.getPubSessionId());
        System.out.println( "Publishing task : " + event.getTaskName());
        System.out.println( "Status of the task :  " + event.getStatus());
        System.out.println( "Message associated with the task : " + event.getMessage() );
    }
}

パブリッシュは複数のタスク(データ収集、パッケージ化、転送など)で構成され、それぞれがイベントを生成します。PublishingEventクラスは、パブリッシュ・タスクのイベントを表します。実装では、前述のようにイベントからタスクおよびそのステータスを問い合せることができます。

次の状態になった場合に、各タスクでイベントが生成されます。

  • STARTED

  • DONE

  • CANCELLED

  • SUBTASK_FINISHED

  • FAILED

75.2.2 パブリッシュ・イベント・リスナーの登録

  • パブリッシュ・イベント・リスナーをFW_PublishingEventRegistryデータベース表に登録します(表75-2)。

    表75-2 FW_PublishingEventRegistryデータベース表

    ID (整数) 行の一意のID

    listener(String)

    PublishingEventListenerを実装する完全修飾されたクラス名。例: com.mycompany.CustomPublishingEventListener

    blocking(YまたはN)

    'Yは、リスナーがブロッキング状態であることを示します(イベントを生成したスレッドと同時に実行されます)。

    'N'は、リスナーがブロッキング状態でないことを示します(別のスレッドで実行されます)。