Oracle TimesTen In-Memory Database 動作の変更点 # このファイルでは、TimesTen APIの詳細と、リリース間での動作の # 変更点について説明します。 # # このテキスト・ファイルは、任意のエディタを使用して表示できますが、 # Emacsのoutlineモード形式にも対応しています。 # Emacsでロードしている場合は、m-x describe-modeを実行すると、 # 使用可能なナビゲーション機能を確認できます。 # アウトラインのヘッダーは、*で始まる行で示されています。 * リリース6.0.2 ** 接続属性: *** ConnectionName ConnectionName属性に指定した文字列が30文字を超えていると、警告が発生し、 その値は先頭から30文字までに切り捨てられます。以前は、エラーが発生し、 接続に失敗しました。ttIsqlでは、デフォルトのConnectionName値に内部的に 置き換えることで、このエラーを回避していました。 リリース6.0.1 ** 変更の理由: 次に示す多くの変更は、「Oracle Connect」から「TimesTen Cache」に名前が 変更されたために行われました。 ** SQL: *** 予約語 現在、次のキーワードを区切り文字のないオブジェクト名として使用すると、 エラーが発生します。 CASE CONNECTION CROSS DEFAULT DESTROY INNER INTERVAL JOIN LEFT RIGHT WHEN ** ODBC: *** SQL_C_ADDRは、今回のリリースで非推奨になりました。 ** 接続属性: *** DurableCommits DurableCommits属性のデフォルト値は、1(永続的)から0(ゼロ)(非永続的)に 変更されました。 *** SMPOptLevel SMPOptLevel属性のデフォルト値の決定方法が変更されました。指定しない場合、 単一プロセッサ・マシンでは0(ゼロ)に、マルチプロセッサ・マシンでは1に 設定されます。この決定は、データ・ストアへの初期接続が行われるたびに 実行されます。前回の接続時に使用された値は、保持されません。デフォルトの 動作を受け入れない場合は、常にSMPOptLevel値を明示的に指定する必要が あります。 *** TempSize TempSizeで許容される最小値は、4MBに増加されました。 ** 組込みプロシージャ: 次の組込みプロシージャの名前が変更されました。対応する以前の 組込みプロシージャは、非推奨になりました。これらをコールすると、 次のメジャー・リリースで削除されることを示す警告が戻されます。 1. ttCGGenSQLは、ttCacheSqlGetに置き換えられました。 2. ttCGMonitorは、ttCacheMonitorに置き換えられました。 3. ttCacheSetMemoryThresholdは、ttCacheAgingMemoryThresholdSetに 置き換えられました。 4. ttCacheSetAgingIntervalは、ttCacheAgingIntervalSetに置き換えられました。 5. ttCachePropagateFlagは、ttCachePropagateFlagSetに置き換えられました。 6. ttOracleAgentStartは、ttCacheStartに置き換えられました。 ttCacheStartには、パラメータとしてキャッシュ管理ユーザーID(uid)および パスワード(pwd)がありません。 キャッシュ管理ユーザーID(uid)およびパスワード(pwd)を設定するには、 ttCacheUidPwdSetをコールする必要があります。 7. ttOracleAgentStopは、ttCacheStopに置き換えられました。 8. ttOracleAgentPolicyは、ttCachePolicyに置き換えられました。 ttCachePolicyには、パラメータとしてキャッシュ管理ユーザーID(uid) およびパスワード(pwd)がありません。 キャッシュ管理ユーザーID(uid)およびパスワード(pwd)を設定するには、 ttCacheUidPwdSetをコールする必要があります。 キャッシュ管理ユーザーID(uid)およびパスワード(pwd)を設定し、 現行のキャッシュuidを取得する新しい組込みファンクションがあります。 1. ttCacheUidGet 2. ttCacheUidPwdSet キャッシュ・エージェントの開始時にキャッシュ管理ユーザーID(uid)および パスワード(pwd)を設定するかわりに、ttCacheUidPwdSetを使用して 設定してください。 ** ユーティリティ: *** ttAdmin 次のttAdminコマンドライン・オプションの名前が変更されました。 -oraAgentUIDは、-cacheUidに置き換えられました。 -oraAgentPWDは、-cachePwdに置き換えられました。 -oraAgentPolicyは、-cachePolicyに置き換えられました。 -oraAgentStartは、-cacheStartに置き換えられました。 -oraAgentStopは、-cacheStopに置き換えられました。 -cachePolicyおよび-cacheStartは、-cacheUidおよび-cachePwdとともに 使用することはできません。キャッシュ管理ユーザーID(uid)および パスワード(pwd)は、-cacheUidPwdSet -cacheUid -cachePwd コマンドライン引数を使用して設定してください。 次のコマンドライン・オプションがttAdminに追加されました。 -cacheUidGet: 現行のキャッシュ管理ユーザーIDを取得します。 -cacheUidPwdSet: キャッシュ管理ユーザーIDおよびパスワードを設定します。 *** ttBackup チェックポイントまたは他のバックアップの処理中にttBackupが実行された場合、 エラーを戻すのではなく、そのチェックポイントまたはバックアップが 完了するまで待機するようになりました。 *** ttBulkCp -xpオプション(コミット頻度)のデフォルト値が、0(ゼロ)(終了時に コミット)から1000行に変更されました。(QA 18830) *** ttIsql 内部コマンドcgGenSqlは、cacheSqlGetに置き換えられました。 *** ttStatus ttStatusの出力形式が改善され、読みやすくなり、また追加の情報も 含まれるようになりました。これは、ttStatusの出力を解析する既存の スクリプトに影響します。ttStatusの以前の形式の出力を生成する場合は、 新しいコマンドライン・オプション-noprettyを使用してください。 *** ttXactAdmin -latchstats showオプションは、競合を示しているラッチのみを出力するように なりました。-latchstats showallを使用すると、アクセスされたすべての ラッチを表示できます。これには、競合を示していないものも含まれます。 ** システム表およびレプリケーション表 *** MONITOR LOCK_DENIALS_COND 列は、SYS19に名前が変更されました。 SYS10列は、REQUIRED_RECOVERYに名前が変更されました。これには、データ・ ストアへの初期接続時に、リカバリを実行する必要があるかどうかが示されます。 PERM_IN_USE_SIZEおよびTEMP_IN_USE_SIZE(PERM_IN_USE_HIGH_WATERおよび TEMP_IN_USE_HIGH_WATERも同様)の計算に使用する式が、内部メモリー管理で 行われた変更の内容を反映するように変更されました。 SYSn列に割り当てられた意味は、次のとおりです。 SYS1: カーソルのオープン SYS2: カーソルのクローズ SYS12: 現在のSMPOptLevel SYSn列に割り当てられた意味は、保証されたもの、サポートされたものでは ありません。また、将来変更される可能性があり、文書化されることは ありません。 ** ユーティリティAPI: *** ttBackup() チェックポイントまたは他のバックアップの処理中にttBackup()が コールされた場合、エラーを戻すのではなく、そのチェックポイントまたは バックアップが完了するまで待機するようになりました。 *** ttRepDuplicate()およびttRepDuplicateAcc() 既存のttRepDuplicate()およびttRepDuplicateAcc()ユーティリティAPI機能は、 新しいttRepDuplicateEx()がサポートされるようになったため非推奨に なりました。 ** Cache(以前のOracle Connect): *** 全体的な変更: (a) TimesTenは、構文がTimesTenでサポートされておらず、passthrough接続属性が 1または2に設定されている場合に実行するSQL文をOracleに渡します。今回の リリースで導入された新しいSQL機能では、以前のpassthrough SQL文を TimesTenで実行できるようになりました。 (b) 不正な操作によって発生するエラーは、リリース間で変更されることが あります。特定のエラー・コードを取得するアプリケーションでは、動作に 違いが生じる可能性があります。 *** デフォルト値: (a) READONLYキャッシュ・グループ、または自動リフレッシュ機能付きの キャッシュ・グループを作成した場合、自動リフレッシュのデフォルトの状態は PAUSEDです。 *** 機能しなくなったSQL文: (a) LOAD/REFRESH CACHE GROUP文は、COMMIT EVERY N ROWS文またはWITH ID文を 指定しないと機能しなくなりました。ロギングをオフにしてキャッシュ・ グループをロードするには、次の手順を実行します。 手順1: logging=0を指定してTimesTen DSNに接続します。 手順2: COMMIT EVERY 0 ROWS句を指定してLOAD CACHE GROUP文を発行します。 LOAD文には、WHERE句を含めることはできません。 *** 表に異なる行を生成するSQL操作: (a) CREATE READONLYキャッシュ・グループまたはSYNCHRONOUS WRITETHROUGH キャッシュ・グループは、キャッシュ・グループへの暗黙的なロードを 行わなくなりました。ロギングを有効にする際に、次の手順を実行して、 キャッシュ・グループ表の内容を初期化することをお薦めします。 手順1: キャッシュ・エージェントを開始します。 手順2: キャッシュ・グループを作成します。キャッシュ・グループに 自動リフレッシュ機能がある場合は、自動リフレッシュのデフォルトの 状態(PAUSED)を使用します。 手順3: トランザクションをコミットします。 手順4: (オプション)キャッシュ・グループのロードが、他の TimesTenデータ・ストアにレプリケートされるように、 レプリケーション・スキームを作成することができます。 キャッシュ・グループのロード後、別のユーザーがレプリケーション・ スキームを作成することができますが、この場合、ロード操作は レプリケートされません。 手順5: トランザクションをコミットします。 手順6: (オプション)レプリケーション・エージェントを開始します。 手順7: SQL文LOAD CACHE GROUP ... COMMIT EVERY N ROWSを発行します。Nの 適切な範囲は、20〜100です。キャッシュ・グループの 自動リフレッシュの状態がPAUSEDの場合、これによって 自動リフレッシュの状態が自動的にONに変更されます。 手順8: トランザクションをコミットします。 また、ロギングを伴わないロードには、次の手順もあります。 手順1: TimesTen DSNに未解決の接続がないことを確認します。 注意: レプリケーション・エージェントおよびキャッシュ・ エージェントの両方を停止する必要があります。停止しないと、 未解決の接続が発生します。 手順2: 次の接続属性の設定を使用して、DSNに接続します。 logging=0;durablecommits=0;locklevel=1; 手順3: 次のSQL文を発行します。 LOAD CACHE GROUP COMMIT EVERY 0 ROWS; commit; 手順4: チェックポイントを実行します。 手順5: 接続を切断します。 手順6: 通常のロギングで接続し、レプリケーション・エージェントおよび キャッシュ・エージェントを開始します。 ** SNMP: *** TimesTen MIB TimesTen-MIB.txtファイルでは、次の接頭辞および名前が全体的に 置き換えられました。 1. 「Ora」が「Cache」に置き換えられました。 2. 「Oracle Cache Agent」が「Cache Agent」に置き換えられました。 3. 「TimesTen Oracle Connect」が「TimesTen Cache」に置き換えられました。 ** TTClasses: 1. TTClassesは、TimesTenのコア製品に含まれるようになりました。以前は、 TTClassesは個別の製品として出荷されていました。この変更に伴い、TTClassesの 構成スクリプトは削除されましたが、TimesTenのインストール時に、TTClasses Makeファイルの構成が行われます。また、TTClassesのドキュメントを、 docディレクトリから参照できるようになりました。さらに、TTClassesの ディレクトリ構造は、次のようにTimesTenディレクトリ構造の一部になりました。 a. TTClassesのメイン・ディレクトリは、TIMESTEN_INSTALL/ttclassesです。 b. TTClassesのincludeディレクトリは、TIMESTEN_INSTALL/include/ttclasses です。 c. TTClassesのdemoディレクトリは、TIMESTEN_INSTALL/demo/ttclassesです。 TTClassesを作成するには、TTClassesのメイン・ディレクトリに移動して、 make(Windowsではnmake)と入力します。 注意: 現在、TTClassesはコア製品に含まれるため、特定のリリースのTimesTenに 付属するTTClassesは、そのリリースに対してのみ互換性があります。以前は、 あるリリースのTTClassesは、複数のリリースのTimesTenに対して互換性が ありました。 2. TTClasses TTXlaのユーザーの場合、TTXlaRowViewer::Get()メソッドを不適切に 組み合せて入力する(たとえば、整数表の列でTTXlaRowViewer::Get(i, TIMESTAMP_STRUCT*)を使用する)と、例外がスローされるようになりました。 以前のリリースのTTClassesでは、このような場合でも例外はスローされずに、 メッセージがTTClassesログ・ファイルに書き込まれていました。