この章では、Caché の以前のバージョンからアップグレードをする方法について説明します。このトピックは、以下のように構成されています。
サポートされている Caché 5.0 へのダイレクト・アップグレード・パスは以下のとおりです。
-
-
-
-
Caché 3.2, 3.2.1, 3.2.2, 3.2.3
-
-
-
-
Caché 2.1.6, 2.1.7, 2.1.8, 2.1.9
Caché 5.0 バージョンは、2.1.6 や上記のその他のバージョンから、既存のデータベースを変換することなく直接アップグレードすることができます。
サポートされている Caché 5.0への変換とアップグレード・パスは以下のとおりです。
インターシステムズのデータベース製品 Caché 2.0 や DSM 6.6 などをご利用の場合は、最初に上記バージョンのいずれかにアップグレードし、次に変換とアップグレードの手順を行なってください。
インターシステムズ従来のリレーショナル・データベース (F-DBMS) を使用しているシステムをアップグレードする場合、Caché SQL にアップグレードするか、あるいは
インターシステムズのサポート窓口から F-DBMS コンポーネントを取得する必要があります。
以前の Caché のリリースからアップグレードする必要があるタスクは、以下のトピックで詳細に説明しています。
Caché が動作しているプラットフォームに関わらず、以下のアップグレード・タスクが必要です。以下のタスクは、Caché のインストール手順を実行する前に実行してください。
-
任意の
.mac と
.inc ルーチンは、アップグレードによる影響を受けません。
-
-
-
ルーチン・ラベルのチェック 重複ラベルを持つルーチンは従来はコンパイルエラーとなることはありませんでしたが、コンパイル中にエラーを受け取りますが、エラーを起こさずに実行します。すべてのアプリケーション・ルーチンの重複ラベルをチェックするための従来のユーティリティ
%LBLRDEF は、Caché 5.0 には含まれません。
-
ルーチン参照のチェック 8 文字を超えるルーチン名を参照していないかどうか、すべてのアプリケーション・ルーチンをチェックします (関数呼び出し、
DO ルーチン呼び出し、
$ZT 呼び出しなどを含みます)。Caché は 63 文字までのルーチン名を認識するため、コンパイル時あるいは実行時に
<NOROUTINE> エラーを発生させる可能性があります。
-
システム整合性のチェック データベース内部エラーが発生していないことを確認するため、既存のディレクトリでシステム整合性チェックを実行します。
-
バックアップ・システム Caché のアップグレード前に、システムの完全バックアップの実行をお勧めします。通常使用している、完全なオペレーティング・システム・バックアップ・プロシージャを使用してください。
次のファイルとディレクトリが、指定のコンポーネントのインストール中に削除されます。
Windows アップグレード時に削除されるファイル
次のファイルとディレクトリは、UNIX または OpenVMS プラットフォームで Caché をアップグレードする際に削除されます。
OpenVMS での Caché のアップグレード
OpenVMS システムに関連する、アップグレードの問題は以下の通りです。
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 接続をすべて削除します。 これらは、クラスタのサポート用として存在していたものです。
更新しても、自動的に接続は変更されません。 これは、どの DCP 接続がクラスタをサポートしているか、またどれが Caché の旧バージョンで起動しているマシンとの通信に使用されているかを検知できないからです。ECP を使用して、クラスタとネットワーキングすることで、ネットワーク・テーブルを必要に応じて自動的に構成します。 Caché クラスタをサポートするために、クラスタ・メンバ間の任意の ECP 接続を定義する必要はありません。しかしユーザは、自動的に作成された ECP 接続にアクセスすることはできません。構成が ECP を必要とする場合、他のクラスタ・メンバで個別にマウントされたデータベースにアクセスするために、これらの接続を定義する必要があります。
Caché 5.0 以前では、OpenVMS リモート・システム名である
CLUSTER は、常に定義されていました。 この
CLUSTER はクラスタ・マスタを示すか、システムが Caché クラスタに参加していない場合はローカル・システムを示していました。これは 5.0 では削除されています。失敗したノードを示す接続は、残存ノードに移行しないため、クラスタ・マウント・データベースへのアクセスに、ECP を使用すべきではありません。
OpenVMS システムでは、グローバル・バッファ・プールに対して常駐メモリ・セクションを使用するとき、ユーザには以下の 2 つのオプションがあります。
-
cache.cpf 構成ファイルの
residentmem パラメータで、2 番目のコンマ区切り部分に希望のセクション名を示します。これは、
SYSMAN ユーティリティを使用して物理メモリを保存するときに便利です。 今回のバージョンでは、セクション名のエントリが必要です。
-
システムがセクションの名前を選択します。従来のバージョンの Caché では、システムは
ISC_Shared_Memory という名前を使用していましたが、これは固定の名前だったので、複数の構成では互換性がありませんでした。Caché 5.0 では、マネージャのディレクトリを基にして名前を自動的に作成するため、複数のインストールがより簡単にサポートできます。
特定の構成でセクション名を付ける場合、この名前はシステムが生成した名前の代わりに使用されます。インターシステムズは、業務システムでは、共有ページテーブルを利用するために、
SYSMAN ユーティリティを使用して常駐メモリ・セクションを予約することをお奨めします。
UNIX/Linux での Caché のアップグレード
Caché の旧バージョンから UNIX、または Linux システムをアップグレードするときは、以下のように構成ファイルを更新します。
.cpf ファイルの
niceval 行を編集します。 これには、更新されるバージョンによって、複数の異なるパラメータ・カウントが含まれます。ファイルの行は以下の行と類似しています。
このリストの 4 番目のパラメータを、
2 から
0 に変更すると、以下のようになります。
上記は、バージョン 5.0 で新規の UNIX/Linux
.cpf ファイルを作成する場合、または新規に Caché 5.0 をインストールする場合に、どのように
niceval 行が表示されるかを示しています。変更を有効にするため、Caché を再起動します。
Important:
この変更は、ECP を実行しているシステムには不可欠です。
ISM 6.4 や 5.10 から Caché 5.0 にアップグレードする場合、変換前ルーチンを実行し、Caché をインストールした後、既存の ISM データベースを Caché データベースに変換します。変換前ルーチンは、現在の ISM 構成を検査し、アップグレードで使用する Caché 構成ファイルを構築します。このルーチンは、配布メディアに含まれています。
異なるプラットフォーム間で移行する場合、エンディアン・タイプが同一/異なるに関わらず、変換ユーティリティでは、プライマリ・データベース・ボリュームと拡張データベース・ボリューム間の連結を推定できません。これらのデータベース・ボリュームの各ファイルは実際の場所に基づいています。新しい場所を指定する唯一の方法は、
^LABEL ユーティリティを使用して各ボリュームにラベルを付け直すことです。
ボリュームが 1 つしかない場合、手作業でファイル名を変更してラベルを修正する作業は必要ありません。
複数ボリュームのデータベースを変換する手順は次のとおりです。
-
データベースのボリュームが、現在とは異なるエンディアン・タイプのマシンからコピーされている場合は、
cvendian を実行して変換します。
cvendian の 1 回の呼び出しで、すべてのボリュームのディレクトリ名を指定します。以下はその例です。
cvendian tstdir1/OPENM.DAT tstdir2/OPENM.EXT tstdir3/OPENM.EXT
-
プライマリ・ボリューム・ファイルの名前を手作業で
CACHE.DAT に変更し、各拡張ボリューム・ファイルの名前を
CACHE.EXT に変更します。これは、必要に応じてステップ 1 の実行前に行うことができます。
-
^LABEL を実行し、ボリューム・ラベルとリンクを修正するための指示に従います。まずプライマリ・ボリュームを修正し、次に各拡張を修正します。
-
インストール完了後にも、以下のようなアップグレード・タスクがあります。
-
-
-
データベース・メモリ・キャッシュの調整 Caché 4.04 以前のバージョンからアップグレードするときは、2 KB グローバル・バッファ・プールのサイズはそのままで、最小の 8 KB メモリ・キャッシュが割り当てられます。新規の 8 KB データベースを作成する、または従来の形式 (2 KB) を新規の形式 (8 KB) へ変換する場合は、
Caché 構成マネージャ の
[一般] タブから、割り当てられたデータベース・メモリ・キャッシュを調整します。
-
ISM 6.4 または 5.10 アップグレード用システム変換ユーティリティの実行
ISM 6.4 または 5.10 アップブレードに対するインストールが完了した後、システム変換ユーティリティ、
%SYSCONV をシステム・マネージャ・ディレクトリから実行します。これにより、自動的に必要なすべての変換作業を実行し、ユーザのルーチンとオブジェクト・コード・グローバルとを再度照合します。変換されたデータベースのディスク容量は、変換後わずかに増加します。
%SYSCONV ユーティリティを実行する前に、以下を実行します。
-
現在の管理者のディレクトリに、有効なライセンス・キー・ファイルが含まれていることを確認します。ユーザが有効なライセンスを持っている場合、
%SYSCONV ユーティリティは、データベースの変換を高速にするプロセスを開始します。
-
NLS (各国言語サポート) を使用する場合、ISM 変換ユーティリティの起動前に Caché でのロケール・プロパティを構成します。アップグレード後は、再度持つ可能性のある、専用の NLS テーブルを定義する必要があります。
システム変換ユーティリティを実行するために、以下を実行します。
-
Caché を開始します。変換中に Caché に他のユーザがアクセスしないようにします。
Windows からの他のログインを無効にするために、以下を実行します。
-
Caché コントロール・パネルを開始します (Caché キューブを右クリックして、メニューから選択します)。
-
Caché インストールを右クリックし、
をクリックします。
[システム・プロパティ] ダイアログ・ボックスが表示されます。
-
-
すべてのデータベースを変換するには、管理者のネームスペース
%SYS に変更し、以下を実行します。
シングル・データベースを変換するには、以下を実行します。
%SYS> Do START^%SYSCONV(<directory-name>)
-
アップグレード・タスクでの GBLOCKCOPY の使用
Caché をアップグレードした後、
GBLOCKCOPY ルーチンを使用して以下の処理を実行します。
-
-
-
ページ・サイズが 2 KB の任意のデータベースを 8 KB のデータベースに変換します。
Note:
さらに高度なパフォーマンスを得るためには、既存の 2 KB ページ・サイズのデータベースから 8 KB ページ・サイズのデータベースへの変換を推奨しています。これは、アップグレード時でも、後からでも実行することができます。データベースは、データベースの停止時間やディスクの空き容量にしたがって、1 度に 1 つ、あるいは複数変換することができます。
アップグレード後、マネージャ・データベースは 2 KB のページ・サイズのままになっています。
GBLOCKCOPY を使用して、以下のようにこれを 8 KB ページ・サイズに変換することができます。
-
すべてのユーザのシステムへのアクセスを切断します。
-
-
-
新規に作成されたデータベースを、マネージャ・ディレクトリにコピーします。
-
%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é の異なるバージョンを同時に使用するときに適用される問題、および旧バージョンからの変更点で、使用しているオペレーティング・プロシージャに影響を与える可能性のあるものです。以下のトピックを参照し、ご使用のシステムに影響を与えるか、また与えるとしたらどのような影響なのかを調べてください。
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é を実行する特定のオペレーティング・システムに適用される制約です。
-
-
Caché 4.0 以降は、Caché ObjectScript における空白の処理方法が異なります。これにより、カスタマ・コードで以前は起こらなかった構文エラーが起きることがあります。
例えば、旧バージョンでは、
If 1=0 ** は構文エラーを受け取りません。
1=0 は真になりえないので、その他の行が実行されないためです。
今回のバージョンでは、空白の振る舞いにより、同じ式は
If 1=0** と訳されます。 これは、構文エラーとなります。
Caché の
言語互換モード を設定しても、この問題は解決されません。
Note:
インターシステムズは、特定の条件下でエラーを強制する
ZTRAP コマンドを提供しています。 システムに依存して、エラーの条件処理に対する無効なコードに対処する方法はお奨めしません。
-
Caché ObjectScript プロシージャ内で埋め込み SQL 文が使用する任意の非 % 変数は、プロシージャの public 変数リストに追加し、プロシージャ内で
New コマンドを実行する必要があります。これは Caché の制約ではありますが、public リストと new リストにこれらの変数を手動で簡単に追加できるように、マクロ・プリプロセッサに変更が加えられています。
SQL 構成設定
[.INT コード内で SQL 文をコメントとして残す] が [はい] のとき、コメント内の SQL 文とともに、SQL 文によって使用される % の付いていない変数は、コメント・テキストにリストされます。この変数のリストにより、MAC コードの public リストや new リストで、変数のリストを簡単に認識し、変数の切り取り、および貼り付けが簡単に行えるようになります。
-
DCP などの分散型データベース機能は、新規の形式のデータベースでは利用できません。今回のリリースは ECP を提供します。 ECP は、新規と旧式の両形式の、データベースの分散型データベース・サポートです。
-
グローバル名で Unicode サポートは、完全に操作可能な状態ではないため、回避すべきです。
-
F-DBMS は、今回のリリース以降のバージョンには含まれません。その代わりに、F-DBMS は別のコンポーネントとして Web サイトから利用できます。
-
CORBA は、今回のリリース以降のバージョンではサポートされません。
-
Red Hat Linux 7.3 および 8.0 は、
libg++.so の必須バージョンと一緒には出荷されません。これを確認するには、以下のコマンドを Caché bin ディレクトリで実行します。
$ ldd MQInterface.so
...
libg++-libc6.2-2.so.3 => not found
WebSphere MQ インタフェースを使用する前に、
/usr/lib で以下のコマンドを実行して、既存のライブラリにシンボリック・リンクを作成する必要があります。
# ln -s libg++.so.2.7.2.8 libg++-libc6.2-2.so.3
-
# rpm -ivh --prefix /usr/local/cachekit/5.0 cache-5.0-4.i386.rpm
Preparing... ### [100%]
1:cache ### [100%]
error: unpack of archive failed on file /usr/cachekit/5.0: cpio: mkdir failed
- Read-only file system
-
XP ユーザは、GUI ツールから、または telnet セッションからマップされたドライブにアクセスするには、以下の手順に従ってください。
-
リモートのマップされたドライブには、以前の構成でユーザ名とパスワードを入力します。さらに、
ZSTU スタートアップ・ルーチンを編集し、マップしたドライブに以下の行を追加します。
Set x=$zf(-1,"net map z: \\someshare")
-
仮想マップ・ドライブには、この行を
subst コマンドでマップされた各ドライブに追加します。
Set x=$zf(-1,"subst q: c:\somedir\someotherdir")
開始後は、それ以上のマッピングを追加することはできません。
Important:
このプロシージャは、構成に入るときに使用したユーザ名と同じユーザ 1 人だけが Windows にログオンしているという開発状況を想定しています。ターミナル・サーバ環境など、その他の状況では、予測できない結果を生じる場合があります。
以下の注意は、Microsoft から出されたこの問題の対処法です。
[Windows XP におけるリダイレクト・ドライブ : Windows XP では、ドライブ文字はシステムに対してグローバルではありません。 各ログオン・セッションは、一連の独自のドライブ文字 A - Z を受け取ります。 したがってリダイレクト・ドライブは、異なるユーザ・アカウントで実行しているプロセス間では共有できません。また、サービス (または独自のログオン・セッションで実行しているすべてのプロセス) は、異なるログオン・セッションで構築されたドライブ文字にはアクセスできません。]
マップされたドライブを使用するには、以下のように Caché を開始するという方法もあります。
\cachesys\bin\ccontrol start configname
この方法では、
ZSTU ルーチンに何も追加する必要がなく、ユーザ名やパスワードを入力する必要もありません。さらに、ユーザがマップしたドライブ、またはスタートアップ後に
subst コマンドを使用してパスをマップしたドライブも、利用可能です。この方法での制約は、Caché を開始したユーザが Caché にログオンしている間のみ Caché が稼動するということです。