|
こんにちわ
>ドライブレターの割り当てを組み込んでみましたが
>割り当て先を触られることがありそうな気がして悩んでしまいました
>結局、
>起動時割当、終了時割当削除
>起動時既割当なら、割当済みでした 管理者に報告する メッセージ で終了
>みたいな感じにしました
>普通はどのような処理になるのでしょうか
>上記、まだ多摩では試していませんがコメント有ればよろしくお願いいたします
たしかに、上記のような配慮は必要ですね。以前、似たようなロジックをみたことがありますが、
そのときは、割当済みかどうかのチェックをせずに問答無用で起動時割当というロジックでした。
それでも動くんですが、ちょっと怖いので、割当済みのチェックが可能なら組み込んだ方が個人的には良いかと思います。その分、ロジックは複雑になりますが。
>TmpT_PJ_DTを元に更新処理を進めるのは不利な操作となるのでしょか
一旦、Tmpテーブルに保持してその後、本体へ更新をかけるという処理自体は、良く用いられる手段なので問題ないと思います。
問題になりうるとしたら、以前の投稿でもあったように、排他制御の方ですね。
そう言えば、今になって思い出したのですが、更新方法にも、2つの方法があります。と言っても、個人的にそう言ってるだけですが。
UPDATE方式:ponさんが現状行っている方式
DELETE&INSERT方式:UPDATEは使用せず、元のデータを一旦、削除し、改めてINSERTする。
元のデータが無くてもDELETEは通るので、新規追加に関して考慮する必要がないメリットがあります。
ただ、この方式では、ファントム・リードという問題が発生しうるため、実際には、
元のデータの存在チェック→無かったら待機後再実行、または再実行をユーザーに指示して終了
↓
有ったら、DELETE
↓
INSERT
という手順を取るべきです。プログラムは複雑になりますが、データ自体で排他がかけられるので、私の周囲では良く用いられていました。いまさら思い出してすみません。
|
|