Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

Caché 5.2

この章では、Caché 5.2 の以下の項目について説明します。

Caché 5.2 の新機能と強化機能

今回の 5.2 リリースでは、Caché に次の機能が加わりました。

Jalapeño

開発者が定義するプロパティやメソッドに加え、従来のオブジェクトのバインディングを使用して、各クライアント・クラスがオブジェクトの永続性 (例 : Save() や OpenId() など) について Caché によるメソッドのセットを持つようになります。Jalapeño を使用すると、どの Java オブジェクトでも使用できる独立した "コントローラ" クラスに永続的な動作を分離することによって、このパラダイムが多少変更されます。

  • Java オブジェクト・スキーマ・インポート

    Jalapeño の一部として、Java オブジェクト・スキーマ・インポートを追加します。従来、当社の言語バインディングの手法では、まず Caché クラス定義を行い、そこから Caché によって 1 つ以上の "プロジェクション" クラスを生成していました。Java オブジェクト・スキーマ・インポートはこれを方向転換させ、既存の Java クラス定義から Caché クラス定義を作成できるようにします。

  • データベース・ニュートラル配置

    このほか Jalapeño により、Caché SQL ゲートウェイでサポートされたデータベースであれば、どのデータベースにもアプリケーションを配置できる機能が追加されています。この機能では、通常はデータベース (Caché) サーバと Jalapeño クライアントとのリンクに使用するオブジェクト・メカニズムの代わりに SQL 要求を使用します。もちろん、この方法の性能は Caché の性能に劣りますが、Caché のパワーとパフォーマンスをそのまま残しながら、データベースに依存しないアプリケーションを構築するには便利です。

Caché Managed Provider for .NET

Caché Managed Provider for .NET は、1 台のクライアントから、高性能なリレーショナル・データベース機能とオブジェクト・データベース機能を実行できるようにします。これは、業界初の .NET 向け機能です。このリリースでは、Caché クラス定義から .Net アセンブリを自動的に生成する Visual Studio .NET プラグインも提供します。

IEEE 8 バイト浮動小数点のサポート

IEEE 8 バイト浮動小数点値 ("Double" ともいいます) 用にサポートが追加されました。計算が集中するアプリケーションにとっては、Caché がさらに役立ちます。

強化された機能は、以下のとおりです。

  • スカラとリスト・メンバ両方に対し、内部データ型を新たに作成しました。

  • 値をダブル値にキャストする内部関数を新たに拡張しました。

  • Caché がプロセッサ固有の浮動小数点命令を利用できるよう、アセンブラを最適化しました。

  • 新しいサーバ・データ型を処理できるよう、オブジェクトと SQL クライアントの機能を拡張しました。

Direct FileMan ディクショナリ・コンバータ

Direct FileMan ディクショナリ・コンバータを使用すると、FileMan ファイル定義から Caché テーブル定義を自動作成できるようになります。従来の変換では、Fileman から F DBMS へ、次に Caché へ変換するといった 2 段階のプロセスが必要でした。

詳細は、"Caché 専用のシステム/ツールおよびユーティリティ" の “FileMan ファイルから Caché クラスへの変換” のセクションを参照してください。

スタジオのコード補完機能

開発者がコードを入力する際、コンテキストに応じたリストから必要な要素を選択できるので、スタジオでの編集が容易になります。例えば、"##CLASS(…)" 構文を使用する場合は、クラス名を指定する際にその入力作業が容易になります。また、変数タイプがわかっている場合は、プロパティ名やメソッド名を指定する際にその入力作業が容易になります。

プロセス・プライベート・グローバル

プロセス・プライベート・グローバルのサポートが追加されました。プロセス・プライベート・グローバルは、ローカル変数のように、作成元のプロセスからのみアクセスでき、そのプロセスを停止すると自動的に削除されます。ただし、グローバル同様、基本的にサイズは無制限です。

Caché ジャーナル・ファイルの暗号化

Caché ジャーナル・ファイルの暗号化と復号化が新たにサポートされました。

バージョン確認 (および楽観的同時実行制御)

オブジェクト・レベルで、この機能によりバージョン確認の自動サポートが追加されます。クラス・パラメータでこの機能にチェックを付けると、オブジェクトを保存するたびにバージョン番号のプロパティ値をインクリメントします。この機能一式を使用して、楽観的同時実行制御を実装できます。

ダイナミック・リリース

