仕様および制限事項 (Top)
以前のバージョンとの共存について
本ゲートウェイ使用時(並行開発時、並行運用時共に)の最適な環境設定を以下に示します。
[DBMS]テーブル |
パラメータ |
/EXTENDED=Y |
[データベース]テーブルの[データベース特性]ダイアログ |
Magic ロック |
テーブル(物理トランザクション使用時) |
両方 (遅延トランザクション使用時)※1 |
ロックパス |
スペース(何も設定しない) |
[動作環境]テーブル |
ロックファイル |
mglock.dat |
[タスク特性]ダイアログ
|
オンラインタスク、ブラウザタスク |
トランザクション開始 |
レコード前処理の前(遅延トランザクション使用時)※2 |
ロック方式 |
入力時 |
バッチタスク |
トランザクションモード |
物理 |
ロック方式 |
即時 |
※1 遅延トランザクション使用時、ロック制御はロックファイルで行われるため
※2 遅延トランザクション使用時、更新レコードの識別は行われないため
P.SQL の環境設定について
環境設定は P.SQL に添付の Pervasive Control Center にて行います。
以下の設定値を確認してください。
サーバベースの P.SQL の使用について
Windows の簡易 LAN について
Windows の Microsoft ネットワーク共有サービス、またはワークステーションを利用して、任意の Windows マシンを Magic のサーバとして使用し、更にこのマシン上で Magic を実行することができます。
この場合、全てのマシンがサーバとして動作する可能性があります。そのため、P.SQL に添付の Gateway Locator を使用、または[クライアント/アクセス]カテゴリの[ローカル]設定および[リクエスタ]設定を設定する等、サーバとなるマシンが明確になるように設定することをお勧めします。
サーバとなるマシンでは[サーバ/アクセス]カテゴリの[リモートリクエストの受付]設定を「On」にしてください。
以下の設定により、システムトランザクションの実行が頻繁に行われるようになるため、ロックの解除は速くなりますが、ディスクアクセスは増加することがあります。
その他
データテーブルアクセス規制
下表は、物理トランザクション使用時に、処理A から先にアクセスされたテーブルに対して、処理B が後からアクセスした場合、どういうアクセス規制が働くかを示しています。
|
処理A |
処理B |
アクセスモード |
読込(R) |
書出(W) |
|
共有 |
読込(R) |
書出(W) |
なし(N) |
読込(R) |
書出(W) |
なし(N) |
読込(R) |
読込(R) |
T+R+ |
T+R+ |
T- |
T- |
T- |
T- |
書出(W) |
T+R+ |
T+R+ |
T- |
T+R+ |
T+R+ |
T- |
なし(N) |
T- |
T- |
T- |
T- |
T- |
T- |
書出(W) |
読込(R) |
T- |
T+R+ |
T- |
T- |
T- |
T- |
書出(W) |
T- |
T+R+ |
T- |
T- |
T+R+ |
T- |
なし(N) |
T- |
T- |
T- |
T- |
T- |
T- |
|
処理A |
処理B |
アクセスモード |
読込(R) |
書出(W) |
|
共有 |
読込(R) |
書出(W) |
なし(N) |
読込(R) |
書出(W) |
なし(N) |
読込(R) |
読込(R) |
T+R+ |
T+R+ |
T- |
T+R+ |
T+R+ |
T- |
書出(W) |
T+R+ |
T+R+ |
T- |
T+R+ |
T+R+ |
T- |
なし(N) |
T- |
T- |
T- |
T- |
T- |
T- |
書出(W) |
読込(R) |
T- |
T+R+ |
T- |
T+R+ |
*1 |
T- |
書出(W) |
T- |
T+R+ |
T- |
T+R+ |
T+R- |
T- |
なし(N) |
T- |
T- |
T- |
T- |
T- |
T- |
TT- :テーブルアクセスに制限があります(テーブルがオープンできません)。
T+R-:テーブルアクセスには制限はありませんが、
レコードアクセスに制限があります(レコードロックがかかります)。
T+R+:テーブルアクセスにも、レコードアクセスにも制限がありません。
*1:入力時レコードロックはかかりませんが、レコードを更新しようとした場合、レコードロック解除待ちとなります。即時レコードロックはかかりませんが、レコードを更新しようとした場合、レコードロック解除待ち、もしくはレコードがロックされていますとなります。
これらの表からわかりますように、[データベース特性]ダイアログの[Magic ロック]を「両方」または「テーブル」に設定し、Magic のロックファイル(mglock.dat)を共用してください。
レコードの挿入、更新、削除を行うタスクがアボートする問題の対応
P.SQL の仕様(暗黙のページロック)により、次のような手順で操作を行うと、デッドロック状態になる場合があります。
ユーザAとユーザBが Magic のロックファイル(mglock.dat)を共用します。
ユーザAがオンラインタスクにより、あるファイルのあるレコードをロックします。
(このタスクの[タスク特性]ダイアログの[ロック方式]欄は「入力時」に設定)
ユーザBがバッチタスクにより、上記ファイルのあるレコードを更新した後、ユーザAがロック中のレコードにきたところで、レコードロック解除待ちになります。(このタスクの[タスク特性]ダイアログの[ロック方式]欄は「即時」、[トランザクションモード]欄は「物理」、[トランザクション開始]欄は「タスク前処理の前」に設定)
ユーザAがレコードの更新を行います。
ステップ3で、このレコードを含むページに対して暗黙のページロックがかかっているため、ユーザAの方もレコードロック解除待ちになります。
なお、Esc キーを押せば、レコードロックは解除できます。
Magic が異常終了した場合、ファイルがロック状態になる場合があります。
これはP.SQL がまだ動作しているため、P.SQL で管理しているロック情報が残るためです。必要に応じて以下の処理を行ってください。
ファイルフォーマットについて
ファイル名について
P.SQL 7 以降の新機能の使用について
Magic に添付されている Pervasive ゲートウェイでは P.SQL 7 以降の新機能は考慮されていません。P.SQL 7 以降の新機能に対するテストは行っていませんが、現時点で注意が必要と思われる内容を以下に示します。
|