トップページphp
1001コメント502KB

WebObjects 3インタンス目

■ このスレッドは過去ログ倉庫に格納されています
0001りお02/06/14 23:58ID:9v1vZuBx
NeXTからAppleComputerに引き継がれたオブジェクト指向
Webアプリ開発環境「WebObjects」について語るスレです。

http://www.apple.co.jp/webobjects/
http://www.apple.com/webobjects/

1スレ目:http://pc.2ch.net/test/read.cgi/php/989562708
2スレ目:http://pc.2ch.net/test/read.cgi/php/1013695600

■ 掟 ■
・遠慮は自身の成長を阻害する。過去ログ読んでも判らないことがあればどんどん質問すべし。そして判らないヤツがいたら親切じゃなくてもいいから教えてやるべし。
・WebObjectsを使っている個人・法人の無意味な批判は歓迎されない、しない。マカーマカーと騒がないこと。
・ヨソの開発ツールを使ってもないのにWebObjectsマンセーすることは歓迎されない、しない。
・運用についての質問はハードウェア、OS、パッチ、RDBMSのバージョン、JDBCアダプタのバージョン、Web鯖のバージョン、例外の内容などを細かく明記すべし。
・さやかタン (´Д`;)ハァハァ

0616nobodyさん02/08/28 10:04ID:???
>>615
WO4.5.x奨めてるのは、Objective-C使えるからだろ。
でも、今時Obj-Cやってる人間なんて、仕事じゃツブシきかないよ。
gccにObj-Cラッパーあるみたいだけど、ビジネスベースじゃ無理だな。
前世紀の遺物にしがみつきたがる、DQNなんだろ。ケケケは。
いや、Obj-C自体は、C++なんかよりは遙かにいいと思うけどな、個人的には。
0617nobodyさん02/08/28 18:43ID:???
WOをいじりはじめて1年。最近、SQLを書くことになったのだが、非常に基本的なSQLを忘れてしまってたぁよ。WOやってるとSQL書くこと全然ないからね・・・おまえらはどうよ?
0618nobodyさん02/08/29 03:44ID:???
>>613
>プ社みたいなことやってないし。
たしかにAcrobat起動してPDF加工はちょっとイタすぎ。
この技術(藁)とWOがリンケージされないことを祈りたい。
0619nobodyさん02/08/29 07:55ID:???
>>618
とりあえず、Adobe PDF Libraryの使用許諾条件読んでみれ。
読むとAcrobat起動はそんなにイタイ解答じゃないことがわかる。
あんまり口出ししたくないんだが、web野郎にはわからんDTP屋の
悩みってのがあるんだよなー。
0620nobodyさん02/08/29 20:59ID:???
初台でやってる無料のハンズオンセミナ参加レポートきぼーん。
0621nobodyさん02/08/29 23:17ID:???
Acrobat起動してPDF加工しようがなにしようが、
それ自体がアドビとのライセンス上問題なく、かつ客に対するビジネスとしても問題なければ、
技術的な個人趣味とか嗜好とかを除けば何ら問題ないんじゃないの。
WOと絡めようがなんだろうが、関係ないと思うが。

そういやライセンス的にはどうなんだ?プ社の場合は。
0622nobodyさん02/08/29 23:43ID:???
>>620
名前登録してるし人数少ないし、レポートしてしまうと面が割れるという罠。
0623nobodyさん02/08/29 23:46ID:???
>>617
自分で生SQL書いたことなかったけど、EOAdaptorDebugEnabledにして
ずらずら出てくるのながめてたらなんとなく読み書きできるように
なってしまった、とかいうのは私くらいか。
0624nobodyさん02/08/29 23:54ID:Ot/AP+f9
MacOSX10.2にOracle9i入れた人います?
0625nobodyさん02/08/30 00:37ID:???
>>そういやライセンス的にはどうなんだ?プ社の場合は。

利用クライアントごとにAcrobatのライセンスを購入するようにしているのでライセンス違反にはなっていない。あどべの知人から聞いた話なので間違いは無いと思われ。
0626nobodyさん02/08/30 08:46ID:???
>>624
入れました。速度的にはほかのプラットフォームと大差ないです。たんに、
オラクルの稼働プラットフォームにマックが増えたって感じです。

だけど、ちょっと重いストアドがどういうわけかOS X の方がずっとはやい結果がでてるので調査中。本当に早いのかな?
0627nobodyさん02/08/30 11:52ID:ndH7t8np
◇Microsoft SQL Server 2000 Driver for JDBC
http://www.microsoft.com/japan/msdn/sqlserver/downloads/jdbc/default.asp
日本語版最終更新日 2002 年 7 月 17 日
0628nobodyさん02/08/30 12:34ID:i8Ef6i0q
>>627
どうもありがぽ
0629nobodyさん02/08/30 20:28ID:???
http://servlet.java.sun.com/javaone/jp2002/conf/bofs/display-1242.ja.jsp

石井CEOの名字と名前が反対すよぉ(;´Д`)


0630nobodyさん02/08/30 21:31ID:???
WebObjects5.2マンセー
0631nobodyさん02/08/30 21:49ID:vF0Y6HBb
>>630
WebServices対応してるようだな。
0632nobodyさん02/08/31 00:40ID:AiSPYDtJ
>>630
>>631
くわしい情報キボヌ。
0633nobodyさん02/08/31 09:27ID:g0bRF0q5
>>632
US AppleのWebObjects MLでWebObjects5.2のベータテストが始まったつー告知がされてた。
ADCメンバじゃなくても登録すれば使えるらしい>5.2β
ウェブサーヴィスに対応したところが注目だなー。つぅか業界の流れに沿ったカタチなんだろうけど。
0634nobodyさん02/08/31 15:42ID:i4Ym2aZq
WebServicesに対応って情報はどのあたりにありまつか?
063563202/08/31 16:03ID:AiSPYDtJ
>>633
情報さんくす。
他にも変わったところありませんでしたか?

