InterBase XE7 Update 7 Readme

提供: InterBase
移動: 案内, 検索

InterBase Readme へ戻る


リリース日: 2017年5月

本リリースでは、不具合修正が行われています。 解決された問題のリストについては、こちらを参照してください。

メモ: このリリースノートの最新版については、InterBase XE7 Update 7 Readme を参照してください。

この Readme は、次のセクションから構成されています:


目次

新機能と解決された不具合

InterBase XE7 Update 7

  • InterBase XE7 Update 7 は、OpenSSL version 1.0.2j を使用するように更新されました。
  • 解決された問題のリストについては、こちらから。

InterBase XE7 Update 6

  • 解決された問題のリストについては、こちらから。

InterBase XE7 Update 5

  • 解決された問題のリストについては、こちらから。

InterBase XE7 Update 4

  • 解決された問題のリストについては、こちらから。

InterBase XE7 Update 3

  • 解決された問題のリストについては、こちらから。

InterBase XE7 Update 2

  • 解決された問題のリストについては、こちらから。


InterBase XE7 Update 1: 次の新機能と、既存機能に対する強化が行われています。

  • 解決された問題のリストについては、こちらから。


InterBase XE7: 次の新機能と、既存機能に対する強化が行われています。

  • 解決された問題のリストについては、こちらから。


メモ: InterBase XE7 より前のリリース情報については、「以前のリリース」を参照してください。


InterBase ToGo for Mac OS X でのサンドボックス

Mac OS X 用の RAD Studio Delphi/C++ データベース アプリケーションに、サンドボックスを提供することができます。 RAD Studio を利用した InterBase アプリケーションのサンドボックス環境に関する詳細については、「InterBase ToGo for Mac OS X でのアプリケーションのサンドボックス」を参照してください。


ToGo Edition でのワークフローに対する更新

本リリースには、登録後 30 日で期限切れとなる ToGo Trial Edition が含まれています。 ライセンス情報については、「InterBase ToGo トライアル ライセンス」を参照してください。

変更ビューの機能

本リリースでは、変更ビューに次の更新が含まれています:

DROP SUBSCRIPTION
SQL 拡張
既知の制約

DROP SUBSCRIPTION

サブスクリプションをドロップする機能が、変更ビューに追加されました。 DROP SUBSCRIPTION の構文:

DROP SUBSCRIPTION <subscription_name> [RESTRICT | CASCADE];

一連の変更ビューの監視に対する関心を解除するには、サブスクリプションをドロップしなければなりません。

  • RESTRICT が指定されている場合、既存のサブスクライバのチェックが実行されます。
  • サブスクライバがいた場合、サブスクリプションのドロップは行われず、エラーが返されます。
  • CASCADE が指定されている場合、このサブスクリプションのすべてのサブスクライバがドロップされます。
  • RESTRICT と CASCADE のどちらも指定されていない場合、RESTRICT が指定されているとされます。

SQL 拡張

InterBase SQL では、変更ビューに対するサポートを、IS [NOT] {CHANGED | INSERTED | UPDATED | DELETED} 句によって提供しています。

SET SUBSCRIPTION sub_employee_changes ACTIVE;
SELECT EMP_NO, DEPT_NO, SALARY FROM EMPLOYEE WHERE SALARY IS UPDATED;
EMP_NO     DEPT_NO           SALARY
--------   ----------        ----------
109        600               75000

上記の例では EMP_NO=37 の社員の部署の再割り当てが、この人事異動のための賃金調整がなかったため、返ってきてないことが分かります。 IS CHANGED 句は、いずれかの SQL オペレーションによる、列の変更を検知します。

既知の制約

  • InterBase XE7 Update 1 より、SELECT リストのすべての項目は、INTO リストの該当する項目に一致してなければならない、という新しい要件が、FOR EXECUTE STATEMENT にに対して追加されました。
  • CREATE SUBSCRIPTION 構文は基本テーブルに限定されます。
  • CREATE SUBSCRIPTION は、テーブルの所有者によってのみ、テーブルに適用されます。

IBConsole での更新

本リリースには、IBConsole 機能に対する大きな更新がいくつか含まれています:

[Start Here]タブ

[Start Here]タブは、IBConsole にアクセスすると開きます。 このタブには、ビデオ、ユーザー ガイド、チュートリアルのコレクションがあります。 また、InterBase の Web サイトへのアクセスも提供しており、そこでは、概要、新機能の説明、FAQ、用語集、チュートリアル ビデオなどは公開されています。

IBConsole のデータベース ペイン

左下隅にあるペインには、頻繁に使用されるデータベースが一覧されます。 ペインには、そのデータベースへ接続するためのリンクであるデータベース エイリアスと、サーバー名、そして、データベースが最後にアクセスされた日付が表示されます。

変更ビューのサブスクリプション サポート

IBConsole が、サブスクリプション エディタをサポートしました。 このサブスクリプション エディタは、暗黙ビューで観察できた前のトランザクション移行に変更されたデータを返します。 これにより、前回自分が見た後に変更されたデータを確認することができます。

  • データベースのサブスクリプション フィールドをクリックし、Create をクリックすると、サブスクリプション エディタ ダイアログにアクセスすることができます。 既存のサブスクリプションの名前を入力できます。 エディタには、tablename、fieldnames、Change、Insert、Update、Delete の詳細事項が一覧されます。 これらの詳細は、追加または削除することができます。 また、編集されたサブスクリプションの説明を入力することも可能です。


変更ビューの機能

変更ビュー(Change View™) 機能は、InterBase の複数世代アーキテクチャを使用して、データへの変更をキャプチャしています。 この機能により、「前回、私が参照してからどのデータが変更された?」といった質問に、迅速に答えられるようになりました。

以前は、これには、トリガ、ログ記録、および/または、トランザクションのログ先行書き込みスクレイピングを伴いました。 これは開発者にとって時間のかかる作業であり、特定のトランザクション負荷や変更量によっては、データベース パフォーマンスにも影響を及ぼしました。 今は、変更ビューにより、既存のトランザクションについてパフォーマンスのオーバーヘッドは発生しません。なぜなら、他のトランザクションからも見ることのできる、変更されたデータの一貫したビューが保持されているからです。


変更ビューのメカニズムは、独自の基礎データには依存せず、既存の基礎テーブル、または、基礎テーブルから派生したビューにすでに格納されている、データを基にしています。この暗黙ビュー メカニズムは、一時的基礎で、暗黙ビューが観察された前のトランザクション以降、変更されたデータを返します。

データベース接続を超えて、変更されたデータを表示させるためには、変更ビューにサブスクライブします。 複数のデータベース接続に広がる、長期生存トランザクションが可能になります。

  • 特にサブスクリプションは、1 つまたは複数のテーブルへの行の挿入、更新、削除を、列レベルでの細かさで、切断されてもそれを超えた時間に及んで、すべて追跡します。
  • InterBase SQL クエリ言語は、前回の観察時以降変更されたデータがある列を検索するため、変更されました。
  • データ変更は、列の単位で追跡されます。

各セクションへのリンクは以下に一覧されています。また、次へ移動すると変更ビューにアクセスできます: 変更ビュー

Linux 32 ビットと 64 ビット

Linux キット、32 ビットおよび 64 ビットは、InterBase XE7 リリースより導入されています。 新しい Linux ビルド(12.0.0.124)が、InterBase XE7 で入手可能です。

ライセンス マネージャ

ライセンス マネージャが、InterBase XE3 から InterBase XE7 に変更されました。

パフォーマンスの強化

  • SMP パフォーマンスの向上: 複数の読み書きのパフォーマンスが、このリリースで向上されました。
  • 識別ダンプ機能: InterBase XE3 における「インクリメンタル ダンプ」では、データベース サーバーがデータベース ファイルからすべてのページを読み込む必要がありましたが、変更されたページのみ、ターゲットのデータベース ダンプ ファイルに書き出していました。XE7 での追跡システムの実装により、最後のダンプ以降、更新の必要があったページのみをフェッチします。これにより、ターゲットに対する瞬時の更新が提供されています。ソース データベース毎に「識別ダンプ」が 1 しか発生しません。
