カスタム検索

2009年9月14日月曜日

Spring tcServer 超入門!インストール編

GrailsがSpringFrameworkに買収され(今はそのSpringがVMWareに買収されましたが)、Springには元tomcatの中の人達が居るらしく
Groovy/Grailsを動かすにはtcServerが最適らしい
そんなわけでとりあえずインストールしてみた

まずは tcServer の構成から
tcServer = いわゆるインスタンす部分、中身はtomcat
AMS agent = 同PC内のtcServerをまとめる
serverのconfigはここで管理するっぽい

AMS Server = AMS agentをまとめる、apacheのかわりになる部分っぽい

AMS Serverを受け口としてAMS agentへ割り振り、agentがインスタンスを管理している、と・・・そんな感じでしょうか
Server hasMany Manager hasMany Instance な感じ、AMS Server自体は分散処理が必要なのかな・・・?

・まずはMacへインストールしてみる
tcServer-6.0.20.A-SR1-macosx-node.tgz をダウンロード
解凍して install.sh を実行
Macには AMS agent と tcServer とかしかない
どっちを入れるか聞いてくるので、とりあえず両方インストール

・tcServer Instanceを作成
cd tcServer-6.0
./tcserver-instance.sh -s testserver -v 6.0.20.A

testserverという名称で tomcat のバージョンは 6.0.20.A を指定
これで testserver フォルダと tomcat-6.0.20.A フォルダが出来る
デフォルトだと以下のポートが使用されるらしい
HTTP listen port: 8080
JMX port: 6969
AJP port: 8009
Shutdown port: -1

・testserverを起動
testserver/bin/tcserver-ctl.sh start

http://localhost:8080 にアクセスして tcServer の画面が出れば起動は成功

・アプリケーションの配備
単純にデプロイするだけなら testserver/webapps へwarをコピーすればOK

次回はAMSを使ったクラスタや自動デプロイ等に挑戦!

2009年9月4日金曜日

Grails 1.1.1でDomainのsaveについて

Grails1.1.1でたまに .save() でエラーが出る事があります。
MissingPropertyException for "save" って感じなのですが、saveはメソッドなのにプロパティー扱いされてます・・・

これがまた絶対起きる訳ではなく、同じコードでもcleanしたら発生したりしなかったりとやっかいなものです。
現在は修正済みらしく、1.1.2 or 1.2では直るようです。
JIRAはこちら

JIRAにも書いてありますが、HibernateGrailsPluginの初期化がうまくいってないようです。
回避方法としてはドメインの .count とか .list とかを使うと初期化がされるようで、Bootstrap.groovy に以下を追加すれば、
すべてのドメインを初期化してくれます。


import org.codehaus.groovy.grails.commons.ApplicationHolder

class BootStrap {
def init = { servletContext ->
// workaround for GRAILS-4580
ApplicationHolder.application.domainClasses.each { dc ->
dc.clazz.count()
}
}
}

2009年9月3日木曜日

SSHポートフォワーディングでVNC(とかリモートデスクトップとか)

VPNが使えれば悩む事は無いんだけど、そうでもない環境の場合もちょくちょくあるかと思います。
そんな時、SSHが入れるのであればSSHポートフォワーディングを使いましょう。

なんだかフォワーディングとかめんどくさそうな雰囲気が漂っていますが、以外に簡単です。
要領としては、SSHクライアントが特定のポートを受け付ける状態になり、そこへアクセスするとSSH越しに設定した向こう側のPCの特定のポートへアクセス出来るというわけです。
(SSHでログインしたサーバでTCPフォーワーディングが許可されている必要があります)

SSHクライアントが仮想サーバになるようなイメージというのでしょうか・・・
Windowsの場合はTeraTermでココにわかりやすく解説されています
Macであればsshコマンドを使って出来ます、ココに詳しくのっています。

思ったよりも簡単に接続出来ますね :)