oracle ooherence aggregagte の 考え方に関して
分散集計に関して
恥ずかしながら、勘違いをしていました。集計キーごとにノードを分かれて分散しているとcoherenceは早くなるのではと思っていました。集計キー毎にネームドキャッシュを展開するのであろうと思っていたのですが違いました。
集計キーが各ノードで分散していないといけないのだと、集計単位がどのようになるのか集計を発行して、その結果で検索して、group by, sumなんてことと同じことをするんだなと深く理解しました。
OTN Virtual Developer Day
3日間のDeveloper Dayが終わろうとしています。
米国東海岸時間で5月27日の朝から始まり、29日の夕刻までmamazoneのAWSの環境でHands onができるようになっていました。こんな機会でもないとAWSを使うことがなかったような気がしますのでいい経験になりました。Oracleのクラウド展開がわかっても、実際にインストールして見ることなんか実際にはないですからね。
無料ではなかったのかよ
4月の時点では、無料でAWSが期間中に使えるような発表がありましたが、今回は3日間で35ドルの徴収がありました。29日の夕刻までに環境を削除しないと追加料金が掛かるととの警告が出ています。日本では土曜日の未明まで使えるのですが、寝込んでしまうと追加料金が掛かるので、早めに環境の消去をします。
使用したAWSの環境
Largeと呼ばれている4コア分のCPUで7.5GBのメモリに70GB(EBSが50GB)ディスクの環境が今回のターゲットでした。Oracle World TokyoでのHands onは一コマ一時間で3GBのメモリのノートパソコンで時間的にもきつい状態でしたので今回は非常によかったと感じています。Oracle Database + Weblogic Server + Jdeveloper 11gの組み合わせだと、とてもノートパソコンで快適に動かすことができるのものではないですよね。
ただ、標準的な環境がputtyでSSHで繋ぎ、vncをSSHトンネルでつないで、vncでJdeveloperやeclipseを動作させるようになっていました。確かに Hands onの環境がAmiになっていて、トラブルがないことは十分にわかっていますし。これだとatomの携帯PCでも同じように動くのでいいのかも知れませんが、ちょっとレスポンスが辛いですね。私も始めはトンネルで使っていましたが、直にVNCが繋げる環境に避難してしました。SSHトンネルでSVNを使うのはオンラインでないので余り気にならないのですが、オンラインは結構辛いですね。やっぱり色を極端に落とす必要があるのかも知れませんでしたが、それともやっぱり地球の裏側のデータセンターのマシンに開発ツールを載せて動かすこと自身に問題があるのかも知れませんね。
SIerに与える影響
インフラ系のSIerにとっては、非常な脅威ですね。Iaasの環境へのインストールは、大規模環境だと一ヶ月以上の時間が掛かっていましたし、中規模のECサイトの環境でも数日でできることはなかったですから、実際やってみて、負荷分散+WEBサーバ数台+Appサーバ数台+DBサーバの組み合わせだと本当に数日でお釣りくる感じですね。OracleDBもWeblogicサーバも自律的にチューニングが利くようになってきましたので、標準的なAMIの適用で十分な環境が用意されると判断していいと思います。仮想化サーバの切り売りだけのデータセンターでマシンを借りると今までと同じように本番環境の設定に多額の費用が掛かることから抜け出せないですからね。
来年のoracle world tokyo
来年のdeveloper カンファレンスのhands onは、AWSを使った環境の使用料を含んだ形でしてくれるといいですね。落ち着いてできるのでいい感じですよね。
日本語のMIX
日本語の情報交換の場所がなかったので、どのくらいの日本人が参加したのか不明でちょっと残念です。結局質問事項は英語にならざるを得ないのはわかりますが。。ちょっと疎外感。。。
amazone aws 環境での sybase 開発環境
amazon AWS上での sybase開発環境版のバイナリが用意されている。制限としては、1Cpu限定で25コネクションが最大である制限がある。しかしながら、JDBCを使った場合には、コネクションプールで今トールするので、実際に100人の開発者がいても十分な環境であると言える。
http://www.sybase.com/detail?id=1037407
契約内容では、基本的にサポートはない状態になっているが本番システムでの契約があれば基本的に問題はないが、このバイナリWindows版であるので本番ターゲットがWindowsでない場合には、Windowsに依存した障害が発生した場合には、何かしら逃げてを考える必要がありそう。
それで、AWS EC2の料金体系は次のようになっている
http://aws.amazon.com/ec2/#pricing
安いと言えば安い、そうなんだな。でもSLAが99.95%なんで少し不安であることは確かですね。
インスタンスは使うときにしか上げないのでいいのですが、サーバイメージファイルは、残るので1GB単位に課金がされてしますのがちょっと、年間契約でsmallを借りて、サーバイメージをそのサーバに入れるができればお得な状態になりますよね。
Google App Engine for JAVAのアップロードの続き(3)
Googleへのアップロードは、やはり時間の問題でした。昨日more informationのメールが来ていて、配置をしてみたら動きました。ちょっと時間が掛かりすぎという感じがありますね。
Creating staging directory Scanning for jsp files. Scanning files on local disk. Initiating update. Cloning 1 static files. Cloning 13 application files. Uploading 3 files. Uploaded 1 files. Uploaded 2 files. Uploaded 3 files. Deploying new version. Will check again in 1 seconds Will check again in 2 seconds Closing update: new version is ready to start serving. Uploading index definitions. Deployment completed successfully
Google App Engine for JAVAのアップロードの続き(2)
今朝起きて、昨日のgoogle app engine へのアプリケーションのアップロードの失敗から一夜明けて、eclipseからディプロイボタンを押してみた。やっぱり失敗、googoleからのmore informationメールは届いていないが、googleのページに行くと昨日と同じようにアプリケーション登録は正常ですけど、まだ一度もデプロイされていませんと胸を張って言ってくる。それはその通りです。しかしエラーメッセージが変わった。
今日のメッセージ:
Unable to upload: java.net.UnknownHostException: www.google.com at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:519) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550) at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141) at sun.net.NetworkClient.doConnect(NetworkClient.java:163) at sun.net.www.http.HttpClient.openServer(HttpClient.java:394) at sun.net.www.http.HttpClient.openServer(HttpClient.java:529) at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:271) at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:328) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:172) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:793) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:896) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230) at com.google.appengine.tools.admin.ServerConnection.connect(ServerConnection.java:324) at com.google.appengine.tools.admin.ServerConnection.getAuthToken(ServerConnection.java:244) at com.google.appengine.tools.admin.ServerConnection.authenticate(ServerConnection.java:212) at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java:142) at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java:78) at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:345) at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:159) at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:68) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:49) at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:271) at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:148) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
昨日のメッセージ:
Unable to upload: java.io.IOException: Error posting to URL: http://appengine.google.com/api/appversion/create?app_id=gaejapp&version=1& 400 Bad Request Invalid runtime or the current user is not authorized to use it. at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java:140) at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java:78) at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:345) at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:159) at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:68) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:49) at com.google.appengine.tools.admin.AppCfg$UpdateAction.execute(AppCfg.java:549) at com.google.appengine.tools.admin.AppCfg.<init>(AppCfg.java:134) at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:63) com.google.appengine.tools.admin.AdminException: Unable to upload app: Error posting to URL: http://appengine.google.com/api/appversion/create?app_id=gaejapp&version=1& 400 Bad Request Invalid runtime or the current user is not authorized to use it. at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:55) at com.google.appengine.tools.admin.AppCfg$UpdateAction.execute(AppCfg.java:549) at com.google.appengine.tools.admin.AppCfg.<init>(AppCfg.java:134) at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:63) Caused by: java.io.IOException: Error posting to URL: http://appengine.google.com/api/appversion/create?app_id=gaejapp&version=1& 400 Bad Request Invalid runtime or the current user is not authorized to use it. at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java:140) at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java:78) at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:345) at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:159) at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:68) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:49) ... 3 more
状態が改善したかなと見てみると、googleにコネクションに行ってそこで、BADリクエストが返ってきているのが昨日で、今日はコネクションで、java.net.UnknownHostException: www.google.comが返ってきていて昨日より後退て感じで朝から頭が痛い。
Eclipseのプラグのバージョンが2009/5/13版で、新しいにだなんて思っちゃったりしているですが、でも動作不良の99%は使い方が悪いことはわかっているので何とも言えないなという感じ。
com.google.appengine.eclipse.sdkbundle_1.2.1.v200905131143
エラーの内容が、googleのアプリケーションエンジンまで、たどり着いていないエラーメッセージなので、今日は、これに時間を掛けるのはやめよう、これが改善しても昨日と同じエラーにハマルと一日台無しだ。。。。
google app engine application
今朝から、google application engine for JAVAを使い始めている。
結構は始めは調子がよかったが、アプリケーションのUploadで行きづまってしまった。
次のエラーが出て、どうにもならない。
400 Bad Request Invalid runtime or the current user is not authorized to use it.
検索すると
Invalid runtime specified
と似通ったエラーになっている人が数多くあるし、google faqにも載っているが、Signupはされており、アプリケーションの登録はうまくいって、gmail.comのメールアドレスがアプリケーションに対してACTIVEになっている。なぜに!、実際にUploadできるようになるまでに時間が掛かるのかな?とも思える不思議な状態なんです。サインアップに行くと次のように表示されてサインアップが完了になっているし。。。。
Sign up to try Google App Engine for Java. Thanks for signing up. Once your account is activated, you will receive an email with more information. << Back Java is a registered trademark of Sun Microsystems, Inc.
more informationは、まだ来ていないので、これが来ないとUploadできないのかな?とも。午後は悪あがきで、サンプルアプリケーションをコマンドベースでUploadしようと試みて
c:\google\demo> ..\bin\appcfg -e xxxx.yyyy@gmail.com --passin guestbook\war
なんてやってみても、結局同じメッセージで閉塞感で一杯の状態。。午後はプールに行こうと思っていたのに変なものに火がついてしまったみたいです。折角Pluginを入れたのに全く手感じで悶々。でも、おかげで久しぶりにjasper君の出力にお会いできて、それがlintに通らないメッセージまで拝見できました。jspを全てコンパイルしておかないとUploadできないとは結構手抜きのような気がしてならないのは私だけだろうか?Je22が使えないとFAQに書いてあるがFACESが使えないということ?
とりあえず、gmail.comにメールが来るのを待つことにしよう。