ダイナミック・リリースを使用すると、コンパイル時にクラス定義の一部でないプロパティとメソッドへの参照に Caché クラスで応答できるようになります。

フリー・テキストによる検索

テキスト・データのインデックス作成と検索がサポートされました。具体的には次が可能になりました。

  • 新しい % テキスト・データ型。

  • 新しい SQL 選択演算子 %CONTAINS。

  • 言語固有のパーサ (英語、スペイン語、フランス語、イタリア語、ドイツ語、日本語、ポルトガル語)。

  • 複数単語の ("N-gram") インデックスのサポート。例えば、長さが 1 のN-gram を使用して、すべての個々の単語にインデックスが付けられます。N-gram 長さが 2 の場合、同時に発生したすべての単語ペアにもインデックスが付けられます。

  • 単語のさまざまな変化形 (go、goes、going、went …) を 1 本の共通ルートにマッピングして語幹を抽出できるようになりました。

  • ノイズ語フィルタ機能が追加され、a、and、the、… などの不要な単語を除外できるようになりました。

ODBC における複数の結果セット

ストアド・プロシージャが複数の結果セットを返せるように、Caché ODBC にサポートが追加されました。

WMI のサポート

マイクロソフトによる Web ベースのエンタープライズ管理の実装である Windows Management Instrumentation (WMI) のサポートが追加されました。これにより、Microsoft 管理コンソールなど、多様な Windows 管理ツールから Caché を監視できるようになります。

強化されたデバッグ機能

Caché のデバッグ機能がさまざまな面で強化されました。

  • マクロ・ルーチン、クラス定義、および CSP ファイル のデバッグ機能

  • デバッガ接続をより強固にする新しいシステム・レベル・メカニズム

  • 新しいスタック・トレース・メカニズム

  • READ 内に BREAK する機能

  • 追加のデバッグ・コマンドまたはデバッグ・オプション

T-SQL のサポート

ストアド・プロシージャ内で T-SQL 言語をサポートするなど、SYBASE または SQL Server から Caché への移行を簡素化する機能がいくつか追加されました。T-SQL は現在、32 ビット Windows、32 ビット Linux (RedHat および SUSE)、64 ビット AIX®、および 64 ビット Solaris でサポートされています。

デバイス・レベルの SSL と TLS のサポート

SSL 2、SSL 3、または TLS を使用したセキュア・ソケット・レイヤ通信用に、デバイス・レベルのサポートが追加されました。

強化された ECP パフォーマンス

パフォーマンスとスケーラビリティを強化するため、ECP および ECP/jrnsync メカニズムが改善されました。

強化された Windows クラスタ・リソース管理

この強化により、Windows クラスタ内でより簡単に Caché を管理できるようになりました。

改善された RPM Linux インストール

Linux 版 Caché 用に、新しく RPM インストール・パッケージが作成されました。

Caché 5.2 アップグレードのチェックリスト

目的

このセクションでは、Caché 5.2 の機能のうち、このバージョンで変更されたために既存の 5.1 システムの管理、運用、または開発の作業に影響を及ぼすものを取り上げます。

5.1 より前のバージョンからアプリケーションをアップグレードする場合は、"Caché 5.1 アップグレードのチェックリスト" を最初によくお読みください。このドキュメントでは、5.1 と 5.2 の違いのみを取り上げています。

フィールド・テスト・バージョンからのアップグレード

以前のバージョンの Caché を実行しているお客様は、インストール時にこのバージョンの Caché にアップグレードできます。

Caution:

このリリースのフィールド・テストに使用されたバージョンからのアップグレードはサポートされません。これには、DevCon 等のイベントにおいてお客様に配布された Caché バージョンも含まれます。

管理者

このセクションでは、以前のバージョンの Caché の管理作業を熟知しているユーザを対象に、バージョン 5.2 の管理に関する新機能と変更点を説明します。ここでは、各項目について簡単に説明します。ほとんどの場合は、ドキュメントの別の箇所に詳しい説明があります。

システム管理ポータルの変更

Caché 5.2 では、Caché 5.1 で利用可能なシステム管理ポータルの初期のバージョンを変更/改善しています。より重要な変更の概要は次のとおりです。

暗号化の制御

ホーム, データベース暗号化 ページで、データベースとジャーナル・ファイルの暗号化を一元的に管理します。管理者がデータベースの暗号化を選択する場合は、ジャーナル・ファイルも暗号化するかどうかを尋ねる追加のプロンプトが表示されます。

