Caché には、Caché データベースをビッグ・エンディアン形式からリトル・エンディアン形式に、またはその逆に変換するユーティリティが備わっています。このユーティリティは、
cvendian と呼ばれ (
con
vert
endian の略)、2 つのタイプのプラットフォーム間でデータベースを移動するときに便利です。
ビッグ・エンディアンのサポート対象プラットフォームは、HP PA-RISC、IBM pSeries、および Sun Sparc で、リトル・エンディアンでは HP Alpha と Intel です。
cvendian は、変換するファイルを持つマシン上、または変換するファイルを使用する予定であるマシンのいずれかで実行可能です。例えば、データベースをリトル・エンディアン・マシンからビッグ・エンディアン・マシンに変換するには、リトル・エンディアン・マシンで変換を実行した後データベースをビッグ・エンディアン・マシンに転送するか、ファイルを最初に転送した後変換します。
Note:
OpenVMS システムで実行するデータベースを変換する場合は、データベースの変換は OpenVMS ターゲット・マシンではなく、ソース・マシン上で実行する必要があります。
データベースを変換するプロセスは、以下の通りです。
-
ユーティリティはソース・ファイルを変換済みのファイルと置換するため、使用中のデータベース・ファイルのコピーを作成します。
-
-
マルチボリューム・データベース・ファイルの変換後、
^LABEL ユーティリティを使用して、各ボリュームのディレクトリの名前を変更します。これを行うには、
Caché ターミナル で、%SYS ネームスペースに移動します。
Do コマンドで
^LABEL を呼び出すと、以下を入力するように促されます。
USER>zn "%SYS"
%SYS>Do ^LABEL
Enter the name of the directory in which the database is
stored. For a multi-volume database, enter the name of the
primary volume's directory, even if you want to relabel a
secondary volume. For a multi-volume legacy 2K database, you
should enter the name of the secondary volume directory if
you need to relabel it.
Directory:
cvendian file1 [file2 ... file8]
file1 から
file8 は変換するファイルで、各ファイルは完全なパス名を含むことができます。
file2 から
file8 の引数はマルチボリューム・データベース用です。マルチボリューム・データベースを変換する場合、コマンド行ですべてのボリュームを順番に指定する必要があります。
マルチボリューム・データベースでは、ファイルの順番が違う場合、またはリストが不完全な場合、ユーティリティは変換を実行せずファイルも変換されません。
ここでは、Windows XP から Solaris Sparc にデータベースを変換すると想定します。Sparc と Intel はデータ表現形式の互換性がないため、リトル・エンディアン形式 (Intel) からビッグ・エンディアン形式 (Sparc) に変換する必要があります。Solaris マシンへの移動前に Windows マシンで
cvendian を実行する場合、出力は以下のように表示されます。
C:\CacheSys\Bin>cvendian c:\\temp\solarisdb\cache.dat
This database is little-endian.
This database has a block size of 8192 bytes.
This is a BIG database.
This database has 1 volume and 1 map.
The last block in the primary volume is 18176.
Original manager directory is c:\\temp\solarisdb\
No extension volumes.
Done converting c:\temp\solarisdb\cache.dat to big-endian
C:\CacheSys\Bin>
次に、変換済みのファイルを Solaris マシンに移動します。