WindowsおよびOS X用の4D 64-bit版のビルトインWebサーバーでは、コンパイル済みアプリケーション内においてプリエンプティブWebプロセスを使用する事によって、マルチコアコンピューターの利点を全て引き出すことができます。4D変換タグやWebデータベースメソッドを含めたWeb関連コードを、可能な限り多くのコアで同時に実行するよう設定する事が可能になりました。
4Dのプリエンプティブプロセスについての詳細な情報については、プリエンプティブ4Dプロセスの章を参照して下さい。
Webプロセスに対してプリエンプティブモードの使用が可能なのは、以下のコンテキストの場合に限られます:
- 64-bit版の4Dを使用している
- 4D Serverあるいは4Dスタンドアロン版を使用している(リモートモードでの4Dはプリエンプティブモードをサポートしていません)
- コンパイル済みデータベースを使用している
- データベースのプリエンプティブモードプロセスを使用設定がチェックされている(以下参照)
- Web関連のデータベースメソッドとプロジェクトメソッドは全てスレッドセーフであると4Dコンパイラから確認済みである
上記の要項がどれか一つでも欠けていた場合、Webサーバーはコオペラティブプロセスを使用します。
アプリケーションのWebサーバーコードにおいてプリエンプティブモードを有効化するためには、データベース設定ダイアログボックスの"Web/オプション(I)"ページの、プリエンプティブプロセスを使用にチェックをつける必要があります:

このオプションがチェックされているとき、4DコンパイラはWeb関連のコードそれぞれのスレッドセーフプロパティを自動的に評価し(以下参照)、何か違反があった場合にはエラーを返します。
Webプロセスをプリエンプティモードで実行したい場合には、Webサーバーで実行される全ての4Dコードがスレッドセーフでなければなりません。データベース設定ダイアログボックスにおいてプリエンプティブプロセスを使用オプションがチェックされている場合、アプリケーションの以下の部分が4Dコンパイラによって自動的に評価されます:
- 全てのWeb関連データベースメソッド:
- compiler_web プロジェクトメソッド(実際の"実行モード"プロパティに関わらず評価されます);
- WebコンテキストにおいてPROCESS 4D TAGSコマンドによって処理された、基本的に全てのコード。例えば.shtmlページを通して実行されたものなど。
- "4D HTMLタグとURL(4DACTION)を通しての利用可能"属性を持っている全てのプロジェクトメソッド。
- "4D Mobileサービス経由で公開"属性を持っているテーブルのトリガ
- 4DMobile経由で利用可能なプロジェクトメソッド("4D Mobile"プロパティがチェックされているメソッド)
これらそれぞれのメソッドとコードの部分について、コンパイラがスレッドセーフのルールが遵守されているかをチェックし、問題が会った場合にはエラーを返します。スレッドセーフルールについての詳細な情報については、スレッドセーフなメソッドの書き方の段落を参照して下さい。
4D v16以降、ほとんどのWeb関連の4Dコマンド、データベースメソッド、そしてURLがスレッドセーフとなり、プリエンプティモードで使用できるようになりました:
全てのWeb関連コマンドはスレッドセーフです。Web関連コマンドとは、以下のコマンドをさします:
以下のデータベースメソッドはスレッドセーフであり、プリエンプティモードで使用する事が可能です:
もちろん、これらのメソッドに寄って実行されたコードもまたスレッドセーフである必要があります。
以下の4D WebサーバーURLはスレッドセーフであり、プリエンプティモードで使用可能です:
- 4daction/ (呼び出されたプロジェクトメソッドもまたスレッドセーフでなければいけません)
- 4dcgi/ (呼び出されたプロジェクトメソッドもまたスレッドセーフでなければいけません)
- 4dscript/ (URLとしては廃止予定ですが、タグとして使用されています)
- 4dwebtest/
- 4dblank/
- 4dstats/
- 4dhtmlstats/
- 4dcacheclear/
- rest/
- 4dimgfield/ (ピクチャーフィールドのWebリクエストに対しPROCESS 4D TAGSによって生成されます)
- 4dimg/ (ピクチャー変数のWebリクエストに対しPROCESS 4D TAGSによって生成されます)
以下の4D WebサーバーURLはスレッドセーフではないため、プリエンプティモードではサポートされていません:
- 4dsync
- 4dsqlauth (廃止予定、Flex 1.1で使用)
ランタイムエクスプローラーと4D Server管理ウィンドウの両方において、プリエンプティブなWebプロセスに対し特定のアイコンが表示されるようになりました:
プロセスタイプ | アイコン |
|
プリエンプティブWebメソッド |  |