SET DATABASE PARAMETER

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 11.4 (Modified)


SET DATABASE PARAMETER ({aTable; }selector; value)

引数説明
aTableテーブルパラメータをセットするテーブル、または
省略時、デフォルトテーブル
selector倍長整数変更を行うデータベースパラメタのコード
value倍長整数 | 文字列パラメタの値

説明

SET DATABASE PARAMETER コマンドを使用して、4Dデータベース内部の様々なパラメタを変更することができます。

selectorには、変更するデータベースのパラメタを指定します。4Dは“Database Parameters”テーマに定義済の下記のような定数があります。次の表は、各定数とその有効範囲、またその設定が2つの異なるセッションで保持されるかを示しています:

selectorに使用する定数スコープ変更が保持される
Seq Order Ratio1**** このセレクタは無効 ****-
Seq Access Optimization2**** このセレクタは無効 ****-
Seq Distinct Values Ratio3**** このセレクタは無効 ****-
Index Compacting4**** このセレクタは無効 ****-
Seq Query Select Ratio5**** このセレクタは無効 ****-
Minimum Web Process64Dローカル, 4D Server (*)Yes
Maximum Web Process74Dローカル, 4D Server (*)Yes
Web conversion mode8カレントプロセス-
Database cache size94Dアプリケーション (*) (**)-
4D Local Mode Scheduler104Dアプリケーション (*)Yes
4D Server Scheduler114Dアプリケーション (*)Yes
4D Remote Mode Scheduler124Dアプリケーション (*)Yes
4D Server Timeout13正数の時4Dアプリケーション (***)Yes
4D Remote Mode Timeout14正数の時4Dアプリケーション (***)Yes
Port ID154Dローカル, 4D Server (*)-
IP Address to listen164Dローカル, 4D Server (*)Yes
Character set174Dローカル, 4D Server (*)Yes
Max Concurrent Web Processes184Dローカル, 4D Server (*)Yes
Client Minimum process Web19すべての4Dリモートマシン (*)Yes
Client Maximum process Web20すべての4Dリモートマシン (*)Yes
Client Max Web requests size21すべての4Dリモートマシン (*)Yes
Client Port ID22すべての4Dリモートマシン (*)Yes
Client IP Address to listen23すべての4Dリモートマシン (*)Yes
Client Character set24すべての4Dリモートマシン (*)Yes
Client Max Concurrent Web Proc25すべての4Dリモートマシン (*)Yes
Cache writing mode26**** このセレクタは無効 ****-
Maximum Web requests size274Dローカル, 4D Server (*)Yes
4D Server Log Recording284D Server, 4Dリモート (*)-
Web Log Recording294Dローカル, 4D Server (*)Yes
Client Web Log Recording30すべての4Dリモートマシン (*)Yes
Table Sequence Number314DアプリケーションYes
Real Display Precision324Dアプリケーション-
TCP_NODELAY334Dアプリケーション (*)-
Debug Log Recording344Dアプリケーション (*)-
Client Server Port ID35データベース (*)Yes
WEDD Signature 36データベース (*)Yes
Invert Objects37データベース (*)Yes
HTTPS Port ID394Dローカル, 4D Server (*)Yes
Client HTTPS Port ID40すべての4Dリモートマシン (*)Yes
Unicode mode 41データベース (*)Yes
Temporary memory size42**** このセレクタは無効 ****-
SQL Autocommit43データベース (*)Yes
SQL Engine Case Sensitivity44データベース (*)Yes
Client Log Recording454Dリモートマシン(*)-
Query By Formula On Server46カレントのテーブルとプロセス-
Order By Formula On Server47カレントのテーブルとプロセス-
Auto Synchro Resources Folder484Dリモートマシン(*)-
QUERY BY FORMULA Joins49カレントプロセス(*)-
HTTP Compression Level 504Dアプリケーション (*)-
HTTP Compression Threshold 514Dアプリケーション (*)-
Idle Connections Timeout54正数の時4Dアプリケーション (***)-

(*) この定数が渡された時、table引数は無視されます。

(**) このセレクタは値の読み出しにのみ使用できます (Get database parameter コマンド参照)。

(***) value引数が負数の場合、設定はカレントプロセスにローカルであり、次回のリクエストの際にはリセットされます。

valueには、パラメタの値を指定します。渡される値は変更しようとするパラメタによって異なります。セレクタで指定する可能性のある値を示します。

Selector = 1 (Seq Order Ratio)

このセレクタは無効になりました。4Dバージョン11で、このセレクタで設定されるメカニズムは最適化されました。

Selector = 2 (Seq Access Optimization)

このセレクタは無効になりました。4Dバージョン11で、このセレクタで設定されるメカニズムは最適化されました。

Selector = 3 (Seq Distinct Values Ratio)

このセレクタは無効になりました。4Dバージョン11で、このセレクタで設定されるメカニズムは最適化されました。

Selector = 4 (Index Compacting)

このセレクタは無効になりました。4Dバージョン11で、このセレクタで設定されるメカニズムは最適化されました。

Selector = 5 (Seq Query Select Ratio)

このセレクタは無効になりました。4Dバージョン11で、このセレクタで設定されるメカニズムは最適化されました。

Selector = 6 (Minimum Web Process)

・値: 0 -> 32,767

・説明: ローカルモードの4Dならびに4D Serverを使用した場合に、非コンテキストモードで保持するWebプロセスの最小数。デフォルト値は0(下記参照)。

Selector = 7 (Maximum Web Process)

