バージョン12より、4D ServerはWindows 64-bit OSをサポートしています。64-bitテクノロジーの主な利点はより多くのRAMがアドレス可能になることです。
ここでは4D Server の64-bitバージョンについて説明します。
6f-bit版の4D Server には、64bit 版オペレーティングシステムが必要になります。4Dウェブサイト上の4D-OS対応早見表をご覧の上、お持ちの4D Server リリースがどのWindowsのオペレーティングシステムと互換性があるかご確認ください。
64-bit用の4D Server.exeアプリケーションは特別なバージョンであり、64-bit環境でのみ動作します。 32-bitシステム上では動作しません。
他方、標準の4DServer.exe (32 bits) をWindows 64-bitシステム上で起動した場合、動作しますが、それはエミュレーションモードになります。
クライアント側では、すべての4D マシーン (Mac OS および Windows) から64-bitバージョンの4D Server に接続できます。使用される4Dアプリケーションは標準の32-bitバージョンです (下図参照)。
インタープリターモードでは、同じ4Dデータベースを64-bit 4D Serverあるいは32-bit 4D Serverで実行できます。どちらのアプリケーションを使用しても、開発手順は同じです。
コンパイルモードでは、64-bit 4D Serverで実行させるために、64-bitプロセッサー用にコンパイルしなければなりません ("64-bit用にコンパイル"参照)。
32-bitのみ用にコンパイルされ、インタープリターコードを含まないデータベースは64-bit 4D Serverで実行できません。
![](../../picture/474986/pict474986.en.png)
実行時には、以下の相違点に留意してください:
- 64-bit 4D Serverには64-bitモード用にコンパイルされたプラグインのみがロードされます。64-bitプラグインはフォルダーとしてビルドされ、サーバーのPluginsフォルダーに配置されなければなりません (Win4DXフォルダーに配置される.4DXと.RSRファイルに基づく以前のアーキテクチャーはもうサポートされません)。32-bitプラグインは64-bit 4D Serverにロードされませんが、サーバー上のPluginsフォルダーに32-bitプラグインを配置し、リモートマシンに配布することはできます。この場合、サーバーを呼び出すメカニズムは動作しません (例えばサーバー上のテンプレートを読み書きする4D WriteのWR SET AREA PROPERTYコマンドなど)。
32-bitの.4DXファイルはプラグイン内の/Contents/Windowsフォルダー内に置き、64-bit用のファイルは/Contents/Windows64フォルダーに置きます。 - 64-bit 4D Serverで使用するコンパイル済みの4Dコンポーネントは、64-bit用にコンパイルしなければなりません。
- アプリケーションがロードするBlobに使用されるメモリー量は依然2GBに制限されます。
- QuickTimeは64-bit 4D Serverでサポートされません。
4D社ではPICTフォーマットのピクチャーの利用は推奨しません。ピクチャーが100% Quickdrawであれば64-bitバージョンの4D Serverで扱うことができますが、ピクチャーにQuicktimeが含まれている場合、ロードすることができません。
64-bit 4D Serverで4D Internet Commandsを利用できるようにするためには、バージョン12.1以降の4D Internet Commandsプラグインをインストールしなければなりません。
4D v12アプリケーションは32-bitと64-bitプロセッサー用にコンパイルできるようになりました。これを行うために、新しい64-bitプロセッサー用にもコンパイルするオプションがデータベース設定の"コンパイラー"ページに追加されました:
![](../../picture/475014/pict475014.en.png)
このオプションが選択されていると、コンパイラーは.4DCと.4DBファイルに64-bitコードと32-bitコードを含めます。結果これらのファイルを32-bitあるいは64-bitの4D Serverいずれでも実行できるようになります。デフォルトでこのオプションは選択されていません。
注: データベースを64-bitバージョンでコンパイルするにはUnicodeモードで動作しなければなりません。そうでなければコンパイル時にエラーが生成されます。
64-bitアーキテクチャーでは1 TB (1000 GB) までのRAMメモリーをアドレス可能になるので、64-bit 4D Serverに割り当てることのできるキャッシュメモリーは事実上無制限となります。
注: 比較すると、32-bitアーキテクチャーにおいては4 GBのRAMに制限されます (OSレベルで)。
データベース設定の"データベース/メモリー"ページで指定したキャッシュ量を確保できない場合、4D Serverは確保可能な最大サイズを割り当て、アプリケーションの起動時にユーザーに知らせます。ユーザーは終了するか、そのままのサイズで続行するかを選択できます。
実行中、64-bit 4D Serverアプリケーションか標準の4D Serverアプリケーションかは、サーバー管理ウィンドウのモニターページに表示されるロゴで見分けることができます:
![](../../picture/475023/pict475023.en.png)
注: このロゴは4D Serverについてウィンドウにも表示されます。
以下の4Dランゲージコマンドは新しい64-bit 4D Serverをサポートするために変更されました: Version type、SET DATABASE PARAMETER、そしてGet database parameter。詳細はそれぞれのコマンドの説明を参照してください。
64-bitバージョンの4D Server上で走るプロセスのスタックは、32-bitバージョンよりも多くのメモリーを必要とします (約2倍)。Execute on serverやNew processコマンドを使用して64-bitバージョンの4D Server上でプロセスを作成する場合、最低128,000 byteをstack引数に渡すことを、呼び出し連鎖が大きくなる場合やスタックが足りないというエラーが発生する場合にはさらにそれを増やすよう推奨します。コードが64-bit 4D Server上で実行されるためのものである場合、この引数をチェックするようにしてください。
4D Serverで使用できない標準コマンド(ストアドプロシージャ参照) に加え、以下のコマンドは64-bitサーバーで実行できません。これらのコマンドを例えばストアドプロシージャーで呼び出すと、警告ダイアログが表示さ れ、エラー67が返されます。このエラーはON ERR CALLコマンドでインストールされるエラー処理メソッドでとらえることができます。