「識別ダンプ」の選択肢は次のとおりです:
  • ソース データベース ファイル上の最初の「ダンプ」は「識別ダンプ」となります。それ以降のダンプ ターゲットはすべて、「通常のダンプ」ターゲットです。
  • 「最初の」ダンプは、オンラインでなければならず、それゆえサーバーはソース データベースへリンクし、インクリメンタルに更新される次の「ダンプ」は、「識別ダンプ」となります。
  • 大規模(OIT-OAT)トランザクション ギャップのための、読み込みコミット(RC)トランザクション処理の向上: XE3 以前のバージョンにおいて、RC トランザクション処理は、"ハウスキーピング"(OIT-OAT)ギャップが大きくなるにつれ、きしんで停止する可能性があります。データベースが自動内部スイープ機能を無効にしてないかぎり、もしくは、ハウスキーピング ギャップが非常に高い値に設定されていない限り、通常これは起こりません。このギャップは通常、数千万でパフォーマンスの劣化が見られます。OIT は通常、サーバーの異常終了や、トランザクションのセーブポイントが破棄された場合に付き出ます。なぜなら、実行トランザクションの変更を追跡するには大きくなりすぎてしまい、そのトランザクションは最終的にはロール バックするからです。
    • XE7 では、RC トランザクションは、ずっと高速に上記のシナリオを実行します。テーブル内の 100 万レコードをカウントする、あるテストでは、XE3 では 14.48秒かかりました。XE7 では、そのクエリを実行する時間は 0.97 秒です。RC トランザクションのパフォーマンスは現在、スナップショット モードのトランザクションに相当します。ちなみに、スナップショット トランザクションは、旧バージョンで低速であったことはありません。
  • より迅速なトランザクション作成: 以前の InterBase バージョンに比べ、XE7 では、1 秒間により多くのトランザクションを作成することができます。

パフォーマンス モニタリング カウンタ

パフォーマンス モニタリング カウンタが、32 ビット値から 64 ビット値にスケールアップされました。 これは、データベース内に格納されるすべてのデータを含みます。 IBConsole は、このリリースのために更新されました。

注意を要する ODS 関連の差違がいくつかあります。

  • ODS <= 15 は、以前と同様、32 ビット INTEGER カウンタを引き続き維持します(ダイアレクト 1 およびダイアレクト 3 の両データベースに対して)。
  • ODS >= 16 は、ダイアレクト 1 データベースに対して、「倍精度」データ型で定義されたカウンタを持ちます。
  • ODS >= 16 は、ダイアレクト 3 データベースに対して、「NUMERIC(18,0)」データ型で定義されたカウンタを持ちます。 デフォルトでは、新しいデータベースは、ODS 16、ダイアレクト 3 で作成されます。

ダイアレクト 3 の場合、パフォーマンス モニタリング データ カウンタは、64 ビット Integer 型へ更新されました。ダイアレクト 1 では 64 ビット Integer 型をサポートできないため、64 ビット Integer 型は、内部的に「倍精度」型(同じサイズ=8 バイトであるため)へ変換され、64 ビット アドレス用の大きな値やカウンタ値にも対応します。

ダイアレクト 1 とダイアレクト 3 の違いを識別する最良の方法は、データベースに対する SQL クエリの結果のフィールド定義をチェックすることです。たとえば、次のクエリを実行する場合: SELECT RDB$FIELD_NAME FROM RDB$FIELDS WHERE RDB$FIELD_LENGTH=8 AND RDB$FIELD_TYPE=16;、結果は次のように示します:

  • FIELD_TYPE 16 は NUMERIC(18,0)、そしてダイアレクト 3 で設定される。
  • ダイアレクト 1 データベースは double であるため、このフィルード型のいずれも持たない。

後方互換性

パフォーマンス モニタリングのための 64 ビット Integer データ カウンタのサポートで、後方互換性は、ODS 15 データベースで動作する新しいサーバーに対しても保持されています。そこでは、カウンタは 32 ビット Integer なります。

これを行うには、gpre をコマンドライン オプション "-ods <major_ods_number>" で有効にし、GPRE が、メジャー ODS になるまで有効ではない関連/テーブルへの GDML/ESQL プログラムの解析を制限させることができます。

 gpre [-ods <number>] ... <foo.e>
  FOR e.g.:
  gpre -ods 15 tmp.e

部分セグメントの選択性

InterBase は、現在、インデックス毎に単一の選択値を維持するようになっています(単一または複合キー)。 値は降順で格納されており、全体のインデックスでいくつ重複が存在するか情報を追跡します -- ただし第1レベルまでです。 しかし、下位レベルでの情報があると有益な場合もあります。InterBase XE7 では、その追跡が可能になりました。変更は新しい ODS(バージョン 16)に対して実装されており、RDB$INDEX_SEGMENTS.RDB$STATISTICS に対して、特定の選択のもと、セグメントを集めで保存および取得することができます。

例: インデックスが列 F1、F2、F3 に存在し、 クエリは、最初の 2 列の F1 と F2 にのみ、結合(条件)を提供します。オプティマイザは、基礎となる選択肢、列 F1 と F2 のみを反映する(F1+F2+F3 ではなく)値を使用して、そのインデックスを使用するかどうかを決断することができます。

特定のクエリがより高速に実行されるのは見えても、データにおける変更は見えません。

64 ビット トランザクション ID

InterBase XE3 は、符号付き 32 ビット トランザクション ID のみサポートしていました。これにより、バックアップ/復元プロシージャを使ってトランザクション ID がリセットされるまで、20 億のトランザクションしか、1 つのデータベースで実行されませんでした。これは、24/7 データベースにとって、そして、トランザクション中心のアプリケーション スイートにとって、制限でした。

InterBase XE7 は、トランザクション ID を 64 ビット(実際には 48 ビット)に拡張しました。これにより、データベースは今までの制限がなくなり、さらにトランザクションに対応できるようになりました。 これが自分自身を 48 ビットに制限しているのは、今後のトランザクション ID に拡張に備えるためです。

トランザクションの制限は、現在次のように作用します:

  • ODS 15 以前のデータベースは、20 億トランザクション ID 制限に到達する前に、バックアップおよび復元される必要があります。
  • ODS 16 以降のデータベースは、64 ビット トランザクション ID をサポートしているため、20 億トランザクションを超えてもオンラインを維持できます。これの利点は、データベースをオンラインにキープし、アプリケーションを 24/7 シナリオに近い状態でサービス提供させることができる点です。以前の 32 ビットの制限によるバックアップ/復元は必要ありません。
  • 64 ビット変換
  • このプロジェクトでは、64 ビット(どちらといえば 48 ビット)トランザクション ID への変換を想定しており、これは、一定の理にかなった期間、それらが消耗されないことを前提としています。
  • たとえば、4KB ページ サイズのデータベースは、10,000 tps を超えた状態で、100 年の間、48 ビット トランザクション ID で持続的に実行することができます。

ODS の変更

データベース バックアップが、古い ODS の特定のバージョンに復元できるように

このデータベースの復元オペレーションは、自動的にデータベースを最新の ODS バージョン(そのエンジンでサポートされている)で作成します。 しかし、開発者が古いバージョンで復元したい場合もあるでしょう:

  • 同じデータベース ファイルを、他の互換性のあるデータベース エンジン バージョンに配布するため
  • 解決が難しい現在の ODS のバグを回避するため
  • ODS の現行バージョンと古いバージョン間で、パフォーマンス重視のオペレーションをテストするため。単一のサーバー/エンジンを使って、同じデータベースの複数のコピーを復元し(ODS につき 1 つ)、それらデータベースのそれぞれに対してクエリを実行する。たとえば、ODS の新しいバージョン群でリリースされたインデックス マネージャの、特定のバージョンをテストするため。

この実装を利用するための複数の方法

IBConfig パラメータ