・値: 0 -> 32,767

・説明: ローカルモードの4Dならびに4D Serverを使用した場合に、非コンテキストモードで保持するWebプロセスの最大数。デフォルト値は10。

非コンテキストモードでのWebサーバの反応を良くするため、4Dは5秒間Webプロセスを遅延させ、将来やってくるかもしれないHTTPクエリを処理する際、それを再利用します。パフォーマンスの観点では、クエリごとに新しいプロセスを作成するよりも、再利用したほうが実際に有利です。Webプロセスが再利用されると、さらに5秒間遅延されます。Webプロセスが最大数に達するとプロセスがアボートされます。5秒の遅延以内にWebプロセスがクエリを受け取らない場合、Webプロセスの最小数を下回らなければ、プロセスはアボートされます。最小数未満になる場合、プロセスは再度遅延されます。

これらの引数は、リクエスト数や利用可能なメモリ、その他のパラメタに応じて、Webサーバの動作を調整できるようにするものです。

Selector = 8 (Web conversion mode)

・値: 0, 1, 2 または 3

0= (デフォルトモード) ブラウザが対応する場合、HTML 4.0フォーマットに変換。そうでなければHTML 3.2フォーマットと配列を使用。

1= 6.0.x変換モード

2= 6.5変換モード

3= HTML 4.0フォーマット + CSS-P (バージョン6.5.2より) に変換。

・説明: ローカルモードの4Dならびに4D Serverで使用するWeb用の4Dフォーム変換モード。デフォルトで、4D WebサーバはCSS1を使用し、4Dで表示される4Dフォームと同様のHTMLページを生成します。この機能では、バージョン6.7より前の4Dで作成されたデータベースに関しては、フォームが正しく変換されない可能性があります。このため、フォーム変換モードを設定する必要があるかもしれません。

このモードは、SET DATABASE PARAMETERが呼び出されたプロセス(Webコンテキスト)に対してのみ設定されます。このコマンドは、On Web Connection データベースメソッド内で呼び出してデータベースのすべてのフォームを確実に統一したり、あるいは特定のフォームを表示する前にのみ呼び出すこともできます。このコマンドは、コンテストモード、またはWebプロセス以外の場所から呼び出すと、何も行いません。

Note: 追加されたセレクタ、Database Cache Size (9)は、Get database parameterコマンドで使用できます。このセレクタはSET DATABASE PARAMETERコマンドでは使用出来ません。さらに詳しい説明はGet database parameterを参照してください。

Selector = 10 (4D Local Mode Scheduler)

Selector = 11 (4D Server Scheduler)

Selector = 12 (4D Remote Mode Scheduler)

・値: これら3つのセレクタに対し、value引数は16進数、0x00aabbccの形式で表わされます。詳細は次の通りです:

aa = システムへのコール毎の最小tick数(0〜100)

bb = システムへのコール毎の最大tick数(0〜100)

cc = システムへのコール間のtick数(0〜20)

これらの値が範囲外のとき、4Dはその値を最大数に設定します。value引数には、次の定義済標準値のうちいずれかを渡すことができます:

value = -1: 4Dに最高優先度を割り当てる

value = -2: 4Dに平均的な優先度を割り当てる

value = -3: 4Dに最低優先度を割り当てる

・説明: この引数を使用して、4Dシステム内部コールをダイナミックに設定することができます。selectorに応じて、スケジューラの値は次のアプリケーションのために設定されます。

 - シングルユーザの4Dから呼び出された場合、ローカルモードの4D (selector=10)。

 - 4D Serverから呼び出された場合、4D Server (selector=11)。

 - 4DServerに接続した4Dから呼び出された場合、リモートモードの4D (selector=12)。

Note: セレクタ=12(4D Remote Mode Scheduler)は、SET DATABASE PARAMETERコマンドがサーバーマシン上で実行されるか、クライアントマシン上で実行されるかにより異なります。

- コマンドがサーバーマシン上で実行される場合、新しい値は全てのクライアントマシンにおいて接続後に適用されます。

- コマンドがクライアントマシン上で実行される場合、新しい値はそのクライアントマシンで直ちに有効となり、またコマンド実行後にサーバに接続するすべてのクライアントマシンに対し適用されます。

この動作を使用することで、クライアントマシン毎に異なる特性をダイナミックに扱うことが可能です。これはコマンドの実行がまず、ぞのクライアントマシンの設定に影響し、その後にサーバに接続するすべてのクライアントマシンへの設定値として使用されるという動作に基づきます。

この動作は、4Dの6.8.6, 2003.3と4D2004以降のバージョンで効果があります。

警告: これらのセレクタを不適切に使用すると、アプリケーションパフォーマンスが深刻に低下する原因となります。これらの要素に対する完全な知識がある場合のみ変更を行うことをお勧めします。

Selector = 13 (4D Server Timeout)

・説明: この引数を使用して、4D Serverのタイムアウトの値を変更することができます。4D Serverのタイムアウトのデフォルト値は、サーバ側の「環境設定」ダイアログボックスの「クライアント-サーバ/接続設定」ページで定義します。

セレクタ4D Server Timeoutにより、対応する引数valueの新しいタイムアウト(分単位で指定)を設定できます。この機能は、クライアント側でCPUを占有する、時間がかかる処理を実行する前に、タイムアウト設定を長くしたい場合は特に便利です。例えば、膨大なページの印刷などは、予期しないタイムアウトになる可能性があります。

2種類のオプションがあります。

