Caché には、Caché データベースをビッグ・エンディアン形式からリトル・エンディアン形式に、またはその逆に変換するユーティリティが備わっています。このユーティリティは、cvendian と呼ばれ (convert endian の略)、2 つのタイプのプラットフォーム間でデータベースを移動するときに便利です。
ビッグ・エンディアンのサポート対象プラットフォームは、HP PA-RISC、IBM pSeries、および Sun Sparc で、リトル・エンディアンでは HP Alpha と Intel です。
変換プロセス
Windows システムでは、cvendian<cache-install-dir>\CacheSys\Bin\cvendian.exe にあり、OpenVMS および UNIX システムでは、cvendian は Caché システム・マネージャ・ディレクトリにあります。
cvendian は、変換するファイルを持つマシン上、または変換するファイルを使用する予定であるマシンのいずれかで実行可能です。例えば、データベースをリトル・エンディアン・マシンからビッグ・エンディアン・マシンに変換するには、リトル・エンディアン・マシンで変換を実行した後データベースをビッグ・エンディアン・マシンに転送するか、ファイルを最初に転送した後変換します。
Note:
OpenVMS システムで実行するデータベースを変換する場合は、データベースの変換は OpenVMS ターゲット・マシンではなく、ソース・マシン上で実行する必要があります。
データベースを変換するプロセスは、以下の通りです。
  1. ユーティリティはソース・ファイルを変換済みのファイルと置換するため、使用中のデータベース・ファイルのコピーを作成します。
  2. 以下の構文を使用して cvendian を実行します。
  3. マルチボリューム・データベース・ファイルの変換後、^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 構文
cvendian を実行するには、以下の構文を使用します。
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>
Note:
cvendian 出力文 “This is a BIG database.” は、データベースが Caché の 2 KB ブロックではなく標準の 8 KB ブロックを使用していることを示します。これは、データベースが使用している領域、またはデータベースがビッグ・エンディアン形式を使用しているという意味ではありません。
次に、変換済みのファイルを Solaris マシンに移動します。