DATABASE_ODS_VERSION。ODS のメジャー バージョン番号を、サーバー全体に渡って指定できます。新たに作成されたデータベースや GBAK を使用して復元されたものは、この ODS バージョンで復元されます。64 ビット Integer 用の新しいパフォーマンス モニタリング成果物を完全サポートしており、古いODS データベースへの後方互換性も保持されています。
IBConfig ファイルには、後述のとおり、このアクションのために新しいパラメータがあります。
#DATABASE_ODS_VERSION 16 
##Platforms: All 
##Version: starting in InterBase XE7 
##The database server/engine will automatically create/restore 
##databases to this major ODS version number, if specified. 
##Valid ODS major versions are in the range 13 to 16 
##Default major ODS version is the latest version supported by the product

DPB パラメータ

アプリケーションは、新しい DPB パラメータ isc_dpb_ods_version_major を使って、データベースを選択的に作成/復元することができます。

GBAK 復元オプション

"-ods_version <n>" -- ここでの <n> は、サポートされる ODS のメジャー バージョンです。対象となるデータベース エンジンは、それぞれ許容する独自の ODS メジャー バージョン リストがあります。XE7 は、ODS バージョン 13 から 16 に対応しています。
新しい GBAK 復元オプションは、特定の ODS メジャー バージョンを復元するのに利用できます。復元時にこのオプションが指定されると、これはサーバー側の IBConfig 設定 DATABASE_ODS_VERSION を上書きします。
gbak -r employee.gbk emp15.ib -ods_version 15 -user sysdba -pass masterkey
gbak -c employee.gbk emp16.ib -ods_version 16 -user sysdba -pass masterkey
gbak -service localhost:service_mgr -r <path>/employee.gbk <path>/emp13.ib -ods_version 13 -user sysdba -pass masterkey

OpenSSL のアップグレード

InterBase XE7 に含まれている OpenSSL ライブラリは、バージョン 1.0.0d から 1.01i へ、セキュリティの脆弱性の修正でアップグレードされました。 OpenSSL は、InterBase における暗号化と OTW/SSL の機能で使用されています。

InterBase XE7 での OpenSSL 使用に関する詳細については、『操作ガイド』の「ネットワーク設定」と、同様に http://docs.embarcadero.com/products/interbase/ 『データ定義ガイド』] の「データの暗号化」を参照してください。

OpenSSL の詳細については、「OpenSSL」を参照してください。

オンライン ダンプおよびジャーナル アーカイブ操作のための Services API サポート

オンライン ダンプおよびインクリメンタル ダンプ

データベースのオンライン ダンプとインクリメンタル ダンプは、このリリースの前は、DPB オプションとしてのみサポートされていました。 Services API オプションとしては利用できず、IBX といった接続レイヤが、この「バックアップ」機能を、他の「Services API」対応のバックアップ機能と別のものとして識別するのを、難しくしていました。 Services API が、オンライン ダンプとインクリメンタル ダンプをサポートするようになりました。

以下は、この機能のための関数を一覧したものです:

  • タスク isc_action_svc_dump は、ファイルはデータベースをダンプする目的で追加されました。これは、gbak -d に相当します。
  • クラスタ識別子 isc_action_svc_dump を使用すると、Services Manager にダンプ処理を行うよう要求することができます。 これは、ibserver プロセスのスレッドとして gbak ツールを起動するためのプログラム的な方法です。 データベース一次ファイルのパスとダンプ出力ファイルのパスを指定する必要があります。 ダンプ ファイルのパスは、サーバーを基準にして指定します。 Services Manager は、ダンプ タスクをサーバーホスト上で実行するので、ダンプ ファイルの読み込みや書き込みはサーバーホスト上で行われます。 Services Manager は、サーバーのコンテキスト内にもファイルを作成します。
  • 次のオンライン ダンプおよびインクリメンタル ダンプのアクションが、isc_action_svc_dump を介して追加されています:
メモ: データベースを必要とせず、Services API を使用するだけで、オンラインまたはインクリメンタルのデータベース ダンプを作成するには、新たな SPB パラメータ、isc_spb_dmp_create を使用します。これは、スタンドアロン オプション値として isc_spb_options に渡されます。

ジャーナル アーカイブ管理アクション

ジャーナル アーカイブ管理アクションは、今までは、次のコマンドライン ツールでのみサポートされていました:

  • GBAK -- Archive Database、Archive Journals、Archive Recover のアクション群
  • GFIX -- Archive Dumps、Archive Sweep のアクション群

以前のバージョンでは、アプリケーションが呼び出すことのできる Services APIのサポートはありませんでした。 しかし、現在では、クラスタ識別子 isc_action_svc_backup、isc_action_svc_restore、または isc_action_svc_properties を使用することにより、Services Manager が InterBase ジャーナル アーカイブ上で様々な操作を行うよう、要求できるようになりました。

これは、ibserver プロセスのスレッドとして gbak ツールを起動するためのプログラム的な方法です。 データベース一次ファイルの絶対完全パスと、リカバリ関連のデータベース ファイルのパスを指定する必要があります。 Services Manager は、アーカイブ管理タスクをサーバーホスト上で実行するので、ジャーナル アーカイブ ロケーション ファイルの読み込みや書き込みはサーバーホスト上で行われます。 Services Manager は、サーバーのコンテキスト内にもファイルを作成します。

  • 次の Services API ジャーナル アーカイブ管理アクションが追加されました:
アクション 引数 目的 引数の長さ 引数の値
isc_action_svc_dump isc_spb_dmp_create Online Dump オペレーションの実行を要求し、ソース データベースからオンライン ダンプ データベースを作成します。これは、スタンドアロンのオプション値として isc_spb_options に渡されます。 "gbak -dump" コマンドに相当。 0 0
isc_action_svc_dump isc_spb_dbname データベースの一次ファイルのパス。サーバーを基準とする 2 バイト + 文字列 String
isc_action_svc_dump isc_spb_dmp_file ダンプ出力ファイルのパス。複数の出力ファイルを指定することができます 2 バイト + 文字列 String
isc_action_svc_dump isc_spb_dmp_overwrite 既存のダンプ ファイルを上書き。これが欠けている場合、既存のダンプ ファイルが追加の形で更新されることを意味します。 "gbak -overwrite_dump" コマンドに相当。このパラメータは、SPB バイト配列で単独で渡されなければなりません。任意の引数。 0 0
isc_action_svc_backup isc_spb_bkp_archive_database Archive Database オペレーションの実行を要求し、ソース データベースからアーカイブ データベース コピーを作成します。これは、スタンドアロンのオプション値として isc_spb_options に渡されます。"gbak -archive_database" コマンドに相当。 0 0
isc_action_svc_backup isc_spb_dbname データベースの一次ファイルのパス。サーバーを基準とする。このデータベースは、データベース エンジンによって、CREATE JOURNAL ARCHIVE コマンドを使ってそのデータベースに対して定義されている Journal Archive の場所にコピーされます。 2 バイト + 文字列 String
isc_action_svc_backup isc_spb_bkp_archive_journals Archive Journals オペレーションの実行を要求し、ソース データベースのジャーナル ファイルを、ジャーナル アーカイブ ディレクトリの場所にコピーします。これは、スタンドアロンのオプション値として isc_spb_options に渡されます。 "gbak -archive_journals" コマンドに相当。 0 0
isc_action_svc_backup isc_spb_dbname データベースの一次ファイルのパス。サーバーを基準とする このデータベースのジャーナル ファイルは、データベース エンジンによって、CREATE JOURNAL ARCHIVE コマンドを使ってそのデータベースに対して定義されている Journal Archive の場所にコピーされます。 2 バイト + 文字列 String
isc_action_svc_restore isc_spb_res_archive_recover Archive Recover オペレーションの実行を要求し、データベース アーカイブから、ジャーナル アーカイブ ディレクトリの場所へ復元します。これは、スタンドアロンのオプション値として isc_spb_options に渡されます。 "gbak -archive_recover" コマンドに相当。 0 0
isc_action_svc_restore isc_spb_bkp_file Journal Archive の場所でのデータベースのパス。サーバーを基準とする。指定されたデータベース ファイルは、復元してくるソース データベースとして使用され、同じアーカイブ場所にある関連づけられたジャーナルからの復元データを伴います。 2 バイト + 文字列 String
isc_action_svc_restore isc_spb_dbname 復元(または作成)するデータベース ファイルのパス。サーバーを基準とする。新たに復元されたデータベースは、読み取り専用モードに設定され、のちほどオンラインに戻されます。 2 バイト + 文字列 String
isc_action_svc_restore isc_spb_res_archive_recover_until これは、Point-in-Time リカバリのための任意の引数。"gbak -until <timestamp>" コマンドに相当。引数値は、タイムスタンプ形式の文字列。使用できるタイムスタンプの文字列形式については、『埋め込み SQL ガイド』の「日時の操作」-「入力のための日付の書式」を参照。