- value引数に正数を渡すと、グローバルかつ永続的なタイムアウトが設定されます。この新しい値はすべてのプロセスに対して適用され、4Dアプリケーションの環境設定に保存されます(環境設定ダイアログボックスで変更した場合と同じ)。

 - value引数に負数を渡すと、ローカルで一時的なタイムアウトが設定されます。この新しい値は呼び出し元のプロセスに対してのみ適用され(他のプロセスではデフォルトの値を維持)、例えば処理の終了時のように、クライアントが動作していることを示す信号をサーバが受信すると即座に、デフォルト値へリセットされます。このオプションは、4Dプラグインにより開始された時間のかかる処理を管理する際に便利です。

“タイムアウトしない”オプションを設定するには、valueに0 を渡します。(例題1を参照)

Selector = 14 (4D Remote Mode Timeout)

・説明: この引数を使用して、4D Serverに接続したリモートの4Dマシンが参照するタイムアウト値を設定できます。リモートモードの4Dが使用するデフォルトのタイムアウト値は、リモートマシン上の環境設定の“クライアント-サーバ/設定”ページで設定されます。

このセレクタに関する詳細は4D Server Timeout セレクタ (13) の説明を参照してください。

4D Remote Mode Timeoutセレクタは非常に特殊な状況において使用されます。

Selector = 15 (Port ID)

・説明: この引数を使用して、ローカルモードの4Dおよび4D Serverによる4D Webサーバが使用するTCPポートをオンザフライで変更することができます。デフォルト値は80 (Windows) または8080 (Mac OS) で、この値は環境設定ダイアログボックスの“Web/設定”ページで設定できます。“TCP Port Numbers”テーマの定数をvalue引数に使用できます。

Port IDセレクタは、コンパイルして4D Desktopを組み込んだ4D Webサーバで役立ちます(この場合、デザインモードへのアクセス手段がありません)。TCPポートIDに関する詳細は、Webサーバ設定と接続管理の節を参照してください。

Selector = 16 (IP Address to listen)

・説明: この引数を使用して、ローカルモードの4Dおよび4D Serverによる4D WebサーバがHTTPリクエストを受信するIPアドレスを、ユーザがオンザフライで変更できます。デフォルトで、特定のアドレスは定義されていません(value=0)。この引数は環境設定ダイアログボックスで設定できます。

IP Address to listenセレクタは、コンパイルして4D Desktopを組み込んだ4D Webサーバで役立ちます(この場合、デザインモードへのアクセス手段がありません)。

value引数には、16進数のIPアドレスを渡します。つまり、“a.b.c.d”のようなIPアドレスを指定するには、以下のようなコードを作成します:

   C_LONGINT($addr)
   $addr:=($a<<24)|($b<<16)|($c<<8)|$d
   SET DATABASE PARAMETER(IP Address to listen;$addr)

例題 2も参照してください。IPアドレスの設定方法に関する詳細はWebサーバ設定の節を参照してください。

Selector = 17 (Character set)

・説明: この引数を使用して、ユーザはデータベースに接続しているブラウザとの通信に、4D Webサーバ(ローカルモードの4Dならびに4D Serverを使用)が使用する文字セットをオンザフライで変更できます。デフォルト値はOSの言語に依存します。

この引数は環境設定ダイアログボックスで設定できます。Character setセレクタは、コンパイルして4D Desktopを組み込んだ4D Webサーバで役立ちます(この場合、「デザイン」モードへのアクセス手段がありません)。

・値: 取りうる値は、文字セットに関連するデータベースの動作モードによります。

