InterBase XE7 Update 1 Readme

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

InterBase Readme へ戻る

リリース: 2015年3月

本リリースでは、複数の更新と強化が行われています。このファイルには重要な情報が含まれており、その中にはオンライン ヘルプに記述されていないものもあります。 このファイルのすべての内容に目を通してください。 重要: このドキュメントの最新バージョンについては、こちら をご覧ください。

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



1. システム要件

このバージョンをインストールし実行するためのシステム要件については、『インストール、登録、ライセンス情報 』のドキュメントを参照してください: 「登録とライセンス管理」。

重要: 本リリースの更新要件を必ず確認してください。





2. 新機能

InterBase XE7 Update 1


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 の詳細事項が一覧されます。 これらの詳細は、追加または削除することができます。 また、編集されたサブスクリプションの説明を入力することも可能です。




3. 移行における問題

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;



4. 既知の問題

  • 古いクライアント(古い 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 コア数を選択することができます。



5. 解決された不具合


6. ヘルプが必要なときには

Embarcadero Technologies の技術サポート

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

Embarcadero Technologies の Web サイト

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




Copyright 2015 Embarcadero Technologies Inc. すべての Embarcadero のブランド名および製品名は、米国、およびその他の国における Embarcadero Technologies の商標または登録商標です。 その他のブランド名または製品名に関する権利はすべてその所有者に帰属します。

本製品は、米国特許または特許出願の、特に 米国特許 5592664 ~ 5918224 によって保護されています。