例: "2006-08-21 18:08:15"

2 バイト + 文字列 String
isc_action_svc_properties isc_spb_prp_archive_dumps Archive Dumps オペレーションの実行を要求し、ジャーナル アーカイブ ディレクトリの場所での、データベース ダンプ バージョンの制限を設定します。 "gfix -archive_dumps <n>" コマンドに相当。 4 バイト 符号なし 32 ビット Integer 値で、保持するダンプ ファイル数を示す。
isc_action_svc_properties isc_spb_prp_archive_sweep Archive Sweep オペレーションの実行を要求し、ジャーナル アーカイブ ディレクトリでの値より低いシーケンス番号を持つ、データベース ダンプ ファイルをスイープ(削除)します。スイープではまた、それらデータベース ダンプ ファイルに関連するジャーナル ファイルも削除します。"gfix -archive_sweep <n>" コマンドに相当。 4 バイト 符号なし 32 ビット Integer 値で、データベース ダンプ ファイルをスイープするシーケンス番号を示す。

上記に掲載された SPB パラメータすべてのサンプル アプリケーションが、<interbase>/examples に提供されています。start_dump.c は、オンライン/インクリメンタル ダンプ オペレーションの練習です。ib_archive.c は、Journal Archive 関連オペレーションの練習です。




移行における問題

InterBase XE7 の移行に関わる問題

  • 古いクライアント(古い IBConsole)が、新しい ODS 16 データベースに接続しようとすると、例外が発生する点に注意してください。これは、そのクライアントが INTEGER として定義されていないデータ型に直面するためです。 回避策は、新たな IBConsole をインストールして、新旧の InterBase サーバーに接続します。 新しい IBConsole は、この用途のために後方互換性があります。
  • InterBase Lock Table サイズは、IBConfig パラメータを変更して増加させる必要があります。これは、すべてのエントリが領域を取るためです。 InterBase Lock Table サイズを増加させるには、ibconfig ファイルを編集して、V4_LOCK_MEM_SIZE エントリを変更してください。
  • InterBase XE7 は、ODS 16 と共にリリースされています。 新しいエンジンは、ODS 13 移行のみをサポートしています。 この変更により、サポートされているすべてのプラットフォームは、同じ ODS バージョン(13 から 16)をサポートします。
  • 古いバージョンの Visual Studio(2005 以前)で構築されている 64 ビット UDF ライブラリは、InterBase XE7 で動作しないというレポートが上がっています。 古い UDF ライブラリがある場合、新しい InterBase バージョンで念のためテストしてください。 もしくは、UDF 64 ビット ライブラリを最新バージョンの Visual Studio で再ビルドしてください。
  • 新しいキーワード ROW が、SQL キーワード トークンとして「予約語」になりました。

InterBase XE3 の移行に関わる問題

Windows レジストリおよびプログラム ファイルの変更

InterBase XE3 では、よりよい Windows 互換性のために変更が行われています。 InterBase XE3 では、[Program Files] の場所への製品のインストールがデフォルトになり、Windows レジストリ階層でも「Borland」サブ キーを使用しなくなりました。 現在では、インスタンス固有の情報の追跡には、「Embarcadero」サブ キーを使用しています。 お使いのアプリケーションを、なるべく早く新しい環境へ移行することを、強くお勧めします。

  • プログラム ファイルのインストール場所
  • 2009 以降のバージョンの InterBase は、製品を Windows のデフォルト フォルダ [Program Files] 以下の場所へインストールされていました。 これは、Windows UAC ガイドラインによるもので、管理者権限のないアプリケーション周りには制限をおき、[Program Files] ファイル システム フォルダ下への書き込みを抑制しています。 InterBase XE3 でのサーバー ベース エディションでは、Windows アプリケーション互換性ガイドラインに準拠し、 デフォルト インストール場所が、C:\Embarcadero\InterBase から C:\Program Files\Embarcadero\InterBase へ変更されました。
  • プログラム データの場所
  • InterBase XE3 では、プログラム データ ファイルを、%ALLUSERSPROFILE%\Embarcadero\InterBase ディレクトリに配置するようになりました。  インストールの各インスタンスについて、この下にフォルダが作成され、書き込みアクセスを必要とするすべてのファイルが、ここに配置されます。 たとえば、InterBase XE3 をデフォルトでインストールした場合、「gds_db」インスタンスを取得し、InterBase の書き込み場所とファイルは次のようになります:
    • ディレクトリ:  %ALLUSERSPROFILE%\Embarcadero\InterBase\gds_db
    • ファイル:
      • admin.ib (古いバージョンの InterBase から移行している場合には、ここに古い admin.ib ファイルを配置する)
      • license/ (ここに InterBase ライセンス ファイルを配置する)
      • examples のサブフォルダ構造と、すべての関連ファイル
      • OTW SSL 関連ファイルは、「secure」サブフォルダに
      • 実行時作成されるファイル(interbase.log、*.lck、*.env など)


InterBase XE 以前の移行に関わる問題

  • 旧バージョンをアンインストールする前に、セキュリティ データベースを含むすべてのデータベースを必ずバックアップしてください。
  • SUSE 11 SP1(もしくはそれ以降)のサーバーを対象と考えているのなら、InterBase クライアントを 10.0.0.292 以上にアップグレードすることをお薦めします。 SUSE 11 SP1 サーバーからのイベントを待機する、古いバージョンのクライアントには、既知の問題があります。
  • カスタマイズされている場合は、ibconfig をバックアップします。
  • このバージョンでは、新しいデータベースは ODS バージョン 15 で作成されます。
  • 64 ビット版の InterBase では、64 ビット UDF ライブラリだけを使用してください。 64 ビット サーバーでは、これまでの 32 ビット UDF ライブラリを読み込めません。 提供されている UDF ライブラリ(OOTB、ib_udf)は、既に 64 ビット用にビルドされており、製品と一緒にインストールされています。
  • InterBase XE では、1 つのテーブルに格納できるレコード数が増えています。 現在のカウントには 32 ビットという限界があります。 32 ビットよりも大きいレコード値の数のカウントが必要であれば、以下の手順を実行してください。
    • テーブルの行数が 2 G を超える場合には、CAST(COUNT(*) AS NUMERIC(18,0)) というコードを使用してカウントを 64 ビットにしなければなりません。
  • InterBase XE で、強度の高いパスワード保護 が実装されました。 古いバージョンの InterBase クライアントが(ローカルまたはリモート システムから)このインストール ファイルと通信する場合には、システムを InterBase XE3 にアップグレードする際に、次の点に留意してください。
    • 既存の(旧バージョンの InterBase で使用していた)ユーザー認証データベースがある場合には、そのデータベース ファイルを(InterBase XE フォルダにコピーして)使用すると、ローカルやリモートのクライアントの認証は正しく動作します。
    • InterBase XE の新しい admin.ib を使用する場合には、このデータベースで強度の高い "SHA-1" パスワード(デフォルト)が使われていることに注意してください。 強度の低い DES パスワード アルゴリズム(これまでの InterBase リリースのもの)を引き続き使用する場合には、「強度の高いパスワード保護」のトピックで説明した ALTER DATABASE コマンドを使用してください。
    • InterBase XE で提供されている "強度の高い長いパスワード" を使用する場合には、ユーザー アカウントを作り直し、かつ、この InterBase XE サーバーに接続しているリモート マシンに新しい InterBase クライアントをインストールする必要があります。 これは、"古い" InterBase クライアントでは "SHA-1" パスワードを計算することができず、"DES" の強度のパスワードを渡すので、InterBase XE サーバー側で予期しているものと一致しないためです。 その結果、"Your user name and password are not defined...(ユーザー名とパスワードが定義されていません)" というエラーが出力されます。
  • InterBase XE の更新された SSL パラメータ名。 古い OTW クライアント プロパティは、新しい OTW プロパティによって置き換えられました。 『操作ガイド』の「OTW 暗号の設定」および、第 5 章にある表 5.2 を参照してください。
