国産DIコンテナSeasar その15
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/03/17(火) 20:48:19ってどうよ?みんなもう使ってるの?
使用経験とか、実戦配備情報とか、つかえねーよボケ、とかいろいろ書いてね。
本家 seasar.org
http://www.seasar.org/
Seasar Projectグループ
http://seasarproject.g.hatena.ne.jp/
ひがやすをblog
http://d.hatena.ne.jp/higayasuo/
前スレ
その1 http://pc5.2ch.net/test/read.cgi/tech/1092044210/
その2 http://pc5.2ch.net/test/read.cgi/tech/1098885253/
その3 http://pc8.2ch.net/test/read.cgi/tech/1102862221/
その4 http://pc8.2ch.net/test/read.cgi/tech/1119608621/
その5 http://pc8.2ch.net/test/read.cgi/tech/1135986150/
その6 http://pc8.2ch.net/test/read.cgi/tech/1148204750/
その7 http://pc8.2ch.net/test/read.cgi/tech/1153060167/
その8 http://pc10.2ch.net/test/read.cgi/tech/1165531719/
その9 http://pc11.2ch.net/test/read.cgi/tech/1170674234/
その10 http://pc11.2ch.net/test/read.cgi/tech/1176050197/
その11 http://pc11.2ch.net/test/read.cgi/tech/1190846507/
その12 http://pc11.2ch.net/test/read.cgi/tech/1203122931/
その13 http://pc11.2ch.net/test/read.cgi/tech/1215962870/
その14 http://pc11.2ch.net/test/read.cgi/tech/1224157275/
0197181
2009/05/26(火) 23:05:15おっしゃるとおりなので、悲観的ロックをかける場所は、
たとえば「年次締めバッチ起動画面」など、重要で、誰か一人しか使えなくすべき画面にのみに適用し、
普通のところは、 >>192 の楽観的ロックを使う、と思っているのですが。
0198デフォルトの名無しさん
2009/05/26(火) 23:12:33(´;ω;) カワイソス
0199デフォルトの名無しさん
2009/05/26(火) 23:13:01POEAA読めば終わりだろ?読んでないの?素人?
0200デフォルトの名無しさん
2009/05/26(火) 23:36:49たまには動物園に行きたくなるだろ?
0201デフォルトの名無しさん
2009/05/26(火) 23:42:34俺もupdateのwhere句に条件加えればいいじゃんと思うんだが
0202デフォルトの名無しさん
2009/05/26(火) 23:57:59まあそういうな
s2コミッタ=素人
s2ユーザ=ど素人
なんだからさw
0203181
2009/05/26(火) 23:58:45select .... for update してレコードが取得できたかどうかをせずに、
いきなり update 文を実行した場合、
update 文の結果(PreapredStetement#exeucte())で、0 が返って来た場合、
version_id がずれて更新できなかったのか、
そもそも、当該受注番号のレコードが、一瞬先に別ユーザによって消されたのかわからない。
select .... for update してレコードが取得できたかチェックしておいて、レコードが得られなかったら、
「他のユーザがすでに更新しました or 他のユーザがそのデータを消しました」
とエラーメッセージを出すことが出来る。
とここまで書いたが、いきなり update 文を実行して、update 文の結果が 0 だったら、
同じようなメッセージを出せばいいのか。
画面で、ユーザにもう一度画面を開いてもらい、当該受注番号のレコードが消されたら、
画面を開き直したときに、そのレコードは現れなくなるし。
0204デフォルトの名無しさん
2009/05/27(水) 00:20:410205デフォルトの名無しさん
2009/05/27(水) 00:33:30どうしてJavaEEのほうがいいという結論に達したのか、全然わからなかった。
0206デフォルトの名無しさん
2009/05/27(水) 00:35:25実装が違うだけで目的は同じなんだから
JavaEEでもできるだろうけど他でもできるわけで
だからといってJavaEEが最高ってことにはならん
0207デフォルトの名無しさん
2009/05/27(水) 00:38:230208デフォルトの名無しさん
2009/05/27(水) 03:10:52実際のところ、楽観的排他制御対応を謳っているFWはほとんど
UPDATE文にバージョンカラム値を条件に加えて、結果が0だったらエラーにする実装をしている
更新なのか削除なのかは、エラー後に再検索して判断する
そもそも「楽観的排他」は「あまり起こらない」ことを前提として、起こった場合は最初からやり直し
という方針で採用されることが多いから、SELECT FOR UPDATEを使う実装は少ないと思う
(オプションによって、一度空更新してトランザクション的なロックをかけたり・・・とかはあるけど)
0209デフォルトの名無しさん
2009/05/27(水) 05:59:32楽観的ロックでは、1つのトランザクションで複数のテーブルまたは複数のレコードを更新する際には、
デッドロックやそれに伴うデータの不整合になる危険性がある。したがって、1つのトランザクションで
1つのテーブルと1つのレコードを更新する事によりデッドロックの回避が可能になりますが、
これに基づいてDB設計と画面設計は相当慎重に行うべきである。また、S2Daoの排他制御は楽観的ロックなんで、
標準的なDaoクラスでDriverManager.getConnection().setAutoCommit(false)の設定をして
SelectForUpdateによる悲観的ロックを採用した方がシンプルでいいかもしれないね。
加えて、1つのトランザクションで複数のテーブルまたは複数のレコードを更新するケースでは、
rollbackを行えば、データの不整合は改善されるが、Webシステムで更新順序によるデッドロックの回避が
できるのかについては、現時点では僕の把握ではできないと思ってる。
0210デフォルトの名無しさん
2009/05/27(水) 06:15:43要約すると、
・1つのテーブルと1つのレコードを更新する仕様にする(デッドロックが起きないケース)
・デッドロックが起きた際には、rollbackよって回復する(デッドロックをrollbackによって回復するケース)
0211デフォルトの名無しさん
2009/05/27(水) 07:42:20やはりこの程度の認識だったのか・・・
0212デフォルトの名無しさん
2009/05/27(水) 08:33:380213デフォルトの名無しさん
2009/05/27(水) 08:41:39複数テーブルを更新するときはFOR UPDATEを付けるし、
設計次第ではデッドロックも起きる。
そこは悲観的・楽観的とは関係ないんだよ。僕ちゃん。
0214デフォルトの名無しさん
2009/05/27(水) 08:47:22さらに要約すると、排他制御はSelectForUpdateによる悲観的ロックを行い、デッドロック対策としては
1画面に可能な操作は、1つのトランザクションで1つのテーブルと1つのレコードを更新するだけに限る。
また、最終更新日を表示することにより、ユーザーによって変更してもよいデータであるかを判断してもらう必要がある。
0215デフォルトの名無しさん
2009/05/27(水) 09:31:39これを実現する画面設計としては、検索リストから詳細画面へ遷移し、登録/更新/削除を行う。
DB設計も、1画面に可能な操作は、1つのトランザクションで1つのテーブルと1つのレコードを更新する事を踏まえ
データモデリングしていく必要があるね。
0216181
2009/05/27(水) 11:03:15181=192=197=203 です。
182=209 、その他ではありません
(まぁ似たようなレベルかも知れませんが)
0217デフォルトの名無しさん
2009/05/27(水) 11:10:480218デフォルトの名無しさん
2009/05/29(金) 14:09:320219デフォルトの名無しさん
2009/05/30(土) 00:51:17しかも事例紹介を大部屋でやって、ひがさんのセッションを30人の部屋でやるとは…
0220デフォルトの名無しさん
2009/05/30(土) 00:57:08しかし実務やってる人には新技術より事例発表の方があるから人は集まるだろうけど
実例がSAStrutsとかみたいな今企業でよく使われるような物じゃないから
微妙なんだよなぁ
0221デフォルトの名無しさん
2009/05/31(日) 01:06:4815分か。。
0222デフォルトの名無しさん
2009/05/31(日) 01:10:040223デフォルトの名無しさん
2009/05/31(日) 02:59:51今からメールしたら、変えてくれるかも。
Seasar カンファレンスは、いつも聞きたいのが重なりすぎて困る。
0224デフォルトの名無しさん
2009/06/01(月) 22:55:40SearchSearvice searchSearvice;
てな感じで、SearchSearviceのオブジェクトのコンストラクタとかプロパティにデフォルトで値をセットできればええのになぁ。
0225デフォルトの名無しさん
2009/06/02(火) 00:13:35アノテでやったら型が違ってたら何処でエラー出てるのか解らん
0226デフォルトの名無しさん
2009/06/04(木) 13:30:45@Resource(arg="@Arg(arg1="aaa",arg2="bbb",arg3="ccc"))
SearchService searchService;
てな感じで、SearchSearviceのオブジェクトのコンストラクタとかプロパティにデフォルトで値をセットできればええのになぁ。
と思うぞ。
英語勉強しろよ。
0227デフォルトの名無しさん
2009/06/04(木) 17:39:14タイプセーフにならんだろ
0228デフォルトの名無しさん
2009/06/04(木) 23:59:48form.TestForm.java に、
public Map<String,String> testMap;
を宣言して、
action.TestAction.java で
@ActionForm
@Resource
public TestForm testForm;
とした。
jspに、
<html:text property="testMap(test)" ></html:text>
として、入力した値が、testMap.get("test")で取れるようにしたい。。しかし、、
java.lang.UnsupportedOperationException: get
org.seasar.struts.action.ActionFormWrapper.get(ActionFormWrapper.java:113)
と出てしまう。どこか間違ってるか別の方法があるか、、、教えてえろいひと
0229デフォルトの名無しさん
2009/06/05(金) 00:18:01testMap(test)ってそもそもなんなんだよ
0230デフォルトの名無しさん
2009/06/05(金) 00:24:26やりたいことはsubmitした時のアクションでtestForm.testMap.get("test")で取れるようにしたいんだ。。
testFormに
public String test;
とは置きたくないんだ。Mapに自由に格納したいのだです
0231デフォルトの名無しさん
2009/06/05(金) 00:27:17マニュアルに載ってなくてお前も実装してないならだれもそう実装してないってことでしょ
BeanUtilの該当箇所ラップして自分でカスタマイズしなよ
0232デフォルトの名無しさん
2009/06/05(金) 00:35:33HttpServletRequestから取ってくればええやん
0233デフォルトの名無しさん
2009/06/05(金) 00:45:120234デフォルトの名無しさん
2009/06/05(金) 00:52:430235デフォルトの名無しさん
2009/06/05(金) 00:55:22素で書いたら簡単にできるのにこのフレームワークはこんなこともできないんですか!
みたいな質問が多くて、じゃあフレームワーク使わないで素で書けよって思うことは多々ある。
自由な開発の弊害で苦労して一周回った上で、規約を縛ることの必要性を経験しないと理解できない部分なのかもね。
0236デフォルトの名無しさん
2009/06/05(金) 06:58:31sastrutsはstrutsに縛られてるから仕方ない部分がいくつかある
0237デフォルトの名無しさん
2009/06/05(金) 10:55:370239デフォルトの名無しさん
2009/06/05(金) 14:16:47カンファレンスでもセッションあるみたいだし。
S2Wicketはされてないみたいかな。
0241ひがやすを
2009/06/05(金) 21:39:280242デフォルトの名無しさん
2009/06/05(金) 22:36:150243デフォルトの名無しさん
2009/06/08(月) 01:49:56Slim3は必須のようだ。
0244デフォルトの名無しさん
2009/06/08(月) 23:03:20BigtableとJDOの勝ちパターン
は逆にすべきだろ。
事例発表なんか、聞きたい人少ないと思うんだけど。
0245デフォルトの名無しさん
2009/06/08(月) 23:06:33という意味があると思うから大事だと思うよ。実績をアピールするのも大事
でもメンテされてないプロダクトばかりなのが選択する側としてはつらい
0246デフォルトの名無しさん
2009/06/09(火) 00:09:25SINGLETONにしても、リクエストのたびにInitMethodはしるんで…
0247ひがやすを
2009/06/09(火) 00:32:040248デフォルトの名無しさん
2009/06/09(火) 00:41:21わざわざ2chで質問するってことはよっぽどひねくれてるんだよ
0249デフォルトの名無しさん
2009/06/09(火) 00:44:030250デフォルトの名無しさん
2009/06/09(火) 00:47:08教えられる側は嘘教えられてもだれも訂正してくれないぞ
0251デフォルトの名無しさん
2009/06/09(火) 00:52:10顔文字を使っておちゃらけたほうがいいと思う
0252デフォルトの名無しさん
2009/06/09(火) 00:57:230253デフォルトの名無しさん
2009/06/09(火) 01:01:16質問のMLと雑談の掲示板で使い分けって事で。
0254デフォルトの名無しさん
2009/06/09(火) 01:01:38コンテナ起動前にクラス先にロードしちゃえば?
0255デフォルトの名無しさん
2009/06/09(火) 07:09:540256デフォルトの名無しさん
2009/06/09(火) 09:10:23「map対応してないんだね、糞だね」
っておとしめたいだけなのに、
「素早く対応したよ!2chで質問とかすんなよ」
とか、どう考えても場違い。
0257デフォルトの名無しさん
2009/06/09(火) 20:09:08JavaHouseに比べたら実家くらい快適な場所だわ
0258デフォルトの名無しさん
2009/06/09(火) 20:18:550259デフォルトの名無しさん
2009/06/09(火) 20:41:58ネガキャンしたいだけなんだからこのスレはスルーすればいいのにコミッタが絡んでくるのがウザい。
0260デフォルトの名無しさん
2009/06/09(火) 20:48:140261デフォルトの名無しさん
2009/06/09(火) 21:37:14・完璧な回答ならもちろんだけど、何らかのヒント(もっといえば反応)が欲しい
・回答が無い場合、「なにか知ってるひといません?」と再度聞きやすい。多くのMLはそんな空気じゃない。
・「全文引用すんな、過去レス全部読め」などという人が大きな顔されるのがイヤ
・「どうしてそんなことをするの?」なんていう反応が大嫌い。普通に「できる・できない・こういうことか?」という反応だけでいい。
・質問以外の他人のやりとりをMLだと読まざる得ない状況になりやすいからイヤ
ワガママかね?
0262デフォルトの名無しさん
2009/06/09(火) 21:39:03よっぽどカスみたいなのでもないと今まで一度もないだろ
0263デフォルトの名無しさん
2009/06/09(火) 22:20:10> 多くのMLはそんな空気じゃない。
ML全般の話なのかSeasarのML固有の話なのかはっきりしろ
0264デフォルトの名無しさん
2009/06/09(火) 22:33:26どうしてそんなことをするの?
0265デフォルトの名無しさん
2009/06/10(水) 00:27:560266デフォルトの名無しさん
2009/06/10(水) 00:42:420267デフォルトの名無しさん
2009/06/10(水) 01:19:150268デフォルトの名無しさん
2009/06/10(水) 07:43:002chブラウザで見られないからだ。
0269デフォルトの名無しさん
2009/06/10(水) 12:34:03全然違う話だけど、RSSリーダーもいまいちなれないと思ったら、
2chブラウザで見られないからだ、と>>268見て思った。腑に落ちた
0270デフォルトの名無しさん
2009/06/10(水) 13:20:152chブラウザ風の RSS リーダーがほしい。
0271デフォルトの名無しさん
2009/06/10(水) 14:45:252chブラウザで開発できないからだ、と>>269見て思った。腑に落ちた
0272デフォルトの名無しさん
2009/06/11(木) 09:55:38カスは言うこともカスだな
0273デフォルトの名無しさん
2009/06/11(木) 13:18:520274デフォルトの名無しさん
2009/06/12(金) 00:42:520275デフォルトの名無しさん
2009/06/12(金) 23:01:130276デフォルトの名無しさん
2009/06/13(土) 02:52:340277デフォルトの名無しさん
2009/06/14(日) 04:30:140278デフォルトの名無しさん
2009/06/14(日) 14:48:340279デフォルトの名無しさん
2009/06/14(日) 23:06:17空気読んで、SAStruts in Actionだろ。
0280デフォルトの名無しさん
2009/06/14(日) 23:08:58ちゃんと使ってんのか?
お前みたいなやつはろくに触りもしないで
そのうち、BigTableがいいとか言うんだろ
0281デフォルトの名無しさん
2009/06/14(日) 23:16:32shotタソ乙
0282デフォルトの名無しさん
2009/06/14(日) 23:31:30Ymir
Cubby
T2
SAStruts
Teeda
S2Struts
S2JSF
S2Tapestry
追加訂正してくれ
0283デフォルトの名無しさん
2009/06/14(日) 23:33:53Cubby
T2
SAStruts
S2Struts
Teeda
S2JSF
S2Tapestry
くらいの差はあると思う
0284デフォルトの名無しさん
2009/06/14(日) 23:59:21shotタソのコメント欄見てみろ
Ymir
Cubby
SAStruts
S2Click
S2Struts
T2
Teeda
S2JSF
S2Tapestry
S2Wicket
0285デフォルトの名無しさん
2009/06/15(月) 00:21:134コマ目のひがたんの「BigTable と JDO の勝ちパターン」は、聴講者多数で、LT のあとにもう一度行われた。
Slim3 は、Google App Engine と Bigtable 上でしか使えないの?
あと >>282-284 で、ゆみるが先頭に来ている理由がわからない。
Cubby と SAStruts は使ったことがあり、いちおう(使う側としては)理解しているつもり。
Ymir は http://ymir.seasar.org/docs/1.0.x/user/description を読んだぐらいしか知識がない。
Ymir を否定しているのではなく、Cubby とかSAStruts とくらべてどういう点がよいのか聞いてみたい。
あと、T2 は S2JSF のようなプレゼンテーションのフレームワークではなく、
コントローラやプレゼンテーション層を結びつけるためのフレームワーク
(コントローラやプレゼンテーション層より、レイヤが一段下)ではなかったか?
※法政大学の外堀校舎は綺麗だな。
あんしんしておなか痛くなってもトイレに行けた。
0286デフォルトの名無しさん
2009/06/16(火) 02:06:30メーリングリストで言っておけばいいのに。
0287デフォルトの名無しさん
2009/06/16(火) 13:09:190288デフォルトの名無しさん
2009/06/16(火) 17:42:530289デフォルトの名無しさん
2009/06/17(水) 09:06:26ここのページの下の事例に
「ホット・デプロイ機能は,クラス数が多くなると遅くなる」
とあるけど、そうなのかね?
0290デフォルトの名無しさん
2009/06/17(水) 09:56:16クラスを走査して必要な分を再ロードするんだから規模が大きくなったら難しいんじゃない。
けど実際ベンチマークとってみたいな。
0291デフォルトの名無しさん
2009/06/17(水) 23:20:17http://ml.seasar.org/archives/seasar-user/2009-June/017626.html
> 本来 HOT deploy では必要になったコンポーネントのみ
> インスタンス化されるので,システムに Dao が何千個
> 何万個あろうとも,アクセスされた画面の処理で
> 使われる Dao が少なければ極端に遅くなることは
> ないはずです.
>
> おそらく,どんな画面からも使われる,多くの Dao に
> 依存する巨大なクラスがあるなど,実際には不要な
> コンポーネントまでインスタンス化されるような
> 構成になっているのではないでしょうか?
要は設計が悪いと遅くなる
0292デフォルトの名無しさん
2009/06/18(木) 00:01:54あのおっさん74年生まれか。higaタソやデブ元理事よりずっと若いじゃないか。
前代表理事よりも若い。おっさん失格だな。
0294デフォルトの名無しさん
2009/06/19(金) 10:09:47http://d.hatena.ne.jp/koichik/20090618
0295デフォルトの名無しさん
2009/06/19(金) 10:22:280296デフォルトの名無しさん
2009/06/19(金) 13:34:09■ このスレッドは過去ログ倉庫に格納されています