WAITFOR(RECEIVE)

ここによるとMS SQLServerでService Brokerからのメッセージを受信する際にWAITFOR(RECEIVE)を使用すると、分散トランザクションを使用できないみたいだ(WAITFORは内部でSAVEPOINTを使用しているらしい)。 こんな例外が発生する。 System.Transactions.Trans…

JavaでeTokenを使う(その2)

まずは、eTokenでキーペアを作ってみる。providerとkeyStoreはすでに設定済みと言う前提で。 import java.io.ByteArrayInputStream; import java.io.InputStream; import java.math.BigInteger; import java.security.Key; import java.security.KeyPair; im…

JavaでeTokenを使う(その1)

eTokenを使用するJavaのプログラムを作ってみる。eTokenを使用するには、eTokenを使用できるPKCS11のプロバイダーを経由して行う。たぶん。 import java.security.Provider; public class AladdinTool { private static Provider provider; static { InputSt…

eTokenを初期化する

ebayで買ったeToken PRO 64kが2048ビットRSAキーが使用できない状態で届いた(しかも色が赤になってる)。どうも一回初期化しないといけないようなので、初期化しようとしてみる。 eToken Utilities 2のフォーマットアプリで手元にあるeToken PRO 64kをなぜか…

NetBeans 6.0 Beta 2を使ってみる

NetBeans 6.0 beta 2が出ているのでダウンロードして使ってみることにした。 ダウンロードは、ここからZipフォーマットをダウンロードして使うことにした。というか、いつもZIPのフォーマットしかダウンロードしないんだけど。 展開後、etc/netbeans.confのn…

Maven 2プラグインでアクションを変更する(NetBeans 6.0 Beta 1)

NetBeans 6.0からMaven 2のプラグインが標準?でサポートされているようだ。 メニューのTools→Pluginsで出てくる一覧にMavenがあるし、Tools→OptionsでMiscellaneousを選ぶとMaven2というタブがちゃんと出てくる。 これのプラグインがインストールされている…

負荷テストその3(Grails 0.5)

先日までの内容の負荷テストを元にちょっといじってみた。なお、以下の内容についての責任は一切負わないので自己の責任で。 まずは、コントローラの生成が重い点についてだが、どうもクロージャの生成が特に重いようだ。以下のメソッドを変えてみる。Groovy…

負荷テストその2(Grails 0.5)

昨日のHttpSessionがいっぱいになってしまう点については、大量アクセスが発生するサイトではよくあることだ。大量アクセスが短期に発生するようなページで無駄にHttpSessionを使用するとTomcatの場合、OutOfMemoryErrorが発生し、発生したスレッドによって…

負荷テスト(Grails 0.5)

以前、やろうとしていたスループットのテストをやってみる。groovy-all-1.1-BEATA-1.jarをgroovy-all-1.1-BETA-2-SNAPSHOT.jarに入れ替えて実行した。実行したアプリケーションはこんな感じ。 まず、コントローラ class Test01Controller { def index = { re…

ハングしちゃうんですけど!を調べた

昨日の日記でGrailsがハングすることを書きましたが調べてみました。スタックトレースを見ると、Groovyで書かれたクラス(コントローラ)のClass#newInstance()で止まっているみたいで、怖くて使えないです。もう、Grailsの話題じゃないです。 スタックトレー…

ハングしちゃうんですけど!(Grails 0.5+オリジナルパッチ)

コントローラ中でrender "hogehoe"したときと、GSPに飛ばしたとき(レイアウトがあるとき、ないとき)とでどれくらいスループットが変わるかをテストすることにした。 Windowsだとそもそもソケット周りが耐え切れないと思って、Linux(CentOS) on VMWare(仮想CP…

GSPで定義タグって使えるの?(Grails 0.5+オリジナルパッチ)

こんな感じのGSPを作ってみた。 <%! def square = { x -> x * x } %> <html> <head> <title>Test</title> </head> <body> 3 ^ 2 = <%= square(3) %> </body> </html> これ、コンパイルできないみたい。Parse.javaとかみると、<%! %>の処理はあるみたいなんだけど..未実装?それともGSPでは使えない?それともバグ? …

T.Yamamotoさんのブログで紹介されてた!

T.Yamamotoさんのブログでこのブログが紹介されていました。Grailsもどんどんメジャーになっていって欲しいですね。 そうですか、濃いですか...。どちらかというと特殊な環境での使用を考えているのでいろいろと検証中なのです、ハイ。その名のとおり備忘録…

プラグインでコマンドを追加(Grails 0.5)

grails hoge-hoge とかすると、何かやってくれるようなコマンドをプラグインに追加したくって。例えば、grails configure-hogehoge とかすると、対話式にプラグインの設定ができるとか。 そりゃあ、多分できるのでしょう。なんといっても、開発者ガイドには…

ContentTypeのCharasetテスト(Grails 0.5)

GSPファイルにContentTypeを設定して、どうなるかをチェックしてみた。まあ、Grailsというよりもsitemeshのテストになるのかな。sitemeshってあまりよく知らないので。 アプリケーションとしては、昨日のサンプルを使用。Grailsは0.5にpageEncodingディレク…

GSPにpageEncodingディレクティブを作ってみた![追記]

pageEncodingを作ってみたところで、Parseクラスのソースを見ていたところ、こんなところが。 public InputStream parse() { StringWriter sw = new StringWriter(); out = new GSPWriter(sw,this); page(); finalPass = true; scan.reset(); page(); // if …

GSPにpageEncodingディレクティブを作ってみた!

結局Parseクラスのパッチを作ってみた。最初にScanクラスでトークンを読み出してみて、pageEncodingディレクティブがあったらそれで再度Scanクラスのインスタンスを生成することにした。あんまり効率よくなさそう... 注)以下のパッチには不備があることが判…

ロケール対応プラグインを作ってみる(Grails 0.5)

前のページで「先日のロケール対応処理が2重に実行されそうな気がしなくもない」って書いてあったところをチェックしてみた。ええ、そりゃあもう2重に呼び出されていましたとも(威張るところではないけど)。 getResourceForUriっていう名前のとおりにロケー…

GSPにpageEncodingディレクティブを!(Grails 0.5)

昨日のpageEncodingディレクティブを自分で作ってみよう。ということで、取っ掛かりは先日の日記のGroovyPagesTemplateEngineクラスあたりから。プラグインのdoWithSpringクロージャをみるとjspViewResolverもプロパティとして持っているし、getResourceForU…

pageEncodingディレクティブってないの? (Grails 0.5)

昨日書いたGSPファイルの文字コードについて、http://www.nabble.com/Re%3A-template-encoding-p8507832.html とかをみると、JVMのオプションに -Dfile.encoding=UTF-8 とかを指定して対応するみたいだ。まあ、解決策としてはありかもしれないけど、JSPみた…

ロケール対応プラグインを作ってみる[追記](Grails 0.5)

トップページ(index.gsp)のロケール対応もやってみたので追記!なお、以下の処理に対しての追記があるので注意。 プロジェクトディレクトリ配下の、src/java/jp/ne/hatena/d/noryksj/grails/pluginsに以下のようなソースを作成。 package jp.ne.hatena.d.nor…

ロケール対応プラグインを作ってみる(Grails 0.5)

ためしに、リクエストのロケールに対応するGSPビューを出力するプラグインを作ってみる。やりたいことは、 リクエストのロケールがjaの場合でviews/hogehoge/list_ja.gspが存在する場合、これを出力する。 リクエストのロケールがenの場合でviews/hogehoge/l…

プラグインを作る(Grails 0.5)

開発者ガイド(http://grails.org/Japanese+The+Plug-in+Developers+Guide)を参考にプラグインを作ってみることにした。で、注意点をいくつか。 grails-app/conf配下にspringの設定ファイルを作成すると、実行時にはWEB-INF/classes配下にコピーされるのだが…

Grails 0.5 13分間クッキング(その2) - Eclipseでプロジェクトをインポートすると動かない!?

Grailsでgrails create-app とやると、eclipseのプロジェクトファイルも作成してくれるので、eclipseからプロジェクトをインポートとかすると簡単にeclipseで作業ができる(以下の更新サイトでGroovyのプラグインをインストールしてあること)。 http://dist.c…

Grails 0.5 13分間クッキング(その1)

まずは適当に作ってみよう。Grailsのインストールと環境設定(http://grails.codehaus.org/Japanese+Installation)は終わっているという前提で。コマンドラインからWebアプリ(bookstoreという名前)を作成してカレントディレクトリを変更。 grails create-app …

Grails 0.5 を使ってみる

Grailsをはじめて使ってみた。バージョン0.5が出たばかりでちょっとうれしい(何故?)。なんだかとても簡単だな、こりゃ。日本語版クイックスタートもあって(http://grails.codehaus.org/Japanese+Quick+Start)入りやすい。日本語訳をしてくれた方に多謝。食…

Jackrabbit on JBoss

以下のところを参考に。 http://wiki.apache.org/jackrabbit/JackrabbitOnJBoss 要は、Jackrabbit(http://jackrabbit.apache.org/)のダウンロードページから、JCAリソースアダプタをダウンロードして、deployにコピーして、以下のようなXMLファイルをdeploy…

Muleをデバッガで起動する

Mule(http://mule.codehaus.org/)をLinux上でデバッグモードで起動するには、conf/wrapper.conの以下の箇所を修正する(適宜折り返しあり)。 # uncomment this line to debug remotely, the application will wait for the external debugger to connect # IM…

犯人は誰だ!?

昨日のJBoss+Derby設定を行ってJBossを起動すると、data/derbyディレクトリにdefaultなる名称のデータベースが作成されているようだ。犯人は誰だ(バレバレだけど)!? 犯人は、どうも org.jboss.jdbc.DerbyDatabase みたい。derby-ds.xmlの最後のほうの以下…

JBossのMQDB設定(Derby)

http://wiki.jboss.org/wiki/Wiki.jsp?page=ConfigJBossMQDBによると、 hsqldb is not a production quality database. It is suitable for demos and testing. JBoss ships with the database to help you get something working out of the box. なのだそ…