データベースを復元すると "unassigned code(割り当てられていないコード)" というエラーが出力される
InterBase XE でデータベースを復元すると、"unassigned code(割り当てられていないコード)" というエラーが出力されます。 長く使われているデータベースや、InterBase 2009 でバックアップして InterBase XE で復元したデータベースでは、メタデータ セキュリティの設定が異なります。 そのため、システム テーブル(RDB$RELATIONS など)に対して SELECT 文を実行すると、次のエラー メッセージが出力されます: "no permission for read/select access to table RDB$RELATIONS by user SYSDBA" (ユーザー SYSDBA は RDB$RELATIONS の読み取り/検索アクセスを行う権限がありません)
このエラーは、次の基準に当てはまるデータベースで発生します。
  • 元々は InterBase 6.5 より前のバージョンで作成された。
  • InterBase 2009 より前のバージョンでバックアップされた。
  • Readmeta.sql がまだ適用されていない。
このような動作が生じるのは、データベースの復元を行うときに、InterBase XE ではメタ データ権限が厳密に適用されるためです。
解決方法:
この問題を解決するには、バックアップする前に readmeta.sql をデータベースに対して実行します。 readmeta.sql は、多くの場合、\examples\security にあります。 isql または IBConsole を使用して、readmeta.sql をデータベースに対して実行することができます。
説明:
長い間使われているデータベースでこの問題が発生します。 (1)データベースが IB6 -> IB7 -> IB2007 -> IB2009 -> IBXE と復元されてきた、(2)データベースが IB2009 でバックアップされて IBXE で復元された、という 2 つの状況が考えられます。 それぞれの状況で、メタデータ セキュリティ設定は異なります。 (1)の場合は、最初に IB6 で作成されているため、そもそもメタデータ セキュリティが設定されていません。 それに対して(2)の場合には、IB2009 で作成されているため(復元はされていません)、すべてのシステム テーブルにあらゆるセキュリティ権限が設定されています。
前者の場合、データベースはバックアップと復元が繰り返され、新しいリリースになるたびに、そのリリースで追加されたシステム テーブル(RDB$USERS、RDB$ENCRYPTIONS、RDB$ROLES など)の権限が設定されます。 ただし、元々存在するシステム テーブルについては、データベース所有者が既にセキュリティ権限を変更しているかどうかを判断できないため、変更は行われません。 たとえば、ユーザーが RDB$TRIGGERS および RDB$PROCEDURES に対する権限をすべて取り消して、トリガーやストアド プロシージャのコードを隠していることも考えられます。
また、前者の場合には、何年も前に SYSDBA が readmeta.sql を実行し、その基準のメタデータを変更してカスタム セキュリティ プロファイルを作成している可能性もあります。 XE の復元の後で InterBase が自動的に既定値に戻して、そのカスタマイズを上書きすることはできません。 InterBase XE では、個々のデータベースのこれまでの履歴を把握していないため、復元するすべてのデータベースに無条件にデフォルトのメタデータ権限を設定するべきだと想定することはできません。
そのため、readmeta.sql を実行し、そのデフォルト値を出発点として望ましい状態に構成することをお勧めします。 これは、移行先が XE 以外の場合でも同じです。
isql の使用例:
isql "path to database" 
-USER sysdba -password masterkey -i readmeta.SQL
IBConsole での readmeta.sql の実行
  1. IBConsole でデータベースに接続します。
  2. [ツール|対話型 SQL...] を選択します。
  3. [クエリー|SQL スクリプトの読み込み] を選択し、readmeta.sql を選択して [開く] をクリックします。
ERROR: No Permission for read/select access to table RDB$XXXX by user SYSDBA(ユーザー SYSDBA はテーブル RDB$XXXX の読み取り/検索アクセスを行う権限がありません)
InterBase 6.5 より前のバージョンで作成されたデータベースでは次のエラーを発生させる可能性があります: no permission for read/select access to table RDB$XXXX by user SYSDBA with InterBase XE. (ユーザー SYSDBA は InterBase XE でテーブル RDB$XXXX の読み取り/検索アクセスを行う権限がありません)
解決方法:
InterBase XE ではメタ データのセキュリティが厳しくなっているため、バージョン 6.5 よりも前の InterBase で最初に作成されたデータベースに対してメタ データ操作を行うと、このエラーが出力される可能性があります。 メタ データ操作には、システム オブジェクトの一覧の作成などシステム オブジェクトの情報を要求する、それを更新する、パフォーマンス モニタを使用する、といったものがあります。
このエラーを解決するには、よく似た 2 つの操作を実行する必要があります。 最初の操作では、システム テーブルに対する権限を付与します。 そのためには、InterBase インストール ディレクトリの examples\security フォルダにある readmeta.sql を実行します。isql または IBConsole を使用して、readmeta.sql をデータベースに対して実行することができます。
isql の使用例:
isql "path to database" 
-USER sysdba -password masterkey -i readmeta.SQL
IBConsole での readmeta.sql の実行
  1. IBConsole でデータベースに接続します。
  2. [ツール|対話型 SQL...] を選択します。
  3. [クエリー|SQL スクリプトの読み込み] を選択し、readmeta.sql を選択して [開く] をクリックします。
次に、パフォーマンス監視機能を使用する場合には、システム一時テーブルに対する権限を付与する必要があります。 セキュリティ上の問題が起きる可能性があるため、ほとんどのインストールでは、システム一時テーブルに対する権限を sysdba およびデータベース所有者にしか付与しないようになっています(以下で紹介しているのはそれです)。 すべてのユーザーがシステム一時テーブルを閲覧できるようにするには、この例を GRANT TO PUBLIC に変更してください。 特定のユーザーだけに権限を付与したい場合もあるでしょう。そのときにはさらにカスタマイズされたスクリプトが必要になる可能性があります。
システム一時テーブルに対する権限を付与するには、以下のコードをテキスト ファイルに保存し、上記の readmeta.sql と同様に実行してください。
CREATE PROCEDURE granttmp AS
   DECLARE variable stmt VARCHAR(1024);
   DECLARE variable ownername VARCHAR(66);
   DECLARE variable tablename VARCHAR(66);
 BEGIN
   SELECT rdb$owner_name FROM rdb$relations WHERE rdb$relation_name = 'RDB$RELATIONS'
   INTO :ownername;
 FOR SELECT rdb$relation_name FROM rdb$relations WHERE rdb$system_flag&gt;0 AND rdb$relation_name 
 starts WITH 'TMP$' INTO :tablename 
 do 
 BEGIN
   stmt = 'grant all on ' || tablename || ' to sysdba';
   EXECUTE statement stmt;
   stmt = 'grant all on ' || tablename || ' to ' || ownername;
   EXECUTE statement stmt;
 END
 END;
 EXECUTE PROCEDURE granttmp;
 DROP PROCEDURE granttemp;
 commit;
 exit;



既知の問題

  • 変更ビューの SQL キーワード - 変更ビューの機能でいくつか予約キーワードが追加されており、これらは SQL オブジェクトと競合する場合があります。そのキーワードは次の通りです: CHANGE、CHANGED、INSERTED、UPDATED、DELETED
  • 古いクライアント(古い IBConsole)が、新しい ODS 16 データベースに接続しようとすると、例外が発生する点に注意してください。これは、そのクライアントが INTEGER として定義されていないデータ型に直面するためです。
回避策: 新たな IBConsole をインストールして、新旧の InterBase サーバーに接続します。 新しい IBConsole は、この用途のために後方互換性があります。
  • IBConsole パフォーマンス モニタリングが、誤った値を ODS 16、ダイアレクト 1 データベースに対して提供します。
