この章では、Caché の以前のバージョンからアップグレードをする方法について説明します。このトピックは、以下のように構成されています。
サポート対象アップグレード・パス
サポートされている Caché 5.0 へのダイレクト・アップグレード・パスは以下のとおりです。
Caché 5.0 バージョンは、2.1.6 や上記のその他のバージョンから、既存のデータベースを変換することなく直接アップグレードすることができます。
サポートされている Caché 5.0への変換とアップグレード・パスは以下のとおりです。
Caché のインストール後、従来の形式から データベースの変換 を行う必要があります。
インターシステムズのデータベース製品 Caché 2.0 や DSM 6.6 などをご利用の場合は、最初に上記バージョンのいずれかにアップグレードし、次に変換とアップグレードの手順を行なってください。
インターシステムズ従来のリレーショナル・データベース (F-DBMS) を使用しているシステムをアップグレードする場合、Caché SQL にアップグレードするか、あるいはインターシステムズのサポート窓口から F-DBMS コンポーネントを取得する必要があります。
アップグレード・タスク
以前の Caché のリリースからアップグレードする必要があるタスクは、以下のトピックで詳細に説明しています。
インストール前のアップグレード・タスク
Caché が動作しているプラットフォームに関わらず、以下のアップグレード・タスクが必要です。以下のタスクは、Caché のインストール手順を実行する前に実行してください。
  1. カスタム・ルーチンとグローバルの保存%SYS ネームスペースにある独自のルーチンやグローバルが、インストールによって影響を受けないようにするには、“Z”“z”“%Z”“%z” で始まる名前を付けてください。.int.obj ルーチン ( Z*、z*、%Z*、%z* を除く) はすべて、アップグレード時に %SYS ネームスペースから削除されます。
    また、アップグレードの際に、CACHELIBCACHETEMPDOCBOOKSAMPLES データベースは完全に置換されます。
    任意の .mac.inc ルーチンは、アップグレードによる影響を受けません。
  2. ユーザ・ファイルの保存 — 追加のファイルやディレクトリも削除または置換されます。これらのディレクトリに配置したユーザ・ファイルは、アップグレードを実行する前に別の場所に保存してください。アップグレード時に削除されるファイルのリストを参照してください。
  3. カスタム・クラスのエクスポート%SYS ネームスペース内のクラスは、“Z”“z”“%Z”“%z” で始まる名前が付いていても、保存されません。アップグレード時にクラスを保存するには、アップグレード前にエクスポートし、アップグレード完了後に再度 Caché にインポートしてください。
  4. ルーチン・ラベルのチェック — 重複ラベルを持つルーチンは従来はコンパイルエラーとなることはありませんでしたが、コンパイル中にエラーを受け取りますが、エラーを起こさずに実行します。すべてのアプリケーション・ルーチンの重複ラベルをチェックするための従来のユーティリティ %LBLRDEF は、Caché 5.0 には含まれません。
  5. ルーチン参照のチェック — 8 文字を超えるルーチン名を参照していないかどうか、すべてのアプリケーション・ルーチンをチェックします (関数呼び出し、DO ルーチン呼び出し、$ZT 呼び出しなどを含みます)。Caché は 63 文字までのルーチン名を認識するため、コンパイル時あるいは実行時に <NOROUTINE> エラーを発生させる可能性があります。
  6. システム整合性のチェック — データベース内部エラーが発生していないことを確認するため、既存のディレクトリでシステム整合性チェックを実行します。
  7. バックアップ・システム — Caché のアップグレード前に、システムの完全バックアップの実行をお勧めします。通常使用している、完全なオペレーティング・システム・バックアップ・プロシージャを使用してください。
