ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

MS-SQL WWN テーブルロックしない

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2011-7-22 11:26 | 最終変更
nkmt  長老   投稿数: 1668
MS-SQLのテーブルをWRNでオープンするオンラインタスクを
作り、2本の開発版からそれぞれ動かしてみました。

エラーが出ずに、どちらもオンラインタスクが開きました。

WNNに変えても動きます。
何か設定がまずくてこうなるのでしょうか?

uniPaaS V1 Plus 1.9g
MS-SQL SERVER 2008 R2 EXPRESS
投票数:0 平均点:0.00
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011-7-26 11:51
Jiro123  長老   投稿数: 271
テーブルロックは、RDBMSの場合、Oracleしかサポートされていなかったと思います。

ヘルプには次のような記載がありますよ。


テーブルのアクセスモードと共有モード
〜省略〜

RDBMSを使用している場合は、Open FileコマンドもOpen Tableコマンドもありません。したがって、アクセスモードおよび共有モードは、ほとんど意味がありません。ただし、以下の場合は例外です。

・共有モードが「N=なし」の場合、SQLゲートウェイによって、SQLデータベースに[LOCK TABLE]コマンドが送信されます。これは、Oracleでのみ行われます。

・アクセスモードが「R=読込」、共有モードが「W=書出」で、テーブルがリンクテーブルの場合、ロックが要求されても、リンクテーブルのレコードはロックされません。

・アクセスモードが「W=書込」の場合は、リンクテーブルも更新されると想定し、リンクテーブルに対してもロックが発行されます。


あと、遅延トランザクションの場合は、レコードロック(更新ロック)も行われないですよね。

投票数:0 平均点:0.00
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011-7-26 12:09 | 最終変更
nkmt  長老   投稿数: 1668
Jiro123様

> ヘルプには次のような記載がありますよ・・・

そうなんですね、知りませんでした。
でもWNFとかが効かないのはちょっとビックリ。
ご回答を頂き有り難う御座いました。

投票数:0 平均点:0.00
depth:
3
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011-7-27 10:01
Tanda  長老   投稿数: 2151
nkmt さん、こんにちは。

Magic ロックを ON にして試してみるのも価値あるかもしれませんよ。

タンダコンピュータ/丹田 昌信
投票数:0 平均点:0.00
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011-7-26 11:55
Tanda  長老   投稿数: 2151
nkmt さん、こんにちは。

プロジェクトは同時に1セッションしか開けないはずですが、
nkmt さんがやっておられる環境は、DB だけ共有して、開発セッションは
まったく別々のマシンで、という環境でしょうか?

あるいは、バージョン管理ツールを使用して、別セッションで開発した場合
ということですか?

タンダコンピュータ/丹田 昌信
投票数:0 平均点:0.00
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011-7-26 12:07
nkmt  長老   投稿数: 1668
> プロジェクトは同時に1セッションしか開けないはずですが

バージョン管理ツールを使用する事もあります。

自己責任ですが、edpファイル、iniファイル、起動アイコン
を2つずつ用意して、同一ソースを開くという事もやります。

ソース排他も無いので、片方でメンテ、
もう片方は参照専用でやっています。

ですが、今日初めてソースを壊してしまい
2時間分程の作業を駄目にしてしまいました。
投票数:0 平均点:0.00
depth:
3
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011-7-27 14:24
nkmt  長老   投稿数: 1668
丹田さん こんにちは。

> Magic ロックを ON にして試してみるのも価値あるかもしれませんよ。

プロジェクトを閉じて
オプション → 設定 → データベース → プロパティ
→ MSSQLの特性 → Magicロック を B=両方 や T=テーブル
にすると、WNNのタスクでちゃんと
 データソースのロック解除待ちです.:商品マスタ

といった感じで待たされるようになりました。

有難う御座いました。



投票数:0 平均点:0.00
depth:
4
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011-7-27 15:48
Tanda  長老   投稿数: 2151
nkmt さん、こんにちは。

やはり、そうでしたか。

これはやはり、歴史的な流れが関与しているみたいですね。

つまり、こうです。

同一セッション内での排他は、DB の排他制御に任せる。つまり、同じ
アプリケーション内での異なるタスク同士の排他は、これに準拠するわけです。

これにたいして、別セッションでの排他、つまり、nkmt さんが試しておられた
ような排他は、ファイルを作って昔ながらの Magic ロックで制御する。

これで納得が行きますね。

タンダコンピュータ/丹田 昌信
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約