Logs フォルダーには,プロジェクトが使用するすべてのログファイルが格納されます。 v18以降,このフォルダーはデータファイルと同階層に作成されるようになりました。
v17以前の Logs フォルダーはストラクチャファイルと同階層に作成されました。ビルド版アプリケーションの場合,通常は書き込み禁止であるディレクトリにコンパイルされたストラクチャファイル( .4DC )またはパッケージされたプロジェクトフォルダー( .4DZ )が置かれます。ログファイルは,ストラクチャファイルではなく,データファイルと同階層に作成したほうが実際的です。データファイルは基本的に書き込みができるディレクトリに作成されるからです。
Logs フォルダーのパスは,下記いずれのコマンドで取得することができます。
上記の Logs フォルダーとは別に,Maintenance & Security Centerが出力するメンテナンスログファイルを記録するための Logs フォルダーが存在します。こちらのフォルダーは,Get 4D folderからパスが返されるユーザー設定フォルダーに作成されます。なお,本来の Logs フォルダーが使用できない場合,プロジェクトが使用するログファイルもこちらのフォルダーに記録されます。
特定のコマンドが処理に3
秒以上を要する場合,デフォルトで進捗バーが自動的に表示されます。v18r3以降,同等のORDAオペレーションでも進捗バーが表示されるようになりました。
時間がかかっている処理に関する情報を収集したい場合,START MONITORING ACTIVITY
に閾値とオペレーションのタイプを指定することができます。オペレーションのタイプは,ランゲージ・ネットワーク・データベースオペレーションの組み合わせで指定します。
オペレーションのタイプにランゲージを含めた場合,SET DATABASE PARAMETER
と Log command list で監視するコマンドを指定することができます。その場合,コマンド番号をひとつずつセミコロン区切りで列挙するか,負のコマンド番号をセミコロン区切りで列挙することにより,監視の対象から除外することができます。
PHP Execute
を実行すると,プロジェクトの/RESOURCES/
フォルダーに既定の php.ini ファイルが(なければ)コピーされます。このファイルには,4D_Execute_PHP.php (4D/PHP間でパラメーターのデータ型を自動的に変換したり,PHPの関数を直接コールするためのユーティリティスクリプト)のパスが記述されています。このファイルは,ビルドしたphp-cgi
をphp-fcgi-4d
にリネームし,内部PHPインタープリターの代わりに使用する場合にも使用されます。
外部PHPインタープリターを使用する場合,PHP Execute
に備えて事前にPHPを起動する必要があります。プロジェクトの/RESOURCES/
フォルダーの php.ini ファイルは使用されません。コマンドライン引数で明示的に初期化ファイルのパスを渡す必要があります。これは仕様です。
ドキュメントには「サーバー上で禁止されるコマンド」および「サーバー上で使用すべきでないコマンド」が列挙されています。過去バージョンのドキュメントでは,下記の印刷関係コマンドも「サーバー上で禁止されるコマンド」として挙げられていました。現行バージョンにそのような制約はありません。見直されたリストはv20のドキュメントに掲載されています。
現在ベータ版が公開されているフィーチャーリリース(v20 R2)は,Windows Server 2012 R2プラットフォーム非対応となります。当該バージョンでは,統合Webエリアが使用しているCEF (Chrome Embedded Foundation) のアップデートとセキュリティ強化が反映されており,2012 R2で起動するとDiscardVirtualMemory
エントリーポイントがみつからない,というエラーメッセージが表示されます。
Windows Server 2012 R2のサポート終了日が近づいているため,今後,4D v20は,CertifiedではなくCompatibleレベルでWindows Server 2012 R2対応となります。
v20のCONFIRM
ダイアログのOKおよびキャンセルボタンは,フォーカスできるように設定されています。これは仕様です。過去のバージョンでは,これらのボタンにフォーカスを移動することができませんでした。
バイナリモードでは,これらのボタンに「フォーカス可」「タブ不可」「フォーカスの四角を隠す」が設定されていました。プロジェクトモードには「タブ不可」「フォーカスの四角を隠す」プロパティが存在しません。OKおよびキャンセルボタンには,キーボードショートカットの Escape および Enter/Return がそれぞれ設定されていますが,タブ移動ができるようになったので,フォーカスされているボタンをスペースバーでクリックすることもできます。
分離ポップアップメニューが設定されているツールバーボタンの最適サイズは,ボタンピクチャーと分離メニューの幅で決まります。たとえば,状態の数が4
のボタンに16x64
のピクチャーを設定した場合,OBJECT GET BEST SIZE
はmacOSでは34
Windowsでは22
を返します。過去バージョンでは画像の幅(16
)が最適サイズとして返されました。つまり,分離ポップアップメニューの幅が最適サイズの計算に含まれていませんでしたが,それは間違いでした。
テキスト型およびオブジェクト型のインデックスは,データベース言語に対応するICUライブラリのコレーションに基づいて構築されます。
キーワードインデックスは,データベース言語が日本語の場合,MeCabライブラリがインストールされていれば,形態素分解を利用した独自のアルゴリズムに基づいて構築されます。MeCabライブラリは,日本語版の4Dにプリインストールされています。MeCabライブラリがインストールされていない場合,あるいはデータベース言語が日本語以外であれば,ICUライブラリのバウンダリ解析に基づいて構築されます。データベース設定で「非文字・非数字のみをキーワード区切り文字とする」が有効にされていれば,ICUライブラリのIsAlnum
属性に基づいて構築されます。
インデックス構築には,①データベース言語,②MeCabライブラリの有無,③データベース設定が関係しています。データベース言語を変更したり,データベース設定で「非文字・非数字のみをキーワード区切り文字とする」を切り替えたりした場合,インデックスの再構築が必要になるかもしれません。再構築の必要性は,通常,アプリケーションによって自動的に判定されます。
MeCabモードで日本語のキーワードインデックスを作成した後,MeCabがインストールされていない環境でデータベースを開いた場合,本来であれば,インデックスの再構築が必要ですが,レアケースということもあり,自動的にはインデックスの再構築が発生しません。必要に応じ,マニュアル操作でキーワードインデックスを更新する必要があります。PAUSE INDEXES
(RESUME INDEXES
せずに再起動した場合,自動的にインデックスが再構築される)を活用できるかもしれません。これは仕様です。