# CHAPTER 3: Empress システム変数

## 3.1 はじめに

Empressは、それぞれのユーザーごとのEmpress環境を コントロールするためのシステム変数を提供します。 このシステム変数は、例えば`SELECT`文からの出力中のカラム間のスベース数や システムエディタ、ダンプファイル中のアトリビュートのセパレータなどのような 設定をするために使用されます。 以下はこれらの変数のリストとそれぞれの簡単な説明です。

これらの変数はすべて`initfile`からのシステムのデフォルトを持っていますが、 クエリー言語コマンド、またはオペレーティングシステム中で設定しなおすことができます。 SQL セッション内での値の変更は、オペレーティングシステム、または `initfile` で設定した値を上書きすることになりますが、この値はSQL セッション内のみ維持されます。 オペレーティングシステム内での値の変更は、ユーザーがオペレーティングシステムから ログオフするまで、`initfile`で設定した値を上書きすることになります。

`initfile`に設定することは、すべてのユーザーに影響します。 個人環境では オペレーティングシステムのシェルにこれらのいくつかの変数を設定することで Empress環境をカスタマイズすることができます。

表 3-1 パスに関連する変数

変数 | 説明
`MSHELPPATH` | Empress ヘルプファイルディレクトリ
`MSTERMDB` | Empress 4GL端末定義データベース
`MSAPFMDB` | Empress 4GLフォームデータベース
`MS4GLPSHEADER` | Empress 4GLポストスクリプト・ヘッダーファイル
`MSKILLLOGDIR` | Empressユーティリティ`empkill`ログファイルディレクトリ
`MSCRAYQDELLOGDIR` | Empressユーティリティ`empqdel`ログファイルディレクトリ (クレイスーパーコンピュータのみ)
`MSGUIDB` | Empress GUIのシステムディレクトリ
`MSGUIDEFCOLORFILE` | Empress GUIのカラー定義ディレクトリ
`MSSHAREDMEMORYDIR` | `mmap`(メモリーマッピング)で使用されるプラットフォームの メモリーマップファイルディレクトリ

表 3-2 全体に関する変数

変数 | 説明
`MSDATELIMIT` | 2桁の年数の入力のための適切な世紀
`MSDATEPIC` | 入出力のための日付フォーマット
`MSDDLTRANS` | データ定義言語(DDL)コマンドのトランザクションによる保護
`MSDISPLAYKATAKANA` | 半角カナ文字をサポートしていない端末（日本語バージョンのみ)
`MSDOLLAR` | Dollarデータ型のフォーマット
`MSEDITOR` | ".zz"コマンドおよびEmpress 4GLで利用されるエディタ
`MSFILESOPEN` | Empressよってオープンされる最大ファイル数
`MSFORCEPLOCK` | プロセスをメモリにロック（適切な特権を持っていると仮定します。）
`MSINDEXLISTCUTOFF` | テーブルの総レコード数に対するパーセンテージを指定します。 それを超えた場合、検索においてインデックスを使用しません。
`MSINDEXLISTCUTOFFMIN` | `MSINDEXLISTCUTOFF`の設定を無視し、インデックスから検索する最小レコード数
`MSINDEXSORTCUTOFF` | テーブルの総レコード数に対するパーセンテージを指定します。 レコードのソート処理においてこの値を超えた場合にインデックスを使用します。
`MSKEEPNONPRINTCHAR` | 非印刷文字を解釈するフラグ
`MSLANG` | 出力するEmpressメッセージの言語指定
`MSLINECONT` | 行を続けるために使用する文字列
`MSLKCOMMITADDEND` | 連続登録処理間のロックマネージャへのアクセスを減らします。
`MSLOCKPLAN` | Empressよるロック使用情報の提供
`MSNLSCODESET` | 使用しているキーボードおよびモニターに適合するコードセット名
`MSNULLVALUE` | null 値を置き換える文字列
`MSPAGER` | 問い合わせ言語内でページ処理するためのシステムプログラム
`MSPERMS` | Empress出力ファイルのアクセス許可
`MSPRINTER` | プリンタへ出力を送るために使用するシステムプログラム
`MSQUERYPLAN` | Empressによって使用されるインデックス情報を提供します。
`MSSHELL` | Empress 中から使用するシステムのシェル
`MSSORTBYPASS` | ソート処理中でのロックされたレコードをスキップするためのフラグ
`MSSORTSPACE` | ソート処理中に使用されるスペースの制限バイト数
`MSTHRESHOLDPFLSIZE` | 自動的なフラッシュおよびマージがグローバルフリーリストに実行される以前の 内部のプロセスフリーリストの最大サイズ
`MSTMPDIR` | テンポラリファイルを作成するディレクトリ
`MSTMPPFX` | テンポラリファイルに使用されるプリフィックス
`MSVALSEP` | ダンプファイル中のアトリビュート値を分けるために使用される文字列
`MSVERSIONMESG` | 起動時のEmpressバージョンの出力設定
`MSWRAPMARGIN` | 行の中断とラッピングの制御
`MSCASEINSENSITIVE` | 大文字・小文字を区別しない設定
`MSNTMPFILECACHE` | 検索処理中に使用するテンポラリテーブルに関連した テンポラリファイルに使用するキャッシュサイズの指定
`MSQUOTEDIDENTIFIERS` | 引用識別子の許可
`MSSELEXTFETCH` | Empress mr ルーチンの mrprev 関数を使用する場合に 以前のバージョンとの互換性の問題のための設定
`MSSELMAXROWS` | SELECT 文によって Empress 対話型 SQL インターフェースに戻される 最大レコード数（行数）の設定
`MSSELTIMEOUT` | Empress 対話型 SQL インターフェースへ 戻るための SQLの SELECT文の実行の ウェイト秒数の設定
`MSTMPFILECACHESIZE` | 検索処理中に使用するテンポラリテーブルに関連した テンポラリファイルに使用するキャッシュサイズの指定

表 3-3 トランザクション関連の変数

変数 | 説明
`MSTRANSCOMMENT` | トランザクションのコメント文字列
`MSTRANSSYNC` | 即時にファイルへ書き込みさせるフラグ
`MSTRANSTABLELOCK` | トランザクション中は強制的にテーブルレベルロックにするフラグ
`MSTRANSUFNBI` | トランザクション前イメージリストのサイズ
`MSTRANSUFNGFL` | フリーレコードへのアクセス制御
`MSTRANSWARMPROTECT` | ウォームリスタートからトランザクションを保護するフラグ

表 3-4 ロック関連の変数

変数 | 説明
`MSCFEXCLRETRY` | コーディネーターファイルへの排他ロックアクセスのリトライ回数
`MSCFEXCLSLEEP` | コーディネーターファイルへの排他ロックアクセスのリトライ間のインターバル
`MSEXCLRETRY` | ロックファイルへ排他的アクセスをするためのリトライ数
`MSEXCLSLEEP` | ロックファイルへ排他的アクセスをするためのリトライ間のインターバル
`MSIAEXCLRETRY` | 対話型インターフェイスのための排他アクセスリトライ数
`MSIAEXCLSLEEP` | 対話型インターフェイスのための排他アクセスリトライのインターバル
`MSIALOCKRETRY` | 対話型インターフェイスのためのロックリトライ数
`MSIALOCKSLEEP` | 対話型インターフェイスのためのロックリトライのインターバル
`MSINDEXRETRY` | インデックスをロックするためのリトライ数
`MSINDEXSLEEP` | インデックスをロックするためのリトライ間のインターバル
`MSLOCKRETRY` | 実際のロックエントリするためのリトライ数
`MSLOCKSLEEP` | 実際のロックエントリするためのリトライ間のインターバル

表 3-5 クエリ関連の変数

変数 | 説明
`MSQLAUTOPAGE` | すべてのコマンド出力をページ処理プログラムに送るかどうかのフラグ
`MSQLCMDSAVE` | 履歴機能によって保存するコマンド数
`MSQLCOUNT` | 検索、更新、削除されたレコード件数を表示するかどうかのフラグ
`MSQLECHO` | コマンドのエコーの制御
`MSQLONELINE` | 改行がコマンドの終了を指示
`MSQLPROMPT1` | 第1のEmpressプロンプト
`MSQLPROMPT2` | 第2のEmpressプロンプト
`MSQLTRANSACTION` | 各コマンドがトランザクション上で実行され、キャンセルされる可能性があります。
`MSQLVARCHARS` | Empress変数表示で使用される文字

表 3-6 SELECT出力フォーマット関連の変数

変数 | 説明
`MSQLGCHARWIDTH` | パラメータなしのcharcterデータのカラム幅
`MSQLGDATEWIDTH` | パラメータなしのdateデータのカラム幅
`MSQLGDECIMALWIDTH` | パラメータなしのdecimalデータのカラム幅
`MSQLGFLOATWIDTH` | パラメータなしのfloatデータのカラム幅
`MSQLGINTEGERWIDTH` | パラメータなしのintegerデータのカラム幅
`MSQLSELBOX` | 出力データに外枠表示をおこなうかどうかのフラグ
`MSQLSELCOLSEP` | カラムセパレータ文字
`MSQLSELGROUPCOLCROSS` | グループセパレータと交差するカラムに表示する文字
`MSQLSELGROUPSEP` | グループセパレータ文字
`MSQLSELHEAD` | ヘッダーを出力するかどうかのフラグ
`MSQLSELHEADCOLCROSS` | ヘッダーと交差するカラムに表示する文字
`MSQLSELHEADSEP` | ヘッダーセパレータ文字
`MSQLSELKEEPDUPLICATE` | 重複したグループの値を表示するフラグ
`MSQLSELROWCOLCROSS` | カラムと交差する行に表示する文字
`MSQLSELROWSEP` | 行セパレータ文字
`MSQLSELTRUNCATE` | 長い行の切り詰めのフラグ
`MSQLSELWARN` | 関数にnull引数がある場合、警告を表示

表 3-7 オンラインバックアップ関連の変数

変数 | 説明
`MSCOORDTIMERFREQ` | クライアントがコーディネータにチェックインしなければならない期間(秒単位)
`MSOLBBACKUPDEVICE` | オンラインバックアップ装置名
`MSOLBBLOCKSIZE` | オンラインバックアップ装置のブロックサイズ
`MSOLBRECOVERYLOG` | オンラインバックアップのリカバリログファイル

表 3-8 シェアードメモリ関連の変数

変数 | 説明
`MSMKDBSHMEM` | シェアードメモリを伴ったデータベースの作成のフラグ
`MSSHMLOCATION` | シェアードメモリセグメントが存在するシステムアドレスの設定
`MSSHMPERMS` | シェアードメモリパーティションのアクセス許可の設定

表 3-9 ダーティリードとデータストリーミング関連の変数

変数 | 説明
`MSBULKSEGMENTSIZE` | バルクデータの最小ブロックを転送するためのメモリサイズ
`MSVALIDATELEVEL` | チェックサムの結果によってのダーティリードの動作規定
`MSVALIDATERETRY` | 無効なレコードを読むためにEmpressがおこなうリトライ数
`MSVALIDATESLEEP` | 無効なレコードを読むためのリトライ間のインターバル秒数

表 3-10 データベースユーティリティ関連の変数

変数 | 説明
`MSKILLRETRY` | `empkill`が `MSKILLSIGNAL`変数によって指定された終了シグナルを 送るリトライ数 `MSKILLSIGNAL`.
`MSKILLSLEEP` | `empkill`が `MSKILLSIGNAL`変数によって指定された終了シグナルを 送るリトライ間のインターバル秒数
`MSKILLSIGNAL` | `empkill`によって送られる終了シグナル

表 3-11 サーバー/インターネット関連の変数

変数 | 説明
`MSSERVERHEARTBEAT` | データベースサーバーのアイドルタイムをチェックするための期間
`MSSERVERNETTYPE` | サーバーアクセスタイプ
`MSSERVERTERSELOG` | コンパクトなフォーマットのサーバーログファイル情報
`MSINETREPLYTIMEOUT` | 高レベルの応答を待つクライアントのタイムアウト値
`MSINETREPLYRETRY` | 高レベルの応答を待つクライアントのリトライ数
`MSINETMESSAGETIMEOUT` | 確認を待つクライアントのメッセージハンドラのためのタイムアウト値
`MSINETMESSAGERETRY` | 確認を待つクライアントのメッセージハンドラのためのリトライ数
`MSINETPACKETTIMEOUT` | 確認を待つクライアントのパケットハンドラのためのタイムアウト値
`MSINETPACKETRETRY` | 確認を待つクライアントのパケットハンドラのためのリトライ数
`MSGETHOSTTIME` | ホスト情報を検索するためのタイムアウト値
`MSHOSTNAME` | システムのホスト名

表 3-12 オペレーティングシステムに関連した変数

変数 | 説明
`MSGETPW` | ユーザーIDを得るために `getwuid`システムコールの代わりに`getpw`を使用します。 これは互換性のため。
`MSGCWDSIGCHLDRESET` | オペレーティングシステムコール`getcwd`のためにシグナルを リセットします。
`MSCRAYQDELSLEEP` | `empqdel`が、リクエストが死んだかどうかをチェックする前に待つ秒数。 クレイシステムのみで有効。
`MSCRAYQDELRETRY` | `empqdel`が、終了シグナルを送ることを試行する回数。 クレイシステムのみで有効。
`MSCRAYQDELSIGNAL` | `empqdel`ためのシグナル番号またシンボル名の設定。 クレイシステムのみで有効。
`MSMIGRATERETRY` | 移行したファイルへアクセスするためのリトライ数 クレイシステムのみで有効。
`MSMIGRATESLEEP` | 移行したファイルへアクセスするためのリトライのインターバルタイム クレイシステムのみで有効。

表 3-13 レポートライター関連の変数