当然だけど、ADCにはまだ出てないですね。
どこで登録するんでしょう?
0636nobodyさん02/08/31 22:19ID:???
とりあえず、AppleがやってるMLにはいりませう。
0637とーしろ02/08/31 22:23ID:???
WebLogicやWebsphereとなんか違うの?
0638nobodyさん02/09/01 00:33ID:???
>>637
出来ることはほぼ同じじゃない。
あっちは、Sunの策定した標準技術+α(JSP、Servlet、EJB)
だが、WOは独自のフレームワークにより、あっちよりずっと開発が楽よん。
0639とーしろ02/09/01 02:32ID:???
>>638
なるほど。さんくす。
プロプライエタリなJ2EE−αね。
技術者確保が難しそうだな。
0640nobodyさん02/09/01 05:54ID:9K0+aUbS
>>639

>プロプライエタリなJ2EE−αね。
うーん、ちょっと違うとおもいます。

WOはその出発点が「DBをオブジェクト化したい!!」から始まって、
そのうち「WEBアプリに使えんのんか〜これ?」てな感じで開発された
のにたいし、J2EEは「DBをJAVAから使いたい」からスタートしています。

だから単純にJ2EEからプラスマイナスはできないと思います。

WOはその流れからいろんなものの考え方がかなり抽象化されていますので、
(セッション、データベース、ページの取り扱い)覚えるまでが大変ですが
おぼえちまうと、すげー楽です。逆にいま台頭してきているWEBアプリ関係の
ミドルとの連携は今一ですが。

かたやJ2EEはまだタグリブとかつかってなんとか開発工数を減らそうとしている
のは分かるんだけど、けっこー煩雑なのでまだまだかなって気はします。

詳細はあポーのサイトに転がっている日本語の解説書を見てもらうと
楽かも。

http://developer.apple.com/ja/techpubs/

>技術者確保が難しそうだな。

これはいえてます。うちも困っています。
一番困るのは、ハードベンダーが「見向きもしない」ことです。

やっぱ日本ってハードベンダーの意向でミドルが決まるってけっこー
ありますから。
0641nobodyさん02/09/01 07:24ID:7OvmZylj
超初心者です。よろしく...

JDBC connection failed for driver :'org.gjt.mm.mysql.Driver'.
Driver not found in Java Runtime! Please verify your CLASSPATH
environment variable. The current CLASSPATH for your application
is : C:\Apple\Library\Frameworks\JDBCEOAdaptor.framework\Resources
\Java\.;.;C:\j2sdk1.4.0_01\lib\tools.jar;C:\mysql\bin;C\mysqljdbcmm
\mm.mysql-2.0.14\mm.mysql-2.0.14-bin.jar;C\Program Files\Java
\j2re1.4.0_0.1\lib\ext\mm.mysql-2.0.14-bin.jar;/Library/Java;C:
/Apple/Local/Library/Java;C:/Apple/Library/Java;C:/Apple/Library/
JDK/lib/classes.zip;C:/Apple/Library/Frameworks/JavaVM.framework/
Classes/awt.jar;C:/Apple/Library/JDK/lib/swingall.jar

mySQL+WO5+Win2Kでeomodelerで接続しようとすると上のエラーが出ます。
どこがまずいんでしょうか?

0642nobodyさん02/09/01 07:26ID:7OvmZylj
(641の追加です)

JDBC CONNECTIONのところは、

urlでは、mysql://localhost/tkenpou?capitalizeTypeNames=true

optional のdriverでは、org.gjt.mm.mysql.Driver

と入れました。
0643nobodyさん02/09/01 10:28ID:???
>>641
エラー内容みてわからんか?
とりあえず環境変数のCLASSPATHに、mmドライバのjarファイルのpathをセットしる。
デスクトップのマイコンピュータを右クリックのプロパティから逝け。

参考までに、漏れが以前使ったMySQL on Win2KでのEOModeler上での設定はこれだ。
 Username:root
 Password:無し
 URL:jdbc:mysql://<ホスト名>/<データベース名>?useUnicode=true&characterEncoding=SJIS
 Driver:org.gjt.mm.mysql.Driver
ex.
 jdbc:mysql://localhost/mysql?useUnicode=true&characterEncoding=SJIS

参考にしろや、ゴルァ!
0644nobodyさん02/09/01 11:14ID:7OvmZylj
超初心者でございます。
うまくいきません。

まず、
デスクトップのマイコンピュータを右クリックのプロパティから逝け。

とのことで、

いままでAdministratorのユーザー環境変数にだけ
classpathで

.;%JAVA_HOME%\lib\tools.jar;C:\mysql\bin;C\mysqljdbcmm
\mm.mysql-2.0.14\mm.mysql-2.0.14-bin.jar;C\Program Files
\Java\j2re1.4.0_0.1\lib\ext\mm.mysql-2.0.14-bin.jar

と設定していたものを
念のために
システム環境変数にも同じものを入れて
pcをリブードさせて(リブートが必要かどうかもわからないので)
再度、前回と同じようにやりましたが、
やはり同じメッセージが出ます。