アップグレード時に削除されるファイル
次のファイルとディレクトリが、指定のコンポーネントのインストール中に削除されます。
Windows アップグレード時に削除されるファイル
インストールするコンポーネント 削除されるファイルまたはディレクトリ
Caché アプリケーション開発 (オブジェクト・ユーティリティ) <CacheSys>\Bin\Cache*.oca
<CacheSys>\Bin\CacheList.ocx
<CacheSys>\Bin\CacheQuery.ocx
<CacheSys>\Bin\VISM.ocx
Web サーバ (CSP) ゲートウェイまたは Caché エンジン <CacheSys>\CSP\broker\
<CacheSys>\CSP\cachelib\
<CacheSys>\CSP\RunTime\
Caché エンジン・リンク・ライブラリ <CacheSys>\Source\Cache\Win95\
<CacheSys>\Source\Cache\i386\
<CacheSys>\Source\Cache\alpha\
WebLink <CacheSys>\Weblink\Doc\
<CacheSys>\Weblink\Scripts\
<CacheSys>\Weblink\i386\
<CacheSys>\Weblink\alpha\
<CacheSys>\mgw.ini の名前は mgwsave.ini に変更されています。
Caché エンジン <CacheSys>\Mgr\CacheLIB\cache.dat
<CacheSys>\Mgr\CacheLIB\cache.lck
Caché ツールとユーティリティ <CacheSys>\Dev\
<CacheSys>\CSP\samples\
ドキュメント <CacheSys>\Docs\
<CacheSys> を、使用しているインストール・ディレクトリに置き換えてください。CacheSys が既定です。
次のファイルとディレクトリは、UNIX または OpenVMS プラットフォームで Caché をアップグレードする際に削除されます。
OpenVMS での Caché のアップグレード
OpenVMS システムに関連する、アップグレードの問題は以下の通りです。
クラスタ PIJ ファイルのクリーンアップ
OpenVMS クラスタ・システム用の Caché メンバを 3.x ( あるいはそれ以前のバージョン) から 5.0 にアップグレードする前に、必ず、Caché クラスタのすべてのメンバを終了し、CACHE.PIJ ファイルを削除します。このファイルを削除しない場合、インストールによりアップグレードされずに、以下のようなエラー・メッセージを cconsole.log に作成します。
Cache (2100036c) Tue Aug 1 14:28:59 2002
Activating Namespaces
Cache (21000404) Tue Aug 1 14:28:59 2002 Cluster image journal 
is incompatible with this version 
Cache (21000404) Tue Aug 1 14:28:59 2002 Unable to join the cluster 
Cache (21000404) Tue Aug 1 14:29:00 2002
ENQdaemon exited due to VMS error code (decimal) 0 
クラスタ構成の変更
Caché 5.0 以前は、Caché クラスタを構成するとき、クラスタ (UDP、または Ethernet) のネットワーク・タイプを定義し、クラスタ・メンバ間の DCP 接続を定義する必要がありましたが、5.0 では必要ありません。Raw Ethernet、または UDP 上の DCP は、既存の構成プロシージャを実行することで Caché クラスタ・ネットワーク・トラフィックで使用されていますが、ECP ネットワーキングを使用する方をお奨めします。ECP は、新規のインストールの既定です。
Caché クラスタを 5.0 にアップグレードした後は、Caché クラスタ構成を手動で変更しなければなりません。その変更は、以下の 2 点です。
更新しても、自動的に接続は変更されません。 これは、どの DCP 接続がクラスタをサポートしているか、またどれが Caché の旧バージョンで起動しているマシンとの通信に使用されているかを検知できないからです。ECP を使用して、クラスタとネットワーキングすることで、ネットワーク・テーブルを必要に応じて自動的に構成します。 Caché クラスタをサポートするために、クラスタ・メンバ間の任意の ECP 接続を定義する必要はありません。しかしユーザは、自動的に作成された ECP 接続にアクセスすることはできません。構成が ECP を必要とする場合、他のクラスタ・メンバで個別にマウントされたデータベースにアクセスするために、これらの接続を定義する必要があります。
Caché 5.0 以前では、OpenVMS リモート・システム名である CLUSTER は、常に定義されていました。 この CLUSTER はクラスタ・マスタを示すか、システムが Caché クラスタに参加していない場合はローカル・システムを示していました。これは 5.0 では削除されています。失敗したノードを示す接続は、残存ノードに移行しないため、クラスタ・マウント・データベースへのアクセスに、ECP を使用すべきではありません。
常駐メモリ・セクション名
OpenVMS システムでは、グローバル・バッファ・プールに対して常駐メモリ・セクションを使用するとき、ユーザには以下の 2 つのオプションがあります。
  1. cache.cpf 構成ファイルの residentmem パラメータで、2 番目のコンマ区切り部分に希望のセクション名を示します。これは、SYSMAN ユーティリティを使用して物理メモリを保存するときに便利です。 今回のバージョンでは、セクション名のエントリが必要です。
  2. システムがセクションの名前を選択します。従来のバージョンの Caché では、システムは ISC_Shared_Memory という名前を使用していましたが、これは固定の名前だったので、複数の構成では互換性がありませんでした。Caché 5.0 では、マネージャのディレクトリを基にして名前を自動的に作成するため、複数のインストールがより簡単にサポートできます。
