2008年4月8日火曜日

Google App Engineレビュー 1 (Hello, world)

Google App Engineのプレビュー版が公開され、先着1万名のテスターへ申し込めたので
試用してみたレビュー

OS:Windows Vista SP1

1.Python2.5.2のWindows版インスートーラーをダウンロードしてインストール
2.Google App Engine SDKをダウンロード、インストール
3.後はDocsを参考に"Hello, world"

Python Source作成
helloworld.py
------------------------------
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'
------------------------------
同一ディレクトリに
YAMLフォーマットでアプリケーションの構成を定義した
設定ファイルを作る
---------------------------------------
application: helloworld
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
script: helloworld.py
---------------------------------------

SDKをインストールしたディレクトリにある
dev_appserver.pyに作成したアプリのディレクトリを引数で指定して実行すると
dev_appserver.py c:\googleapp\helloworld

ローカルWebサーバが起動され
http://localhost:8080からローカルで検証できる
(初回実行時は
Allow dev_appserver to check for updates on startup? (Y/n)
と、SDKのアップデートをチェックするかを選択する(Y(チェックする)を選択した))

http://localhost:8080をブラウザで開くと無事
Hello, world!
が表示された


Google App EngineにはWSGI互換の
Python用ライブリが用意されている
それを使ったコードに置き換える。。。

疲れたので後で

2008年3月6日木曜日

Tomcat設定

Tomcat起動後の初回アクセス時にクラスをロードしているのか
やたらと時間がかかる.....

TomcatのJavaオプションのヒープサイズで
-Xmx654M
を指定していたが
これをTomcatオプションの
InitialMemoryPool=256M
MaximunMemoryPool=654M
に変更したら、初回でもサクサク動くようになった

2008年3月5日水曜日

特定のイベントログをトリガーにメール送信

メモ
windowsサーバーのイベントで
特定のイベントが発生した場合のメール送信について調べてみたら
ここにどんぴしゃの情報があった
[-*煙猴*-]: 特定のイベントログをトリガーにメール送信

2008年1月15日火曜日

Hibernateのキャッシュ

Hibernateにはキャッシュ機能がありload()、get()を行うと自動的にインスタンスがキャッシュされる。
そのため、インスタンスのdelete()後にget()を行うとdelete()したはずのデータがキャッシュから取得されてしまう。
PrimaryKeyからget()してデータの有無を判定するコードでこの問題が判明。

キャッシュを回避するためにget()ではなくcountのHQLで有無を判定するように変更
(インスタンスを取得するわけではないので、これならキャッシュされない!!)。

データの有無をの判定だけなので、これで問題ない

2007年11月28日水曜日

GoogleWebToolkit trunk ビルドエラー

Eclipseを3.3にアップデートし
SublicpseからGWTをチェックアウトして再ビルドを行ったらエラーが・・・

------
Browser.java
Line 1340: class LONG ambiguously defined.
Line 620: class LONG ambiguously defined.
------
ここ↓を参考に
http://wiki.oreade.nl/Wiki.jsp?page=GwtSubversionDownloadCompile

Browser.javaにimport箇所
import org.eclipse.swt.internal.gtk.*;
の前に
import org.eclipse.swt.internal.gtk.LONG;
を追加し、ビルドしたら成功

Eclipse3.2では問題にならなかったが
なぜ3.3ではエラーに???

2007年5月7日月曜日

Tomcatクラッシュ

Windows2003+Tomcat5.5+jk_modで構築しているシステムで
Tomcatがクラッシュする問題が出て、しばらく悩んだ・・・

#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d6a4390, pid=1100, tid=348
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_11-b03 mixed mode)
# Problematic frame:
# V [jvm.dll+0x64390]
#

--------------- T H R E A D ---------------

Current thread (0x008aaf50): VMThread [id=348]

siginfo: ExceptionCode=0xc0000005, reading address 0x00000005

---
原因はなんて事無く、Javaのheapサイズの不足によるもの。
XmlのSAXパース処理でメモリを食っている様子で
検索結果を大量に返す場合に発生していたみたい。

Heap
def new generation total 960K, used 960K [0x02cf0000, 0x02df0000, 0x031d0000)

-Xms512m -Xmx1024m
を起動オプションに追加して
とりあえず、解決。
(でもデフォルトでheapが960Kしか無いのは何故???)

2007年4月27日金曜日

About Ajax

Ajaxを中心としたプログラム全般について書いていく予定