pathというのは、classpathの意味ですよね?

それと教えていただいた
urlは全部入れられないのですがどこかまずいでしょうか??

よろしお願いしますです。
0645nobodyさん02/09/01 11:16ID:7OvmZylj
(追加です)

C\mysqljdbcmm\mm.mysql-2.0.14\mm.mysql-2.0.14-bin.jar

ここがドライバの置いてある場所でございます...

0646nobodyさん02/09/01 14:30ID:???
>>619
PDF Libraryの使用条件とAcrobatの使用条件は別物ですよ。
Acrobatにはインターネットライセンスはないです。

>>621 >>625
P社は当初、Acrobat起動技術(藁)をインターネット向けに売ってA社と
トラブルを起こし、イントラネット向けに強引に切り替えたそうです。
ただ、Webシステムを使うのにクライアントごとにライセンスが必要と
なってはもう売り上げは望めないでしょうね。
まあ後から訴えられることを考えればそのほうがいいのかもしれませんが。

Acrobat起動ではなくPDF Libraryを使えばライセンスの問題はないのですが、
なにしろP社はこういう会社なのでA社は契約を渋っているようです。
このことは>>461さん(A社の人間?)も指摘していますね。
A社の知人から聞いた話なので間違いは無いです。
0647ぷぷぷっ02/09/01 17:03ID:???
やっとこさ開発環境が整ってさくさくっとがんばっとるんだが、
いきづまってしもた。どなたかHELP ME!!!!
掲示板で一覧からタイトルをクリックして修正画面へ移動し、
修正完了するともとの一覧へ戻る処理を作成してるんですが、
修正画面で修正ボタンを押すと、
Error:com.webobjects.eoaccess.EOGeneralAdaptorException
Reason:updateValuesInRowDescribedByQualifier
となってしまう。
takeValueForKeyを使わなければ問題ないんですけど。。。
なぜじゃ。
一覧画面(develop)のソース(リンクのアクション)
public developmod mvdevelopmod() {
developmod nextPage = (developmod)pageWithName("developmod");
session().defaultEditingContext().revert();
nextPage.setAarticle(aarticle);
return nextPage;
}

修正画面(developmod)のソース
public void setAarticle(EOEnterpriseObject newAarticle) {
aarticle = newAarticle;
}
public develop submitdevelopmod() {
develop nextPage = (develop)pageWithName("develop");
// UPDDT
NSTimestamp myNSTimestamp = new NSTimestamp();
aarticle.takeValueForKey(myNSTimestamp,"upddt");
session().defaultEditingContext().saveChanges();
return nextPage;
}
0648nobodyさん02/09/01 21:41ID:jqC/lWsC
>>647
EOModelorで、更新しようとしているEntityのRockedAttribute(ロック:錠前のアイコン)の
チェックを外すことでおまえは幸せになれるだろう。
全部はずしてもいいし、大量の文字列を扱うAttributeをハズしてもいいし。まぁちょっとその辺調べてやってみればよい。
0649nobodyさん02/09/01 21:52ID:???
>>644
classpathの設定については、JavaHouseに詳しいトピックスがある。
まずそこから出直せ

>それと教えていただいた
>urlは全部入れられないのですがどこかまずいでしょうか??

コピペっつー文明の利器があるだろ。
工夫しる。
0650nobodyさん02/09/01 22:08ID:jqC/lWsC
>>649
Windows2kだったら、makefile.preambleにOTHER_CLASSPATHに設定するという方法もあるぞな。
0651ぷぷぷっ02/09/01 23:25ID:???
>>648
幸せになれたみたい。
意味はあとで調べよっと。
ありがとっ
0652あぼーんNGNG
あぼーん
0653nobodyさん02/09/01 23:31ID:???
>>646
>ただ、Webシステムを使うのにクライアントごとにライセンスが必要と
>なってはもう売り上げは望めないでしょうね。
こんな条件なら販売自体辞めたほうが経費がかからないだけマシだろ。
クライアントの管理が必要ならなんのためのWebシステムかわからんからな。

それと前にP社と取引があるとか書いてる人いたけど大丈夫か?
これじゃ倒産の可能性も考えてつきあわないとヤバいぞ。
0654nobodyさん02/09/02 00:16ID:???
>>653
こんな下手糞な煽りでもここの住人なら釣られるんだろうな・・・
0655nobodyさん02/09/02 02:24ID:???
>>646
違う。APLとAcro鳩が別物なのは当たり前。両者の関係がポイント
なんだよ。A社と取引があったら常識なんだけどな...。
ま、Web屋はPDFやA社のことをなんもわかっとらん連中が大半なので
しょうがないけどね。
0656nobodyさん02/09/02 02:26ID:???
>>647
takeValueForKey()の前にwillChange()は付いてますか?
0657nobodyさん02/09/02 13:16ID:Y5OcH7bS
WebObjects5.2
https://appleseed.apple.com/cgi-bin/WebObjects/WOSeed.woa
ここから登録。
0658嵐君、きをつけて。02/09/02 19:37ID:???
匿名だからといって安心しないように。2chもログとってることは明白なんだから。
http://www.sankei.co.jp/news/020902/0902sha063.htm
0659ぷぷぷっ02/09/02 20:01ID:???
>>656
うーむ、わからん。648の方法でうまくいったんだが、
willChange()というメソッドは手元の資料には載ってないなぁ。。。
0660nobodyさん02/09/02 22:08ID:???
>>658
2ちゃんとは書いてないけど?
他の掲示板はIP晒しているからネェ。
0661nobodyさん02/09/02 22:36ID:???
>>660
2chもIDひょうじしているところはログ記録してるらしい…
というか、記録してもまったくフシギじゃないよな。。
0662nobodyさん02/09/03 01:43ID:???
>>655
はあ!?ワケわからん。両者の関係ってなんだよ?

