AWTキャッシュ・グループでのOracle Database永続エラーのレポート

トランザクションが正常に伝播されず、Oracle Databaseにコミットされない場合は、こうした永続エラーによりOracle Databaseのトランザクションがロール・バックされます。

たとえば、一意制約違反のためにOracle Databaseでの更新が失敗する可能性があります。永続エラーが発生したトランザクションは再試行されません。

永続エラーは常に、TimesTenデータベースのチェックポイント・ファイルと同じディレクトリに存在するTimesTenDatabaseFileName.awterrsテキスト・ファイルにレポートされます。このファイルの内容の詳細は、『Oracle TimesTen In-Memory Databaseモニタリングおよびトラブルシューティング・ガイド』「AWTのTimesTenで報告されるOracle Databaseエラー」を参照してください。

ttCacheConfig組込みプロシージャにより、ASCIIおよびXMLの両方の書式でこれらのエラーをレポートするようにTimesTenを構成できます。

ノート:

エラー・ファイルの書式の設定にはttCacheConfigtblOwnerパラメータおよびtblNameパラメータを適用できないため、これらのパラメータには値を渡さないでください。

  • TimesTenDatabaseFileName.awterrsテキスト・ファイルのみに永続エラーをレポートするようにTimesTenを構成するには、ASCIIパラメータを指定してttCacheConfig組込みプロシージャをコールします。これがデフォルトです。

    Command> call ttCacheConfig('AwtErrorXmlOutput',,,'ASCII');
  • TimesTenDatabaseFileName.awterrsテキスト・ファイルとTimesTenDatabaseFileName.awterrs.xmlという名前のXMLファイルの両方に永続エラーをレポートするようにTimesTenを構成するには、XMLパラメータを指定してttCacheConfig組込みプロシージャをコールします。

    Command> call ttCacheConfig('AwtErrorXmlOutput',,,'XML');

ノート:

永続エラーをXMLファイルにレポートするためにttCacheConfigをコールする前に、まずレプリケーション・エージェントを停止する必要があります。次に、組込みプロシージャの完了後に、レプリケーション・エージェントを再起動します。

『Oracle TimesTen In-Memory Databaseリファレンス』「ttCacheConfig」を参照してください。

エラーをXML書式でレポートするように構成すると、Oracle Database永続エラーが発生したときに、次の2つのファイルが生成されます。

  • TimesTenDatabaseFileName.awterrs.xml。このファイルには、Oracle Database永続エラー・メッセージがXML書式で記載されています。

  • TimesTenDatabaseFileName.awterrs.dtd。このファイルにはXML Document Type Definition (DTD)が記載されており、これはTimesTenDatabaseFileName.awterrs.xmlファイルの解析に使用します。

    XML DTDは、エラーのログを含む有効なXMLファイルの要素および構造を記述した一連のマークアップ宣言であり、XML 1.0仕様に基づいています。XMLファイルはUTF-8を使用してエンコードされます。次に、XML書式で記述された要素を示します。

    ノート:

    XML Document Type Definitionを判読および理解する方法の詳細は、http://www.w3.org/TR/REC-xml/を参照してください。

    <!ELEMENT ttawterrorreport (awterrentry*) >
    <!ELEMENT awterrentry(header, (failedop)?, failedtxn) >
    <!ELEMENT header (time, datastore, oracleid, transmittingagent, errorstr,
     (ctn)?, (batchid)?, (depbatchid)?) >
    <!ELEMENT failedop (sql) >
    <!ELEMENT failedtxn ((sql)+) >
    <!ELEMENT time (hour, min, sec, year, month, day) >
    <!ELEMENT hour (#PCDATA) >
    <!ELEMENT min (#PCDATA) >
    <!ELEMENT sec (#PCDATA) >
    <!ELEMENT year (#PCDATA) >
    <!ELEMENT month (#PCDATA) >
    <!ELEMENT day (#PCDATA) >
    <!ELEMENT datastore (#PCDATA) >
    <!ELEMENT oracleid (#PCDATA) >
    <!ELEMENT transmittingagent (transmitingname, pid, threadid) >
    <!ELEMENT pid (#PCDATA) >
    <!ELEMENT threadid (#PCDATA) >
    <!ELEMENT transmittingname (#PCDATA) >
    <!ELEMENT errorstr (#PCDATA) >
    <!ELEMENT ctn (timestamp, seqnum) >
    <!ELEMENT timestamp(#PCDATA) >
    <!ELEMENT seqnum(#PCDATA) >
    <!ELEMENT batchid(#PCDATA) >
    <!ELEMENT depbatchid(#PCDATA) >
    <!ELEMENT sql(#PCDATA) >