• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Sastruts+S2JDBC画面排他制御について)

Sastruts+S2JDBCで画面排他制御を実現する方法

このQ&Aのポイント
  • Sastruts+S2JDBCで画面排他制御を実現するための方法を検討しています。契約更新画面では、契約入力画面→契約確認画面→契約完了画面の順序で処理を行っています。契約入力画面までの段階で排他制御をかけ、先に画面にアクセスしたクライアントのみ処理を許可し、後からアクセスした場合は排他制御エラーとしたいです。
  • ForUpdateでのレコードのロックや、Entityに対して@Versionアノテーションを使用するなど、さまざまな試行錯誤をしてみましたが、解決策が見つかりませんでした。Sastruts+S2JDBC環境でこれを実現する方法はあるのでしょうか?
  • ご教授いただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#147388
noname#147388
回答No.1

1アクションごとにコミットは実行されるため正攻法ではなく搦め手で ケース1 ロック用のスレッドを用いる。(内部で for update 文) ※このケースの場合、わずかなタイミングが存在するため @Version との兼ね合いが必要。 ケース2 別途ロックテーブルを利用する。 ※一定期間ない場合はロックタイムアウトとする必要あり。 純国産フレームワーク Seasar Framework をもちいてるのに本家で質問しないのはわけわかめ。 ml.seasar.org に質問したほうが有効な回答を得られますよ。 上記2つ以外の方法が得られる可能性もあります。 ちなみに @Version は 先更新勝です。 http://www.google.co.jp/search?gcx=c&sourceid=chrome&ie=UTF-8&q=site%3Aml.seasar.org#sclient=psy-ab&hl=ja&source=hp&q=s2jdbc+site:ml.seasar.org&pbx=1&oq=s2jdbc+site:ml.seasar.org&aq=f&aqi=&aql=&gs_sm=e&gs_upl=6354l10051l0l12097l11l11l1l0l0l1l266l1676l1.7.2l11l0&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=1ca09932ba2e0343&biw=1144&bih=689

mihune
質問者

お礼

ご回答ありがとうございます。 なるほど、正攻法ではできない可能性が高いわけですね。 ご教授頂いたケースでの実現方法を模索してみます。 [ml.sesar.orgについて] 程度の低い会話ではないのかと思い、本家での質問を躊躇しておりました。 本家の方でも質問をしてみようと思います。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A