俺はそれなりにPDFのライセンスについて知ってるつもりだが、>>646
主張が間違ってるとは思えない。もちろんP社とA社がトラブった件までは
知らんがな。

俺が理解できるように説明してくれるか?
説明できんなら>>655はP社工作員といわれても仕方ないな。
0663nobodyさん02/09/03 03:57ID:???
>>662
途中から読むとよくわからないので2スレ目から読むことをすすめる。

それをふまえて、ここでの話題はPDFのライセンスじゃなくて、
Adobe PDF Libraryのライセンスのことだと思われ。
P社がAdobe PDF Libraryにアクセスできてるかどうかは漏れも知らんが、
>>646が真面目にライセンス読んでないのは明らか。

Acrobatの多人数共有利用については、インターネット・イントラネット
経由を問わず、Distiler Serverのライセンスにきちんと書いてある。
特に問題はない。P社以外にも使ってるところはたくさんある。
これはPDFそのもののライセンスとかPDF Libraryのライセンスとかとは別の話。

そして、これが肝心なところなんだが、A社自身はAcrobatで出来る用途
にはAcrobatを使え、という態度を取っている。>>646は嘘だと思うなら
A社の知人とやらに確認してみればいい。
0664nobodyさん02/09/03 04:09ID:+ajpb9nO
>>659
んもうっ、世話が焼けるなあ。
ttp://developer.apple.com/techpubs/webobjects/Reference/Javadoc/com/webobjects/eocontrol/EOEnterpriseObject.html#willChange()

ちなみに648の方法は、解決策というよりはEOFがせっかくやってくれてる
オブジェクトスナップショットの保存を無効にしているだけなので、
これをやると少しだけ動作が軽くなるかわりに競合の検出が出来なくなる
という諸刃の剣。素人にはおすすめで出来ない。
0665nobodyさん02/09/03 08:39ID:???
>>664
質問、競合の検出が出来なくなる、、って具体的に、何の競合の検出でしょうか?
プライマリキーの重複とかでしょうか?
0666nobodyさん02/09/03 10:00ID:???
WebObjectsはデフォルトで、裏で別なユーザが直前に同じレコードを
更新していたとき、手元のデータと比較して違いがある場合は
更新できないというロック方法(楽観的なロック)を行っているので、
648の方法ではこのロック機構が有効に働かない可能性が出てきて、
期待した動きが得られない可能性もあるということでしょう。
有効に働かないと、+100したのに、-200の値が表示されたり
などという現象に出くわすわけです。
鍵マークをはずすと、その項目は比較しないよということですね。
なので、はずしても大丈夫な項目だけはずしましょう。
0667nobodyさん02/09/03 10:13ID:???
ありがとうございます>666 あ、ぞろ目だ。
では、逆に更新時に
Error:com.webobjects.eoaccess.EOGeneralAdaptorException
Reason:updateValuesInRowDescribedByQualifier
がでた場合は競合が検出され、別ユーザが同じEOを更新してしまった、ということになるのでしょうか?
(ほかユーザが接続していないのにこの例外がでる場合もありますし...)
それと、willChange()とこの件は何か関連性があるでしょうか。
(わたしは元々の質問者ではないのですけど)

WOのロックと更新時の挙動については不明瞭な点があるので、ここでクリアにしておきたいですn:-)
0668nobodyさん02/09/03 10:57ID:???
WebObjectsでは、変更を行った場合、変更を認識する必要があるオブジェクト
(オブザーバといいます。EOEditingContextなどが代表格。Javaのイベント
リスナみたいなもの。)に通知を行う必要があります。これを行わないと、
EOFの仕組み自体がうまく機能しなくなるので、、、。
この通知の仕組みを動かすのが、willChange()というメソッドですね。
ですから、この場合はEOFの仕組みがうまくいってなくて例外になって
いるのだと思います。推測ですが、更新時になんかのフラグが立ってないのを
検出したとかの流れで例外を上げているのだろうと思います。
0669nobodyさん02/09/03 12:00ID:???
さらに補足すると、CustomEOを作ってアクセサメソッドを生成すると
自動的にwillChange(), willRead()等が付け加えられます。

EOFののロックの挙動についてはWroxの本がわりと網羅してる。
これを読んだあとにAppleの資料を読むといいかも知れない。
0670nobodyさん02/09/03 13:08ID:v16hnIxO
Wroxの本 について教えてください。