回避策: ODS 16 ダイアレクト 1 では回避策はありません。 ダイアレクト 3 データベースを使用して、IBConsole パフォーマンス モニタリングを試してみてください。
  • UNICODE_LE と UNICODE_BE (いずれも 16 ビットの UNICODE 文字セット)は、サーバーの文字セットとしてのみ使用できます。 これら 2 つの文字セットはクライアントの文字セットとしては利用できません。 クライアントで UNICODE 文字を完全にサポートする必要がある場合、クライアントのキャラクタ セット(別名 LC_CSET)には、UNICODE_LE や UNICODE_BE ではなく UTF8 を使用してください。 クライアントでは、UTF-8(またはその他のネイティブな)クライアント キャラクタ セットを使用して、UNICODE データベースに接続できます。
  • InterBase サーバーがクラッシュすると、Windows エラー報告(WER)ダイアログが間欠的に現れます。
解決方法: 弊社では、把握しているクラッシュを修正するよう努力しています。 それまでの間は、Windows レジストリを変更すると、Windows エラー報告ダイアログが現れないようにすることができます。 レジストリ属性 HKEY_CURRENT_USERS\Software\Microsoft\Windows\Windows Error Reporting\DontShowUI の値を 1 に設定すると、表示されなくなります。 これは、MSDN の記事 http://msdn.microsoft.com/en-us/library/bb513638(VS.85).aspx の推奨事項によります。 今後のビルドでは、ibserver.exe 内からオプションを構成して、InterBase サーバーのバイナリの場合にだけダイアログを表示しないよう WER を設定できるようにすることを検討しています。
  • 問題: ハイパースレッディング: InterBase は、ハイパースレッディングを Windows 上の 32 ビット エディション、およびそれ以前の Intel CPU アーキテクチャでのみサポートしています。 この機能が一部の最新 CPU アーキテクチャ上で動作しないことは、既知の問題です。 お使いの InterBase のデプロイメントが、システム上で利用可能な CPU コア数より少なくライセンス許可されている場合、IBConfig 内の CPU_AFFINITY の設定で、インストールをカスタマイズして、InterBase 用に期待する CPU コア数を選択することができます。



解決された不具合

外部バグ # 説明
(QC)SalesForce #
内部バグ #

InterBase XE7 Update 7: 2017年5月、バージョン 12.0.7 で修正されたバグ

INTB-3287 SELECT COUNT(*) FROM TMP$STATEMENTS - 変換エラー
INTB-3168

Sales Force 536921

InterBase バックアップが、変更ビューのサブスクリプションで、テーブルがハングする。
INTB-3249

Sales Force 554655

Linux の Update 6 およびトライアルのインストーラ スクリプトに、Windows 行末入っている
INTB-3260 InterBase XE7 Linux 64 ビット用ライセンス マネージャ ランチャが実行できない
INTB-3262 InterBase XE7 Linux 64 ビット インストーラが、"LD_LIBRARY_PATH" 設定を /etc/profile に重複して追加する
INTB-3265

Sales Force 558139

変更ビュー サブスクリプションがバックアップのパフォーマンスを劣化させる場合があります
INTB-3287 トランザクション管理情報ページのクリーンアップが、極端なケースで、データベースを破壊する場合があります。
InterBase XE7 Update 6: 2016年5月、バージョン 12.0.6 で修正されたバグ
INTB-3058 [WISE インストーラ] インストーラは /s オプションが指定されない場合、プロパティ ファイルからの INSTANCE/TCP_PORT 値を認識しない
INTB-3044 IBConsole は データベース プロパティ フォームで、「ページ バッファ」に適切な値を表示しない
INTB-3043

IBP-27

IBConsole トリガ エディタが、CREATE または ALTER TRIGGER を実行する際にエラーを返す
INTB-3032

Sales Force 501670

変更ビューのサブスクリプションで、グループごとの列が、null になる
INTB-2971 複数のクライアントによる 1 つのテーブルの最初の展開で、データベースが壊れる
INTB-2970 データベース シャドーイング有効次、データベースのヘッダー ページでデッドロックが発生
INTB-2909

Sales Force 454420

データベースに変更ビューのサブスクリプションが含まれているとバックアップの失敗
INTB-2879 Windows 10 のアップデートで、AppData ディレクトリのファイルが削除される
InterBase XE7 Update 5: 2015年11月、バージョン 12.0.5 で修正されたバグ
INTB-2539

Sales Force 426384

多数のクライアントが反復 select 文を実行すると、InterBase が応答しなくなる。
INTB-2747

Sales Force 444712

インクリメンタル バックアップを開くことができない、もしくは、read_write に変換できない。
INTB-2751

Sales Force 444712

サーバーのシャットダウン時、データベースに顕著なダンプがあると、RDB$PAGES でデッドロックが発生する。
INTB-2537

Sales Force 415479

データベース クラッシュの後、ジャーナル復元が、エラー メッセージ "WAL writer error" で中断される。
InterBase XE7 Update 4: 2015年7月、バージョン 12.0.4 で修正されたバグ
INTB-2505 コメントが特定の DDL コマンドの前にあると、SQL パーサーが、例外を挙げる。
INTB-2503

Sales Force 427872

サブクエリがあるクエリおよび + が、XE3 に比べ XE7 で 50 倍遅く処理される。
INTB-2493 InterBase XE7 が、インクリメンタル バックアップ ファイルをアクティブにしようとすると、クラッシュする。
INTB-2491

Sales Force 427636

XE7 で実行されるクエリが、XE3 に比べ、かなり遅くなる場合がある。
INTB-2460 'CREATE DATABASE' は、InterBase XE7 における IBConsole SQL Window で、常に DIALECT 1 となる。
INTB-1933

Sales Force 418644

.cg_license.loc が、Windows 2012 で削除を取得しない。
InterBase XE7 Update 3: 2015年5月、バージョン 12.0.3 で修正されたバグ
INTB-2488

Sales Force 425423

InterBase が、数百のテーブル上で情報項目 isc_info_read_seq_count を使用すると、isc_database_info() でクラッシュする。
INTB-2476 連続したファイルでのインクリメンタル バックアップを繰り返し実行すると、ときおり InterBase がハングする場合がある。
INTB-2473

Sales Force 425187

ODS 16 データベースにおいて、一意ではないインデックスの非リーフ レベルで、インデックス破壊が報告される。

このアップデートをインストールした後、ODS 16 データベースに関連する既存の XE7 を、"gfix -v -f -no_update" で検証し、お使いのデータベースがこの破壊の影響を受けるかどうかを確認することができます。 もし該当する場合、特定の破損したインデックスを再ビルドするか、もしくは、データベース全体をバックアップおよび復元して、すべてのインデックスが、新しいエンジンで破壊のない状態に復元/作成することができます。

INTB-2470

QC: 131317

フィールド照合順序設定が、用意されたパラメータの値を比較/ソートする際に、考慮されない。
INTB-2468 登録された変更ビュー テーブルからのフェッチ時に、ROLLBACK が続くと、データベース エンジンがハングする。
INTB-2456 XE7 変更ビュー SQL キーワードを非予約語にする
INTB-2453

Sales Force 423125

文字列連結演算子が、可変長マルチバイト文字セット CHAR フィールドに対して、予期しないパディング空白をあける。
INTB-2425 Android IBToGo が、32 KB より大きいサイズのレコードの場合に、データをフェッチできない。
INTB-2421 IBConsole が、ストアド プロシージャの実行文からのエラーを表示する代わりに、クラッシュする。
INTB-2363 IBConsole SQL Window での、USER/PASSWORD を利用した CREATE DATABASE の解析問題。
InterBase XE7 Update 2: 2015年4月、バージョン 12.0.2 で修正されたバグ
INTB-2450

QC: 130988

単一トランザクション内で、同一レコードへ複数の更新をした際に、その後 ROLLBACK しても、元のデータに復元されない。

トランザクション アイソレーション テストの間に、同一レコードへの2番目または3番目の更新が保存されていないことに、ロールバック時に気付き、続く更新データが破棄されていました。

INTB-2391

Sales Force 417992