特定の構成でセクション名を付ける場合、この名前はシステムが生成した名前の代わりに使用されます。インターシステムズは、業務システムでは、共有ページテーブルを利用するために、SYSMAN ユーティリティを使用して常駐メモリ・セクションを予約することをお奨めします。
UNIX/Linux での Caché のアップグレード
Caché の旧バージョンから UNIX、または Linux システムをアップグレードするときは、以下のように構成ファイルを更新します。.cpf ファイルの niceval 行を編集します。 これには、更新されるバージョンによって、複数の異なるパラメータ・カウントが含まれます。ファイルの行は以下の行と類似しています。
niceval=-3,-2,-4,2,0,0
最後の “,0” は存在しないこともあります。
このリストの 4 番目のパラメータを、2 から 0 に変更すると、以下のようになります。
niceval=-3,-2,-4,0,0,0
上記は、バージョン 5.0 で新規の UNIX/Linux .cpf ファイルを作成する場合、または新規に Caché 5.0 をインストールする場合に、どのように niceval 行が表示されるかを示しています。変更を有効にするため、Caché を再起動します。
Important:
この変更は、ECP を実行しているシステムには不可欠です。
ISM からのアップグレード
ISM 6.4 や 5.10 から Caché 5.0 にアップグレードする場合、変換前ルーチンを実行し、Caché をインストールした後、既存の ISM データベースを Caché データベースに変換します。変換前ルーチンは、現在の ISM 構成を検査し、アップグレードで使用する Caché 構成ファイルを構築します。このルーチンは、配布メディアに含まれています。
Caché インストール・ガイド OpenVMS 用Caché インストール・ガイド UNIX および Linux 用 では、この変換前ルーチンを各プラットフォームで実行する方法について詳細に説明しています。
異なるプラットフォーム間で移行する場合、エンディアン・タイプが同一/異なるに関わらず、変換ユーティリティでは、プライマリ・データベース・ボリュームと拡張データベース・ボリューム間の連結を推定できません。これらのデータベース・ボリュームの各ファイルは実際の場所に基づいています。新しい場所を指定する唯一の方法は、^LABEL ユーティリティを使用して各ボリュームにラベルを付け直すことです。
ボリュームが 1 つしかない場合、手作業でファイル名を変更してラベルを修正する作業は必要ありません。
複数ボリュームのデータベースを変換する手順は次のとおりです。
  1. データベースのボリュームが、現在とは異なるエンディアン・タイプのマシンからコピーされている場合は、cvendian を実行して変換します。cvendian の 1 回の呼び出しで、すべてのボリュームのディレクトリ名を指定します。以下はその例です。
        cvendian tstdir1/OPENM.DAT tstdir2/OPENM.EXT tstdir3/OPENM.EXT
  2. プライマリ・ボリューム・ファイルの名前を手作業で CACHE.DAT に変更し、各拡張ボリューム・ファイルの名前を CACHE.EXT に変更します。これは、必要に応じてステップ 1 の実行前に行うことができます。
  3. ^LABEL を実行し、ボリューム・ラベルとリンクを修正するための指示に従います。まずプライマリ・ボリュームを修正し、次に各拡張を修正します。
  4. 次のシステム変換ユーティリティの実行のセクションの説明に従って、START^%SYSCONV(primary_volume) を実行します。