ていうか700ゲト
0671nobodyさん02/09/03 14:02ID:???
WO 4.x系だと、確かにCustomEOを作ってアクセサメソッドを生成すると、
自動的にwillChange(), willRead()等が付け加えられますが、
WO 5.1だと、takeStoredValueForKey()/storedValueForKey()が
出力されますね。
4.xのドキュメントを読むと、takeStoredValueForKey()/storedValueForKey()は
EOFが使用するメソッドなので、ユーザ設定値はtakeValueForKey()/valueForKey()を
使うと書いてあります。
しかし、実際にはこれでうまくいきますし、willChange()/willRead()もいらないので、
takeStoredValueForKey()/storedValueForKey()の中で呼ばれているのでしょう。
ということは、WO5ではこれらのメソッドの位置づけが変わったのでしょうか。
0672nobodyさん02/09/03 17:35ID:???
<com.webobjects.appserver._private.WOPopUpButton> Warning: Avoid using the 'value' binding as it is much slower than omitting it, and it is just cosmetic.
ってなんのメッセージ?
0673nobodyさん02/09/03 18:10ID:???
>>672
前後事象をもっと詳しくかけ\(#`Д´)/
0674nobodyさん02/09/03 18:49ID:???
>>670
ttp://www.amazon.co.jp/exec/obidos/ASIN/1861004311/ref=sr_aps_eb_2/250-4059031-4565841
0675nobodyさん02/09/03 21:28ID:???
>>672
WOPopUpButtonの宣言にvalue=...をつけるとパフォーマンスが落ちるよ、ということ。
省略時は数字になるので、内部的にインデックスのように使えて高速に処理できるんでしょう。
JavaScriptなんかで使うとき以外はvalueを指定する必要はないと思うんで
(文字列表示はdisplayStringを使えばよいし)指定しないのが無難かも。

ちなみにvalue指定しても普通に動きます。パフォーマンスもそんなに気にならない程度。
0676nobodyさん02/09/03 22:20ID:???
>>675
ありがとうございます。
英文のとおりだったんすね
0677nobodyさん02/09/04 01:11ID:???
>>663
>Acrobatの多人数共有利用については、インターネット・イントラネット
>経由を問わず、Distiler Serverのライセンスにきちんと書いてある。
たしかに書いてありますね。インターネット向けの無制限ライセンスはないと。
つまり、インターネットでP社のソリューションを使う場合は
アクセスするすべてのクライアントにAcrobatのライセンスが必要ということです。
そんなもので商売になるのかという話にはとりあえずコメントは控えます。

>特に問題はない。P社以外にも使ってるところはたくさんある。
お願いだから嘘を書き込むのだけはやめてもらえませんか?
荒らしに嘘で対応してもまったくの逆効果になることがわからないのですか?
本当だというなら実名に近い形で企業名をあげてください。
Acrobat起動が立派な技術だというなら別に実名でも問題ないですよね。

それとも、裏でコッソリAcrobat起動なんていう腐り切った商売をしてる会社は
実名を出されると迷惑ですかね?企業名の書き込みがなければそのように
理解させてもらいます。

それと私は駄目会社に見方する気はまったくありません。駄目会社が
WOの開発をしているだけでWOの価値が下がります。
話題の会社にはWOから手を引くだけでなく資本主義市場から退場して
いただきたいと思っています。そのほうが世の中のためです。
067849302/09/04 02:34ID:???
>>650
>makefile.preambleにOTHER_CLASSPATHに設定するという方法もあるぞな。
これ便利ですよね。
jarをNEXT_ROOT以下に置くようにすれば、Deploy環境に持って行ったときも
そのまま読み替えてくれるし。(わざわざパスを展開してからWOROOTに置き換えてるっぽい)
jre/lib/extに置くのはあんまり好きじゃないんで、Javamailなどのjarファイルは
C:/Apple/Local/Java/libなど入れてOTHER_CLASSPATHで指定するようにしています。
0679nobodyさん02/09/04 02:48ID:???
本来このスレの住人じゃないんだけど、乗りかかった船なので
最後まで相手してあげよう。

> アクセスするすべてのクライアントにAcrobatのライセンスが必要ということです。
> そんなもので商売になるのか

クライアント数*Acrobatの料金とAdobe PDF Libraryのライセンス料と比べたら
どちらが高いでしょう。顧客に対して安価にソリューション提供する場合に
どちらが好ましい、または商売になると思う?

Adobeがどういう会社かも知らずに、PDFを真剣に使った開発経験もなしに、
ただ1社おとしめるのが見てて気分悪い。

漏れもそうだが印刷屋さんがwebに進出するときのいちばんの悩みは、
仕事のまわしかたを知らないweb小僧の相手だったりするのだ。
とにかく偏狭なやつら多すぎ。みんな大変だねえ。
0680nobodyさん02/09/04 02:49ID:???
>>679のつづき

> お願いだから嘘を書き込むのだけはやめてもらえませんか?

嘘だと誰が決めたの? ぼくちゃんひとりだけ?

> 裏でコッソリAcrobat起動なんていう腐り切った商売をしてる会社は

Acrobatをサーバ側で起動していたとして、それを個人的な好みでダメ技術と
判断するのは勝手だけど、当たり前の一般論みたいに書くのは我慢できないね。
それから私が噛み付いたのは、あくまでAPLの方がAcrobatより高級だ、みたいな
変な思想が論点なので、どこが駄目会社とかそういう話ではないです。

が、それを置いといても、P社は別に裏でコッソリじゃなくて、堂々と
Acrobat起動してるぞ。それを意図的に無視してここまでけなせるってのは、
何か別の利害関係を想像されてもおかしくないね。

> 駄目会社がWOの開発をしているだけでWOの価値が下がります。

独善。根拠無し。
同じ論法を使ってあげよう。

こんないい加減な議論をしているやつがWOスレに書いてるってだけで、
WOの価値なんかたかが知れてるな。

> 話題の会社にはWOから手を引くだけでなく資本主義市場から退場して
> いただきたいと思っています。そのほうが世の中のためです。

いよいよ個人的な恨みを書かずにはいられなくなったみたいね。
ま、スレ違いだし、さっさと帰って寝なさい。
0681nobodyさん02/09/04 02:50ID:???
あれ、>>677ってネタだったの?
スマソ。半分マジレスしてしまった。まあいいや。
0682nobodyさん02/09/04 03:41ID:???
工作員も夜遅くまで大変だな。
DQN会社は早いとこ退職してまっとうな仕事をしたらどうだ?
あっ、辞めたてもどこにも雇ってもらえないんだっけ?
まあ、従業員数人の超零細企業出身じゃどこの会社も敬遠するわな。

>クライアント数*Acrobatの料金とAdobe PDF Libraryのライセンス料と比べたら
>どちらが高いでしょう。顧客に対して安価にソリューション提供する場合に
>どちらが好ましい、または商売になると思う?
PDF Libraryが好ましい。なぜなら利用者がライセンス購入する必要がないから。
通常アプリに比べて操作性などあらゆる面で劣るWebアプリがもてはやされるのは
クライアントを管理する必要がないから。
これはWebシステムの基本中の基本。
クライアントごとにAcrobatのライセンスが必要ならWebアプリにする必要はないし、
Webしてはいけない。なぜならライセンス違反を誘発するからね。

>ただ1社おとしめるのが見てて気分悪い。
生憎こういうフザけた商売してる会社を1社しか知らなくね。
他にもあるならAcrobat起動してPDF加工してる会社名をあげてみろよ。

>P社は別に裏でコッソリじゃなくて、堂々とAcrobat起動してるぞ。
これ見てみ。
ttp://www.planetcomp.com
一言もそんなこと書いてねーよ。
それと今更話を戻して「Acrobat起動なんてやってない」ってのは勘弁してくれよ。

>何か別の利害関係を想像されてもおかしくないね。
勝手に想像しろや。
お前が何を想像しても痛くも痒くもねーからよ。
0683nobodyさん02/09/04 04:47ID:???
 
0684nobodyさん02/09/04 08:30ID:???
> 駄目会社がWOの開発をしているだけでWOの価値が下がります。

これって、あんまりじゃない?木を見て森を見ずの典型例。
暴走族がGTRのってるだけでGTRの価値が下がるといってるようなもんじゃん。
お願いだからこんなめちゃくちゃな理論展開するのはやめてください。
0685nobodyさん02/09/04 10:11ID:z+lQWYIA
漏れはサイバーラボの加藤社長がWO使ってるだけで、WOの価値は史上最高のものになってるんですが、何か?
0686nobodyさん02/09/04 11:41ID:???
WOで開発するイコール開発コストが安くてすむと勘違いしているバカクライアントが後を絶たないのだが、
だれかそれが違うことを論理的に説明してもらえないか。

0687nobodyさん02/09/04 11:48ID:mOs7rSld
WebObjectsは技術的には面白いと思うが、それ以上何を求めるのだろう・・・
0688nobodyさん02/09/04 12:31ID:???
>>686
ソフトウェア開発はいろんな意味で人身売買に等しいからな。値段の付け方なんて、どこもいい加減。
同じシステムをA社とB社とC社に見積もりだしても、使う道具違うし、人間も違うしで
何百マソも違うケースが多い。一番安いところに発注したらPerlで構築して
スパゲッティ状態で機能拡張しようと依頼したらさらに長い後期と莫大な見積もりがきた
という罠。漏れの会社のことだ...鬱志。
いま、別システムをWebLogicを使うというやつらに発注しようとしている。
漏れはJavaもWebObjectも知らぬフリしているので、どういうやりかたをするのか楽しみにしている。
見積もり値段は漏れの年収の5倍ぐらいだーよ。鬱志。
特に業務ルールの移り変わりが多い漏れの会社なんだがこういう柔軟な開発にWOは向いていると思いこんでいるのだが、やっぱ使うやつのスキルによるのか?>識者
068968802/09/04 12:34ID:???
どうでもいいがWebLogicのスレがこの板にたっていたが滑り台から転げ落ちる子供のように下の方に逝ってしまったな。
人気ねぇんだなぁ・・・・
0690nobodyさん02/09/04 12:39ID:???
>>689
2chで人気がないだけだ。煽りじゃないぞ。
逆にいうとWebLogic使ってる奴はここには書かないってことだろう。
2chの情報は貴重だが2chだけが世の中の全てじゃないからな。
俺は今JBoss使ってるよ。
069168802/09/04 13:35ID:???
>>690
たしかに、その通りだな。うむ。
0692nobodyさん02/09/04 17:31ID:z+lQWYIA
今更EOEditingContextのアーキテクチャに感動。。。なかなかないよ、このカラクリは。
0693ぷぷぷっ02/09/04 20:38ID:???
>>656
とりあえず、↓のように修正したんだが、動かん。>>647と同じエラーが発生した。
public develop submitdevelopmod() {
aarticle.willChange();
NSTimestamp myNSTimestamp = new NSTimestamp();
aarticle.takeValueForKey(myNSTimestamp,"upddt");
session().defaultEditingContext().saveChanges();
develop nextPage = (develop)pageWithName("develop");
return nextPage;
}
もうだめぽ。
0694りお ◆/OjWxByc 02/09/04 22:01ID:Nrg4ZZE1
>>693
rocked attribute をハズしてもダメか?
それと、DBはなんだ?ポスグレか?ポスグレの場合は型をdateでなくてtimestampにしたほうが良いかもyo。

>>もうだめぽ。

そんなことをいうな。ソフトウェアに限界はない。解決策はどっかにある。
0695ぷぷぷっ02/09/04 22:14ID:???
>>694
rocked attributeをはずすとwillChangeがなくても動くよ。
ただ、なんかはずさんほうがいいってなことが書いてあったから。。。
っーかカスタムEOとやらにすればこんな面倒なことしなくてよいのかい?
0696nobodyさん02/09/04 22:33ID:???
>>695
とりあえず結果オーライでいいのでは?
たしかテクノロジックアートのMLでTatsuyaKawanoたんがEOのロックについて
長々とスレを展開していたとおもうから検索してみれば?
0697nobodyさん02/09/05 02:07ID:???
>>684
>暴走族がGTRのってるだけでGTRの価値が下がるといってるようなもんじゃん。
この場合、GTRの価値は下がるのが正しい。
だから企業は好感度の高い人間に自分の会社の商品を使ってもらおうとするわけ。
漏れ達も知らず知らずのうちに好きなタレントが使ってる(たとえそれが
CMの中だけでも)商品を選んでているんだよ。

それ考えるとアポーは本当に商売下手だよね。どんな無茶苦茶な会社でも
開発パートナーとかいってとりあえずWebにのっけちゃうんだから。
逆に変な会社と一緒のイメージで見られるのを嫌ってアポーの
パートナーリストに名を連ねない会社も多いと思うよ。
それがイメージ戦略であり営業技術でもある。

このスレの住人は技術だけじゃなくこういうことも勉強すべき。
0698nobodyさん02/09/05 04:00ID:???
>>695
takeValueForKey()をtakeStoredValueForKey()に変えるとどうなりますか?
0699nobodyさん02/09/05 04:11ID:???
>>685
はげどう。
0700ぷぷぷっ02/09/05 07:40ID:???
>>698
だめぽ。
とりあえずrocked attributeをはずす方向でやってこ。。。
0701あおりちゃん02/09/05 07:58ID:???
粘着バカ、ごちゃごちゃうるせーんだよ。
恨み持ってんならそれなりのことしろよ。玉無し。
つまんねーんだよ、てめーの陰気な書き込み。
0702nobodyさん02/09/05 08:40ID:???
>>この場合、GTRの価値は下がるのが正しい。
開いた口がふさがらない。なんて滅茶苦茶な理論なんだろう...
>>699
私もはげどうです。加藤博士マンセー。
0703nobodyさん02/09/05 09:30ID:???
>>700
漏れもずっとまえににたような現象で悩んだが、結局錠前のアイコンを
はずして逃げました。特に大きな問題にはなってないです。
0704nobodyさん02/09/05 10:16ID:???
>>695
カスタムEO作ることに必要以上に不安になってませんか?
基本的にはEOModelerでJavaコードを生成するだけです。
すると、Article.javaが作られて、setUpddt()/upddt()が作られているので、

aarticle.setUpddt(new NSTimestamp());
session().defaultEditingContext().saveChanges();

するだけで基本的にはいけるはず。サブクラス化しているので、型名の
不整合が起こる箇所もあるかもしれないけど、それはEOGenericRecordから
Articleに書き換えるなりすればいいです。

# ところで、気になっているので書いてしまいますが、upddtって、Articleエンティティの
# 属性名(EOModelerでいうNameのカラム)ですよね。
# DBカラム名(EOModelerでいうColumnのカラム)ではないですよね。
# WebObjectsでは属性名のほうで認識するので、こちらをわかりやすい
# 名前(たとえばupdateDate)にしたほうがいいですよ。
# DBが訳わからん名前をつけていても、プログラム上は意味がわかる
# 名前で扱えるというのがWOの利点の一つでもありますし、、。

一人で使うシステムならlock属性をはずしてシステムを組んでも
問題ないでしょうけど、マルチユーザ環境だと問題ありだと思います。
ちなみに悲観的なロックを使うなら、EOEditingContextのlockObject()を
使用して、確実にレコードロックを確保してから更新処理に臨むという
方法もあります。
0705nobodyさん02/09/05 10:22ID:???
>>697
お前も広告代理店の罠を勉強すべき。
0706nobodyさん02/09/05 10:41ID:???
>>704
ロックをはずした場合のマルチユーザ環境で、
どういった面々で問題あるでしょうか。競合が検出されずに
他のユーザが変更した場合、仮に、そのシステムが
他のユーザの更新を許可するというものであれば、OKなわけですよね?
(珍しいかもしれませんが)

知りたいのは、他のユーザーの更新を許可しない場合の動作です。
ecでlockObject()をするのはよいのですけど、EOをロックしている最中に
クライアントがブラウザを閉じてしまったりセッションが終了して
しまったりした場合、ロックを解放するにはSessionがterminateするまで
待たなければいけない。それまでは他ユーザの更新はできない。
と踏んでいますがいかがでしょうか。もしそうなら、ちょっとシステムとして
は不便ですよね…。

また、競合が検出された場合のアプリの挙動です。クライアントに
「他のユーザが同じデータを編集しています」と表示させるシステムは
Webアプリではあまりお目にかかりません。もしくは、更新するまで
待っているような状態になるのでしょうか?先の例外が出てしまうからには
競合が起きているわけですよね。回避するか、例外を出しておくのが吉なのか。

諸賢のアドバイスが欲しいです。
0707nobodyさん02/09/05 11:12ID:???
>>706
もちろん、それでもOKな局面があることは認めます。
でも、単純に考えて、ある属性の更新ロジックが
a = a + 1;
みたいなものだったら、aは所詮キャッシュ値なので、
二人で同期を取らずに更新したら、正しい値が反映されないのは、
明白だと思います。

aが1
ユーザXがaを取得(a=1)
ユーザYがaを取得(a=1)
ユーザYがaを更新(a=2)
ユーザXがaを更新(a=2)
aは2(a=3を期待しているけど)

この状態を防ぐために、WOでは楽観的ロック(lockアトリビュート)と
悲観的ロック(lockObject())が用意されているわけです、

lockObject()を使ったら更新して直ちにロック解除が基本です。
同一呼び出しメソッド内で一連の処理を終わらせたほうがよいです。
トランザクションは、できるだけ短期にするというのは、
DBプログラミングの基本だと思います。

システムを使用するユーザの想定人数や使用頻度、クリティカル度に
よって、方針は変わってくると思います。
「他のユーザが同じデータを編集しています」と表示させるシステムも
最近仕事で作りました。(WOではなく、WebLogicでしたけど、、。)
0708nobodyさん02/09/05 11:43ID:???
>>706
EOModelerの錠前アイコンがやるのは、lockというよりはフェッチした
値の保存です。更新をかけるときに、この保存値をwhere節等で指定して、
他から変更が入っていないことを確かめます。
錠前アイコンを外すと、その属性がwhere節にあらわれなくなります。

ついでにEditingContextのlockObject(..)は、ECの使用許可取得、という
意味合いのもので、こちらもいわゆるロックとは少し機能が違います。

競合が起きたらどうするか?
前者の場合は、EOGeneralAdaptorException#userInfo() にアクセスすると
スナップショットと現在地が取得出来るので、そこから復元します。
後者の場合は、ケースバイケースかな。
ご指摘の通り、webアプリの性質上、ガチガチにロックをかけることは
あまりふさわしくないので、こういったメカニズムになっているのだと想像します。
0709nobodyさん02/09/05 13:43ID:???
ロックとは違うといわれるとかえって混乱を助長するだけなのではないかと思います。
たしかに、機構とは違って技法の分類ですが、
「更新をかけるときに、この保存値をwhere節等で指定して、他から変更が入って
いないことを確かめます。」
というのは、一般的に楽観的ロックとされている方法です。
(Googleすればいくらでも説明が出てきますし、一般的なDBプログラミング
技法ですね。)

ところで、ECの使用許可取得、ならlock()のほうではないんでしょうか。
lockObject()はEOの排他、レコードレベルの排他を実現する方法だと
認識しています。(OracleのFOR UPDATE句相当、今はどうしてるか知らないけど)
これを悲観的ロックと説明しています。
WO 4.xのマニュアルでも、lockObject()をもってロックの説明を
していますよ。
0710nobodyさん02/09/05 14:41ID:SiKaIPs1
Primary Keyの鍵マークどうすべきですか?
0711ぷぷぷっ02/09/05 20:09ID:???
私なりの結論がでたので報告じゃ。
EOModelerで日付型の項目はrocked attributeをはずす。
カスタムeoは必要なし。
コーディングはwillChangeは必要なし。これでうまくいく。
saveChangeするときに日付型のものがwhere句にあるとどうやらエラーになるようだ。
以上。
ところで、、、、カスタムeoにするとどんなウマミがあるんかいのぉーーーー。
0712nobodyさん02/09/06 00:13ID:???
>>682
本筋とは関係ないけどホムペ見たら2ヶ月も更新がないんだな。
やる気がないのか、それとも粘着攻撃で逝っちまったか・・・。
0713nobodyさん02/09/06 02:21ID:???
>>709
確かにlockObject()はselect for updateを発行してるけど、それだけで
悲観的ロックといっていいものかというと疑問なんですよ。
レコードにオンデマンドでロックがかっても、同じecの別レコードに対する
revert()やsaveChanges()をとびこえてロック状態を維持できないから。
結局これも、別のobjectLock()で例外を出させて止めるしかないような。

私はもし聞かれたらWOにはペシミスティックロックは無い、とこたえてます。
Wroxの本もそういう結論。
4.xのマニュアルにはペシミスティックと書いてあるのかー。5.1までの
どこかで仕様がかわったんでしょうかねえ。
0714nobodyさん02/09/06 09:13ID:???
少なくとも、4.xまではRDBMSごとにアダプタが用意されていた関係で
Oracleアダプタの場合は、FOR UPDATEを付加するような実装に
なっていたはずです。
「今はどうか知らないけど」と書いたのは、JDBCドライバ経由に変わって
このあたりどうしているんだろうという意味合いがあったのでした。
推測ですが、EOFレベルで、GlobalIDを使ってロックを制御している
んではと踏んでいます。

以下は、悲観的ロックに対する僕の考えですが、
本当にロック状態を維持できないとすれば、それは単にバグのような
気がしますが、異なるセッションからの更新でそれがおこるとなると、
WOのトランザクションの使い方の問題かもしれないですね。
EC単位でトランザクションを管理していて、ユーザ間で使いまわして
いると考えると、素直にECの設計を想像するとそうなる可能性は
高そうです。いわば、ECがトランザクションの管理単位というわけで、
同一ECにsaveChange()/revert()を送れば、ロックが解除されて
当然という気がします。
この場合は、ユーザセッションごとにECを用意することで、
うまく動くようになるのではないでしょうか。

4.xのマニュアルでは、
ペシミスティックロック
オプティミスティックロック
オンデマンドロック
をWOがサポートしていることになっています。
0715nobodyさん02/09/06 10:36ID:???
質問。
オーム社本230ページからモデルの継承についての説明があるのですが、
いまいち、ピンときません。

どのような時にこのテクを使うべきでしょうか。教えてぷりーず。
■ このスレッドは過去ログ倉庫に格納されています