他の永続化テーブルへ結合している際に TMP$Attachments をクエリすると、AST デッドロック エラーを起こす。
INTB-2439 IN 句の LHS に配置された、プレースホルダのクエスチョン マーク(?)があるパラメータ化クエリが、エラー「Data type unknown(不明なデータ型)」を発生させます。
INTB-2432 [Selected Client Only] の場合、vcredist_x64.exe および vcredist_x86.exe はインストールされません。
INTB-2283 App Sandbox 内の OSX アプリケーションが IBLite/IBToGo を実行することはできない。
INTB-2435 新しい文に対する Error Status メッセージに、以前の Execute Statement 呼び出しからの大量のテキストが含まれている。
INTB-2426 ストアド プロシージャ呼び出し内で Execute Statement 例外があるデータベース アタッチメントについて、パフォーマンス モニタ テーブルにクエリをかけると、サーバーがクラッシュする。
INTB-2428 何百とサブスクリプションを保有する変更ビュー(INSERT、UPDATE、DELETE)が、サーバー クラッシュやハングを起こす。
INTB-2419

Sales Force: 417996

文実行ストアド プロシージャへの大量呼び出しが、メモリー リークを起こす。
INTB-2424 既存レコードの後、サブスクリプション セットアップでの削除変更が参照できない。
INTB-2420

Sales Force 413506

ストアド プロシージャ内の不具合がサーバー クラッシュを起こす。
INTB-2404 ジャーナル ファイルを保有するディスクの容量がなくなると、アクティブ ジャーナル ファイルにアクセスできなくなる。
InterBase XE7 Update 1: 2015年3月、バージョン 12.0.1 で修正されたバグ
INTB-2402 削除されたサブスクリプション名を再び使用すると、予期しない状態になる。
INTB-2395 マルチホップでの DROP DATABASE リクエストが "Invalid request handle(不正なリクエスト ハンドル)"エラーを引き起こす。
INTB-2393 サブスクライブされたテーブルに対して CREATE INDEX 文を実行すると、ワーカー スレッドにより無限ループが実行される。
INTB-2389 例の ibserverd ファイルが Linux 上で動作しない。
INTB-2386 すでに変更されているテーブル サブスクリプションに対して、アクティブ サブスクリプションとサブスクライバでコミットを実行すると、リクエスト同期エラーが発生する。
INTB-2381 Execute 文を使用するストアド プロシージャが、複数回呼び出されると、InterBase をクラッシュさせる。
重要: InterBase XE7 Update 1 より、SELECT リストのすべての項目は、INTO リストの該当する項目に一致してなければならない、という新しい要件が、FOR EXECUTE STATEMENT にに対して追加されました。
INTB-2375 インデックス CHAR フィールドを INTL 文字セットを比較するには、パディング スペースが必要です。
Sales Force: 408962,

INTB-2361

InterBase XE7 ibguard.exe が Windows XP/2003 で動作しない。
INTB-2357 グループでまとめ、空文字列を CHAR にキャストすると、Linux サーバーをクラッシュさせる。
INTB-2312 サブスクリプションでの order by が、誤った変更タイプをレポートする。
Sales Force: 400383

INTB-2224

ジャーナル復元時のエラー「ヒント ページが見つかりません」
INTB-1904 IBEvents が、64 ビット Delphi アプリケーションで正しく動作しない。
InterBase XE7: 2014年11月、バージョン 12.0.0 で修正されたバグ
INTB-2273 アンインストール時、インスタンスとサービス ファイル内のポート情報が削除されない。
INTB-2184 [ローカル サーバー] ノードを開くと、IBConsole が例外「RDB$FIELDS の保存に失敗しました」が「読み取り専用トランザクションからのデータベース変更試行」というメッセージとともに表示されます。
INTB-2016 バージョン XE および XE3 から 新しい IBConfig パラメータが、isc_info_svc_get_config の項目にて、isc_service_query() API に対して戻りません。
INTB-2005 SPB パラメータ isc_spb_instance_name が、サービス API 呼び出しに対して提供された場合、適切に消費されません。
QC: 120208

INTB-1923

InterBase 2007/2009 バージョンに比べ、XE3 ではクエリのパフォーマンス劣化が見られる。
InterBase XE3 Update 4 Hotfix 2: 2014年5月、バージョン 11.0.4.817 で修正されたバグ
QC: 124104,

INTB-2026

InterBase インスタンスが instreg により無効になっている場合、"Extract files only" に失敗する。
QC: 124527,

INTB-2031

Linux 上でのみ発生する、2GB データベース ファイル サイズに対する XE3 機能低下レポート。
INTB-2033 同一ページに対する、複数の同時読み込みの並列処理スループットの減少。
INTB-2035 ユーザー SYSDBA が、SYSDBA 以外が所有しているデータベース上にある、メタデータやデータベース プロパティを参照できない。
InterBase XE3 Update 4 Hotfix 2: 2014年5月、バージョン 11.0.4.816 で修正されたバグ
INTB-2020 一部の新しい Windows 64 ビット OS バージョンにおいて、同期/非同期データベース書き込みモードで、サイズの大きいファイル(利用可能な RAM 以上のサイズ)にアクセスした際のパフォーマンス低下。
INTB-2015 OIT と OAT 間の差が非常に大きい場合に、強制スイープ オペレーションが、OIT に進むことなくすぐに返ってきてしまい、Perf.Mon. クエリがスタックする。
INTB-2003 IBConsole: ローカル データベースを追加する際、データベース パスを入力できない。
InterBase XE3 Update 4: 2014年3月、バージョン 11.0.4 で修正されたバグ
Salesforce: 374757,

INTB-1992

WHERE 句や ORDER BY インデックスに、サイズを超えたリテラル文字がある SELECT 文がクラッシュする。

QC: 122621,

INTB-1984

ストアド プロシージャ内の EXECUTE 文が、NULL 列値/状態を取得しない。

QC: 122818,

INTB-1983

クエリの実行に、2009 バージョン(20秒)に比べ、XE3 で長い時間(20分)がかかる。
Salesforce: 341687,

INTB-1979

別の選択クエリが準備している際、行の選択を行おうとすると、InterBase がクラッシュする。
INTB-1965 IBXE3_Update.exe から、IBXE3 Update3 パッチ インストーラを使用して、"Client Only" インストールをアップグレードできない。

QC: 121770, INTB-1958

複数の UNION がある SQL 文が、PLAN 情報を取得する際にサーバーをクラッシュさせる。
INTB-1942 InterBase 2009 に比べ、InterBase XE3 において、複数レベルのプロシージャ呼び出しのパフォーマンス劣化がみられる。
INTB-1927 ib_util.dll および ib_util64.dll が、Windows 用の InterBase ToGo の最小 zip ファイルに含まれていない。 これは、UDF ライブラリ ib_udf.dll に対して必須である。
INTB-1926 [View Metadata] が、SYSDBA では表示できない。 現状、データベースの所有者のみ表示できる。

QC: 120208, INTB-1923

InterBase 2007/2009 バージョンに比べ、XE3 ではクエリのパフォーマンス劣化が見られる。
INTB-1920 ISQL SET STATS ON 出力に、小数部の秒数が含まれない。
INTB-1919 SET PLAN 出力が、出力ファイルにリダイレクトされない。

QC: 119341, INTB-1901

IBConsole が、EUA データベース プロパティを変更する際、SERVER ログイン ユーザー名/パスワードを使用する。
INTB-1897 IBConsole Performance Monitor で、[Statements] タブにおいて、TMP$STATEMENTS.TMP$SQL が 1024 バイトに切り詰められる。
INTB-1895 IBConsole: SYSDSO ユーザーとして接続した際、[Encription] ノードがなくなる。
Salesforce: 341530,

INTB-1892

VARCHAR データを、UPDATE 文で BLOB に移行すると、メモリ使用量が増加、または、メモリ リークの可能性がレポートされる。
INTB-1889 ODBC: Embarcadero ODBC ドライバにおける文字セット検知が、適切に動作しない。

QC: 111486,

INTB-1824

Embarcadero ODBC ドライバおいて、SJIS_0208 列の結果セットで、文字データが切り詰められる。

QC: 111118,

INTB-1723

IBConsole は、特殊な非表示フィールド RDB$DB_KEY を選択した際、誤ったデータを表示させる。
INTB-1668 "gds_db"以外のインスタンスへのローカル接続ができない。
INTB-1525 大量の削除/挿入オペレーションの後に、インデックスを作成すると、データベースの破壊を招く。

QC: 106371,

INTB-1468