キーファイル・データへのアクセスが可能な場合、暗号化されたデータベースは起動時に自動的にマウントされます。

SSL と TLS を使用したセキュリティ保護された通信

Caché 5.2 では、SSL (Secure Sockets Layer) や TLS (Transport-Level Security) を使って、セキュリティ保護された通信を行うことができます。これらのプロトコルに利用できる構成は、ホーム, セキュリティ管理 ページの [SSL/TLS の構成] を選択するとアクセスできます。また、管理者がこの構成を作成することもできます。

データベース・ディレクトリ管理

ホーム, 構成 ページの ローカルデータベース と リモート・データベース のオプションを使って、Caché データベースを含むディレクトリの場所を特定することができます。データベース・ディレクトリは、新しい場所の検索に使用される [ディレクトリ参照] ウィンドウを開くリンクになっています。

管理者がディレクトリを選択および確認すると、ポータルによって新しいディレクトリに CACHE.DAT ファイルが実際に含まれているかどうかが確認されます。CACHE.DAT が存在しない場合、データベース編集ページは新しいディレクトリからロードされるプロパティ値と共に新しい場所で更新されます。[保存] ボタンを選択すると、データベース情報は構成ファイルに保存されます。

グローバルの編集

ホーム, グローバル, グローバルデータ編集 ページで、管理者やオペレータはグローバル・データの値を編集および削除できます。

言語設定

ホーム, 構成, 詳細設定 ページの Java、C++、および EJB プロジェクション設定は、すべて削除されました。アプリケーション開発者は Studio を使用して、この設定を操作してください。

ロールの付与

ホーム, セキュリティ管理, ロール, ロール編集 ページで、ユーザにロールを付与できます。この機能は、現在のロールを他のロールに付与したり、他のロールを現在のロールに付与することができるように拡張されました。

CSP セッション・データの移動

Caché 5.2 の現在の CSP セッション、%cspSession のデータは、CacheTemp にマップされます。以前のリリースでは、CACHESYS にマップされました。この新しいマッピングには、2 つの主な効果があります。

まず、CSP セッション・データはジャーナルされません。システムの使用方法によりますが、これによりジャーナルのサイズを大きく縮小することができます。

次に、CSP セッション・データは CacheTemp に保存されているため、システムの中断に耐えることができず、システムの再起動後にセッションを再開できません。また、OnSessionEnd イベントはシステムの中断時に実行されないので、一時的なデータは再起動後に正常に廃棄されない場合があります。

これまでの動作は、ホーム, 構成, 詳細設定 の構成パラメータ、JournalcspSessions を 1 に設定すると保存できます。

Note:

既存の %cspSession グローバルはすべて、Caché 5.2 にアップグレードする際に削除されます。

プラットフォーム固有の項目

ここでは、特定のプラットフォームに関係する項目について説明します。

機能 : TSQL

TSQL へのサポートは、Caché 5.2 のリリース時点で次のプラットフォームでのみ提供されます。

  • Windows – 32 ビットのみ

  • LINUX

    • Red Hat – 32 ビットのみ

    • SUSE – 32 ビットのみ

  • AIX® – 64 ビットのみ

  • Solaris SPARC – 64 ビットのみ

利用するサイトでこれが問題となる場合は、インターシステムズのサポート窓口Opens in a new tabにお問い合わせください。

Windows クラスタ

Windows クラスタ構成に対するインターシステムズの推奨設定は、過去数バージョンで徐々に変化しています。お使いの構成に対する現在の推奨設定を確認してください。

HPUX

Caché 5.2 の SSL (Secure Sockets Layer) および TLS (Transport-Level Security ) の機能は、HPUX のこのバージョンでは利用できません。

SUSE Linux

Itanium での SSL/TLS サポートでは、インターシステムズが提供する openssl-devel パッケージには既知の問題があります。インターシステムズ提供のパッケージを削除して、オペレーティング・システムに同梱のバージョンをインストールしてください。

開発者

このセクションでは、以前のバージョンの Caché 上で実行されているアプリケーションの設計者、開発者、および保守担当者、特に Caché 5.2 への移行担当者に関係する情報を示します。

ここでは、各項目について簡単に説明します。ほとんどの場合は、ドキュメントの別の箇所に詳しい説明があります。

システム管理ポータル

5.1 のリリース以降、システム管理ポータルに数多くの変更や改善が加えられました。詳細は、管理者のセクションを参照してください。

