備忘録 the next generation

2014年末にOCN(http://yamagu.mo-blog.jp)からこちらに移転しました。

QIIMEのsplit_libraries.pyでエラー Compiled module "_likelihood_tree" not found.

2013-11-19 11:35:23 | インポート
QIIME 1.7.0-dev をインストールして、split_libraries.pyを実行すると、以下のようなエラーが出た。

Compiled module "_likelihood_tree" not found. Will use pure Python/NumPy likelihoodihood tree.
Compiled module "_pairwise_pogs" not found. Will use slow Python alignment implementation.
Compiled module "_pairwise_seqs" not found. Will use slow Python alignment implementation.
Compiled module "_compare" not found. Will use slow Python dotplot.

適当に検索してみると、PyCogent(1.5.3)Cのライブラリが適切にインストールされていないのではないかということで、
python setup.py build_ext -if
とすると良いという方法が紹介されていたが、このコマンドでビルドしてインストールしても状況は
変わらなかった。

_likelihood_tree.soは、
/usr/local/lib/python2.7/site-packages/cogent/evolve/_likelihood_tree.so
のようなので、これにLD_LIBRARY_PATHを設定するも状況は変わらず。

よく見ると、_likelihood_tree.soのrフラグが立っていないので、これを立てたら
動くようになったようだ。
chmod 775 _likelihood_tree.so
setup.pyの不具合だろうか?


Adaptec ASR-51645

2010-12-21 10:01:30 | インポート

忘れないようにメモ。

AdaptecのRAIDカードをFedora14のマシンに追加したところ、ブートしなかったりブートにものすごく時間がかかってしまう障害が起きた。認識もできていない。ログを確認すると

aacraid: Host adapter abort request (6,0,0,0)
aacraid: Host adapter abort request (6,0,0,0)
aacraid: Host adapter reset request. SCSI hang ?
AAC: Host adapter BLINK LED 0xef
AAC0: adapter kernel panic'd ef.
AAC0: adapter kernel failed to start, init status = 48.
sd 6:0:0:0: Device offlined - not ready after error recovery
sd 6:0:0:0: [sdd] Unhandled error code
sd 6:0:0:0: [sdd] Result: hostbyte=DID_OK driverbyte=DRIVER_TIMEOUT

調べていくと、以下の情報を見つけた。
https://bugzilla.redhat.com/show_bug.cgi?id=540478

詳細は読んでいないが、直し方は起動時のカーネルのパラメータに

pcie_aspm=off
を渡すだけで、とりあえずは使えるようになるようだ。ということで
/boot/grub/grub.confを書き換えて、grub-installを実行して再起動すると
スムーズに起動して認識も問題ないようだ。

Struts2.1.6セットアップ時のエラー

2009-08-10 19:47:52 | インポート

java.lang.NoClassDefFoundError: org/springframework/core/SmartClassLoader

パッケージ同梱のspring-core-2.5.3にはSmartClassLoaderは入っていないようだ。

確か2.5.5には入っている。そこで、とりあえずSpringのサイトから2.5.5をダウンロードしてきて
spring-aop.jar  spring-beans.jar  spring-context.jar  spring-context-support.jar  spring-core.jar  spring.jar のファイルを[myapp]/WEB-INF/lib以下に置いてみたら
エラー無しで起動したようだ。

Springのダウンロード用ページ:
http://www.springsource.org/download


PostgreSQLにJDBCでsetArray(array)

2008-07-03 17:01:35 | インポート

今、Javaのプログラムの中でjava.util.Listオブジェクトの
中にIDのリストを持っているとして、

select ~ where id in (?) order by id;

といったSQLで?にjava.sql.Arrayとしてセットできないか
ということだ。

もし、これができればパラメータ文字列のサニタイジングの
ような手間もないし、条件をorで結合するよりもスマートだ。

しかし残念ながらArrayにはコンストラクタや
ファクトリーメソッドはなく、インスタンスを
作成することはできない。
それもそのはずでArrayオブジェクトは
データベースとのコネクションを保った状態で
存在しうるものらしい。

ということは、なんらかの方法でResultSet.getArray(int)で
取得してしまえば良いということで、そういう手段を
取った人もいた。

前段階でTemporalなArrayを作成する方法。
http://hi-time-tech.blogspot.com/2007/12/ibatisjdbcarray.html

じゃあ、その1段階目のクエリは結局のところ文字列を結合するの?
というのが情けないところだが、もし、そのjava.util.Listの内容が
データベースから取得したものなら、Listを作らないで1段階目の
SQLで以下のようにすれば良かった。

  select ARRAY(select id from ~ where ~)

この結果をResultSet.getArray(1)で取得して、
二段階目のクエリにPreparedStatement.setArray(int, Array)
と渡してやればOKだった。

気をつける点としては、おそらく2段階目のクエリを実行し終わるまでは
1段階目のResultSetかConnectionを閉じてはいけないことか(これどっち?)。
でもそれもjavax.sql.rowset.serial.SerialArrayを使えば
切り離せるかもしれない。これは未確認だが。

ちなみに条件でArrayを指定するときは、where id in (?)ではなく

where id = ANY (?)

とするようだ。さもないと

org.postgresql.util.PSQLException: ERROR: operator does not exist: integer = integer[]

といった例外が出る。

情報源: http://archives.postgresql.org/pgsql-novice/2005-11/msg00134.php