変数 | 説明
`MSMWNULLOK` | ヌルの出力時のエラーを抑止します。
`MSPAGELENGTH` | レポートのデフォルトページ長
`MSPAGEWIDTH` | レポートのデフォルトページ幅

表 3-14 フォートランインターフェイス関連の変数

変数 | 説明
`MSF77BACKSCAN` | フォートランコンパイラの動作について定義する内部設定
`MSF77BUFCOPY` | フォートラン文字列を補助バッファにコピーする必要があるかどうかフラグ
`MSF77IGNORELENGTH` | フォートラン文字列の受け渡しの長さを無視する設定
`MSF77TERMCHAR` | ASCII(0)の代わりにフォートラン文字列を終了するための文字を与えます。
`MSF90BACKSCAN` | フォートランコンパイラの動作について定義する内部設定
`MSF90BUFCOPY` | フォートラン文字列を補助バッファにコピーする必要があるかどうかフラグ
`MSF90IGNORELENGTH` | フォートラン文字列の受け渡しの長さを無視する設定
`MSF90TERMCHAR` | ASCII(0)の代わりにフォートラン文字列を終了するための文字を与えます。

表 3-15 Empress 4GL 関連の変数

変数 | 説明
`MS4GLCHKNULVAL` | `NOT NULL`アトリビュートのために null 値を見つけます。
`MS4GLCOMPATCHK` | 可能な互換性の問題をチェックします。
`MS4GLDEBUGSETUP` | Empress 4GL デバッガーのセットアップ情報を保存したファイルパス。
`MS4GLFLUSHTYPEAHEAD` | Empress 4GLが反応可能以上に速くタイプされる キーボード入力を保存します。
`MS4GLFONTNAME` | Empress 4GLで使用されるフォント名。
`MS4GLNOLOADRUNMSG` | アプリケーションがコールされた時のインフォメーションメッセージの抑止。
`MS4GLPRINTSCREEN` | 画面ダンプファイル名
`MS4GLPRINTSCREENFORMAT` | 画面ダンプフォーマット
`MS4GLPSWIDTH` | ポストスクリプト出力のためのバウンディング・ボックスの幅
`MS4GLPSHEIGHT` | ポストスクリプト出力のためのバウンディング・ボックスの高さ
`MS4GLXASYNCOFF` | 割り込み処理
`MS4GLXCOLORTOLERANCE` | 色の扱い
`MS4GLXCURSORCOLOR` | テキストカーソルの色
`MS4GLXPOINTERCOLOR` | X Windows ポインタの色
`MS4GLXNEWCOLORMAP` | 使用するカラーマップ
`MS4GLXWINDOWTITLE` | 画面タイトル
`MSTERM` | 端末タイプ
`MSTERMSYS` | 端末タイプのプリフィックス

表 3-16 Empress GUI に関する変数

変数 | 説明
`MSGUIDEFAULTSTYLE` | アプリケーション画面スタイル
`MSGUIFONTSPEC` | Xterm のフォント定義
`MSGUIRGBTEXT` | X Windows の RGB テキストファイルのパス
`MSGUISYSMAIN` | Empress GUI ビルダー システムのメイン画面スタイル

表 3-17 Empress 内部変数

変数 | 説明
`MSSAVECWD` | 作業ディレクトリの値の保存
`MSBUFFERRECORDFACTOR` | バッファリング動作の読み込みレコード数の制御
`MSMAXPROCS` | ロックファイル中のロックマネージャにアクセス可能な最大プロセス数
`MSFILELOCKNBUCKETS` | ロックファイル中のロックマネージャのハッシュ・バケット数
`MSFILELOCKNLOCKS` | ロックファイル中のロックマネージャの最大ロック数
`MSNRECORDCACHE` | レコード数分のキャッシュサイズ
`MSLICENCE` | ライセンス情報

表 3-18 ネットワーク・サーバーに関する変数

変数 | 説明
`MSUSERAUTHCONFIGFILE` | ユーザー認証コンフィグレーションファイル名
`MSNETSERVERCONFIGFILE` | ネットワークサーバーコンフィグレーションファイル名
`MSNETTYPECONFIGFILE` | ネットワークタイプコンフィグレーションファイル名
`MSCONFIGFILEPATH` | ネットワークサーバー関連コンフィグレーションファイルのパス

表 3-19 リプリケーションに関する変数

変数 | 説明
`MSREPLOCKRETRY` | リプリケーション同期の中のマスターテーブル上のロックを取得するためのリトライ数
`MSREPLOCKSLEEP` | リプリケーション同期の中のマスターテーブル上のロックを取得するためのリトライ の間のインターバル
`MSREPENABLUPDATE` | リプリケーションテーブルを更新可能にすることを有効にする内部変数。
`MSREPPURGEINTERVAL` | `MSREPPURGEINTERVAL` は、 削除されたレコードが自動的に消去される前に、 その従属したリプリケーションリプリケートと同期する リプリケーションテーブルに許可する 最大合計時間を設定します。

## 3.2 システム変数のデフォルト値

Empress変数のデフォルト値はEmpressをインストールしたディレクトリ以下の `config`ディレクトリの下にある`initfile`と呼ばれるファイルから取得されます。 ※ Empress v862 日本語版では $EMPRESSPATH/config/initfile になります。
v8.20 以前では　$MSPATH/custom/initfile ですのでその点にご注意ください。

以下は バージョン 8.62 の`initfile`のサンプルリストです。

       #       (c) Copyright   Empress Software Inc.  1983, 2003

       MSPATHNAMES=
               MSHELPPATH="${EMPRESSPATH}/rdbms/help"
               MSNLSFILE="${EMPRESSPATH}/common/nls/nlsfile_"

       # Empress 4GL paths

               MSTERMDB="${EMPRESSPATH}/rdbms/4gl/termdb"
               MSAPFMDB="${EMPRESSPATH}/rdbms/4gl/apfmdb"
               MS4GLPSHEADER="${EMPRESSPATH}/rdbms/4gl/header.ps"

       # Empkill log file
               MSKILLLOGDIR="${EMPRESSPATH}/rdbms/spool/log"

       # Cray Empqdel log file
               MSCRAYQDELLOGDIR="${EMPRESSPATH}/rdbms/spool/log"

       # Empress GUI path
               MSGUIDB="${EMPRESSPATH}/rdbms/gui/empguidb"
               MSGUIDEFCOLORFILE="${EMPRESSPATH}/rdbms/gui/colortab"

       # Memory Mapped file directory
       # for the platform which uses mmap.
               MSSHAREDMEMORYDIR="${EMPRESSPATH}/rdbms/spool/shm"

       MSPATHNAMESEND=

       # general

       MSBULKSEGMENTSIZE=
       MSCASEINSENSITIVE=\
         [SYS_OS_WIN32]                X
         [ALL]
       MSDATELIMIT=1950
       MSDATEPIC="dd aaaaaaaaa yyyy"
       MSDDLTRANS=X
       MSDISPLAYKATAKANA=
       MSDOLLAR=.,*$
       MSEDITOR=vi
       MSFILESOPEN=\
         [SYS_OS_UNIX_HPUX_64]         250
         [SYS_OS_UNIX_HPUX]            150
         [SYS_OS_UNIX_IRIX]            150
         [SYS_OS_UNIX_SOLARIS]         200
         [SYS_OS_UNIX_LINUX_COBALT]    200
         [SYS_OS_UNIX_LYNX]            50
         [SYS_OS_UNIX_SCO]             88
         [ALL]                         250
       MSFORCEPLOCK=
       MSGETPW=
       MSINDEXLISTCUTOFF=100
       MSINDEXLISTCUTOFFMIN=0
       MSINDEXSORTCUTOFF=3
       MSKEEPNONPRINTCHAR=
       MSLANG=
       MSLINECONT="\\"
       MSLKCOMMITADDEND=
       MSLOCKPLAN=
       MSNLSCODESET=
       MSNTMPFILECACHE=
       MSNULLVALUE=" "
       MSPAGER=\
         [SYS_OS_WIN32]        "more <"
         [ALL]                 more
       MSPERMS=RW,RW,R
       MSPRINTER="pr | lpr"
       MSQUERYPLAN=
       MSQUOTEDIDENTIFIERS=
       MSSELEXTFETCH=X
       MSSHELL=\
         [SYS_OS_WIN32]
         [SYS_OS_UNIX_AIX]     /bin/bsh
         [ALL]                 /bin/sh
       MSSORTBYPASS=X
       MSSORTSPACE=
       MSTHRESHOLDPFLSIZE=500
       MSTMPDIR=\
         [SYS_OS_WIN32]
         [ALL]                 /tmp
       MSTMPFILECACHESIZE=
       MSTMPPFX=ms
       MSVALSEP="u"
       MSVERSIONMESG=X
       MSWRAPMARGIN=0

       # locking parameters

       MSCFEXCLRETRY=50
       MSCFEXCLSLEEP=0.05
       MSEXCLRETRY=50
       MSEXCLSLEEP=0.05
       MSIAEXCLRETRY=10
       MSIAEXCLSLEEP=0.06
       MSIALOCKRETRY=10
       MSIALOCKSLEEP=0.07
       MSINDEXRETRY=20
       MSINDEXSLEEP=0.08
       MSLOCKRETRY=50
       MSLOCKSLEEP=0.09

       # transaction parameters

       MSTRANSCOMMENT=
       MSTRANSSYNC=
       MSTRANSTABLELOCK=
       MSTRANSUFNGFL=10
       MSTRANSWARMPROTECT=

       # query language

       MSQLAUTOPAGE=
       MSQLCMDSAVE=50
       MSQLCOUNT=
       # MSQLECHO options: batch, conv, run
       MSQLECHO=run
       MSQLONELINE=
       MSQLPROMPT1="CMDNUM* "
       MSQLPROMPT2=". "
       MSQLTRANSACTION=
       MSQLVARCHARS=${}

       # query language -- select columnar

       MSQLGCHARWIDTH=20
       MSQLGDATEWIDTH=20
       MSQLGDECIMALWIDTH="14 2"
       MSQLGFLOATWIDTH=22
       MSQLGINTEGERWIDTH=11
       MSQLSELBOX=
       MSQLSELCOLSEP="  "
       MSQLSELGROUPCOLCROSS=
       MSQLSELGROUPSEP=
       MSQLSELHEAD=X
       MSQLSELHEADCOLCROSS=
       MSQLSELHEADSEP=" "
       MSQLSELKEEPDUPLICATE=
       MSQLSELROWCOLCROSS=
       MSQLSELROWSEP=
       MSQLSELTRUNCATE=
       MSQLSELWARN=X

       # Empress 4GL

       MS4GLCHKNULVAL=
       MS4GLCOMPATCHK=
       MS4GLDEBUGSETUP=
       MS4GLFLUSHTYPEAHEAD=
       MS4GLFONTNAME=8x13
       MS4GLNOLOADRUNMSG=
       MS4GLPRINTSCREEN=SCREEN
       MS4GLPRINTSCREENFORMAT=a
       MS4GLPSWIDTH=6
       MS4GLPSHEIGHT=11
       MS4GLXASYNCOFF=\
         [SYS_OS_UNIX_DECUNIX]
         [SYS_OS_UNIX_IRIX]
         [SYS_OS_UNIX_SOLARIS]
         [ALL]                 X
       MS4GLXCOLORTOLERANCE=
       MS4GLXCURSORCOLOR=
       MS4GLXPOINTERCOLOR=
       MS4GLXNEWCOLORMAP=
       MS4GLXWINDOWTITLE=
       MSTERM=
       MSTERMSYS=pc

       # Fortran Interface

       MSF77BACKSCAN=X
       MSF77BUFCOPY=\
         [SYS_OS_UNIX_AIX]
         [SYS_OS_UNIX_HPUX]
         [SYS_OS_UNIX_IRIX]
         [ALL]                 X
       MSF77IGNORELENGTH=
       MSF77TERMCHAR=@

       MSF90BACKSCAN=X
       MSF90BUFCOPY=\
         [SYS_OS_UNIX_AIX]
         [SYS_OS_UNIX_IRIX]
         [ALL]                 X
       MSF90IGNORELENGTH=
       MSF90TERMCHAR=@

       # report writer stuff

       MSMWNULLOK=X
       MSPAGELENGTH=66
       MSPAGEWIDTH=132

       # internet stuff

       MSGETHOSTTIME=5
       MSHOSTNAME=
       MSINETMESSAGERETRY=4
       MSINETMESSAGETIMEOUT=30
       MSINETPACKETRETRY=4
       MSINETPACKETTIMEOUT=5
       MSINETREPLYRETRY=4
       MSINETREPLYTIMEOUT=60
       MSSERVERHEARTBEAT=0
       MSSERVERNETTYPE=INET_TCP
       MSSERVERTERSELOG=X

       # on-line backup stuff

       MSCOORDTIMERFREQ=60
       MSOLBBACKUPDEVICE=/dev/rst0
       MSOLBBLOCKSIZE=16
       MSOLBRECOVERYLOG=olbreclog

       # replication

       MSREPENABLEUPDATE=
       MSREPLOCKRETRY=
       MSREPLOCKSLEEP=
       MSREPPURGEINTERVAL=

       # empkill stuff

       MSKILLRETRY=10
       MSKILLSIGNAL=TERM
       MSKILLSLEEP=5

       # for Cray only

       MSCRAYQDELSLEEP=5
       MSCRAYQDELRETRY=10
       MSCRAYQDELSIGNAL=HUP
       MSMIGRATERETRY=1
       MSMIGRATESLEEP=0

       # shared memory variables

       MSSHMPERMS=
       MSSHMLOCATION=
       MSMKDBSHMEM=X

       # GUI variables

       MSGUIDEFAULTSTYLE=
       MSGUIFONTSPEC="-*-%s-%s-%s-*-*-*-%s-75-75-*-*-iso8859-1"
       MSGUIPRECREATE=
       MSGUIRGBTEXT=/usr/lib/X11/rgb.txt
       MSGUISYSMAIN=

       # dirty read + validation

       MSVALIDATELEVEL=440
       MSVALIDATERETRY=10
       MSVALIDATESLEEP=0.09

       # net server stuff
       MSUSERAUTHCONFIGFILE=
       MSNETSERVERCONFIGFILE=netserver.cfg
       MSNETTYPECONFIGFILE=nettype.cfg

       MSCONFIGFILEPATH=\
         [SYS_OS_WIN32]        "${HOME}/Empress;${EMPRESSPATH}/config"
         [ALL]                 "$HOME/.empress;$HOME;${EMPRESSPATH}/config"

       # ODBC INI File
       MSODBCINIFILE=odbc.ini

       # internal variables (Please do not modify)

       MSBUFFERRECORDFACTOR=1
       MSFILELOCKNBUCKETS=11
       MSFILELOCKNLOCKS=\
         [SYS_OS_UNIX_HPUX_64]                 314
         [SYS_OS_UNIX_DECUNIX]                 491
         [SYS_OS_UNIX_IRIX_64]                 491
         [SYS_OS_UNIX_SOLARIS_ULTRA_64]        235
         [ALL]                                 243
       MSNRECORDCACHE=10
       MSTRANSUFNBI=10

       # License (Please do not modify)

       MSLICENCE=228d2c3c208a5a88ec300a225b647d391013dc037975d183
       MSMAXPROCS=