InterBase が、メタデータの更新でクラッシュする - データベースが完全に破壊される。
INTB-977 『データ定義ガイド』で更新ミスがある。
InterBase XE3 Update 3: 2013年8月、バージョン 11.0.3 で修正されたバグ

QC: 116299,

INTB-1854

列がトリガによって変更された場合、インデックスが更新されない。
INTB-1871 IBConsole が、InterBase ToGo と稼働すると不安定になる。

QC: 116886,

INTB-1862

ODBC ドライバは、31文字より大きいメタデータ名を処理しない。

QC: 116820,

INTB-1859

ON COMMIT DELETE として宣言された一時テーブルに、ストアド プロシージャを使用して挿入する際、アクセス違反が起こる。
INTB-1858 SET LIST ON での isql で、長いフィール名の文字化けが発生する。

QC: 109214,

INTB-1725

UNION ALL 文内での、不正なテーブル Alias 利用で、エラーが返されない。
INTB-1772 ResultSetMetaData.getColumnLabel() と getColumnName() との間で、Pentaho 関連のクラッシュ。
INTB-1773 不正なトランザクションが、PreparedStatement.executeBatch() から報告される。

QC: 111118,

INTB-1723

IBConsole は、特殊な非表示フィールド RDB$DB_KEY を選択した際、誤ったデータを表示させる。
INTB-1331 複数クライアントが非常に重い動作を続けた場合、InterBase サーバーがハングすることがある。
InterBase XE3 Update 2: 2013年4月、バージョン 11.0.2 で修正されたバグ
INTB-1830 無制限ユーザー ライセンスが、バージョン 11.0.2.539 で接続を 4 つより多く受け付けない。
INTB-1820 ユーザー最大数超過エラーが、壊れたデータベースに接続した際に発生する。
INTB-1806 グローバル テンポラリ テーブルに対して COMMIT/ROLLBACK なしで EXIT を呼び出した場合に、ISQL が、「デットロック」を報告する。
INTB-1784 データベースに対して、並列 insert と共に tmp$triggers にクエリかけると、サーバー ハングを起こす。
INTB-1778 GBAK ジャーナル アーカイブ リカバリーが、InterBase サービスとして実行される際、ユーザー認証情報のオプション値を考慮しない。
INTB-1771 中間層での SSL を使用したマルチホップ(2 ホップ)サーバー接続が、中間層サーバーでメモリ リークを起こす。
Salesforce: 305183.

INTB-1768

ジャーナル アーカイブが、アーカイブの復元に失敗したために、不十分にスイープされてしまう。
INTB-1766 集計ページ入出力パフォーマンス監視データが、テーブル、プロシージャ、トリガに対して見つからない。
INTB-1753 マルチホップ接続で中間層クライアントへ到達するための OTW パラメータが、そこに辿りつかない。

QC: 111447,

INTB-1724

サーバーが、ibconfig ファイル内の DUMMY_PACKET_INTERVAL 設定を認識しない、もしくは使用しない。

QC: 110482,

INTB-1719

COMPUTED BY フィールドを、CAST および CASE と組み合わせて定義すると、サーバーがクラッシュする。
INTB-1710 外部 SEP 条件内のデータベースが、InterBase サービス使用時にバックアップまたは復元されない。

QC: 110553,

INTB-1706

IBConsole は、単独でマルチインスタンス インストールされた際、"cannot attach to service manager"(サーバー マネージャにアタッチできない)とエラーを出力する。
INTB-1694 Automatic 起動モードのサーバー マネージャが、サービスとして実行されていない場合、サーバーを起動しない。
INTB-1681 XE からのセキュリティ フォルダのファイルがインストールされない。
INTB-1630 削除/ロールバックを繰り返すと、データベースが壊れる
INTB-1395 SELECT ...FOR UPDATE 文使用時に、Windows ローカル接続(IPC)でデッドロックが報告される。
InterBase XE3 Update 1: 2012年10月、バージョン 11.0.1 で修正されたバグ
INTB-1693 「強い暗号化」がライセンスされていない場合(Developer Edition など)、データベースを AES で暗号化しようとすると、データベースが使用できない状態になる。
INTB-1660 XE3 クライアント ライブラリが、IPC を介して XE サーバーへローカルで接続できない。
INTB-1656 Windows 上の InterBase インストーラが、サンプルのデータベース バックアップ ファイルをインストールしない(ファイルのサイズが 0)。

QC: 108767,

INTB-1634

ODBC ドライバが、UTF8 データベースに対して使用した場合に、Microsoft Access 2007 と動作しない。
INTB-1628 大量 DELETE の後、INSERT がデッドロック エラーを起こす。
INTB-1592 合成式の結果である列で、ORDER BY を行おうとすると、エラーが発生する。
INTB-1521 InterBase クライアントが、interbase.log メッセージを APPDATA_DIRECTORY フォルダに書き出さない。
INTB-1455 OTW を介した一定の接続/切断テストに対してadmin.ib が壊れる。
INTB-1336 大量の行を削除および再挿入した後、デットロック エラーが発生する。
InterBase XE3: 2012年8月、バージョン 11.0 で修正されたバグ
INTB-1569 InterBase ツールが、サービス名 SERVICE_MGR(大文字形式)を使用できない。service_mgr (小文字)は機能する。
INTB-1566 isc_dsql_batch_execute_immed を、128K+ バッチ データと共に呼び出すと、サーバー CPU ループを起こす。
INTB-1524 Windows 上で、別のパス名でアクセスされたデータベース ファイルが(たとえば admin.ib など)、サーバー ハングを起こす。

QC: 106427,

INTB-1467

データベースのシャットダウンが、SYSDBA 以外のユーザーが接続するのを抑制しない
INTB-1464 SQL Optimizer による大量レコードに対するテーブル多重度の見積もりが不正確。

QC: 7952,

INTB-1462

テーブルをドロップした後、外部ファイルによって使用されているファイルのロックを解放する。
INTB-1459 iblockpr が Windows 上で失敗する。 .lck ファイルが存在する場合、Windows 上で iblockpr.exe を実行すると、常に次のエラーが発生する: "unable to access lock table - file too small"(ロック テーブルにアクセスできません - ファイルが小さすぎます)
Salesforce: 265124,

INTB-1440

SQL Optimizer が、複数の JOIN 条件を使用している場合に、InterBase 2007 に比べて、XE では最適性に劣るプランを選択する。

QC: 106199,

INTB-1431

JIRA 課題 INTB-1407 は解決されたが、大規模 BLOB に対する BLOB 取得はなお問題だった。 この課題も、現在は解決済み。

QC: 105905,

INTB-1410

インクリメンタル データベース ダンプが、対象データベースが使用中の場合に、エラーを報告するのに失敗する。

QC: 106199,

INTB-1407

32 KB より大きいバイナリ ファイルを BLOB フィールドへ挿入する際、エラーが発生する。 InterClient クラスを直接使用すると、アプリケーションが手動で終了させるまでハングする。 その上で休止状態でいると、interbase.interclient.CommunicationException が現れる。
INTB-1361 TCS: BUG_8189 は、IPC 接続を介して実行している際にリクエスト同期エラーを発生させる。

QC: 98872,

INTB-1239

「IB サーバー マネージャ」オプションが、リモート Windows サーバー上に現れる。




ヘルプが必要なときには

Embarcadero Technologies の技術サポート

Embarcadero Technologies と正規の保守契約を結ばれている場合、お使いの弊社アプリケーションで何らかの問題があった際に Embarcadero の技術サポート チームが対応いたします。 また弊社の保守契約により、Embarcadero Technologies 製品の登録ユーザーは、その契約の有効期間の間、ソフトウェアの更新を無料でダウンロードする権利を有します。 評価者は、その評価期間の間、無料で技術サポートを受けることができます。 Web サイトの「カスタマーサポート」セクションにアクセスすることをお勧めします。

Embarcadero Technologies の Web サイト

評価者は、その評価期間の間、無料で技術サポートを受けることができます。 Embarcadero Technologies 製品の評価版をダウンロードしたり、弊社および弊社製品についてさらにお調べになりたい場合には、http://www.embarcadero.com/ をご参照ください。

個人用ツール
以前のリリース:
他言語版