トップページ⇒tech
1001コメント284KB

国産DIコンテナSeasar その15

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/03/17(火) 20:48:19
一部で話題になっている国産オープンソースDIコンテナSeasar V2(略してS2)。
ってどうよ?みんなもう使ってるの?
使用経験とか、実戦配備情報とか、つかえねーよボケ、とかいろいろ書いてね。

本家 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/
0200デフォルトの名無しさん2009/05/26(火) 23:36:49
>>199
たまには動物園に行きたくなるだろ?
0201デフォルトの名無しさん2009/05/26(火) 23:42:34
>>193
俺もupdateのwhere句に条件加えればいいじゃんと思うんだが
0202デフォルトの名無しさん2009/05/26(火) 23:57:59
>>199
まあそういうな
s2コミッタ=素人
s2ユーザ=ど素人
なんだからさw
02031812009/05/26(火) 23:58:45
>>193 >>201
select .... for update してレコードが取得できたかどうかをせずに、
いきなり update 文を実行した場合、
update 文の結果(PreapredStetement#exeucte())で、0 が返って来た場合、
version_id がずれて更新できなかったのか、
そもそも、当該受注番号のレコードが、一瞬先に別ユーザによって消されたのかわからない。

select .... for update してレコードが取得できたかチェックしておいて、レコードが得られなかったら、
「他のユーザがすでに更新しました or 他のユーザがそのデータを消しました」
とエラーメッセージを出すことが出来る。

とここまで書いたが、いきなり update 文を実行して、update 文の結果が 0 だったら、
同じようなメッセージを出せばいいのか。

画面で、ユーザにもう一度画面を開いてもらい、当該受注番号のレコードが消されたら、
画面を開き直したときに、そのレコードは現れなくなるし。
0204デフォルトの名無しさん2009/05/27(水) 00:20:41
おやすみ僕ちゃんw
0205デフォルトの名無しさん2009/05/27(水) 00:33:30
一生懸命にたくさんの長文を書いてくれたけど、
どうしてJavaEEのほうがいいという結論に達したのか、全然わからなかった。
0206デフォルトの名無しさん2009/05/27(水) 00:35:25
ぶっちゃけどれでもいいよね
実装が違うだけで目的は同じなんだから
JavaEEでもできるだろうけど他でもできるわけで
だからといってJavaEEが最高ってことにはならん
0207デフォルトの名無しさん2009/05/27(水) 00:38:23
僕ちゃんがJavaEEわかってるわけないに1票
0208デフォルトの名無しさん2009/05/27(水) 03:10:52
>>203
実際のところ、楽観的排他制御対応を謳っているFWはほとんど
UPDATE文にバージョンカラム値を条件に加えて、結果が0だったらエラーにする実装をしている
更新なのか削除なのかは、エラー後に再検索して判断する
そもそも「楽観的排他」は「あまり起こらない」ことを前提として、起こった場合は最初からやり直し
という方針で採用されることが多いから、SELECT FOR UPDATEを使う実装は少ないと思う
(オプションによって、一度空更新してトランザクション的なロックをかけたり・・・とかはあるけど)
0209デフォルトの名無しさん2009/05/27(水) 05:59:32
>>196ありがとう

楽観的ロックでは、1つのトランザクションで複数のテーブルまたは複数のレコードを更新する際には、
デッドロックやそれに伴うデータの不整合になる危険性がある。したがって、1つのトランザクションで
1つのテーブルと1つのレコードを更新する事によりデッドロックの回避が可能になりますが、
これに基づいてDB設計と画面設計は相当慎重に行うべきである。また、S2Daoの排他制御は楽観的ロックなんで、
標準的なDaoクラスでDriverManager.getConnection().setAutoCommit(false)の設定をして
SelectForUpdateによる悲観的ロックを採用した方がシンプルでいいかもしれないね。

加えて、1つのトランザクションで複数のテーブルまたは複数のレコードを更新するケースでは、
rollbackを行えば、データの不整合は改善されるが、Webシステムで更新順序によるデッドロックの回避が
できるのかについては、現時点では僕の把握ではできないと思ってる。
0210デフォルトの名無しさん2009/05/27(水) 06:15:43
>>209の追加

要約すると、
・1つのテーブルと1つのレコードを更新する仕様にする(デッドロックが起きないケース)
・デッドロックが起きた際には、rollbackよって回復する(デッドロックをrollbackによって回復するケース)
0211デフォルトの名無しさん2009/05/27(水) 07:42:20
SelectForUpdateによる悲観的ロック()笑

やはりこの程度の認識だったのか・・・
0212デフォルトの名無しさん2009/05/27(水) 08:33:38
select for updateで悲観的ロックになると思ってたのかよ。
0213デフォルトの名無しさん2009/05/27(水) 08:41:39
悲観的ロックだろうが楽観的ロックだろうが、
複数テーブルを更新するときはFOR UPDATEを付けるし、
設計次第ではデッドロックも起きる。
そこは悲観的・楽観的とは関係ないんだよ。僕ちゃん。
0214デフォルトの名無しさん2009/05/27(水) 08:47:22
>>210

さらに要約すると、排他制御はSelectForUpdateによる悲観的ロックを行い、デッドロック対策としては
1画面に可能な操作は、1つのトランザクションで1つのテーブルと1つのレコードを更新するだけに限る。
また、最終更新日を表示することにより、ユーザーによって変更してもよいデータであるかを判断してもらう必要がある。
0215デフォルトの名無しさん2009/05/27(水) 09:31:39
>>214の追記

これを実現する画面設計としては、検索リストから詳細画面へ遷移し、登録/更新/削除を行う。
DB設計も、1画面に可能な操作は、1つのトランザクションで1つのテーブルと1つのレコードを更新する事を踏まえ
データモデリングしていく必要があるね。
02161812009/05/27(水) 11:03:15
でもいいのですが、
181=192=197=203 です。

182=209 、その他ではありません
(まぁ似たようなレベルかも知れませんが)
0217デフォルトの名無しさん2009/05/27(水) 11:10:48
まぁ、一言で表現すると、スレッドセーフになるね。
0218デフォルトの名無しさん2009/05/29(金) 14:09:32
セッションすくねーw
0219デフォルトの名無しさん2009/05/30(土) 00:51:17
確かにえらい寂しいな。
しかも事例紹介を大部屋でやって、ひがさんのセッションを30人の部屋でやるとは…
0220デフォルトの名無しさん2009/05/30(土) 00:57:08
スリムサンはSlim3の発表がメインなんじゃね

しかし実務やってる人には新技術より事例発表の方があるから人は集まるだろうけど
実例がSAStrutsとかみたいな今企業でよく使われるような物じゃないから
微妙なんだよなぁ
0221デフォルトの名無しさん2009/05/31(日) 01:06:48
S2クリックとS2クロノスがいっぱい聞きたかったけど
15分か。。
0222デフォルトの名無しさん2009/05/31(日) 01:10:04
携帯の事例発表とmobyletのセッション同時間にやるのってなんの嫌がらせなの
0223デフォルトの名無しさん2009/05/31(日) 02:59:51
>>222
今からメールしたら、変えてくれるかも。
Seasar カンファレンスは、いつも聞きたいのが重なりすぎて困る。
0224デフォルトの名無しさん2009/06/01(月) 22:55:40
@Resource(arg="@Arg(arg1="aaa",arg2="bbb",arg3="ccc"))
SearchSearvice 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
例えばarg1がDateだったらどうすんの
タイプセーフにならんだろ
0228デフォルトの名無しさん2009/06/04(木) 23:59:48
SAStrutsでつまってる。FormにMapを使いたいんだ。

form.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:01
ちょっと酷すぎてまず何を伝えればいいのか迷ってる
testMap(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:33
>>230
HttpServletRequestから取ってくればええやん
0233デフォルトの名無しさん2009/06/05(金) 00:45:12
フレームワーク使わなければい(ry
0234デフォルトの名無しさん2009/06/05(金) 00:52:43
フイタ
0235デフォルトの名無しさん2009/06/05(金) 00:55:22
S2に限らず、フレームワークスレでいつも思うけど、
素で書いたら簡単にできるのにこのフレームワークはこんなこともできないんですか!
みたいな質問が多くて、じゃあフレームワーク使わないで素で書けよって思うことは多々ある。
自由な開発の弊害で苦労して一周回った上で、規約を縛ることの必要性を経験しないと理解できない部分なのかもね。
0236デフォルトの名無しさん2009/06/05(金) 06:58:31
s2clickかs2wicketならできそう
sastrutsはstrutsに縛られてるから仕方ない部分がいくつかある
0237デフォルトの名無しさん2009/06/05(金) 10:55:37
S2Click、S2Wicket は、まだメンテされているの?
0238ひがやすを2009/06/05(金) 13:02:14
>>230
対応しました。
0239デフォルトの名無しさん2009/06/05(金) 14:16:47
S2Clickはメンテされてる。
カンファレンスでもセッションあるみたいだし。

S2Wicketはされてないみたいかな。
02402302009/06/05(金) 19:38:12
>>238
ぅぉぉぉ、ありがとうございます

え、2chで質問しちゃいけなかったんすか。
MLとか好きじゃないんですよね、ゆとり♀サーセン
0241ひがやすを2009/06/05(金) 21:39:28
黙れ
0242デフォルトの名無しさん2009/06/05(金) 22:36:15
なりすましイクナイ
0243デフォルトの名無しさん2009/06/08(月) 01:49:56
いつの間にかカンファレンスのセッションが増えてるな。
Slim3は必須のようだ。
0244デフォルトの名無しさん2009/06/08(月) 23:03:20
事例発表3と
BigtableとJDOの勝ちパターン
は逆にすべきだろ。

事例発表なんか、聞きたい人少ないと思うんだけど。
0245デフォルトの名無しさん2009/06/08(月) 23:06:33
安心して使ってください

という意味があると思うから大事だと思うよ。実績をアピールするのも大事

でもメンテされてないプロダクトばかりなのが選択する側としてはつらい
0246デフォルトの名無しさん2009/06/09(火) 00:09:25
重い処理を走らせるクラスがあるんだが、そいつだけをHOT deployさせたくないんだよな
SINGLETONにしても、リクエストのたびにInitMethodはしるんで…
0247ひがやすを2009/06/09(火) 00:32:04
Seasar2関連で、2chに技術的な質問はするなと何度言ったら...
0248デフォルトの名無しさん2009/06/09(火) 00:41:21
MLかコミッタのblogのコメに匿名で投稿すれば半日で解決するのに
わざわざ2chで質問するってことはよっぽどひねくれてるんだよ
0249デフォルトの名無しさん2009/06/09(火) 00:44:03
2chで質問されると余程困るのだろうか。
0250デフォルトの名無しさん2009/06/09(火) 00:47:08
答える側は困らんけど
教えられる側は嘘教えられてもだれも訂正してくれないぞ
0251デフォルトの名無しさん2009/06/09(火) 00:52:10
ヒガタンは怖いイメージがあるから
顔文字を使っておちゃらけたほうがいいと思う
0252デフォルトの名無しさん2009/06/09(火) 00:57:23
困るのは技術的な質問に答えられないこのスレの住人w
0253デフォルトの名無しさん2009/06/09(火) 01:01:16
まー全部答えられるかって言われると答えられないことの方が多いのは確かだねぇ。
質問のMLと雑談の掲示板で使い分けって事で。
0254デフォルトの名無しさん2009/06/09(火) 01:01:38
>>246
コンテナ起動前にクラス先にロードしちゃえば?
0255デフォルトの名無しさん2009/06/09(火) 07:09:54
2chで質問するのがいいとは思わないが、それだけMLでは質問しづらいのだろう
0256デフォルトの名無しさん2009/06/09(火) 09:10:23
むしろ、2chではみんなトンデモな答えを期待してるんだから、ひががそれみて対応するほうがウザい。

「map対応してないんだね、糞だね」
っておとしめたいだけなのに、
「素早く対応したよ!2chで質問とかすんなよ」
とか、どう考えても場違い。
0257デフォルトの名無しさん2009/06/09(火) 20:09:08
名前だけカタカナの外人ですら優しく回答してもらえるMLの何処か敷居高いんだ
JavaHouseに比べたら実家くらい快適な場所だわ
0258デフォルトの名無しさん2009/06/09(火) 20:18:55
個人名出す必要もないしプロジェクトでseasar質問用のメアド作ってML入ればいいだけやんね
0259デフォルトの名無しさん2009/06/09(火) 20:41:58
だからMLの敷居が高いんじゃないんだよ。
ネガキャンしたいだけなんだからこのスレはスルーすればいいのにコミッタが絡んでくるのがウザい。
0260デフォルトの名無しさん2009/06/09(火) 20:48:14
キャンペーンじゃなくて実際ネガティブだからなここは
0261デフォルトの名無しさん2009/06/09(火) 21:37:14
・本名参加でなくともメールアドレスという自分を示すものでやりとりするのがイヤ。もっともっともっと気軽に質問したい。
・完璧な回答ならもちろんだけど、何らかのヒント(もっといえば反応)が欲しい
・回答が無い場合、「なにか知ってるひといません?」と再度聞きやすい。多くのMLはそんな空気じゃない。
・「全文引用すんな、過去レス全部読め」などという人が大きな顔されるのがイヤ
・「どうしてそんなことをするの?」なんていう反応が大嫌い。普通に「できる・できない・こういうことか?」という反応だけでいい。
・質問以外の他人のやりとりをMLだと読まざる得ない状況になりやすいからイヤ

ワガママかね?
0262デフォルトの名無しさん2009/06/09(火) 21:39:03
S2のMLで質問に回答がないことなんて
よっぽどカスみたいなのでもないと今まで一度もないだろ
0263デフォルトの名無しさん2009/06/09(火) 22:20:10
>>261
> 多くのMLはそんな空気じゃない。

ML全般の話なのかSeasarのML固有の話なのかはっきりしろ
0264デフォルトの名無しさん2009/06/09(火) 22:33:26
>>261
どうしてそんなことをするの?
0265デフォルトの名無しさん2009/06/10(水) 00:27:56
・POP3/SMTPプロトコルが嫌い。HTTPじゃないと。最初にエッチがつくから。
0266デフォルトの名無しさん2009/06/10(水) 00:42:42
webメール使え
0267デフォルトの名無しさん2009/06/10(水) 01:19:15
俺は絶対に突っ込まないけど
0268デフォルトの名無しさん2009/06/10(水) 07:43:00
俺もMLを敬遠するタチだけど、ようやく理由がわかった。
2chブラウザで見られないからだ。
0269デフォルトの名無しさん2009/06/10(水) 12:34:03
>>268
全然違う話だけど、RSSリーダーもいまいちなれないと思ったら、
2chブラウザで見られないからだ、と>>268見て思った。腑に落ちた
0270デフォルトの名無しさん2009/06/10(水) 13:20:15
2ch ブラウザで 簡易RSS リーダーを内蔵しているのもあるよね。V2C とか。
2chブラウザ風の RSS リーダーがほしい。
0271デフォルトの名無しさん2009/06/10(水) 14:45:25
俺もJavaいまいちなれないと思ったら
2chブラウザで開発できないからだ、と>>269見て思った。腑に落ちた
0272デフォルトの名無しさん2009/06/11(木) 09:55:38
>>262
カスは言うこともカスだな
0273デフォルトの名無しさん2009/06/11(木) 13:18:52
ほめても何もでませんよ
0274デフォルトの名無しさん2009/06/12(金) 00:42:52
後のSeasarスレファウンデーション誕生の瞬間であった
0275デフォルトの名無しさん2009/06/12(金) 23:01:13
前日になっても講演者未定w
0276デフォルトの名無しさん2009/06/13(土) 02:52:34
とりあえずヒガタンのほうれい線を触りに行くか
0277デフォルトの名無しさん2009/06/14(日) 04:30:14
カビーって地味だけどT2よりいいかも
0278デフォルトの名無しさん2009/06/14(日) 14:48:34
カビーの可愛さはどこからきているんだろうな
0279デフォルトの名無しさん2009/06/14(日) 23:06:17
Cubby in Action => T2 in Actionといったら
空気読んで、SAStruts in Actionだろ。
0280デフォルトの名無しさん2009/06/14(日) 23:08:58
>>277
ちゃんと使ってんのか?
お前みたいなやつはろくに触りもしないで
そのうち、BigTableがいいとか言うんだろ
0281デフォルトの名無しさん2009/06/14(日) 23:16:32
>>280
shotタソ乙
0282デフォルトの名無しさん2009/06/14(日) 23:31:30
2chらしくランク付けするか

Ymir
Cubby
T2
SAStruts
Teeda
S2Struts
S2JSF
S2Tapestry

追加訂正してくれ
0283デフォルトの名無しさん2009/06/14(日) 23:33:53
Ymir
Cubby
T2
SAStruts



S2Struts



Teeda
S2JSF
S2Tapestry

くらいの差はあると思う
0284デフォルトの名無しさん2009/06/14(日) 23:59:21
T2はまだそんなレベルじゃないだろ
shotタソのコメント欄見てみろ


Ymir
Cubby
SAStruts
S2Click



S2Struts



T2
Teeda
S2JSF
S2Tapestry
S2Wicket
0285デフォルトの名無しさん2009/06/15(月) 00:21:13
昨日行ってきた。
4コマ目のひがたんの「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:19
おっさんって誰だ?
0288デフォルトの名無しさん2009/06/16(火) 17:42:53
いうまでもない
0289デフォルトの名無しさん2009/06/17(水) 09:06:26
ttp://itpro.nikkeibp.co.jp/article/NEWS/20090615/331996/?ST=lin-server&P=3

ここのページの下の事例に
「ホット・デプロイ機能は,クラス数が多くなると遅くなる」
とあるけど、そうなのかね?
0290デフォルトの名無しさん2009/06/17(水) 09:56:16
そりゃそうだろう。
クラスを走査して必要な分を再ロードするんだから規模が大きくなったら難しいんじゃない。

けど実際ベンチマークとってみたいな。
0291デフォルトの名無しさん2009/06/17(水) 23:20:17
>>289
http://ml.seasar.org/archives/seasar-user/2009-June/017626.html
> 本来 HOT deploy では必要になったコンポーネントのみ
> インスタンス化されるので,システムに Dao が何千個
> 何万個あろうとも,アクセスされた画面の処理で
> 使われる Dao が少なければ極端に遅くなることは
> ないはずです.
>
> おそらく,どんな画面からも使われる,多くの Dao に
> 依存する巨大なクラスがあるなど,実際には不要な
> コンポーネントまでインスタンス化されるような
> 構成になっているのではないでしょうか?

要は設計が悪いと遅くなる
0292デフォルトの名無しさん2009/06/18(木) 00:01:54
>>286-287
あのおっさん74年生まれか。higaタソやデブ元理事よりずっと若いじゃないか。
前代表理事よりも若い。おっさん失格だな。
02932892009/06/18(木) 00:21:35
>>291
情報どうもです。ということは、この事例の場合は設計が悪かったということですな。
0294デフォルトの名無しさん2009/06/19(金) 10:09:47
マスターからメッセージが来たよ
http://d.hatena.ne.jp/koichik/20090618
0295デフォルトの名無しさん2009/06/19(金) 10:22:28
ひがブログなんか盛り上がってるね。
0296デフォルトの名無しさん2009/06/19(金) 13:34:09
ひがやすをに「ガツン」と申し上げたい
0297デフォルトの名無しさん2009/06/20(土) 02:43:33
何だかんだ言ってみんなヒガタン好きだなw
0298デフォルトの名無しさん2009/06/21(日) 11:37:43
なんつうか、偏った人が多い気が。なにもSeasar界隈に限った話じゃないけど
0299デフォルトの名無しさん2009/06/21(日) 11:57:24
やすをの自演カキコがうざい
■ このスレッドは過去ログ倉庫に格納されています