IEEE 8 バイト浮動小数点のサポート

リリース・ノートに示したとおり、このバージョンの Caché では IEEE 754 形式の浮動小数点データの操作をサポートします。この変換を行う Objectscript 関数は $DOUBLE で、この Caché データ型のクラスは %Library.DoubleOpens in a new tab です。

さらに、SQL SystemDataType マッピングが変更されました。これまでのリリースでは、SQL データ型の DOUBLE と DOUBLE PRECISION は %Library.Float にマップされました (また、ObjectScript の数値として実装されました)。このリリースでは、これらは %Library.Double にマップされます (また $DOUBLE 関数を使用して実装されます)。

この 2 つの表現の主な違いは、到達可能な数値精度にあります。Caché では、数を小数点 18 桁の精度で表現します。IEEE 754 は 53 ビットのバイナリ仮数を使用するため、小数点 15 桁の精度 (実際には 15.3 桁) となります。開発者はこの 2 つの効果を認識する必要があります。

  • ODBC または JDBC インタフェースから浮動小数点を取得するアプリケーションでは、アプリケーションで受信される正確な数値が表示されます。これまで ObjectScript 数値への変換は、内部で使用される値と多少異なる値になることがありました。

  • ObjectScript 数値を IEEE 754 へ変換すると、精度が低下します。このことがアプリケーションに重大な影響をもたらすかどうかは、この結果に対する計算の重要度により異なります。

Note:

Caché 5.2 の $DOUBLE で有効な値の範囲は次のとおりです。

最大 : 1.79769e+308

最小 (正規化) : 2.22508e-308

最小 (非正規化) : 4.9e-324

$DOUBLE と Caché 10 進数の併用

既存の計算に $DOUBLE を導入するユーザは、計算結果の精度に影響する可能性のあるいくつかの要因に注意する必要があります。

  • データ表現の変換

    Caché 10 進数の最大値は 9.223372036854775807e145 です。DOUBLE から Caché 10 進数に変換する場合、含まれる値が Caché の値の範囲を超えている場合はエラーが発生します。

    Caché 10 進数から DOUBLE 値への変換時にエラーが発生することはありません。

  • 大きな数値リテラル

    ObjectScript パーサーが最適化され、$DOUBLE 関数の引数として指定された場合に限り、Caché 10 進数の値の範囲を超える大きな数値リテラルも認識できるようになりました。以下はコードの例です。

    set x = 1.0e200
    

    <MAXNUMBER> エラーが発生しますが、次の文は成功します。

    set x = $DOUBLE(1.0e200)
    
  • 等価テスト

    DOUBLE では 2 進数の浮動小数点形式が採用されるため、小数部分を持つ 10 進数の数値を DOUBLE 値に変換すると、元の数値を正確に表現できない場合があります。そのため、2 つの DOUBLE 値の計算結果を比較しても、予想した結果が得られない場合があります。

    より優れた方法として、一定の許容範囲内にある 2 つの数値の違いをテストする方法があります。例えば、A と B が 2 つの DOUBLE 値で、許容範囲が EPSILON である場合、テストを以下のように記述します。

    IF ($ZABS(A - B) < EPSILON)
    
ODBC/JDBC を持つ DOUBLE 値
Caution:

Caché バージョン 5.2 サーバに DOUBLE としてマッピングされた列を持つテーブルがある場合、旧バージョンの Caché で稼動するクライアントからこれらの列にアクセスしようとすると失敗します。このようなクライアントも Caché 5.2 上で実行する必要があります。

SQL LEFT JOIN の変更

このリリースで OUTER JOIN の処理方法が改善されたため、以前に許可されていた疑わしい構文と意味規則の 2 つの事例が、エラーとして報告されるようになりました。

  • ON 節で、“=*” という記述が許可されなくなりました。場合によっては、上記の記述をすると、INNER JOIN が LEFT JOIN として解釈されてしまうことがありました。

  • ON 節で、矢印構文 (->) が許可されなくなりました。ドキュメントでは常に、唯一許可される構文は “field1 = field2 ” であると示されていましたが、式の検証時のエラー・チェックが厳密でないために、上記の構文が許可される場合がありました。

オペレータ

システム管理ポータル

5.1 のリリース以降、システム管理ポータルに数多くの変更や改善が加えられました。詳細は、管理者のセクションを参照してください。

FeedbackOpens in a new tab