ratio - rational - irrational

« Lisperから見たRuby | Main | 「宗教とニセ科学は峻別できる。」について »

2007年01月11日

S2Dao.NETで普通に複数DBに接続できた

できましたよっと。

* やりたかったこと

一部のテーブルだけ他のデータベースサーバーに置いてあるので、それらのDAOは他のDAOで使っているのとは別のコネクションを張って使いたい。


* 設定

  • app.dicon
    • module.dicon
      • s2dao.dicon
        • ado.dicon
      • exceptional-entities.dicon
        • other-db-s2dao.dicon
          • other-db-ado.dicon

diconのinclude関係をこんな感じにして、例外的に他のデータベースを使うDAO interface(仮にIHogeDaoとしよう)はexceptional-entities.diconに収めた。で、第二のコネクションに関する設定はexceptional-entities.dicon以下にぶら下がってるother-db-s2dao.dicon, other-db-ado.diconに入れた。これはs2dao.dicon, ado.diconとはコネクションの設定だけが違う。

最初はこんな風にしていて、はまった。

  • app.dicon
    • module.dicon
      • s2dao.dicon
        • ado.dicon
      • other-db-s2dao.dicon
        • other-db-ado.dicon

IHogeDaoをmodule.diconに入れてしまったのだ。s2dao.diconで定義したinterceptorとother-db-s2dao.diconで定義したのとは名前空間が違うから、other-db-s2dao.diconで定義したinterceptorをaspectに指定すればOKかと思ったのだけれども。でも走らせて見たら、なんかother-db-s2dao.diconで定義したinterceptorでクエリを走らせたところで固まって、結局timeoutしてしまった。トランザクション関係が怪しい?

もう一段dicon includeをかませてみたら、うまくいった。

* 参考



トラックバック

この記事のトラックバックpingのURL:
http://idm.s9.xrea.com/blog/mt-tb.cgi/576

Ping元:D2Dao.NETで複数DBに接続

概要:
ここのところ、仕事が忙しいことを言い訳にして、コミッタらしい仕事をしていません。 とはいえ、忘れているわけでありませんぞ。 仕事の合間に気分転換にググってみたら、S2DAO.NETに複数DBに接続してみた方がおられました。 やってみたいと思いながら、できていなか...
Weblog:
FujiiHの部屋
日時:
2007年01月29日 19:58

コメント

新しくコメントをつける

よくわからない理由により、コメントが即座には反映されないかもしれませんか゛、ボタンを押して元の画面に戻ってきたならたぶん正しく送信されています。




blog操作

検索


カテゴリー

このブログについて

あわせて読みたい

follow yugui at http://twitter.com
© 2007 Yugui

Powered by Movable Type 3.2-ja-2