変数の値であるシステムデフォルトを変更するためには、 `initfile.`を編集します。 変数を設定する上で、明示的なパス指定（Empressがインストールされたディレクトリ)として 変数`EMPRESSPATH`を使うことができます。 これにより、パスがより簡単にカスタマイズされることを可能にします。 `initfile`を修正する場合は、 変更する前に`initfile.orig`のような名前を付け、 オリジナルをコピーすることを強く推奨します。 Empressシステムのテストを実行する場合、 オリジナルファイルに戻す必要があります。 これはシステム変数としてオリジナルの値を用いない場合、 テストのプロセスがエラーを発生することがあるためです。

## 3.3 Empress システム変数の詳細

アルファベット順にEmpress システム変数の説明します。

### 3.3.1 MS4GLCHKNULVAL

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.2 MS4GLCOMPATCHK

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.3 MS4GLDEBUGSETUP

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.4 MS4GLFLUSHTYPEAHEAD

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.5 MS4GLFONTNAME

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.6 MS4GLNOLOADRUNMSG

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.7 MS4GLPRINTSCREEN

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.8 MS4GLPRINTSCREENFORMAT

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.9 MS4GLPSHEADER

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.10 MS4GLPSHEIGHT

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.11 MS4GLPSWIDTH

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.12 MS4GLXASYNCOFF

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.13 MS4GLXCOLORTOLERANCE

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.14 MS4GLXCURSORCOLOR

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.15 MS4GLXNEWCOLORMAP

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.16 MS4GLXPOINTERCOLOR

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.17 MS4GLXWINDOWTITLE

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.18 MSAPFMDB

この変数はEmpress 4GLシステム変数です。 詳細な説明は Empress 4GL: 管理者ガイド を参照してください。

### 3.3.19 MSBUFFERRECORDFACTOR

レコードレベル以外にロックレベルを設定されたテーブルに アクセスする場合、各レコードは個別にアクセスする必要はないため、 潜在的に読み込みバッファを利用します。 テーブルからデータを先読みするアルゴリズムを適用することが可能である場合、 それを利用します。 これにより、Empressが各レコードを読むためにディスクへアクセスする 必要がないという結果をもたらします。

`MSBUFFERRECORDFACTOR`変数はこのバッファリング操作を制御します。 ブロックが`MSBUFFERRECORDFACTOR`に指定された最小レコードを 保持できない場合か、レコードサイズがブロックサイズの倍数である場合は バッファリングを止めます。 1つのブロックサイズは、`MSDBBLOCKSIZE`変数によって決定されています。

デフォルトによって、Empressは、この変数に "1" を設定しています。

### 3.3.20 MSBULKSEGMENTSIZE

この変数は、転送するバルクデータの最小ブロックのために メモリ取得するサイズをバイト単位で指定します。 これは非常に大きいサイズ（数メガバイト、数ギガバイト）のバルクデータを 転送するアプリケーションにとっては有効です。 理由としてデータベースサーバーは少ないサイズの常駐を維持するためです。 `MSBULKSEGMENTSIZE`は指定されていませんが、デフォルトでは、 1 メガバイトに設定されています。

### 3.3.21 MSCFEXCLRETRY および MSCFEXCLSLEEP

`MSCFEXCLRETRY`変数は、 コーディネーターファイルに対しての排他的なアクセスを得るために ロック機構の試行回数を決めます。 デフォルトは 50 回です。 `MSCFEXCLSLEEP`変数は、各リトライ間のスリープ秒数を指定します。 デフォルトは 0.05 秒です。

Empress社では、 Empressサポートの助言なしに この変数の値の変更をしないことを推奨します。

### 3.3.22 MSCOORDTIMERFREQ

この変数は、クライアントがコーディネータにチェックインしなければならない 期間(数秒で)を指定します。 これはアクティブなデータベース上での オンラインバックアップ処理の管理のため、 コーディネーターに対し順番が必要になるためです。 デフォルトの値は 60 秒です。

### 3.3.23 MSCRAYQDELLOGDIR

この変数はクレイ・システムのみ関係があります。

この変数は"empqdel" (クレイ・システムのみ利用できるユーティリティ)により、 kill(`SIGKILL`)シグナルによって殺された リクエストについての情報をログ出力するディレクトリの指定をします。 この変数のデフォルトの値は "${EMPRESSPATH}/rdbms/spool/log"です。

### 3.3.24 MSCRAYQDELRETRY および MSCRAYQDELSLEEP

この変数はクレイシステムだけに関連した変数です。

`MSCRAYQDELRETRY`変数は、`empqdel`が `MSQDELSIGNAL`によって指定された終了シグナルを送るために 試行する回数を指定します。 デフォルト値は 10 回で、10未満の値を指定した場合、デフォルトの値が 使用されます。

`MSCRAYQDELSLEEP`変数は、`empqdel`が リクエストが死んだかどうかをチェックする前に待つ秒数を指定します。 デフォルト値は 5 秒で、5未満の値を指定した場合、デフォルト値が 使用されます。

### 3.3.25 MSCRAYQDELSIGNAL

この変数はクレイシステムだけに関連した変数です。

この変数は`empqdel`がプロセスを終了させるために シグナルの番号またはシンボル名を指定します。 有効な値は、 `HUP`, `1`, `QUIT`, `3`, `TERM`, `15`になります。 それ以外の値が設定された場合、 `empqdel`はエラーメッセージを出力し、終了します。

### 3.3.26 MSDATELIMIT

この変数は日付入力のために適切な世紀を設定します。 デフォルトでは "1950"です。 例えば、2桁のみの年数 "35" を入力した場合、 結果として "2035"と認識します。

### 3.3.27 MSDATEPIC

`MSDATEPIC`変数は、Empressレポートライターによって 出力される日付およびEmpressの日付入力を解釈するために デフォルトの日付ピクチャー(フォーマット)を指定します。 有効な日付ピクチャー(フォーマット)は、 Empress SQL: リファレンス マニュアルの データタイプ. を参照してください。 `MSDATEPIC`のデフォルトは、"`dd aaaaaaaaa yyyy`"です。 例えばSQLセッション内で"`27 June, 1992`"の書式を設定するには

       SET MSDATEPIC TO "dd aaaaaaaaa, yyyy";

のように設定します。

`DATE`型のアトリビュートに日付の値が入力された場合、 Empressは、最初に値がユニバーサル日付フォーマット(`yyyymmdd`) であるかどうかをチェックします。 それから、アトリビュートの日付フォーマットに指定されている 日、月、年の順を満たしているかどうかをチェックします。 そうではない場合は、値は`MSDATEPIC`に指定されている日、月、年の順 に対し、チェックされます。 有効な日付を生成しない場合、値は拒否されます。

日付が、式の中で使われている場合、 Empressは、最初に日付がユニバーサルフォーマットかどうかを チェックします。それから、`MSDATEPIC`によって指定された順を 満たしているかどうかをチェックします。有効な日付が生成されない場合は、 その値は拒否されます。

例えば、 `DATE (1)`型のアトリビュート(このフォーマットは`dd aaaaaaaaa yyyy`)として `MSDATEPIC`に"`mm dd yy`"が設定された場合、 値として"`24 5 92`", "`5 24 92`"および"`19920524`" は、24 May 1992 として受け付けられますが、"`1992 24 5`"は拒否されます。 例えば`05 05 92`のような曖昧な入力は、月の前に日付が与えられたものとして 解釈されます。

Empress レポートライターで直接、実行する場合に この変数を有効にするには、オペレーティングシステム上で 以下のように設定する必要があります。

       set MSDATEPIC='dd aaaaaaaaa, yyyy'

### 3.3.28 MSDDLTRANS

この変数はデフォルトで設定されています。 データ定義言語(DDL)コマンド(例えば `ALTER`, `CREATE TABLE`, `DROP TABLE`, `CREATE INDEX`, ... etc.) は、トランザクションによって保護されています。 （コマンドの実行とともに内部で自動的に トランザクション処理されます。）

例えば、テーブルの変更(`ALTER TABLE`)中にシステム障害が 起こった場合、この変数の設定によって、テーブルの回復のために ウォームリスタートコマンド(`empwarm`)を使用できます。

### 3.3.29 MSDISPLAYKATAKANA

この変数は、Empress日本語バージョンのみ利用することができます。

日本語では、２つのタイプの文字があり、 １つは全角の漢字・ひらがな・カタカナ・英数の2バイト文字と もう１つは半角カタカナと呼ばれる1バイト文字があります。

`MSDISPLAYKATAKANA`が設定されない場合、 半角カタカナ文字はそのまま表示されます。 `MSDISPLAYKATAKANA`に何か値が設定された場合は、 半角カタカナ文字は"?"マークとして表示されます。 これは、半角カタカナ文字を適切に表示することができない 端末でのみ意味があります。

### 3.3.30 MSDOLLAR

`MSDOLLAR`は、`DOLLAR`データ型の入出力フォーマットを制御します。 フォーマット指定は文字列として指定され、その最初の文字はドルとセントの セパレータを示します。２番目の文字は、3桁単位を示すセパレータです。 3番目の文字は、値がない場合にその桁に埋める文字を指定します。 （これは`DOLLAR`型のタイプ2の属性のためになります。） 残りの文字列は通貨記号を示します。（最大50文字) `MSDOLLAR`のデフォルト値は、"`.,*$`"です。

例えば、ドイツ通貨では`DOLLAR`型の(6, 2)とし、 `MSDOLLAR`は、"`,.*DM`"と設定した場合、 次のように出力します。

       DM**1.234,56

U.S通貨では、`MSDOLLAR`に"`., US$`"を設定することで 次のように出力します。

       US$  1,234.56

### 3.3.31 MSEDITOR

`MSEDITOR`には、 対話型SQLインターフェイスの`.zz`コマンド、 また、 Empress 4GLのフィールドエディタキーで実行される オペレーティングシステムのエディタを設定します。 デフォルトでは、

UNIX

       EDITOR=vi

Win32

       MSEDITOR=edlin

になります。

### 3.3.32 MSEXCLRETRY および MSEXCLSLEEP

`MSEXCLRETRY`変数は、 ロックを生成するためのテーブルのロックファイルへの排他的アクセスを得るために ロック機構を試行する回数を決定します。 （ロックファイルへのアクセスはデッドロックが発生しないために排他的であることが 必須になります。） デフォルトは 30　回です。 `MSEXCLSLEEP`変数は、それぞれの試行の間の秒数を決定します。 デフォルトは 1 秒です。

       SET MSEXCLRETRY TO 5;
       SET MSEXCLSLEEP TO 2;

上記の設定をした場合、ロックファイルが使用中であるテーブルにアクセスを する場合、Empressは、"`ロック中です`"のメッセージとともに あきらめるまでに２秒間のインターバルで、ロックファイルにアクセスを ５回試み、合計では8秒間費やされます。

`MSEXCLSLEEP`は、小数付きの設定が可能です。例えば以下の設定ができます。

       SET MSEXCLSLEEP TO 1.0015
       SET MSEXCLSLEEP TO 0.357

### 3.3.33 MSF77BACKSCAN and MSF90BACKSCAN

文字列走査のフォートランコンパイラの動作定義を行う内部設定です。 この値は変更しないでください。

### 3.3.34 MSF77BUFCOPY and MSF90BUFCOPY

この変数は、Empress フォートランインターフェイスの フォートラン文字列処理を管理する変数の１つです。 詳細な情報はEmpressフォートランインターフェイス を参照してください。

### 3.3.35 MSF77IGNORELENGTH and MSF90IGNORELENGTH

この変数は、Empress フォートランインターフェイスの フォートラン文字列処理を管理する変数の１つです。 詳細な情報はEmpressフォートランインターフェイス を参照してください。

### 3.3.36 MSF77TERMCHAR and MSF90TERMCHAR

この変数は、Empress フォートランインターフェイスの フォートラン文字列処理を管理する変数の１つです。 詳細な情報はEmpressフォートランインターフェイス を参照してください。

### 3.3.37 MSFILELOCKNBUCKETS

