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を構成できます。
ノート:
エラー・ファイルの書式の設定にはttCacheConfig
のtblOwner
パラメータおよび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) >