2011-01-01から1年間の記事一覧

gmailをSMTPサーバとしてjavaからメールを送信する

会社のメールサーバをgmailに切り替えたことにともない、システムから出すメールのSMTPサーバもgmailに切り替えました。すると、ときどき以下のエラーでメールが送信されないという現象が起きるようになりました。2011-12-06 09:23:33,368 FATAL [javax.ente…

EJB-QLのチューニング

EJB

EJBをDBから取り出すときにSQLに似たEJB-QLを使うわけですが、@NamedQuery(name="torihiki.findForReport", query="select torihiki from Torihiki torihiki " + "left outer join fetch torihiki.torihikiMeisais torihikiMeisai " + "where torihiki.nohin…

Entity BeanでCREATE INDEXする

EJB

アプリケーションのチューニングをして、DBにインデックスを張りたいとき、SQLを直に実行してしまうと移植時などに忘れてしまうことがあるので、Entity Bean内に書いておきたい。調べると、 @Table(indexes = {@Index(name="customer_idx", columnNames = {"…

jbossのtransaction timeoutの制御

jbossで大きなバッチ処理などするとtimeoutで落ちてしまうことがある。このようなとき、そのメソッドだけtimeout値を変更するには、以下のアノテーションをメソッドに付ける@TransactionTimeout(1500)参照URL: http://community.jboss.org/wiki/TransactionT…

linuxサーバでpdfファイルの印刷

linuxサーバ上のjbossでpdfファイルを生成し印刷する必要が生じました。pdfはjasperReportなどで生成できますが、これを普通にlprとかしても日本語が出ません。jasperReport側でフォントの設定などをいろいろと変えてみたが解決せず。サーバにacrobat reader…

drbdの再同期

drbdのフェイルオーバのテストなどをしていると、$ cat /proc/drbd version: 8.3.9 (api:88/proto:86-95) srcversion: CF228D42875CF3A43F2945A 0: cs:StandAlone ro:Secondary/Unknown ds:Inconsistent/DUnknown r----- ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0…

drbdマシンの起動時の処理

drbdのマシンを再起動したときに、以下の処理をしないと正常に起動しない。 ログイン drbd-overviewで確認 sudo drbdadm down r0 sudo drbdadm up r0 sudo drbdadm primary r0 (sudo drbdsetup (0 or /dev/drbd0) primary でも可) drbd-overviewで確認 sudo …

drbd

2台のlinuxマシンを使ってdrbd環境構築。drbd用のパーティションとして1TBを取ってしまったので初期同期に一週間くらいかかってしまった。このパーティションで実用していいんだろうか。障害時の切り替え手順 現プライマリ側 sudo umount /drbd sudo drbdset…

solr

solrを使ってみる。解凍して、$ cd apache-solr-3.3.0/ $ cd example/ $ java -jar start.jarで起動。PDFを読み込ませたいときは$ curl "http://localhost:8983/solr/update/extract?literal.id=doc1&commit=true" -F "myfile=@XXXXXXX.pdf"などとする。デー…

findの-execで複数のコマンドを実行する

eclipseのプロジェクトのエンコーディングをまちがえてMS932で結構なファイル数のコードを書いてしまった。これを一気にUTF-8に変換したい。まずは以下のシェルスクリプトを作成echo $1 nkf -w $1 > /tmp/foo mv /tmp/foo $1これをfindで実行。$ find . -typ…

play+scala+morphia

morphiaも使ってみる。$ ./play install morphia$ ./play new myapp --with scalamyapp/conf/dependencies.ymlに以下の行を追加する。 - play -> morphia 1.2.2beta1

play+scala+mongo

$ ./play install mongo $ ./play new myapp --with scala mongomyapp/conf/application.confに以下を追加# The mongo module module.mongo=${play.path}/modules/mongo# mongodb connection details mongo.host=localhost mongo.port=27017 mongo.database=…

caseクラスでパラメータにアノテーション 続き

前回caseクラスでパラメータにアノテーションを書いても効かなかったと書きましたが、正確にはjavaのアノテーションは効かないということでした。case class Shohin ( @BeanProperty pk:Stringこれは効くけれど、case class Shohin ( @Column columnDefiniti…

caseクラスでパラメータにアノテーション

EJBのエンティティビーンをscalaで書こうと、@Entity @Cache(usage=CacheConcurrencyStrategy.NONE) case class Foo(@Id k:Int, v:String)としてみたところ、以下のエラー。Reason: org.hibernate.AnnotationException: No identifier specified for entity:…

fessでPDF全文検索

PDFファイルの全文検索がしたいということで、ちょっと調べたらfessというものがあって、solrに検索用のページなどをつけたオールインワンなプロダクトのようで、試しに使ってみました。fessを動かすサーバ内のディレクトリにPDFファイルを置いておき、そこ…

play+scalaプロジェクトをeclipseにインポートする

play+scalaでちょっとずつ書き始めたので、そろそろeclipseも試そうと思いました。$ ./play eclipsify xxxxxしてeclipseにインポートしたんですが、scalaのコードにコンパイルエラーが出てしまいました。すでに動いているものなのに。playのeclipsifyでクラ…

mongodb+casbah+scala

遅まきながらmongodbの勉強。sbt-0.10でプロジェクトを作る。$ mkdir sbt-mongo $ cd sbt-mongoここで、build.sbtを作成。内容は以下。name := "Hello Mongo+Casbah"version := "1.0.0"scalaVersion := "2.9.0"organization := ""libraryDependencies ++= Se…

linuxでプリンタ設定

linuxサーバ上でJasperReportを使ってPDFファイルを生成し、プリンタに直接印刷する必要が生じたので、環境を作りました。サーバはubuntuの64bit、プリンタはキャノンLBP8620。キャノンのサイトを見てみると、linux 64bit用のドライバはrpmでしか提供されて…

USB3.0 HDD

バックアップ用にUSB3.0の外付けHDDを2本購入。さっそくlinuxにつないで試してみる。4Gのファイルをコピーしてみたら、結果としてはちょっと困った感じになった。 USB3.0外付けその1 2分10秒 USB3.0外付けその2 1分20秒 内蔵HDD 20秒 内蔵SDD 11秒 外付けUSB…

traitの名前衝突

scalaでtraitを使おうと思ったが、複数のtraitが同名のメソッドを持っていて、それらを継承して当該メソッドを呼ぶとどうなるか。trait Aoo { def zoo = 1 }trait Boo { def zoo = 2 }object Coo extends Aoo with Boo { def main(args:Array[String]) { pri…

scalaスクリプトでおかしな挙動?

たとえば、object Foo { val ZOO = "xxxx" }というクラスを作ってコンパイルします。これをスクリプトの中で使います。println(Foo.ZOO)これはOK。次に、object Foo { val ZOO = "xxxx" val ZOO_ADDED = "ZZZZZ" }と、ZOO_ADDEDを増やします。そして、これを…

macでemacs

一方macではどうかと、macのcocoa emacsに環境設定。こちらのほうは素直になにもかも動いた。

windowsでemacs

今までは、windows用のXサーバを使って、リモートのlinuxのemacsをwindows上で開いて使っていたが、どうも最近よく落ちる。そこで、windows上で動くemacsを試してみた。emacsを使うには 日本語入出力 trampでリモートファイル編集 sshでファイル名補完 がで…

java, scalaでOSコマンド実行

Runtime rt = Runtime.getRuntime(); Process p = rt.exec("cp -p foo.txt foo.txt.BACKUP"); p.waitFor();など。|や>を使いたいときは、String cmd = "diff foo.txt foo.txt.BACKUP > foo.txt.diff"; String[] cmdArray = {"/bin/sh", "-c", cmd}; Runtime …

scalaでスクリプトを書く

perlとかで書いていたスクリプトをscalaで書こうとすると、クラスパスなどの環境変数を定義してからscalaスクリプトを起動するような起動ファイルが別にいるんだと、昔のCOBOLとJCLみたいでかっこわるいなと思っていたら、解決することができた。scalaスクリ…

ubuntuのcron環境

今までRedHatで動いていたcronのジョブをubuntuに移植したところ、sourceコマンドがない、というエラーが出るようになった。なぜかubuntuのcronはbashではなく、shで動いているもよう。crontab -eでcronの編集画面を開いて、SHELL=/bin/bashを加えるとbashで…

ubuntuのインストール

ひさしぶりのlinuxインストール。マシンはSSDを搭載しているので、SSDにインストールしたところ、最後にgrubの書き込みに失敗とのメッセージ。windowsに戻してデュアルブートにしたり、super grub diskを使ってみたり、いろいろしましたが、インストール時に…

portからbrewへ

mac

MacBook Airでportを使っていましたが、scala29をインストールするとエラーが発生。ライブラリがないとかいってきましたが、これを機会にbrewに乗り換えました。$ cd /usr $ sudo mkdir local $ sudo chown xxxx local $ cd local $ ruby -e "$(curl -fsSL h…

play + scala

playにscalaをインストールする $ play install scalaプロジェクトを作る $ play new sampleappscala --with scala実行 $ play run sampleappscala

scala + google app engineでのエラー回避

eclipseでscalaを使ってgoogle app engineのプロジェクトを作りビルドするとscala org.datanucleus.metadata.MetaDataManager loadClasses的なエラーが出る。これを回避するには.projectのdatanucleusあたりをコメントアウト。