`MSFILELOCKNBUCKETS`変数は、Empressがロックファイル内への ロックの格納で必要なバケット数に関連します。 最適の数はロック数のおよそ 7 分の 1 で、素数であるべきです。 通常、この値はEmpress社によって指定され、 `MSFILELOCKNLOCKS`変数が変更された場合のみにこの値を 変更すべきです。

### 3.3.38 MSFILELOCKNLOCKS

`MSFILELOCKNLOCKS`は、常にひとつのロックファイルに格納 することができる最大ロック数を指定します。 この変数は以下の場合、変更することができます。 例えば、非常に多くのレコードロックを扱うトランザクションにおいて、 その値を増やす必要があるかもしれません。 `MSFILELOCKNLOCKS`変数を非常に高い値を設定し ロックをファイルで行った場合、 大きなロックファイルを読むことを要求され、 これらのディスク上のファイルを読むために パフォーマンスは劣化することに注意してください。

### 3.3.39 MSFILESOPEN

`MSFILESOPEN`は、一度にEmpressがオープンすることができる 最大ファイル数を指定します。 従って、ユーザが一度に利用可能なファイル数になります。 この設定をする場合、Empressが起動される前にこの変数を 変更する必要があります。 デフォルト値は 30 です。

プログラム内でファイルをオープンする必要がある場合、 Empressが、すべての有効なファイルディスクリプタを 使用したために実行することができないことがあり、この場合は Empressがオープンを試みるファイル数を制限しなくては なりません。このような状況でこの変数は役立ちます。 例えば、Empressが一度にオープンすることができる最大ファイル数を 10 と制限する場合、オペレーティングシステムのプロンプト上で 以下を入力します。

UNIX の C シェルの場合

       setenv MSFILESOPEN 10

UNIX の Bourne シェルの場合

       MSFILESOPEN=10
       export MSFILESOPEN

Win32 の場合

       set MSFILESOPEN = 10

この設定は、一度にオープンできるファイル数ですので、 Empress自体が 10 ファイルだけしかアクセスできないと いうことではありません。 この制限を越えてアクセスする場合、 Empressは、別のファイルをオープンする前に 最小さく、最近、使用されたファイルをクローズします。 Empressによってクローズされたファイルが再び関連付けられた場合、 Empressは自動的にそのファイルを再オープンします。 Empressは、内部にこれらのファイルの情報を保持し、 ファイルのクローズおよび再オープンは、ユーザーに対し透過しています。

### 3.3.40 MSFORCEPLOCK