Unicodeモード :  
アプリケーションがUnicodeモードで動作している場合、この引数に渡す値は文字セット識別子 (MIBEnum, IANAが定義した識別子。以下のアドレスを参照: http://www.iana.org/assignments/character-sets) です。以下は4D Webサーバがサポートする文字セットに対応する識別子のリストです:


4 = ISO-8859-1

12 = ISO-8859-9

13 = ISO-8859-10

17 = Shift_JIS

2026 = Big5

38 = euc-kr

106 = UTF-8

2250 = Windows-1250

2251 = Windows-1251

2253 = Windows-1253

2255 = Windows-1255

2256 = Windows-1256

Note: Character set 引数のコンテキストでは、Get database parameter コマンドはオプションのstringValue引数に、文字セットのIANA名が返されます。


ASCII 互換モード
:

0: Western European

1: Japanese

2: Chinese

3: Korean

4: User-defined

5: Reserved

6: Central European

7: Cyrillic

8: Arabic

9: Greek

10: Hebrew

11: Turkish

12: Baltic

Note:

 Unicodeモードに関する詳細は、selector 41を参照しください。 

Selector = 18 (Max Concurrent Web Processes)

・値: 10から32 000までの任意の数。デフォルト値は32 000。

・説明: この引数を使用して、ローカルモードの4Dならびに4D Serverを用いた4D Webサーバでサポートされる、任意のタイプの同時Webプロセス上限数(コンテキスト、非コンテキスト、および“プロセスプール”に属するプロセス - セレクタ 7 Maximum Web Process参照)を厳密に設定できます。この上限数(マイナス1)に達した場合、4Dはそれ以上プロセスを作成しなくなり、HTTPステータス503(Service Unavailable)をすべての新しいリクエストに返します。

この引数により、同時に行われる非常に膨大な数のリクエストやコンテキスト作成に関する過大な要求の結果として、4D Webサーバが飽和状態になることを防ぐことができます。また、この引数は環境設定ダイアログボックスでも設定できます(Webサーバ設定の節を参照)。

理論上、Webプロセスの最大数は次の計算式の結果になります: 使用可能メモリ/Webプロセスのスタックサイズ。別の解決策は、ランタイムエクスプローラに表示されるWebプロセス情報を可視化する方法です。つまり現在のWebプロセス数およびWebサーバの開始以降に達した最大数を表示します。

Note: “プロセスプール”の上限数より小さい値を渡した場合、この上限数はセレクタ18の値に合わせるために減らされます。必要であれば、再利用の下限数(セレクタ6、Minimum Web Process)も変更されます。

Selector = 19 (Client Minimum process Web)

Selector = 20 (Client Maximum process Web)

Selector = 21 (Client Max Web requests size)

Selector = 22 (Client Port ID)

Selector = 23 (Client IP Address to listen)

Selector = 24 (Client Character set)

Selector = 25 (Client Max Concurrent Web Proc)

・値: ローカルモードの4Dや4D Serverの対応するセレクタと同じ(セレクタ6から8、15から18、および27を参照)。

・説明: これらのセレクタを使用して、Webサーバとして使用する4Dクライアントマシンの動作パラメタを指定できます。

これらのセレクタを用いて指定された値は、Webサーバとして使用するすべての4D Clientマシンに対して適用されます。特定の4D Clientマシンに対してのみ値を指定したい場合には、4D Clientの環境設定ダイアログボックスを使用してください。

Selector = 26 (Cache writing mode)

このセレクタは無効になりました。4Dバージョン11で、このセレクタで設定されるメカニズムは最適化されました。

Selector = 27 (Maximum Web requests size)

・値: 500 000から2 147 483 648まで

・説明: Webサーバが処理を許可された受信HTTPリクエスト(POST)の最大サイズ(バイト単位)。デフォルトでこの値は2,000,000 (2MBより少し少ない値) です。最大値(2,147,483,648)を渡すと、実際上は制限がなくなります。

この制限は、受信するリクエストが大きすぎるためにWebサービスが飽和してしまうことを回避するために使用します。リクエストがこの制限に達すると、4D Webサービスはリクエストを拒否します。

Selector = 28 (4D Server Log Recording)

・値: 0 または 1 から X (0 = 記録しない, 1 から X = ファイル名に付加するシーケンス値)。

・説明: 4D Serverが受け取る標準的なリクエスト(Webリクエストを除く)の記録を開始または停止します。デフォルト値は0(リクエストを記録しない)です。

サーバマシンが受信した各リクエストをログファイルに記録するよう、4D Serverに指示することができます。このメカニズムが有効になると、データベースストラクチャと同じ階層にログファイルが作成されます。ファイルには"4DRequestsLogX"(Xはログのシーケンシャル番号)の名前が付けられます。ファイルサイズが10MBに達するとそのファイルは閉じられ、インクリメントしたシーケンス番号を使用して新しいファイルが作成されます。もし同じ名前のファイルが存在する場合は置き換えられます。シーケンシャル番号の開始番号を、value引数を使用して指定できます。

このテキストファイルにはそれぞれのリクエストに関する様々な情報(時間、プロセス番号、ユーザ、リクエストサイズ、処理時間など)がシンプルな表形式のフォーマットで保存されます。この情報はアプリケーションの調整を行う場合や統計の目的で利用する場合に特に役立ちます。この情報を、例えばスプレッドシートソフトウェアに読み込んで処理することもできます。

Note: マニュアル操作により、ログの記録をOn/Offすることが出来ます。WindowsではCtrl+Alt+L、MacOSではコマンド+Option+Lのショートカットです。

Selector = 29 (Web Log Recording)

・値: 0 = 記録しない (デフォルト), 1 = CLFフォーマットで記録, 2 = DLFフォーマットで記録, 3 = ELFフォーマットで記録, 4 = WLFフォーマットで記録

・説明: ローカルモードの4Dまたは4D ServerのWebサーバが受け取るWebリクエストの記録を開始または停止します。デフォルト値は0(リクエストを記録しない)です。

Webリクエストのログは"logweb.txt"という名前のテキストファイルに保存されます。このファイルは自動でストラクチャファイルと同階層のログフォルダ内に作成されます。このファイルのフォーマットは、渡した値により決定されます。Webログファイルフォーマットに関する詳細は、Webサイトに関する情報の節を参照してください。

このファイルは、4Dの環境設定内、"Web/詳細"ページからも有効にできます。

警告: フォーマット3および4はカスタムフォーマットであり、記録される内容を事前にアプリケーションの環境設定、“Web/ログフォーマット”ページで定義しなければなりません。事前定義せずにこれらのフォーマットを使用した場合、ログファイルは作成されません。

Selector = 30 (Client Web Log Recording)

・値: 0 = 記録しない (デフォルト), 1 = CLFフォーマットで記録, 2 = DLFフォーマットで記録, 3 = ELFフォーマットで記録, 4 = WLFフォーマットで記録

・説明: すべてのクライアントマシンのWebサーバが受け取るWebリクエストの記録を開始または停止します。デフォルト値は0(リクエストを記録しない)です。

このセレクタの動作はセレクタ29と同じです。しかし対象はWebサーバとして使用されるすべての4Dクライアントマシンです。この場合、"logweb.txt"ファイルは4Dクライアントデータベースフォルダ (キャッシュフォルダ) のLogsサブフォルダに作成されます。特定のクライアントマシンにのみ設定を行いたい場合、4Dクライアントの環境設定を使用します。

Selector = 31 (Table Sequence Number)

・値: 任意の倍長整数値

・説明: このセレクタは、引数に渡したテーブルのレコードの、カレントのユニーク番号を取得あるいは設定するために使用します。“カレントの数値”とは“最後に使用された数値”を意味します。SET DATABASE PARAMETERコマンドを使用してこの値を変更すると、渡された値+1の番号を使用して次のレコードが作成されます。この新しい番号は、Sequence numberコマンドによって返される、さらにはストラクチャエディタやSQLで自動インクリメントが設定されたフィールドに返される番号です。

デフォルトで、この固有の番号は4Dが設定し、レコードの作成順に対応します。詳細はSequence numberコマンドのドキュメントを参照してください。

Selector = 32 (Real Display Precision)

・値: 任意の正の倍長整数値

・説明: このセレクタを使用すると、実数の表示アルゴリズムに基づき右から切り捨てられた意味のない数値の桁数を、変更したりあるいは取得したりできます。この値は、カレントアプリケーションおよびセッションに対して設定されます。

デフォルトで、このオプションの値は4です。0の値はデフォルト値が使用され、セッション中にパラメタが修正されなかったことを示します。

歴史的理由から、4Dは実数を10バイトに格納し、処理中にこの数字を8バイトに変換します(実数の表示の節参照)。この処理は完全に透過的で計算にも影響しません。ただし、特定の計算結果が予期した通りには表示されない場合があります。例えば、4.1-4.09の計算で表示される結果は0.009999999999999780000ですが、0.01を検索すると正しい値が検索されます。

4Dは次のような方法で実数を表示します: 例えば、計算から得られた値が8.97499999999996158だとします(期待する値は通常8.975)。アルゴリズムに基づき、デフォルトでは末尾4桁(6158)を切り捨てた後、残った最後の数字が0もしくは9かを確認します。0の場合、アルゴリズムは先頭の0以下すべての端数が切り捨てられます。値が9の場合、先頭の9の前の位の数字を繰り上げます。

例えば、この例題では、8.974999999999996158が8.975になります。

例えば8.974999999999986158のような結果が得られる場合もあります。この場合、末尾の数字(最後の4桁を切り捨てた後)が0でも9でもないため、値は正しく四捨五入されません。

特定のデータベースの特徴に合わせて、精度アルゴリズムを使用し四捨五入をする数の桁数を調整したいとします。この場合は、カスタムの値を渡してください。0(4Dの内部で選択される値)を除く数字は、精度アルゴリズムにより切り捨てられる桁数を表します。

この設定は数値の表示やその際の内部処理には影響しません。

Selector = 33 (TCP_NODELAY)

・取りうる値: 0 または 1 (0 = 無効, 1 = 有効)

・説明: TCP_NODELAY ネットワークオプションの使用を有効または無効に設定します。このオプションは、ネットワーク通信の最適化メカニズムを制御しているTCP/IP プロトコルの内部的な設定です。サーバマシン、クライアントマシンごとに個別の設定できます。サーバマシン、クライアントマシンともにデフォルトで1(オプションを使用する)に設定されています。

クライアント/サーバ接続をDSL またはVPN(Virtual Private Network)経由で確立している場合などの特定の状況においては、このオプションを無効にすることにより、顕著にアプリケーションパフォーマンスが向上するかもしれません。

このオプションを変更する場合、異なるクライアント/サーバ設定で充分のテストを実施し、慎重に作業を実施する必要があります。

設定値を変更した場合、新しい設定が有効になるためには、アプリケーションを再起動する必要があります。

Selector = 34 (Debug Log Recording)

・取りうる値: 0, 1 または 2 (0 = 記録しない, 1 = 記録する, 2 = 詳細モードで記録する)

・説明: アプリケーションのデバッグを行うために4D のプログラミングレベルで発生するイベントの、シーケンシャルな記録を開始または停止します。デフォルト値は0(イベントを記録しない)です。

このモードが有効にされると、さまざまなタイプの情報が記録されます。特に:

- 各イベント毎に、ファイルやプロセス番号([n])が作成されてからの時間(ミリセカンド単位)。

- 実行された4D コマンド([cmd])および呼び出された各プラグイン名(plugInName)。この場合、スタックレベルが記録されます([n])。

- 呼び出されたそれぞれのプロジェクトメソッド(meth)、オブジェクトメソッド(obj)およびフォームメソッド(form)。

- 詳細モードが有効な場合(value = 2)、プラグインに関する追加の情報が記録されます: プラグインエリアのイベント(EventCode)およびプラグインによる4Dの呼び出し(externCall)。

イベントは、自動でストラクチャファイルと同じ階層のLogsフォルダに置かれる“4DDebugLog.txt”という名前のファイルに保存されます。それぞれのイベントは、実行される前にシステム的にファイルに記録されます。このため、アプリケーションが予期せず終了するようなことがあっても、イベントの存在がファイルに残ります。このファイルはアプリケーションの起動時に毎回上書きされるので、注意してください。

コンパイルモードもしくはインタプリタモードのすべての4D アプリケーション(すべてのモードの4D、4D Server、4D Volume Desktop)でこのオプションを有効にすることができます。

Note: このオプションは、デバッグのみの用途で提供されています。アプリケーションパフォーマンスや、ハードディスクへのアクセス増加や、パフォーマンスが低下する恐れがあるので、製品として提供する場合は使用しないでください。

Selector = 35 (Client Server Port ID)

・取りうる値: 0 から 65535

・説明: 4D Server が(4D Client に対して)データベースを公開するために使用されるTCPポート番号をプログラムで変更するために使用します。デフォルト値は19813 です。

この値を変更すれば、TCPプロトコルを使用して、複数の4D クライアント/サーバアプリケーションを同じマシンで同時に使用することができます。その場合、それぞれのアプリケーションごとに異なるポート番号を設定します。

公開ポート番号は、ストラクチャファイルに記録されています。ローカルモードの4Dで設定することもできますが、クライアント/サーバ環境でのみ考慮されます。

値を変更した場合、新しい設定が有効になるためには、アプリケーションを再起動する必要があります。

Selector = 36 (WEDD Signature)

・取りうる値: 1から255文字の文字列

・説明: この引数は、開かれたデータベース(ストラクチャファイルおよびデータファイル)のWEDD署名を更新するために使用します。デフォルト値は空文字(WEDD が未定義)です。大文字と小文字が区別される点に留意してください。

WEDD署名は、ストラクチャファイルに対して特定のデータファイルを結びつけるために使用されます。WEDD署名を施されたストラクチャファイルは、同じ署名を施されたデータファイルと一緒でなければ使用できません。WEDD署名の詳細については、Design Referenceを参照してください。

この値をプログラムで設定して、特定の署名が施されているアプリケーションのアップグレード版を配布する場合に利用することができます。

Note: Get database parameterコマンドにこのセレクタを渡す場合、WEDD署名はオプションのstringValue 引数に返され、コマンドの戻り値は0になります。

Selector = 37 (Invert Objects)

・取りうる値: 0, 1 または 2 (0 = モードは無効, 1 = 自動モード, 2 = モードが有効)

・説明: Right-to-left 言語のWindowsでデータベースが表示されるとき、アプリケーションモードでフォームやオブジェクト、メニューバーなどを反転させるために使用される、"オブジェクト反転"モードを設定します。このモードはアプリケーション環境設定のデータベース/インターナショナルページで変更できます。

- 0 に設定した場合、システム設定に関係なく、モードは無効です(環境設定でいいえにするのと同じ)。

- 1 に設定した場合、システム設定に応じ、モードが有効または無効になります(環境設定を自動にするのと同じ)。

- 2 に設定した場合、システム設定に関係なく、モードは有効です(環境設定をはいにするのと同じ)。

詳細は4DのDesign Referenceマニュアルを参照してください。

Selector = 39 (HTTPS Port ID)

・取りうる値: 0 から 65535

・説明: このセレクタは、ローカルモードの4Dおよび4D ServerのWebサーバがSSLによるセキュアな接続(HTTPSプロトコル)で使用するTCP ポート番号を、プログラムで変更するために使用できます。HTTPS ポート番号は、環境設定ダイアログの“Web/設定”ページで設定されます。詳細はWebサーバ設定の節を参照してください。

デフォルトの値は443(標準ポート番号)です。value引数に“TCP Port Numbers”テーマの定数を渡すこともできます。

Selector = 40 (Client HTTPS Port ID)

・取りうる値: 0 から 65535

・説明: このセレクタは、クライアントマシンのWebサーバがSSLによるセキュアな接続(HTTPSプロトコル)で使用するTCP ポート番号を、プログラムで変更するために使用できます。デフォルトの値は443(標準ポート番号)です。

このセレクタの動作はセレクタ39と同じですが、Web サーバとして使用されるすべてのクライアントマシンに適用されます。特定のクライアントマシンの設定だけを変更するのであれば、4D Client の環境設定ダイアログ画面を使用してください。

Selector = 41 (Unicode mode)

・取りうる値: 0 (互換モード) または 1 (Unicodeモード)

・説明: カレントデータベースの文字セットに関連する動作モード。4DはUnicode文字セットをサポートしますが、 (Mac ASCII文字セットに基づく)“互換”モードで動作させることができます。デフォルトで、変換されたデータベースは互換モード (0) で、バージョン11以降で作成されたデータベースはUnicodeモードで実行されます。実行モードは環境設定のオプションでコントロールでき、またこのセレクタを使用して読みだしたり、 (テスト目的で) 変更したりできます。このオプションを変更した場合、それを有効にするにはデータベースを再起動しなければなりません。コンポーネント内部ではこの値を変更できないことに留意してください。読み出しのみが可能です。

Selector = 42 (Temporary memory size)

4Dバージョン11で、このセレクタで設定されるメカニズムが変更されたため、このセレクタは無効になりました。

Selector = 43 (SQL Autocommit)

・取りうる値: 0 (無効) または 1 (有効)

・説明: SQLの自動コミットモードを有効または無効にするために使用します。デフォルトは 0 (無効モード) です。

自動コミットモードは、データベースの参照整合性を強化するために使用されます。このモードが有効の時、すべてのSELECT, INSERT, UPDATE そして DELETE (SIUD) クエリは、これらがトランザクション内で実行されていない場合、自動でアドホックなトランザクションに含められます。このモードはデータベースの環境設定でも設定できます。

Selector = 44 (SQL Engine Case Sensitivity)

・取りうる値: 0 (大文字小文字を考慮しない) または 1 (考慮する)

・説明: SQLエンジンが文字列比較を行う際に、大文字と小文字の違いを考慮させるかどうかを設定します。

デフォルトで値は1 (大文字小文字を考慮する) です。SQLエンジンは文字列比較 (並び替えやクエリ) の際に大文字と小文字を異なる文字として扱います。例えば“ABC”= “ABC”ですが“ABC” # “Abc”です。SQLエンジンと4Dエンジンの動作をそろえたいなど特定の場合では、大文字と小文字を区別しない文字列比較 (“ABC”=“Abc”) を使用できます。

このオプションはアプリケーション環境設定の SQL/設定ページで設定できます。

Selector = 45 (Client Log Recording)

・取りうる値: 0 または 1 から X (0 = 記録しない, 1 から X = ファイル名に付加するシーケンス値)。

・説明: コマンドを実行した4Dクライアントマシンが実行した標準的なリクエスト(Webリクエストを除く)の記録を開始または停止します。デフォルト値は0(リクエストを記録しない)です。

クライアントマシンが実行したリクエストをログファイルに記録するよう、4Dに指示することができます。このメカニズムが有効になると、クライアントマシンのデータベースのローカルフォルダ内、Logsサブフォルダに2つのログファイルが作成されます。ファイルには"4DRequestsLog_X"と"4DRequestsLog_ProcessInfo_X"(Xはログのシーケンシャル番号)の名前が付けられます。4DRequestsLogファイルサイズが10MBに達するとそのファイルは閉じられ、インクリメントしたシーケンス番号を使用して新しいファイルが作成されます。もし同じ名前のファイルが存在する場合は置き換えられます。シーケンシャル番号の開始番号を、value引数を使用して指定できます。

このテキストファイルにはそれぞれのリクエストに関する様々な情報(時間、プロセス番号、ユーザ、リクエストサイズ、処理時間など)がシンプルな表形式のフォーマットで保存されます。この情報はアプリケーション開発フェーズや統計の目的で利用する場合に特に役立ちます。

Selector = 46 (Query By Formula On Server)

・取りうる値: 0 (データベース設定を使用), 1 (サーバ上で実行) または 2 (クライアント上で実行)

・説明: 引数に渡されたtableに対して実行されるQUERY BY FORMULAQUERY SELECTION BY FORMULAコマンドの実行場所。

クライアント/サーバモードでデータベースを使用するとき、フォーミュラーを使用したクエリをサーバ上またはクライアント上で実行させることができます:

- 4D v11 SQLで作成されたデータベースでは、これらのコマンドはサーバ上で実行されます。

- 変換されたデータベースでは、これらのコマンドは、以前のバージョンの4Dと同様、クライアントマシン上で実行されます。

- 変換されたデータベースでは、環境設定のアプリケーション/互換性ページで、これらのコマンドの実行場所をグローバルに変更できます。

この実行場所の違いは、アプリケーションのパフォーマンス (通常サーバ上で実行したほうが早い) だけでなく、プログラミングにも影響します。実際フォーミュラの部品の値 (特にメソッドから呼ばれる変数) は、実行コンテキストにより異なります。このセレクタを使用して開発者は、アプリケーションの動作を適応させられます。

value 引数に0を渡すと、フォーミュラを使用するクエリの実行場所は、データベースの設定に基づきます: 4D v11 SQLで作成されたデータベースでは、これらのコマンドはサーバ上で実行されます。変換されたデータベースでは、データベース環境設定に基づき、クライアントマシンまたはサーバマシンで実行されます。valueに1または2を渡すと、これらのコマンドの実行場所をサーバマシンまたはクライアントマシンに強制できます。

例題 4を参照。

Selector = 47 (Order By Formula On Server)

・値: 0 (データベース設定を使用), 1 (サーバ上で実行) または 2 (クライアント上で実行)

・説明: 引数に渡されたtableに対して実行されるORDER BY FORMULAコマンドの実行場所。

クライアント/サーバモードでデータベースを使用するとき、ORDER BY FORMULAコマンドをサーバ上またはクライアント上で実行させることができます。

このセレクタは、このコマンドの実行場所 (サーバまたはクライアント) を指定できます。詳細はセレクタ46、Query By Formula On Serverの説明を参照してください。

Selector = 48 (Auto Synchro Resources Folder)

・値: 0 (同期しない), 1 (自動同期) または 2 (確認する)

・説明: このコマンドを実行する4DクライアントマシンのResourcesフォルダの動的な同期モード。

サーバ上のResourcesフォルダの内容が更新されたり、(リソースエクスプローラやNOTIFY RESOURCES FOLDER MODIFICATION コマンドで) ユーザが同期をリクエストすると、サーバは接続されたユーザに通知を行います。

クライアント側では3つの同期モードを選択できます。Auto Synchro Resources Folderセレクタはカレントセッションでクライアントマシンが使用するモードを指定できます:

- 0 (デフォルト値) = 動的な同期を行わない (同期リクエストは無視される)

- 1 = 自動の動的同期

- 2 = クライアントマシンにダイアログを表示し、同期の受け入れ回避を確認する

アプリケーションの環境設定で、同期モードをグローバルに設定できます。

Selector = 49 (QUERY BY FORMULA Joins)

・取りうる値: 0 (データベース設定を使用), 1 (常に自動リレーションを使用) または 2 (可能ならSQL JOINを使用)

・説明: "SQL JOIN"の利用に関連する、QUERY BY FORMULAQUERY SELECTION BY FORMULAコマンドの動作モード。

4D v11 SQLのバージョン11.2以降で作成されたデータベースでは、これらのコマンドはSQL JOINモデルに基づくJOINを実行します。このメカニズムを使用して、(以前のバージョンでは必要な条件だった) 自動リレーションで接続されていない他のテーブルに対して実行されたクエリに基づき、テーブルのセレクションを変更できます。

QUERY BY FORMULA Joinsセレクタで、カレントのプロセスの、フォーミュラによるクエリの動作モードを指定できます:

- value = 0: データベースの現在の設定を使用する (デフォルト値)。4D v11 SQLのバージョン11.2以降で作成されたデータベースでは、"SQL JOIN"はフォーミュラによるクエリに対し常に有効です。変換されたデータベースでは、互換性のためデフォルトでこのメカニズムは有効になっていません。しかし環境設定で実装できます。

- value = 1: 常に自動リレーションを使用 (= 以前のバージョンの4Dの動作)。このモードでは、他のテーブルに対して行われたクエリに基づきテーブルのセレクションを作成するためには、リレーションが必要です。4Dは"SQL JOIN"を行いません。

- value = 2: 可能であればSQL JOINを使用 (= 4D v11 SQLのバージョン11.2以降で作成されたデータベースのデフォルト動作)。このモードでは、フォーミュラが適合する限り、4Dはフォーミュラによるクエリに"SQL JOIN"を使用します (2つの例外があります。QUERY BY FORMULAQUERY SELECTION BY FORMULA コマンドの説明を参照)。

Selector = 50 (HTTP Compression Level)

・値: 1 から 9 (1 = 速度優先, 9 = 圧縮優先) または -1 = 最適

・説明: Webサービスにおけるクライアントリクエストおよびサーバのレスポンスに使用される、圧縮されたすべてのHTTP通信の圧縮レベルを設定します。Webサービスで通信する2つの4Dアプリケーションがあるとき、圧縮された通信を使用して最適化を実装することができます (SET WEB SERVICE OPTION コマンドを参照)。このセレクタを使用して、実行速度を優先 (低圧縮) するか、圧縮率を優先 (低速度) するかを指定できます。選択する値は交換するデータのタイプやサイズにより異なります。value 引数には1から9の値を渡します。1は圧縮速度優先で、9は圧縮率優先です。また-1を渡して圧縮速度と圧縮率の妥協点を指定できます。デフォルトの圧縮レベルは1 (速度優先) です。

Selector = 51 (HTTP Compression Threshold)

・値: 任意の倍長整数値

・説明: 最適化モードの内部的な4D Webサービス通信フレームワーク (上記参照) において、圧縮を行わないリクエストサイズの敷居値を設定できます。この設定は、小さなデータ交換時に圧縮を行うことによる、マシンの時間の浪費を避けるために有効です。

valueにはバイト単位でサイズを渡します。デフォルトで、圧縮の敷居値は1024バイトに設定されています。

Selector = 54 (Idle Connections Timeout)

・値: 持続時間を秒で表す値。値は正数 (新規接続) または負数 (既存の接続)をとることができます。デフォルトで値は0 (タイムアウトなし) です。

・説明: この引数を使用して、4DデータベースエンジンとSQLエンジン両方への動きのない接続の最大時間 (タイムアウト) を設定できます。この設定は、コマンドが実行されたマシンにより開かれたすべての接続に適用されます。

動作していない接続がこの制限時間に達すると、接続は自動でスタンバイ状態に置かれます。つまりクライアント/サーバセッションがフリーズされ、ネットワークソケットが閉じられます。この動作はユーザに対し完全に透過的です。スタンバイ状態の接続でリクエストが開始されると、ソケットが自動で再び開かれ、クライアント/サーバセッションが再び有効になります。

この設定によりサーバのリソースを節約できます。スタンバイ状態の接続はソケットを閉じ、サーバ上のプロセスを解放します。他方これにより、ファイアウォールがアイドルなソケットを閉じてしまうことに伴い接続が失われることを避けることができます。このためには、アイドル接続のタイムアウト値はファイアウォールのタイムアウト値よりも小さくなくてはなりません。

valueに正数を渡すと、設定はすべてのプロセスのすべての新規接続に適用されます。負数を渡すと、設定はカレントプロセスの開かれた接続に適用されます。0を渡すと、アイドル接続のタイムアウトは行われません。

例題

1. 以下の文は予期しないタイムアウトを避けます:

      `カレントプロセスのタイムアウトを3時間にします
   SET DATABASE PARAMETER(4D Server Timeout;-60*3)
      `4Dからコントロールできない時間のかかる処理を行う
   ...
   WR PRINT MERGE (Area;3;0)
   ...

2. IPアドレス192.193.194.195を以下の文で設定する:

   SET DATABASE PARAMETER(IP Address to listen;0xC0C1C2C3)

3. このコードはカレントの文字セットを変更し、データベースを再起動します:

   Current_unicode_mode:=Get database parameter(Unicode mode)
   SET DATABASE PARAMETER(Unicode mode;1-Current_unicode_mode)
   OPEN DATA FILE(Data file)

4. 
この例題は、一時的にクライアントマシン上でフォーミュラによるクエリを実行するよう強制します:


   curVal:= Get database parameter([table1];Query By Formula On Server)   `現在の設置を取得
   SET DATABASE PARAMETER([table1];Query By Formula On Server;2)  `クライアントマシンでの実行を強制
   QUERY BY FORMULA([table1];myformula)
   SET DATABASE PARAMETER([table1];Query By Formula On Server;curVal)  `設定を元に戻す

参照

Get database parameter, QUERY SELECTION.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次