インストール後のアップグレード・タスク
インストール完了後にも、以下のようなアップグレード・タスクがあります。
ISM 6.4 または 5.10 アップグレード用システム変換ユーティリティの実行
ISM 6.4 または 5.10 アップブレードに対するインストールが完了した後、システム変換ユーティリティ、%SYSCONV をシステム・マネージャ・ディレクトリから実行します。これにより、自動的に必要なすべての変換作業を実行し、ユーザのルーチンとオブジェクト・コード・グローバルとを再度照合します。変換されたデータベースのディスク容量は、変換後わずかに増加します。%SYSCONV ユーティリティを実行する前に、以下を実行します。
システム変換ユーティリティを実行するために、以下を実行します。
  1. Caché を開始します。変換中に Caché に他のユーザがアクセスしないようにします。
    Windows からの他のログインを無効にするために、以下を実行します。
    1. Caché コントロール・パネルを開始します (Caché キューブを右クリックして、メニューから選択します)。
    2. Caché インストールを右クリックし、[プロパティ] をクリックします。[システム・プロパティ] ダイアログ・ボックスが表示されます。
    3. [システム・アクセス] タブで、[全サインオンを禁止] チェック・ボックスにチェックを付け、[適用] をクリックします。
  2. Caché のプロンプトで、%SYSCONV ルーチンを実行します。
    すべてのデータベースを変換するには、管理者のネームスペース %SYS に変更し、以下を実行します。
    %SYS> Do ALL^%SYSCONV
    
    シングル・データベースを変換するには、以下を実行します。
    %SYS> Do START^%SYSCONV(<directory-name>)
    
    ALL^%SYSCONV プロシージャは、UCI リストに記録されたデータベースのみアップグレードします。UCI リストにないデータベースを変換するには、START^%SYSCONV プロシージャを使用します。
  3. 変換状況を確認するには、以下を実行します。
    %SYS> Do STATUS^%SYSCONV
    
アップグレード・タスクでの GBLOCKCOPY の使用
GBLOCKCOPY ルーチンを使用して、アップグレードに関連する複数のタスクが実行できます。
詳細は、Caché GBLOCKCOPY ルーチン のセクションを参照してください。
データベースの変換
Caché をアップグレードした後、GBLOCKCOPY ルーチンを使用して以下の処理を実行します。
Note:
さらに高度なパフォーマンスを得るためには、既存の 2 KB ページ・サイズのデータベースから 8 KB ページ・サイズのデータベースへの変換を推奨しています。これは、アップグレード時でも、後からでも実行することができます。データベースは、データベースの停止時間やディスクの空き容量にしたがって、1 度に 1 つ、あるいは複数変換することができます。
以下のセクションでは、GBLOCKCOPY ルーチンを使用した マネージャ・データベースの変換 方法を説明しています。
マネージャ・データベースの変換
アップグレード後、マネージャ・データベースは 2 KB のページ・サイズのままになっています。GBLOCKCOPY を使用して、以下のようにこれを 8 KB ページ・サイズに変換することができます。
  1. すべてのユーザのシステムへのアクセスを切断します。
  2. GBLOCKCOPY を実行して、異なるディレクトリにマネージャ・データベースをコピーします。
  3. Caché を停止します。
  4. 新規に作成されたデータベースを、マネージャ・ディレクトリにコピーします。
  5. Caché を再起動します。
例を以下に示します。
%SYS>d ^GBLOCKCOPY
 
This routine will do a fast global copy from a database to another database or
to a namespace. If a namespace is the destination, the global will follow any
mappings set up for the namespace.
 
1) Interactive copy
2) Batch copy
3) Exit
 
Option? 1
 
1) Copy from Database to Database
2) Copy from Database to Namespace
3) Exit
 