`MSFORCEPLOCK`が設定された場合、 メモリ上にプロセスをロックします。 (適切な特権を持つと仮定します。） このことはプロセスのスワップを防ぎます。

注意として

1. ほとんどのシステム上では、ユーザーは 正常に"plock"を使用するために"root"である必要があります。
2. クレイとHP上では、ユーザーは"plock"を使用する許可を持つ必要があります。

全体で利用する場合は、 重大なシステムパフォーマンスの低下を起こす可能性があるため、 この設定を行う場合は、システム全体を注意深く考慮する必要があります。 つまり、この使用においては単に特定のアプリケーションのみで 使用されるべきであり、例外的にもちいるべきです。 この設定を決して`initfile`に設定してはいけません。 また、環境変数としても設定すべきではありません。 設定する場合は、 スクリプトファイルの終了をおこない自動的に設定を外す プロセスに関連したスクリプトに単に設定すべきです。

### 3.3.41 MSGCWDSIGCHLDRESET

オペレーションシステムによっては、 `getcwd`システムコールは適切なオペレーションの`SIGCHLD` シグナルに依存します。 Empressは、システムからカレントディレクトリ情報を取得するために `getcwd`システムコールを使用します。 Empressクライアントプロセスが `SIGCHLD`シグナルをトラップする場合、 Empressの`getcwd`の使用を禁じ、 Empressをハングさせます。 この状況を回避するために `getcwd`をコールする前に Empressは`SIGCHLD`を `SIGDFL`に設定し、 `getcwd`が完了した時のオリジナルハンドラのための `SIGCHLD`をリセットします。

`MSGCWDSIGCHLDRESET`変数はデフォルトでは設定されていません。

### 3.3.42 MSGETHOSTTIME

Empressのプロセスが開始されたときに、 それがじっこうされたマシンのネットワーク名とネットワーク番号を 見つけることを試みます。 ネットワークの問題やマシンの設定が正しくない場合、 ホスト情報を検索するために数分かかる可能性があります。 このような問題をユーザーに通知するために、 ホスト情報の検索する時間がこの変数の値より長い場合、 すべてのEmpressプロセスは警告メッセージを出力します。

非常に重たいマシンでは不必要な警告を回避するために この変数の値を修正することがあります。 デフォルトでは 5 秒で、この値を指定する場合は 1 以上の整数を 指定します。

### 3.3.43 MSGETPW

Empressは、ユーザーIDを得るためにデフォルトで `getpwuid`システムコールを使用します。 ローカルシステム上で`getpw`システムコールが サポートされている場合、 `getpwuid`の代わりに`getpw`の使用するために この変数を設定することができます。 `getpw`がサポートされていない場合は、この変数は影響を与えません。 `MSGETPW`変数はデフォルトでは設定されていません。 `getpw`システムコールは、`getpwuid`の古い実装で、 この変数は、互換性の理由により提供されています。 NIS(Network Information System)およびイエローページが稼動しているシステムでは この変数を設定する必要はありません。

### 3.3.44 MSGUIDB

この変数はEmpress GUIシステムデータベースのパスを指定します。 デフォルトは、"${EMPRESSPATH}/rdbms/gui/empguidb"です。

### 3.3.45 MSGUIDEFAULTSTYLE

この変数は、GUIアプリケーションの画面スタイルを定義します。 この変数が設定されていない場合、スタイルとして`MSGUISYSMAIN` の値を使います。 値が数値として設定された場合、スタイルは `MSGUISYSMAIN`に 定義された数値と一致します。

### 3.3.46 MSGUIDEFCOLORFILE

この変数はEmpress GUI ビルダーのカラーファイルのパス名を指定します。 デフォルトは"`${EMPRESSPATH}/rdbms/gui/colortab`"です。

### 3.3.47 MSGUIFONTSPEC

この変数はEmpress GUI ビルダーで利用されます。 xterm のフォントを定義をします。

### 3.3.48 MSGUIRGBTEXT

この変数は、X Window の RGBテキストファイルのパスを指定します。

### 3.3.49 MSGUISYSMAIN

この変数はEmpress GUI ビルダー環境のためのカラー設定です。 この変数の詳細な情報は Empress GUI: ユーザーズガイドを参照してください。

### 3.3.50 MSHELPPATH

`MSHELPPATH`は、 Empressヘルプファイルが置かれているディレクトリを指定します。 通常、提供されたヘルプファイル以外にヘルプファイルのセットを使う場合、 この変数を設定する必要があります。

### 3.3.51 MSHOSTNAME

複数のネットワーク上でのシステムのために用いられます。 この変数が設定された場合、Empress データベースサーバーは、 デフォルトのホスト名の変わりにシステムの識別子としてこの名前を利用します。 例えば、システムのデフォルトネットワークの代わりにより速いネットワークを使用する場合 など。

### 3.3.52 MSIAEXCLRETRY および MSIAEXCLSLEEP

`MSIAEXCLRETRY`変数は、 対話型インターフェイスおよびEmpress 4GLを通じて テーブルのロックファイルへ排他的アクセスを得るために ロック機構を試行する回数を決定します。 これは`MSEXCLRETRY`の設定より優先されます。 この 2 つの変数は必要です。なぜならば 対話的にテーブルのアクセスを試みている間の 多くの検索は望ましくはないからです。デフォルトは 2　回です。

`MSIAEXCLSLEEP`変数は、ロックファイルへのそれぞれの試行の間の秒数を 決定します。このデフォルトは 1 秒です。 この変数は、小数点以下を設定することも可能です。

SQLセッション内で設定する場合

       SET MSIAEXCLRETRY TO 5;
       SET MSIAEXCLSLEEP TO 2;

上記の設定をした場合、 ロックファイルが使用中であるテーブルにアクセスをする場合、 Empressは、"ロック中です"のメッセージとともに あきらめるまでに２秒間のインターバルで、 ロックファイルにアクセスを５回試み、合計では8秒間費やされます。

### 3.3.53 MSIALOCKRETRY および MSIALOCKSLEEP

`MSIALOCKRETRY`変数は、 対話型インターフェイスを通じて テーブルに対するロックを生成するために試行する回数を決定します。 これは`MSLOCKRETRY`の設定より優先されます。 この設定をする理由は、例えばテーブルに他のロックを生成することを 妨げるために`update`モードでロックされている可能性があり、 それにより、ロックの生成の試行がその最初の試行で失敗するために リトライの設定を行います。 デフォルトでは 2 回です。

`MSIALOCKSLEEP`はリトライ間の秒数を指定します。 デフォルトでは 1 秒です。 この変数は、小数点以下を設定することも可能です。

SQLセッション内で以下のように入力することで設定ができます。

       SET MSIALOCKRETRY TO 5;
       SET MSIALOCKSLEEP TO 2;

上記の設定をし、 テーブルに対してロックを生成する試みを行う場合、 Empressは、2 秒間のインターバルで 5 回の試行をおこないます。 次の指示への要求の前に合計 8 秒間費やされます。 更新処理では、テーブルにアクセスすることができないか、また Empressが、必要なレコードを見つけることを開始できない場合、 リトライか終了を指定しても構いません。 以前、更新が開始され、アクセス不可能なレコードである場合 リトライかスキップまたは終了を指定しても構いません。 登録処理では、リトライか終了を指定しても構いません。

### 3.3.54 MSINDEXLISTCUTOFF

この変数は、 テーブルの総レコード数に対するパーセンテージで指定します。 この値を超えた場合、検索においてインデックスを使用しません。 テーブル中の総レコード数に対して検索されるであろうレコード数が この設定値を超えた場合、Empressは テーブルの総レコード数に対するパーセンテージを越えた段階でインデックス を使った検索を止めます。 例えば、10 が設定された場合、インデックス検索は、 その検索の基準になるレコードの検索を始めます。 テーブルの総レコード数の10%に一致したときに 検索処理は、インデックスを放棄し、テーブル自体を使用します。 レコード中の大きなパーセンテージで検索される場合、 基のテーブルに直接、検索することよりは効率的であるため この変数は検索の最適化のために有用です。

デフォルトではこの変数の値は 100 が設定されています。 したがって、常にインデックスを使用します。

### 3.3.55 MSINDEXLISTCUTOFFMIN

この変数は、 `MSINDEXLISTCUTOFF`の設定を無視し、 インデックス検索をする最小のレコード数を指定します。 設定されたレコード数が検索された段階でインデックスを使うことを止め、 基のテーブルを検索します。（インデックス検索を放棄するということは テーブルの全件検索をするということになります。） 例えば、100 が設定された場合、 `MSINDEXLISTCUTOFF`を無視し、 100 レコードまではインデックスを使って検索します。 検索がこの設定された数を越えた場合は、 `MSINDEXLISTCUTOFF`を考慮します。

デフォルトではこの変数の値は 0 に設定されています。 したがって、インデックスが有効であれば、検索の動作は `MSINDEXLISTCUTOFF`によって制御されることになります。

### 3.3.56 MSINDEXRETRY および MSINDEXSLEEP

`MSINDEXRETRY`変数は、Empressがインデックスをロックするための 試行回数を設定します。デフォルトでは 5　回です。

`MSINDEXSLEEP`変数は、インデックスをロックするための試みの間に ウェイトする秒数を設定します。 デフォルトでは 1 秒です。 この変数は、小数点以下を設定することも可能です。

SQLセッション内で リトライ数を 10 回、2 秒間のインターバルを設定するには 以下のように設定します。

       SET MSINDEXRETRY TO 10;
       SET MSINDEXSLEEP TO 2;

### 3.3.57 MSINDEXSORTCUTOFF

この変数はテーブルの総レコード数に対するパーセンテージを指定します。 レコードのソート処理においてこの値を超えた場合に インデックスを使用します。 ソートするレコード数が、 設定された総レコード数に対するパーセンテージ以下である場合、 Empressは、ソート処理においてインデックスを使用せず、 メモリ上で実行します。 大きなインデックスがあり、ごくわずかなレコードをソートする場合、 ソートのためのインデックスソートの前にメモリを利用することは より効率的です。 例えば この値として 10 が設定されている場合、 10% を越えたレコードのソート処理はインデックスが使用されます。

デフォルトではこの値は 3 が設定されています。

### 3.3.58 MSINETMESSAGERETRY および MSINETMESSAGETIMEOUT

`MSINETMESSAGETIMEOUT` および `MSINETMESSAGERETRY` それぞれにクライアントのメッセージハンドラの確認を待つための タイムアウト値とリトライ数になります。

これらの変数はサーバーコンフィグレーションファイルに設定しなくてはなりません。 環境に設定した場合、それらを認識しません。

### 3.3.59 MSINETPACKETRETRY および MSINETPACKETTIMEOUT

`MSINETPACKETTIMEOUT` および `MSINETPACKETRETRY`は、 それぞれに確認を待つクライアントのパケットハンドラのタイムアウト値と リトライ数になります。タイムアウト値は秒数であり。これらの設定はオプションです。 返答を非常に短く設定した場合やメッセージタイムアウトは リクエストやリプライが多い場合、 不必要なリクエスト再送信になることがあり、 重大なパフォーマンスの低下を引き起こす可能性があります。

これらの変数はサーバーコンフィグレーションファイルに設定しなくてはなりません。 環境に設定した場合、それらを認識しません。

### 3.3.60 MSINETREPLYRETRY および MSINETREPLYTIMEOUT

MSINETREPLYRETRY および MSINETREPLYTIMEOUT それぞれに 高レベルの応答を待つクライアントのタイムアウト値とリトライ数になります。

これらの変数はサーバーコンフィグレーションファイルに設定しなくてはなりません。 環境に設定した場合、それらを認識しません。

### 3.3.61 MSKEEPNONPRINTCHAR

`<Tab>`や`<Backspace>`のような 出力できない文字は、通常、Empressの出力では除かれますが、 `MSKEEPNONPRINTCHAR`に値を設定することでこれらの文字を 解釈します。

### 3.3.62 MSKILLLOGDIR

この変数は `empkill`により、kill (`SIGKILL`)シグナルによって殺された プロセスについての情報をログ出力するディレクトリを指定します。 この変数のデフォルトは"${EMPRESSPATH}/rdbms/spool/log"が設定されています。 ログファイル名は、`${EMPRESSPATH}/rdbms/spool/log/ユーザー名.log` として作成され、このユーザー名は `empkill`を実行したログインユーザー名です。

### 3.3.63 MSKILLRETRY と MSKILLSLEEP

`MSKILLRETRY`変数は、 `empkill`が、`MSKILLSIGNAL`変数によって指定された 終了シグナルを送ることを試みる回数を指定します。 デフォルト値は、10 回ですが、2 以下の値が指定された場合、 デフォルト値が値として使用されます。

`MSKILLSLEEP`変数は、 `empkill`が、プロセスが死んだかどうかをチェックする前に 待つための秒数を指定します。 デフォルト値は、3 秒ですが、2 以下の値が指定された場合、 デフォルト値が値として使用されます。

### 3.3.64 MSKILLSIGNAL

この変数は、 `empkill`がプロセスを終了させるために 送信するシグナルの番号かシンボル名を指定します。 有効な値は、 `HUP`, `1`, `QUIT`, `3`, `TERM`, `15`になります。 それ以外の値が設定された場合、 `empkill`はエラーメッセージを出力し、終了します。

### 3.3.65 MSLANG

`MSLANG=特定言語`を設定することで EmpressはNLSデータベースの`nls_特定言語`テーブルを探します。 このテーブルは、特定言語のEmpressのメッセージを格納しています。 プロセスが起動するときに以下のステップを行います。

1. 環境変数から`MSLANG`変数を探し、それが設定されている場合は セカンダリ言語としてその値を設定します。 `MSLANG`が設定されず、`LANG`を設定されている場合は セカンダリ言語として`LANG`の値を設定します。

2. NLSデータベースに `特定言語`は、セカンダリ言語名であるところの `nls_特定言語`名のメッセージテーブルが含まれている場合、 そのテーブルはすべてのEmpressメッセージのために利用されます。

3. NLSデータベースに `nls_特定言語`名のメッセージテーブルが含まれていない場合、 プライマリ言語のメッセージテーブルが使用されます。 プライマリ言語の設定は、 Empress社によって、 またディストリビュータによって設定されます。 Empressメッセージが出力されるデフォルト言語になります。

例えば、Empressユーザーが、プライマリ言語がドイツ語である Empressバージョンを持っている場合、 NLSデータベースは、すべてのEmpressメッセージを含む `nls_german`テーブルを持っています。 Empressのコピーの 単一言語として英語を話すユーザーは、 環境変数に`MSLANG=english`を設定することによって、 `nls_english`テーブルは常に有効である場合、 今までどおり理解できるメッセージを得ることができます。

注意として

- ユーザーはプライマリ言語を変更することはできません。
- Empressのすべてのコピーは有効な`英語`メッセージセットを持っています。
- Empressのいくつかのコピーでは、有効な他の言語の メッセージセットを持っていることがあります。

### 3.3.66 MSLICENCE

この変数はライセンス情報を含んだEmpressの内部変数です。 この値は変更しないでください。

### 3.3.67 MSLINECONT

`MSLINECONT`変数は、 次の行にカレント行を続けるために使用する文字列を設定します。 （これは新しい行をマスクするため） デフォルトの値はバックスラッシュ( `\`)です。

継続文字として"`-`"を 問い合わせ言語コマンドとして SQLスタイル行 Set SQL-style line continuation, with "`-`" as the continuation character, with the the Query Language command:

       SET MSLINECONT TO "-";

### 3.3.68 MSLKCOMMITADDEND

この変数は、 レコードレベルロックに設定されたテーブルに登録処理をする場合に Empressの動作に影響します。 設定された場合、連続した登録の間にロックマネージャへのアクセス回数を 減らします。 これはロックマネージャへのより少ないアクセスにより、いくつかのスピードの 改善をおこなうことができます。 例えば、 レコードの連続登録処理の通常のEmpressの動作は 以下が繰り返されます。

1. update ロックを得ます。
2. レコードを書き込みます。
3. ロックを解放します。

この変数に値をセットすることでEmpressは

1. 最初のレコードにupdateロックを得ます。以降を繰り返します。
2. レコード N を書き込みます。
3. レコード N のロックを解放します。そして N+1 のレコードのロックを得ます。

ステップ3の処理により、ロックの解放とロックの取得を同時に行うことで 若干の性能の改善をすることが期待できます。

mrプログラムでは、 ステップ2 と 3 は`mradd()`と一致します。 そして`mraddend()`をコールし、 最後のレコード N + 1のロックを解放します。 `mraddend()`は、 それが実行されるまで最後のロックは保持されるため、 最後の登録をした後にすぐにコールされます。

デフォルトではこの変数の値は設定されていません。

### 3.3.69 MSLOCKPLAN

Empress変数`MSLOCKPLAN`は、 データベース操作が実行されると同時に ロック情報について提供します。 ロックタイプ、 ロックモード(`read`, `deferred`, `update`) および実行された操作が成功か、失敗か を生成し出力します。

`MSLOCKPLAN`は、環境変数として設定することができます。 また、Empress の `config` directory中の`initfile` およびSQLセッションでの`SET`コマンドにより設定することができます。 SQLセッションの中で`MSLOCKPLAN`を設定するためには以下のコマンドを 使います。

       SET MSLOCKPLAN TO 'X';

`MSLOCKPLAN`には、どのような値を設定しても構いません。

### 3.3.70 MSLOCKRETRY および MSLOCKSLEEP

`MSLOCKRETRY`は、ロックファイルへのアクセスができたテーブルに 対するロックの生成をする試行回数を決定します。 この設定をする理由は、例えばテーブルに他のロックを生成することを 妨げるために`update`モードでロックされている可能性があり、 それにより、ロックの生成の試行がその最初の試行で失敗するために リトライの設定を行います。 デフォルトでは 50 回です。

`MSLOCKSLEEP`変数は、リトライ間のウェイト秒数を設定します。 デフォルトは 0.09　秒です。この変数は、小数点以下を設定することも可能です。

SQLセッション内で設定する場合、以下を入力します。

       SET MSLOCKRETRY TO 5;
       SET MSLOCKSLEEP TO 2;

上記の設定をし、テーブルに対してロックを生成する試みを行う場合、 Empressは、2 秒間のインターバルで 5 回の試行をおこないます。 Empressは、"ロック中です"のメッセージとともにあきらめるまでに に合計 8 秒間費やされます。

### 3.3.71 MSMAXPROCS

`MSMAXPROCS`と`MSFILELOCKNLOCKS`および`MSFILELOCKNBUCKETS`の 3 つの変数は各データベース内の`_lock`ディレクトリ内に管理されている ロックマネージャのサイズを制御します。 これらはファイルタイプのロックの場合において管理を行います。

Empressプロセスの最大数は、 インストレーションキーによって指定され、 同時に`MSMAXPROCS`の最小値が取られ、 ロックマネージャにアクセスすることを許可します。 この変数はインストレーションキーによって上限値が設定されているため、 通常、Empressユーザーによってこの値を増やすことはできません。

### 3.3.72 MSMIGRATERETRY および MSMIGRATESLEEP

これらの変数はクレイシステムのみ使用されます。

`MSMIGRATERETRY`変数は、 CRAYがディスクなしに移行した場合に Empressがサーバーを通してファイルをオープンする試行回数を決定します。 Empressは、失敗する前に `MSMIGRATERETRY`に指定された回数をリトライします。

`MSMIGRATESLEEP`変数はこのファイルをオープンすることを試行する間の 待ち秒数を設定します。 この変数は小数点以下の設定も可能です。

以下はコマンドで入力する場合になります。

       set MSMIGRATERETRY to 4;
       set MSMIGRATESLEEP to 1.25;

上記のように設定し、サーバーを介してファイルにアクセスを試みる場合、 Empressは、1.25秒のインターバルをとり、4回の試行をします。 あきらめるまで 合計 5 秒費やされます。

注意としてこの変数はローカルアクセスでは影響は与えません。このファイルは サーバーを介してのアクセスで必要になります。

### 3.3.73 MSMKDBSHMEM

`MSMKDBSHMEM` 変数が設定されている場合、 `empmkdb`コマンドの`-shmem`オプションが指定されていなくても シェアードメモリを伴ったデータベースを作成します。

デフォルトでは設定されていません。

### 3.3.74 MSMWNULLOK

`MSMWNULLOK`は、Empressレポートライターがヌルを出力する際に エラーメッセージの出力を抑えるために設定します。 これはデフォルトによって設定され、 変数に値を設定しないことでエラー抑止を中止することができます。

### 3.3.75 MSNLSCODESET

このコードセットは以下の決定をするルックアップテーブルです。

1. Empress内部標準(EIS)へのキーボードからの文字のトランスレーション

2. EISから出力デバイスへ。 EISはISO ラテン 1 コードセットです。 内部標準へのこのトランスレーションは、 データを入力し、またデータベースからデータを読む 異なるハードウェアを持ったユーザを許可します。

注意として

- Empress内部標準への入力からのマッピングは 出力マッピングへのEISと同じにする必要はありません。
- ユーザーは新しいコードセットを設定することはできません。
- 有効なコードセットは `latin1` (the ISO 'Latin 1' standard), `ibmpc` (for IBM PC's), `vt200` (for DEC vt200's)および、 ディストリビュータによって追加された可能性があるものが含まれています。

### 3.3.77 MSNRECORDCACHE

テーブルがオープンされるとき(例えばSQLで`SELECT`を実行)は常に Empressは処理速度向上のための操作としてキャッシュをセットアップします。 このキャッシュはテーブルをクローズされるときに廃棄されます。 `MSNRECORDCACHE`は、それが保持できるレコード数の単位で キャッシュサイズを設定します。 (従って、それぞれオープンされたテーブルは異なるキャッシュサイズを持っているかもしれません。) キャッシュから読み込み、またキャッシュから書き込みおよびフラッシュを 行うことは、緊密にロックと同期しています。 以下の状況を除いてレコードキャッシュは、 常に実装されることに注意してください。

- レコードレベルロックを設定したテーブルである場合、 少なくとも以下の1つのステートメントに真になります。

  - トランザクション中ではない。
  - テーブルはローカルにアクセスしている。(つまりEmpress Serverを通しではない)

この変数はデフォルトで 10 が設定されいます。 効果的な設定は、`MSTRANSUFNGFL`変数の倍数を設定すべきです。 0 が設定された場合はレコードキャッシュを行いません。

### 3.3.78 MSNULLVALUE

`MSNULLVALUE`変数は、Empressの出力内の null 値を置き換えるために 文字列を定義します。 デフォルトは設定されていません。そのため、null 値は出力しません。

### 3.3.79 MSODBCINIFILE

`MSODBCINIFILE`変数は、ODBC クライアントがデータソースを解決するために 使用されるODBCデータソース定義ファイル名を指定します。 デフォルトは"odbc.ini"ファイルです。

### 3.3.80 MSOLBBACKUPDEVICE

この変数は、データベースのオンラインバックアップデータを保存する デフォルトの装置およびファイル名を指定します。 指定は、おそらくテープ装置かDAT装置およびファイルになります。 ファイルを指定した場合、指定したファイルのファイルシステムが、 バックアップデータを保存できるだけの十分な余裕が あることに注意する必要があります。

### 3.3.81 MSOLBBLOCKSIZE

この変数はオンラインバックアップ装置のブロックサイズを指定します。

### 3.3.82 MSOLBRECOVERYLOG

この変数は、 オンラインバックアップを実行している間に発生する データベースへのアクセスを記録するために使用される 非連続的なリカバリーログファイル名を指定します。 このファイルはバックアップが完了した時点で削除されます。 デフォルトのファイルは、 バックアップが実行されたローカルディレクトリに `olbreclog`という名前のファイルで 作成されます。

### 3.3.83 MSPAGELENGTH

`MSPAGELENGTH`変数は、Empress レポートライターの デフォルトページ長（1ページ内のデフォルトの行数）を設定します。 デフォルトでは 66 に設定されています。 デフォルトページ長を 23 に設定するには、 オペレーティングシステムのプロンプト上で以下のコマンドを入力します。

UNIXの場合

       setenv MSPAGELENGTH 23

Win32の場合

       set MSPAGELENGTH=23

### 3.3.84 MSPAGER

`MSPAGER`変数は、問い合わせ言語コマンドのページ出力のために 使用されるオペレーティングシステムコマンドを設定します。 `MSEDITOR`のように、パイプを含む、シェルスクリプト（標準入力から読み込み) を設定する可能性があります。（例えば`"pr | more"`) シェルスクリプトが使用される場合、その用法は `MSSHELL`によって指定されたシェルの構文である必要があります。 デフォルトはシステムの`more`コマンドです。

SQLセッション内でページ処理を `"pr | more"` に変更する場合は 以下のように設定します。

       SET MSPAGER TO "pr | more";

### 3.3.85 MSPAGEWIDTH

`MSPAGEWIDTH`変数は、Empress レポートライターの デフォルトページ幅（1ページのデフォルトのカラム数）を設定します。 デフォルトでは 132 に設定されています。 デフォルトページ幅を 80 に設定するには、 オペレーティングシステムのプロンプト上で以下のコマンドを入力します。

UNIXの場合

       setenv MSPAGEWIDTH 80;

Win32の場合

       set MSPAGEWIDTH=80

### 3.3.86 MSPERMS

`MSPERMS`は、Empress出力ファイルのアクセス許可を設定します。 アクセス許可は、 `R` (`read`), `W` (`write`), `E` (`execute`) の組み合わせにより指定します。 また、こららは、 `所有者`, `グループ` および `他人` の順に指定します。 例えば、`initfile`に新しいファイルのアクセス許可として、 `所有者`に`read-write`, `グループ`に`read` `他人`に`read` 設定する場合、以下のように指定します。

       MSPERMS=RW,R,R

許可はオペレーティングシステムによって設定された制限を無視しませんが、 新しいファイルに追加の制限を設定することはできます。

### 3.3.87 MSPRINTER

`MSPRINTER`変数は、出力をプリンタに送るために使用するオペレーティングシステムの デバイス名を指定します。

UNIX システムでは、パイプを含む、シェルスクリプト(標準入力からの読み込み）を 設定する場合もあります。 シェルスクリプトが使用される場合、その用法はシェルでの指定方法でなければならない ことに注意してください。 デフォルトでは"`pr |lpr`"です。 問い合わせ言語のコマンドによって、"`lpr`"へのプリンタ出力に設定する場合は 以下のように入力します。

       SET MSPRINTER TO "lpr";

### 3.3.88 MSQLAUTOPAGE

`MSQLAUTOPAGE`変数に任意の値を設定することで各コマンドに`INTO PAGER`が 付加されます。これより、問い合わせ言語による出力は自動的にページ処理されます。 （`INTO PRINTER`のようなコマンド内の出力の指示は`INTO PAGER`を無効にします。） これを設定することで各コマンドにオーバヘッドが生じ、レスポンスが多少遅くなることに 留意してください。デフォルトでは自動ページ処理はオフになっています。

以下は自動ページ処理を有効にするための問い合わせ言語コマンドです。

       SET MSQLAUTOPAGE TO x;

### 3.3.89 MSQLCMDSAVE

`MSQLCMDSAVE`変数は、コマンド履歴機能によって保存されるコマンド数を 決定します。デフォルトでは 50 コマンドです。 以下の設定例は、最後の 20 コマンドのみを保存する問い合わせ言語コマンドです。

       SET MSQLCMDSAVE TO 20;

### 3.3.90 MSQLCOUNT

`MSQLCOUNT`変数を設定することで、`SELECT`, `DELETE`および `UPDATE`コマンドによって影響を受けるレコードカウント数を生成します。 デフォルトではこの変数は設定されていません。 以下の設定例は、この変数を設定するための問い合わせ言語コマンドです。

       SET MSQLCOUNT TO true;

### 3.3.91 MSQLECHO

`MSQLECHO`は、コマンドのエコーを制御します。 値の指定は、スペースによって分離された値 `BATCH`, `CONV`, `RUN`の 複合の形で定義することができます。 デフォルトでは`RUN`が設定され、問い合わせ言語では `RUN`コマンドがエコーされます。 (`run`コマンドよって実行されるコマンドがエコーされます。） `MSQLECHO`に`BATCH`が設定された場合は、 `empbatch`によって実行されたコマンドと`RUN FROM file`よって 実行されたコマンドの問い合わせ言語コマンドがエコーされます。 `MSQLECHO`に`CONV`が設定された場合は、 すべてのオンラインの問い合わせ言語コマンドがエコーされます。 （それは入力したコマンドとそのエコーが画面上に表示されます。)

`MSQLECHO`のSQLでの構文は以下のとおりです。

       SET MSQLECHO TO |BATCH| {|BATCH|};
                       |CONV |  |CONV |
                       |RUN  |  |RUN  |

例えば、`empbatch`に`run`コマンドを付加する場合

       SET MSQLECHO TO BATCH RUN;

### 3.3.92 MSQLGCHARWIDTH

式が評価される場合、結果としてパラメータなしのデータとして返されます。 charcter データに対しては、`MSQLGCHARWIDTH`変数は、出力カラム幅を決定します。 デフォルトは 20 です。 （select文 において、式や関数など[max, min, + - etc...]を用いた場合、その結果 の値はデータ型としてのパラメータ情報を持っていません。そのため表示する場合、 `MSQLGCHARWIDTH`変数のカラム幅に従います。)

### 3.3.93 MSQLGDATEWIDTH

式が評価される場合、結果としてパラメータなしのデータとして返されます。 date データに対しては、`MSQLGDATEWIDTH`変数は、出力カラム幅を決定します。 デフォルトは 20 です。 （select文 において、式や関数など[max, min, + - etc...]を用いた場合、その結果 の値はデータ型としてのパラメータ情報を持っていません。そのため表示する場合、 `MSQLGDATEWIDTH`変数のカラム幅に従います。)

### 3.3.94 MSQLGDECIMALWIDTH

式が評価される場合、結果としてパラメータなしのデータとして返されます。 decimal データに対しては、`MSQLGDECIMALWIDTH`変数は、出力カラム幅を決定します。 （select文 において、式や関数など[max, min, + - etc...]を用いた場合、その結果 の値はデータ型としてのパラメータ情報を持っていません。そのため表示する場合、 `MSQLGDECIMALWIDTH`変数のカラム幅に従います。) `MSQLGDECIMALWIDTH`は、カラム内に現れるデータのフォーマットのみを制御します。 例えば、group 以下に指定された関数の decimal データの結果のフォーマットは制御しません。 デフォルトではカラム幅が14 カラムで小数点以下2桁です。 SQL内でカラム幅を 10　で小数点以下 4桁にする場合は以下のように設定します。

       SET MSQLGDECIMALWIDTH TO '10 4';

### 3.3.95 MSQLGFLOATWIDTH

式が評価される場合、結果としてパラメータなしのデータとして返されます。 floatデータに対しては、`MSQLGFLOATWIDTH`変数は、出力カラム幅を決定します。 デフォルトは 22 です。 （select文 において、式や関数など[max, min, + - etc...]を用いた場合、その結果 の値はデータ型としてのパラメータ情報を持っていません。そのため表示する場合、 `MSQLGFLOATWIDTH`変数のカラム幅に従います。)

### 3.3.96 MSQLGINTEGERWIDTH

式が評価される場合、結果としてパラメータなしのデータとして返されます。 floatデータに対しては、`MSQLGINTEGERWIDTH`変数は、出力カラム幅を決定します。 デフォルトは 11 です。 （select文 において、式や関数など[max, min, + - etc...]を用いた場合、その結果 の値はデータ型としてのパラメータ情報を持っていません。そのため表示する場合、 `MSQLGINTEGERWIDTH`変数のカラム幅に従います。)

### 3.3.97 MSQLONELINE

`MSQLONELINE`に何か値を設定することで、通常のセミコロン";"ではなく、 改行がコマンドの終了であることを指示します。 この変数がセットされた場合、1 行を越えるコマンドの指定は、行を続けることを 表す文字で終わる必要があります。( `MSLINECONT`を参照。)

SQLセッション内で改行をコマンドの終了とする場合

       SET MSQLONELINE TO 'x';

### 3.3.98 MSQLPROMPT1 および MSQLPROMPT2

`MSQLPROMPT1`変数は、プライマリEmpressプロンプトを指定します。 デフォルトのプロンプトは現在のコマンド番号 と アスタリスク、スペースになり、 起動時の最初のコマンドプロンプトは"`1*` "、次のプロンプトは"`2*` " のようになります。これはSQLセッションでで以下の構文によって指定した場合と 同じ設定になります。

       SET MSQLPROMPT1 TO "CMDNUM* ";

`CMDNUM`は、Empressにその指定された位置に現在のコマンド番号を挿入するように 指示します。

`MSQLPROMPT2`変数は、セカンダリのEmpress プロンプトを設定します。 このプロンプトは、1 行を越えるコマンドで表示されます。 通常、ピリオドの後にスペース("`.` ")になります。

SQLセッション内において、プライマリプロンプトを"`emp:` " に、 セカンダリプロンプトを"`more:` "と設定する場合は以下のように指定します。

       SET MSQLPROMPT1 TO "emp: ";
       SET MSQLPROMPT2 TO "more: ";

### 3.3.99 MSQLSELBOX

`MSQLSELBOX`に何か値を設定することで、 `SELECT`コマンドの出力結果に外枠で囲みます。 デフォルトでは設定されていません。 SQLセッション内で設定する場合は以下のように設定します。

       SET MSQLSELBOX TO 'x';
       SELECT FROM personnel;

出力結果

       --------------------------------------------------------
       |number    name           phone            credit_limit|
       |                                                      |
       |    10    Kilroy         426-9681              $500.00|
       |     5    Mosca          544-2243              $750.00|
       |    17    Wladislaw      723-6073               $50.00|
       |     3    Jones          667-2951              $500.00|
       |     8    Peterson       978-6060              $250.00|
       |     4    Scarlatti      961-7363              $100.00|
       |     9    Jordan         964-3335              $250.00|
       --------------------------------------------------------

### 3.3.100 MSQLSELCOLSEP

`MSQLSELCOLSEP`は、`SELECT`コマンドの出力結果内の カラムを分離する文字列を指定します。 デフォルトでは、 2 個のスペースです。 SQLセッション内でカラムセパレータ文字として縦棒を設定する場合、 以下のように設定します。

       SET MSQLSELCOLSEP TO " | ";

"`SELECT FROM personnel;`"コマンドの出力結果

       number | name            | phone          | credit_limit
              |                 |                |
           10 | Kilroy          | 426-9681       |      $500.00
            5 | Mosca           | 544-2243       |      $750.00
           17 | Wladislaw       | 723-6073       |       $50.00
            3 | Jones           | 667-2951       |      $500.00
            8 | Peterson        | 978-6060       |      $250.00
            4 | Scarlatti       | 961-7363       |      $100.00
            9 | Jordan          | 964-3335       |      $250.00

### 3.3.101 MSQLSELGROUPCOLCROSS

`MSQLSELGROUPCOLCROSS`は、`SELECT`コマンドの 出力結果内でグループセパレータ(`MSQLSELGROUPSEP`)が、 カラムセパレータ(`MSQLSELCOLSEP`)と交差する箇所に出力する 文字列を指定します。 値はカラムセパレータと同じ幅にすべきです。 グループセパレータが設定されていない場合は、デフォルトは 設定されず(null)、グループセパレータが設定されている場合は、 カラムセパレータがデフォルトになります。

以下にSQLセッション内での指定例になります。

       SET MSQLSELGROUPSEP TO "-";
       SET MSQLSELGROUPCOLCROSS TO "**";
       SELECT FROM loans GROUP BY name;

出力結果

       name            date                             amount

       Jones            7 February  1992                $33.95
                        3 April     1992                $25.00
                       12 August    1992               $300.00
       -------------**------------------**--------------------
       Kilroy          16 February  1992               $250.00
       -------------**------------------**--------------------
       Mosca            2 February  1992               $148.00
                        4 May       1992               $200.00
       -------------**------------------**--------------------
       Peterson         6 June      1992                $50.00
       -------------**------------------**--------------------
       Scarlatti       14 October   1992               $123.00
                        9 September 1992               $148.00
       -------------**------------------**--------------------
       Wladislaw       25 June      1992                $75.00
                       27 February  1992                $55.00
                       12 May       1992                $25.00

### 3.3.102 MSQLSELGROUPSEP

`MSQLSELGROUPSEP`は、`SELECT`コマンドの出力結果内で グループセパレータとして使用される1 文字を指定します。 指定された文字は、それぞれのグループの出力の間で繰り返し出力されます。 デフォルトでは、値は設定されず(null)、グループの間のセパレートする 行は出力されません。

設定例は、前のセクションでの`MSQLSELGROUPSEP`を 使用した出力結果を参照してください。

### 3.3.103 MSQLSELHEAD

`MSQLSELHEAD`は、`SELECT` コマンドの出力結果内に ヘッダーを出力するかどうかを制御するフラグです。 `MSQLSELHEAD`に何か値が設定された場合、ヘッダーを出力し、 設定されていなければ、出力しません。 デフォルトでは設定されています。 SQLセッション内でヘッダーの出力を止めるには以下のように入力します。

       UNSET MSQLSELHEAD;

### 3.3.104 MSQLSELHEADCOLCROSS

`MSQLSELHEADCOLCROSS`は、`SELECT`コマンドからの出力結果内で、 ヘッダーセパレータ(`MSQLSELHEADSEP`)とカラムセパレータ(`MSQLSELCOLSEP`) の交差する箇所に出力する文字列を指定します。 値はカラムセパレータと同じ幅にすべきです。 ヘッダーセパレータが設定されていない場合、 デフォルトでは設定されず(null)、ヘッダーセパレータが設定されている場合は、 カラムセパレータがデフォルトになります。

以下にSQLセッション内での指定例になります。

       SET MSQLSELHEADCOLCROSS TO "**";
       SELECT FROM personnel;

出力結果

       number  name             phone             credit_limit
             **               **               **
           10  Kilroy           426-9681             $500.00
            5  Mosca            544-2243             $750.00
           17  Wladislaw        723-6073              $50.00
            3  Jones            667-2951             $500.00
            8  Peterson         978-6060             $250.00
            4  Scarlatti        961-7363             $100.00
            9  Jordan           964-3335             $250.00

### 3.3.105 MSQLSELHEADSEP

`MSQLSELHEADSEP`は、`SELECT`コマンドでの出力結果内で ヘッダーセパレータとして使用される 1 文字を指定します。 指定された文字は、ヘッダーの下にセパレータ行として繰り返し出力されます。 デフォルトでは 1個のスペースで、したがってヘッダーと出力レコードの間に 空白行が入ります。 SQLセッション内での指定は以下のようにおこないます。

       SET MSQLSELHEADSEP TO "-";
       SELECT FROM personnel;

出力結果

       number  name                phone             credit_limit
       ------  -----------------   ---------------   ------------
           10  Kilroy              426-9681               $500.00
            5  Mosca               544-2243               $750.00
           17  Wladislaw           723-6073                $50.00
            3  Jones               667-2951               $500.00
            8  Peterson            978-6060               $250.00
            4  Scarlatti           961-7363               $100.00
            9  Jordan              964-3335               $250.00

### 3.3.106 MSQLSELKEEPDUPLICATE

`SELECT`コマンドでグルーピング(group)が要求された場合、 グルーピングは行われるアトリビュートの重複値は通常、出力されません。 重複値を出力するためには、`MSQLSELKEEPDUPLICATE`に何か値を 設定します。

### 3.3.107 MSQLSELROWCOLCROSS

`MSQLSELROWCOLCROSS`は、`SELECT`コマンドからの出力結果内で、 ロウセパレータ(`MSQLSELROWSEP`)とカラムセパレータ(`MSQLSELCOLSEP`) の交差する箇所に出力する文字列を指定します。 値はカラムセパレータと同じ幅にすべきです。 カラムセパレータが設定されていない場合、 デフォルトでは設定されず(null)、カラムセパレータが設定されている場合は、 カラムセパレータがデフォルトになります。

以下にSQLセッション内での指定例になります。

       SET MSQLSELROWSEP TO "-";
       SET MSQLSELROWCOLCROSS TO "**";
       SELECT FROM personnel;

出力結果

       number  name              phone            credit_limit

           10  Kilroy            426-9681              $500.00
       ------**---------------**--------------**--------------
            5  Mosca             544-2243              $750.00
       ------**---------------**--------------**--------------
           17  Wladislaw         723-6073               $50.00
       ------**---------------**--------------**--------------
            3  Jones             667-2951              $500.00
       ------**---------------**--------------**--------------
            8  Peterson          978-6060              $250.00
       ------**---------------**--------------**--------------
            4  Scarlatti         961-7363              $100.00
       ------**---------------**-------------**---------------
            9  Jordan            964-3335             $250.00

### 3.3.108 MSQLSELROWSEP

`MSQLSELROWSEP`は、`SELECT`コマンドでの出力結果内で ロウセパレータとして使用される 1 文字を指定します。 指定された文字は、行の下にセパレータ行として繰り返し出力されます。 デフォルトでは設定されず(null)、したがって行の下にはセパレータ行は 表示されません。

この変数の設定の出力例は上記の`MSQLSELROWCOLCROSS`の設定例になります。

### 3.3.109 MSQLSELTRUNCATE

`SELECT`コマンドでの出力結果内で、 通常、最も幅が広いデータ値に合わせるため カラム幅は広げられます。 カラム幅が指定されている場合、 通常、データは次の行にラップされます。 `MSQLSELTRUNCATE`が設定されている場合、 明示的なカラム幅の仕様を超えるデータは切り詰められます。 `MSQLSELTRUNCATE`に何か値が設定することで 切り詰め処理を行うように設定します。 この変数の設定は、カラム幅が指定されていないコマンド出力には 影響を与えません。

### 3.3.110 MSQLSELWARN

`MSQLELWARN`に任意の値が設定され、 `SELECT`コマンド内の式がエラー値として評価された場合に エラーメッセージを出力します。 `MSQLELWARN`はデフォルトで設定されています。 以下のコマンドにより、設定しないようにできませす。

       UNSET MSQLSELWARN;

### 3.3.111 MSQLTRANSACTION

`MSQLTRANSACTION`に任意の値が設定された場合、 各問い合わせ言語コマンド（構文エラーのあるコマンド、 および`RECALL`, `HOLD`, `HELP`, `CHANGE`, `EDIT`を除くコマンド) の直前にEmpressによって`COMMIT TRANSACTION`と `START TRANSACTION`が発行されます。 したがって、個別の問い合わせ言語コマンドがキャンセルされることが あります。

この変数はデフォルトでは設定されていません。 自動的に直前にトランザクションの発行をSQLセッション内で 行うには、以下のコマンドを実行します。

       SET MSQLTRANSACTION TO 'x';

### 3.3.112 MSQLVARCHARS

`MSQLVARCHARS`変数は、Empress変数に使用される 3 つの文字を 設定します。 その 3　つの文字とは、通常、(`$`)と(`{}`)になります。 変数の値は、通常ドル記号(`$`)を使って参照します。 また、前後のテキストから変数名を分離する区切り文字は通常は大括弧 (`{}`) を用います。このわずか3文字のみ指定される必要があります。 アルファベットおよび数字ではありません。

例えば以下のコマンドによって、変数文字(VARCHAR)を アンパサンド とかぎ括弧に 変更します。

       SET MSQLVARCHARS TO "&[]";

値として`personnel`が設定された `P`と呼ばれる変数があった場合、 `&P`によってその値を参照することができます。 また、"`[`" と "`]`"で残りの文字列から区切ることが できます。 以下のコマンドによって、`personnel_data` と呼ばれるファイルから `personnel`テーブルをロードすることができます。

       INSERT &P FROM &[P]_data;

変数を展開する文字による特別な機能をエスケープしたい場合は、 二重に指定することで、文字列として評価させることができます。 例えば"`&&P`"は文字列"`&P`"として 扱うことができます。

### 3.3.113 MSQUERYPLAN

Empress変数`MSQUERYPLAN`は、 QUERYオペレーションが実行されるときにインデックスの使用についての情報を 提供します。 `MSQUERYPLAN`は環境変数、および Empressの`config`ディレクトリ中の`initfile`、 またSQLセッションの`SET`コマンドにより設定することができます。

`MSQUERYPLAN`が設定されている場合、 実行されるすべてのQUERYオペレーションは、 QUERYオプティマイザーによって利用される インデックスの情報を報告します。 この変数は、EmpressのQUERYオプティマイザーによる インデックスの最適な使用を決定するために有効です。 （検索においてインデックスが有効に利用されているかどうかを判断し、 有効に利用されるようにSQL文の改善およびインデックスの見直しのために 利用されます。） SQLセッション内での`MSQUERYPLAN`の設定は、以下のコマンドを使用します。

       SET MSQUERYPLAN TO 'x';

### 3.3.114 MSSAVECWD

各データベースがオープンされた場合、 カレントワークディレクトリ(CWD)を保存するための要求が行われます。 この変数が設定された場合、Empressは、 プログラムが明示的にカレントディレクトリを変更しないと仮定します。 したがって、Empressは、CWD をチェックの要求をしませんが、 `msinit`コール時だけは保存されたパスをリセットすることができます。 この設定により、いくつかのデータベースが最初に開かれる場合、 わずかにセクション中のコードの実行を遅くすることがあります。

### 3.3.115 MSSELEXTFETCH

`MSSELEXTFETCH`変数は Empressmrとmxルーチンの "mrprev" および "mxprev" 関数の使用法に関連した 以前のバージョンとの互換性の問題を解決するためにデフォルトで 設定されています。 "mrprev"および "mxprev" を使用しない場合、 Empress C-API mr/mx アプリケーションのパフォーマンスの向上のため `MSSELEXTFETCH`の設定は避けてください。

MSSELEXTFETCH=

### 3.3.116 MSSERVERHEARTBEAT

データベースサーバーは、 `MSSERVERHEARTBEAT`に指定された秒ごとに チェックをおこない、その間がアイドル状態であった場合には メッセージを出力します。 デフォルトは "0" が設定されています。この"0"意味は データベースサーバーがアイドルタイムのチェックを しないということです。

### 3.3.117 MSSERVERNETTYPE

この変数は、ネットワークアクセスタイプを指定し、 値として`INET_UDP`を設定することができます。

### 3.3.118 MSSERVERTERSELOG

この変数はデフォルトで設定されています。 コンパクトなフォーマットでサーバーログ情報を出力します。 内容はクライアントの接続/切断とユーザー名、クライアントID、 プロセスID、マシンIDのみを出力します。

### 3.3.119 MSSHAREDMEMORYDIR

`mmap`（メモリーマッピング）の利用のための メモリーマップファイルディレクトリを指定します。 デフォルトは"`${EMPRESSPATH}/rdbms/spool/shm`"ディレクトリです。

### 3.3.120 MSSHELL

`MSSHELL`変数は、Empress中から シェルエスケープにより使用されるオペレーティングシステムの シェルを設定します。設定はフルパスで設定します。 この`MSSHELL`の値は、 `MSEDITOR`、`MSPAGER`、`MSPRINTER` に指定されたシェルスクリプトを実行するためのプログラム名になります。

デフォルトはシステム変数の`SHELL`の値になります。 また、C シェルをエスケープシェルとして設定する場合は以下のようになります。

       SET MSSHELL TO "/bin/csh";

### 3.3.121 MSSHMLOCATION

この変数には、シェアードメモリセグメントが存在するシステムのアドレスを 設定します。 この値はシステムごとにおそらく異なった値になります。また、 値が設定されていない場合は、システムデフォルトが使用されます。 この変数は内部変数ですので、 値は変更しないでください。

### 3.3.122 MSSHMPERMS

`MSSHMPERMS`変数はシェアードメモリパーティションのデフォルトのアクセス許可を 設定します。 アクセス許可は`R`(read), `W` (write), `X` (execute)の組み合わせに なり、所有者、グループ、他人の順に指定します。

この変数は、`initfile`ファイルに設定され、デフォルトの値を持ちません。 そのため、オペレーティングシステムのデフォルトが適用されます。 通常は`umask`の設定になります。

この変数のデフォルトの値を上書きするためには シェアードメモリセグメントの作成する前に `tabzero`ファイルに設定します。 (例えば、`MSSHMPERMS=RW,R,R`)

### 3.3.123 MSSORTBYPASS

`MSSORTBYPASS`変数は、ソート中にロックされたレコードを見つけた場合に Empressの動作を制御するフラグです。 このフラグが設定されない場合、"`ロック中です。`"のメッセージを 出力し、処理を中断します。 フラグが設定されている場合は、ロックされたレコードは無視され、 "`ソートが終了するまでレコードはロックされます。`" のメッセージを出力します。 このフラグを設定するには、以下のように`MSSORTBYPASS`に何か値を設定します。

       SET MSSORTBYPASS TO 'x';

この変数はEmpressのすべてのソート処理を制御します。 デフォルトにより設定されています。

### 3.3.124 MSSORTSPACE

`MSSORTSPACE`は、 Empressがソート処理の間に取得を試みるメモリスペース量の制限を 設定します。 この制限の量はバイト数になります。 ソートで使用するメモリ量がこの設定値を越えた場合、テンポラリファイルを使用して 続行します。 100 Kバイトを制限として設定するには、以下のように指定します。

       SET MSSORTSPACE TO 102400;

設定するサイズが 2 ブロック(システムのブロックサイズ数)より少ない場合は、 Empressは、デフォルトでは 512 K の取得を試みます。

### 3.3.125 MSTERM

`MSTERM`は、使用中の端末タイプを識別します。 使用している端末のタイプを変更したときに設定します。 `TERM`が使用され、 `MSTERM`が設定されていない場合、 `TERM`は、他のソフトウェアと共用され、 競合によるいくつかのリスクがあるため、 `TERM`とは別に`MSTERM`を 設定することを推奨します。 `MSTERM`は、Empress 4GLにより 使用されていることに留意してください。

### 3.3.126 MSTERMDB

この変数はEmpress 4GLによって利用される端末データベースの場所を指定します。 デフォルトのパスは"${EMPRESSPATH}/rdbms/4gl/termdb"です。

変更した端末データベースを利用したい場合は、`MSTERMDB`に 新しい端末情報データベースのパスを設定すべきです。

### 3.3.127 MSTERMSYS

この変数は、Empress 4GLによって使用されます。 端末タイプのプリフィックスを指定します。

過去において、異なったマシンの xterm は定義が異なっていました。 これは主として異なるタイプのキーボードのためです。 したがって、`MSTERMSYS`は、異なったタイプのキーボードを 指示するために利用されます。 例えば hp.xterm と ix.xterm は

       MSTERMSYS=hp
       MSTERMSYS=ix

と指定します。

現在では、ほとんどのシステムは 101 キーボードと同等なものが使用されています。 したがって、`pc`はデフォルト値として使用されます。

### 3.3.128 MSTHRESHOLDPFLSIZE

削除処理において削除されるレコード数が非常に多い場合、 レコードを削除するたびに削除したレコードを再利用するための処理を するとアクセス速度の低下がおこるため、削除されたレコードを再利用するための 処理をするタイミングをレコード数で制御するための変数です。 これは自動的にフラッシュおよびマージが GFL(グローバルフリーリスト)に対し実行される前に 内部 PFL (プロセスフリーリスト)が取得できる 最大サイズを制御します。 プロセスに対して `MSTHRESHOLDPFLSIZE`に削除レコード数が 指定が行われた場合、 プロセスは、ファイルヘッダーを通して アクセス可能なフリースロットを作成します。 これにより、他のプロセスへ（登録のための） これらの有効なスロットを作ることになります。 このしきい値は、フラッシュおよびマージを安全に実行することが 可能にするため、 更新`CRIT`ロックが、フラッシュおよびマージの間に 要求されことでその動作を保証する必要があります。

`initfile`では 500 が設定されています。

### 3.3.129 MSTMPDIR と MSTMPPFX

`MSTMPDIR`変数は、Empressによってテンポラリファイルを作成する ディレクトリを指定します。

UNIXの場合、通常デフォルトでは`/tmp`が設定されます。

`MSTMPPFX`変数は、Empressによって作成されたテンポラリファイル に使用するプリフィックスを指定します。 デフォルトは`ms`です。(残りのファイル名はプロセス番号になります。) Empressテンポラリファイルにプリフィックスを`me`として設定する 場合、以下のように入力します。

       SET MSTMPPFX TO 'me';

新しいプリフィックスは 2 文字を越えてはならないことに注意してください。 それ以上指定した場合、ファイル名が切り詰められ、 Empressはファイルを見つけることができなくなります。

### 3.3.130 MSTRANSCOMMENT

`MSTRANSCOMMENT`は、すべてのトランザクションにコメントを定義します。 トランザクションの開始時にこの変数が設定されている場合、 この変数の値はトランザクションのコメントとして付けられます。 この変数は複数の人が同一のアカウントから作業した場合に、 それぞれのトランザクションを区別するために有益です。 この値には、最大 64 文字以内の文字列を指定します。 文字列に空白が含まれる場合は、引用符で囲む必要があります。 この変数はデフォルトでは設定されていません。

トランザクションにコメントを付ける例を示します。

       SET MSTRANSCOMMENT TO "This is joe's transaction;"

### 3.3.131 MSTRANSSYNC

`MSTRANSSYNC`変数は、トランザクション中での すべてのデータを、ただちにファイルに書き込むことを 保証するために設定します。 この変数は、ウォームリスタート機能が成功することを 保証するために設定すべきです。

### 3.3.132 MSTRANSTABLELOCK

`MSTRANSTABLELOCK`が設定され、`LOCK LEVEL`コマンドによって ロックレベルが設定されている場合、トランザクションに関連するすべてのテーブルは 自動的にテーブルレベルロックに設定されます。 これは対象テーブルにおいて、トランザクション中に 同じ順番で同じレコードを表示することを確実にするために 有用です。 これはレコードごとにロックするのではなく、テーブルごとにロックするために レコードレベルロックに比べ、効果的です。

トランザクション中にテーブルレベルロックに設定するコマンドは、 以下のように設定します。

       SET MSTRANSTABLELOCK TO 'x';

### 3.3.133 MSTRANSUFNBI

Empressは、 変更される前のレコードのトランザクションログのイメージ 記録することにより、トランザクションを操作します。 もし、トランザクションの間、同じレコードが複数回、変更され、 そのレコードの複数のイメージがログに記録された場合、 トランザクションがキャンセルされたときは ログファイル全体がなくなるまで Empressはログファイルを介して前に戻す処理と すべてのレコードを同時にリストアする処理を行います。

Empressのこの問題の最適化として、 トランザクション中の変更されたレコードリストを管理します。 レコードを変更する場合、Empressは最初に このレコードが既にリストにあるかどうかを探します。 見つかった場合、 Empressは、 このレコードの"before image"を既に持っていることを認識し、 トランザクションファイル内に別のイメージのログを出力する 必要はなくなります。 見つからなかった場合はEmpressは そのリストにレコード番号を追加し、 トランザクションログへ前のイメージを保存します。

このリストのサイズはEmpress変数`MSTRANSUFNBI`によって制御されます。 この変数の適当な設定として、 平均的なトランザクションサイズと同等な値として、 デフォルトを 10　としています。

この設定は、同一のレコードがひとつのトランザクション内で２回以上変更される場合に 特に有効ですが、そうではない利用では、このリストは余分なオーバーヘッドの要因になることに 注意してください。 また、オーバーヘッドは レコードがリストに既に存在する場合、参照するためにリストの線形サーチによってもおこります。

### 3.3.134 MSTRANSUFNGFL

この変数は、パフォーマンスの最適化のために トランザクション中のフリーレコードへのアクセスを制御します。 Empress社では、 Empressサポートの助言なしに この変数の値の変更をしないことを推奨します。

### 3.3.135 MSTRANSWARMPROTECT

`MSTRANSWARMPROTECT`は、 自動ウォームリスタートユーティリティ`empwarm`によって トランザクションを解決するかどうかを制御するフラグになります。 トランザクションが開始されたときに この変数に任意の値が設定されていた場合、 このトランザクションはウォームリスタートユーティリティから保護されます。 つまり、`empwarm`ユーティリティは、セーブポイントまで戻すことが できるのであれば、このトランザクションを無視します。 この機能は自動ウォームリスタートがシステムの再起動のプロセスの一部として 組み込まれている場合に有用です。 コミットコマンドが発行されていない場合において 保護されていないトランザクションは確実にロールバックされるため、 中断がなく保護されていない長いトランザクションは、 ロールバックされる傾向があります。 トランザクションを保護することは、ウォームリスタート実行後に "`START TRANSACTION FROM savepoint`"コマンドによって トランザクションをセーブポイントまで復旧させることが可能となります。

この変数はデフォルトでは設定されず、そのため、デフォルトではすべての中断 されたトランザクションはウォームリスタートによって解決することができます。 この変数を設定するには以下のように入力します。

       SET MSTRANSWARMPROTECT TO 'x';

### 3.3.136 MSVALIDATELEVEL

この変数は、メインテーブルファイル（`.rel`ファイル)および オーバーフローファイル(`.dtf`ファイル)また ボーダーレコードのそれぞれを読み込む場合のダーティリードの 動作を制御します。

詳細な情報は、 ダーティリードとチェックサム を参照してください。

### 3.3.137 MSVALIDATERETRY と MSVALIDATESLEEP

`MSVALIDATERETRY`変数は、 Empressが無効なレコードを読むことを行うための リトライ数を指定します。 無効なレコードに対し、すべてのリトライの終了後にまだ読むことが できない場合、 `MSVALIDATELEVEL`変数の設定することにより、 その無効なレコードをユーザーに届けるか、あるいは破棄するか の動作の設定をすることができます。 詳細な情報は、 ダーティリードとチェックサム を参照してください。

`MSVALIDATESLEEP`変数は、 無効なレコードを読むためのリトライ間のインターバル秒数を指定します。 詳細な情報は、 ダーティリードとチェックサム を参照してください。

### 3.3.138 MSVALIDATESIZE

この変数は、バージョン 8.62ではサポートされなくなりました。

### 3.3.139 MSVALSEP

`MSVALSEP`変数は、Empressダンプファイル内でアトリビュートの値を 分けるために使用される文字列を設定します。 デフォルトでは、<`Ctrl+V`>(octal 26)が設定されています。 以下のコマンドでアトリビュートのセパレータ文字をコロン":"に設定します。

       SET MSVALSEP TO ":";

`MSVALSEP`で設定する値は、データ内に含まれるどのような値とも 異なる値を設定する必要があります。そのように設定されない場合、 アトリビュート値は不意に壊されることがあります。 同様に、ダンプファイルからテーブルにロードする場合、 `MSVALSEP`は、ダンプファイル内のセパレータとして使用されている 文字列を設定する必要があり、設定されない場合は、`INSERT`は機能しません。

### 3.3.140 MSVERSIONMESG

`MSVERSIONMESG`変数は、Empressバージョン番号を起動時に出力するかどうかを 制御するためのフラグです。デフォルトでは設定されています。 Empressバージョン番号を出力しないように設定するには以下のように入力します。

       UNSET MSVERSIONMESG;

### 3.3.141 MSWRAPMARGIN

`MSWRAPMARGIN`変数は、Empressレポートライタの右ラップマージンを 設定します。（自動的な復帰改行の設定） デフォルトでは 0 です。 フィールドの右マージンから`MSWRAPMARGIN`文字内に空白文字がある場合、 新しい行を開始します。 例えば、以下のコマンドでフィールドの終了から8文字分右ラップマージンを 設定します。

       SET MSWRAPMARGIN TO 8;

### 3.3.142 MSUSERAUTHCONFIGFILE

この変数はユーザー認証コンフィグレーションファイルを指定します。 詳細な情報は Empress リプリケーション ユーザーズ ガイド: リファレンス を参照してください。

### 3.3.143 MSNETSERVERCONFIGFILE

この変数はネットワークサーバーコンフィグレーションファイルを指定します。 詳細な情報は Empress リプリケーション ユーザーズ ガイド: リファレンス を参照してください。

### 3.3.144 MSNETTYPECONFIGFILE

この変数はネットワークタイプコンフィグレーションファイルを指定します。 詳細な情報は Empress リプリケーション ユーザーズ ガイド: リファレンス を参照してください。

### 3.3.145 MSCONFIGFILEPATH

この変数はネットワークサーバー関連コンフィグレーションファイルへのパスを指定します。 詳細な情報は Empress リプリケーション ユーザーズ ガイド: リファレンス を参照してください。

### 3.3.146 MSREPLOCKRETRY および MSREPLOCKSLEEP

`MSREPLOCKRETRY`は、 マスターテーブルがリプリケーション同期のリプケーションマスターである場合、 マスターテーブルのロックを取得するための試行回数を決定します。 この設定をする理由は、例えばマスターテーブルに他のロックを生成することを妨げるために updateモードでロックされている可能性があり、それにより、 ロックの生成の試行がその最初の試行で失敗するためにリトライの設定を行います。 デフォルトでは 5 回です。

`MSREPLOCKSLEEP`は、リトライの間の秒数を設定します。 この変数は、小数点以下を設定することができます。

SQLセッション内では、以下のコマンドを入力することで設定することができます。

       SET MSREPLOCKRETRY TO 5;
       SET MSREPLOCKSLEEP TO 2;

上記の設定をして、 リプリケーション同期のためのマスターテーブルへのロックの取得を試みる場合、 Empressは、2 秒間のインターバルで 5 回試行します。 あきらめるまで 合計 8 秒間費やされます。

### 3.3.147 MSREPENABLEUPDATE

デフォルトでは、リプリケートテーブルは更新可能ではなく、 リプリケートテーブルは、リプリケーションマスターテーブルによる リプリケーション同期を介して、すべての更新は行われます。 `MSREPENABLEUPDATE`の設定は、リプリケートテーブルへの 更新することを十分な特権をもつユーザーに許可しますが、 この値を設定をすることは、避けてください。 リプリケートテーブルの動作は、 他の独立したリプリケートテーブルが、 リプリケートテーブルを更新した後に予期することが できません。 この変数はデフォルトでは設定されていません。 この変数は、Empress内部で使用するための変数です。

### 3.3.148 MSREPPURGEINTERVAL

リプリケーションテーブルの削除されたレコードは、 依存するリプケーションリプリケートに 同期されるまで消去(物理的な削除)はおこなわれません。 依存するリプケーションリプリケートが同期された場合、 リプリケーションテーブルの削除されたレコードは、 消去されます。 デフォルトでは 1 週間　(7 * 24 = 168 時間)が設定されています。

### 3.3.149 MSCASEINSENSITIVE

`MSCASEINSENSITIVE` 変数は大文字小文字を区別しない設定をします。 テーブル、ビュー、アトリビュート、インデックス、リファレンスコンストレイン およびストアードプロシジャーなどのようなデータベースコンポーネントは、 この変数の設定後に作成されたものに対し、大文字小文字を区別しない設定を サポートします。

Win32プラットフォーム上ではEmpressはデフォルトで値として"X"を設定しています。 それ以外のプラットフォームでは設定されていません。

### 3.3.150 MSNTMPFILECACHE

`MSNTTMPFILECACHESIZE`変数は、検索処理中で利用される テンポラリテーブルに関連したテンポラリファイルにおいて、 使われるキャッシュサイズを定義します。

Empress 内部で 512K バイトのキャッシュバッファ （EmpressのMSTMPFILECACHESIZE変数で管理されている) の内 4K バイトが設定されています。

### 3.3.151 MSQUOTEDIDENTIFIERS

`MSQUOTEDIDENTIFIERS`変数は、引用する識別子を許可します。 設定された場合、 SQLステートメント中で使用される"abcd"は 識別子として扱われ、'abcd'は、リテラルとして扱われます。 何も設定されないか、設定がない場合は、 "abcd"と'abcd'の両方はリテラルとして扱われます。

デフォルトでは、`MSQUOTEDIDENTIFIERS`は設定されていません。

Empress JDBCドライバは、SUN の JDBC標準によって二重引用符が MSQUOTEDIDENTIFIERSに暗黙的に設定されます。

### 3.3.152 MSSELEXTFETCH

`MSSELEXTFETCH`変数は Empressmrルーチンの "mrprev" 関数の使用法に関連した 以前のバージョンとの互換性の問題を解決するためにデフォルトで 設定されています。 "mrprev"を使用しない場合、 Empress C-API mr/mx アプリケーションのパフォーマンスの向上のため `MSSELEXTFETCH`は設定は避けてください。(MSSELEXTFETCH= と設定してください。)

### 3.3.153 MSSELMAXROWS

`MSSELMAXROWS`変数は SELECT 文によって Empress 対話型 SQL インターフェースに戻される 最大レコード数（行数）を設定します。 デフォルトではこの変数は設定されていません。

### 3.3.154 MSSELTIMEOUT

`MSSELTIMEOUT`変数は、 Empress 対話型 SQL インターフェースへ 戻すために SQLの SELECT文の実行を 待つ時間を秒数で設定します。 デフォルトではこの変数は設定されていません。

### 3.3.155 MSTMPFILECACHESIZE

`MSTMPFILECACHESIZE`変数は、検索処理中で利用される テンポラリテーブルに関連したテンポラリファイルにおいて、 使われるキャッシュサイズを定義します。

キャッシュバッファはバイト数を設定し、例えば100 K バイトを設定する場合、 以下のように入力します。

       SET MSTMPFILECACHESIZE to 102400;

データが設定した値を越える場合は、ファイルの残りはディスク上に格納されます。