Option? 1
Source Directory for Copy (? for List)? c:\cachesys\mgr
Destination Directory for Copy (? for List)? c:\temp\mgr
Database c:\temp\mgr\ does not exist
Do you want to create it? No => Yes
Database c:\temp\mgr\ created
All Globals? No => Yes
 
39 items selected from
39 available globals
 
Turn journaling off for this copy? Yes => Yes
Confirm copy? Yes => Yes

%SYSCONV と GBLOCKCOPY の相違点
%SYSCONV ルーチンは MUMPS.DAT データベースの名前を CACHE.DAT に変換し、ルーチン・ソースとオブジェクト・コードを保存する配置済みのグローバルの変換を実行し (余分なディスク容量は必要としません)、ルーチンをリコンパイルします。データベースは 2 KB ページ・サイズを使用します。%SYSCONV ルーチンは、ISM 5.10/6.4 のアップグレード用のみに使用されます。%SYSCONV ルーチンは、余分のディスク容量を必要とせず、1 度に 1 ノード分のデータのみ移動するので、ゆっくりと動作します。
GBLOCKCOPY ルーチンは、元のデータベースの完全なコピーを作成するときに、余分のディスク容量を必要とします。元のデータベースは、その 従来の サブ・ディレクトリで CACHE.DAT という名前に変換されます。新規の 8 KB データベースは、データベース・ディレクトリで作成されます。次に 従来の ディレクトリのデータは、新規のデータベースにコピーされます。変換後、変換されたデータが認証されるときに、従来の データベースはユーザが削除することができます。GBLOCKCOPY ルーチンは、同じディスク容量での実行を制約されておらず、1 度にブロック全体のデータを移動するので、素早く動作します。しかし、(%SYSCONV が行うような) ルーチンやオブジェクト・コードではなく、データベース内の すべての データを移動するので、データベースのサイズによっては %SYSCONV よりも時間がかかってしまうこともあります。
Note:
データベースは 2 KB のページ・サイズから 8 KB のページ・サイズに変換されるので、2 KB バッファに割り当てられた MB 数は、Caché 構成マネージャで 8 KB まで変更する必要があります。
互換性の問題
以下は、Caché の異なるバージョンを同時に使用するときに適用される問題、および旧バージョンからの変更点で、使用しているオペレーティング・プロシージャに影響を与える可能性のあるものです。以下のトピックを参照し、ご使用のシステムに影響を与えるか、また与えるとしたらどのような影響なのかを調べてください。
相互運用性
クライアントで Caché サーバを構成するために Caché 構成マネージャを使用するとき、クライアント PC 上の Caché のバージョンは、管理するシステムの Caché のバージョンと同じ、またはそれより新しいものでなければなりません。詳細は、サポート対象プラットフォームサポート対象 Caché バージョンの相互運用性 のセクションを参照してください。
Windows プラットフォームでは、Caché の旧バージョンをインストールしているシステムに Caché 5.0 をインストールした後、以下のことを行います。
自動ルーチン・リコンパイル
バージョン 5.0 のルーチン・オブジェクト・コードは、旧バージョンとの互換性がありません。このため、Caché のインストール中は、システムのすべてのデータベース内のすべてのルーチンがリコンパイルされます。.MAC コードはリコンパイルされませんが、.INT コードだけはリコンパイルされます。ルーチンがオブジェクト・コードのみの形式で存在する場合は、リコンパイルできません。実行されると、ユーザは <RECOMPILE> エラーを受け取ります。
Caché は、自動リコンパイル機能もサポートします。従来のデータベースが 5.0 システムでマウントされ、ルーチンがそこから実行される場合、ルーチンは新規のオブジェクト・コード形式にリコンパイル (ソース・コードが存在する場合) され、実行されます。これにより、ユーザが <RECOMPILE> エラーを受け取らないようにします。
DCP を使用して Caché システムのネットワークをアップグレードする場合、異なるバージョンの環境で実行できるように、このリコンパイル機能を使用することができます。最初に、クライアント・マシンを 5.0 にアップグレードします。旧サーバのルーチンを参照するとき、ルーチンはクライアントでリコンパイルされ、実行します。リコンパイルされたコードはサーバに戻して保存されないので、サーバは旧バージョンの実行を継続することができます。
バックアップ・ファイル
BACKUP アーカイブの形式は、Caché のメジャー・リリースによって異なります。特に 4.1 の形式は、それ以前のバージョンとの互換性がありません。今回のリリースの変更で、4.1 のバックアップは 5.0 でリストアすることはできますが、5.0 のバックアップは 4.1 でリストアすることはできません。また、バックアップはエンディアン依存のデータを含むので、異なるハードウェアでのリストアは失敗することもあります。 特に各エンディアン・タイプが異なる場合は、失敗することが多いでしょう。
ライト・イメージ・ジャーナル・ファイル
ライト・イメージ・ジャーナル・ファイル (CACHE.WIJ) は、Caché 5.0 と Caché のそれ以前のバージョンとの互換性がありません。
Note:
古いシステムが正しくシャットダウンしない場合は、新しいバージョンの Caché にアップグレードする前に、Caché を再起動してリカバリを実行します。
Caché が実行中の場合は、アップグレードのインストールによって Caché が停止し、WIJ リカバリが実行され、WIJ ファイルが削除されます。WIJ ファイルは手作業で削除しないでください。インストール手順によって、必要に応じて WIJ の削除を確認するためのプロンプトが表示されます。
ジャーナル・ファイル
ジャーナル・ファイルは、Caché 5.0 と Caché のそれ以前のバージョンとの互換性がありません。
アップグレード後、ジャーナル・パージ・ユーティリティは旧形式のジャーナル・ファイルを認識せず、破壊されたジャーナル・ファイルが存在するというエラーを報告します。これを避けるには、アップグレード前に適切なオペレーティング・システムのコマンドを使用して、旧形式のジャーナル・ファイルをバックアップ・ディレクトリに移動します。
古いジャーナル・ファイルを Caché 5.0 にリストアする必要がある場合、JConvert ルーチンと %JRead ルーチンを使用することができます。
シャドウイング
互換モード (以前は レコード型転送モード と呼ばれていました) で Caché の異なるバージョン間でシャドウイングを行うとき、3.1 から 5.0 の Caché のすべてのバージョンは双方向で互換性があります。しかし、8 ビットと Unicode バージョンを混ぜ合わせて使用することはできません。2.1 以降 (3.0 は除く) の Caché のすべての既存のバージョンは、2.x サーバをシャドウイングすることができますが、Caché 2.1 はそれ以降の Caché のバージョンのサーバをシャドウイングすることはできません。
クラスタ
OpenVMS システムでは、PIJ ファイル・バージョン・アップグレードの非互換性により、Caché 5.0 システムが従来のバージョンの Caché システムとクラスタすることは不可能です。
OpenVMS クラスタ・システムで、Caché 5.0 にアップグレードするとき、PIJ ファイルは互換性がないため、手動で削除する必要があります。アップグレードの手順では、既存の PIJ ファイルを変換することができません。 同じファイルを使用する、他のノードの状態を認識していないからです。
Caché 4.1 と Caché 5.0 クラスタは同じハードウェアでは共存することができますが、クラスタすることはできません。これらのクラスタが、お互いに通信する必要がある場合、DCP を使用する必要があります。
照合の変更
今回のリリースでは、Caché 4.1 と Caché 5.0 で照合の処理方法に大きな変更があります。今回、照合は以下の方法で 継承 されています。
データベースを作成するとき、データベースの内のすべてのグローバルに対する既定の照合を指定できます。照合を指定しない場合、データベースは既定の照合で作成されます。
グローバルを暗黙的に作成するとき、そのグローバルに対する照合は、データベースの照合です。データベースの既定とは異なる照合を指定する方法は、NLS (各国言語サポート) との照合設定 のセクションを参照してください。
制約
以下は、Caché 5.0 または、Caché を実行する特定のオペレーティング・システムに適用される制約です。