2012-05-07 9 views
0

私のプロジェクトでActiveJDBCを使用していますが、今日は厄介な問題に遭遇しました。 ActiveJDBCは、同じ名前の「デフォルト」とプールからの複数の接続を取得しようとするため、自分のアプリケーションにActiveJDBC同時リクエスト?

同時要求は、失敗します。

あり、異なる名前との接続をオープンする可能性のようですので、代わりに書いている:

Base.open(JNDI_NAME)

1を記述します。

new DB("someRandomName").open(JNDI_NAME);

しかし...しようActiveJDBCは接続「デフォルト」(またはモデルクラスからの@DbNameアノテーション)を検索します - 私が理解するように、このコンセプトは複数のデータベースを扱うために使用されますes(複数の接続ではありません)。

何千行ものコードが書かれているので、私は本当に、ActiveJDBCを交換したくない - 任意のアイデア?

答えて

0

アイデアが存在して:)あなたのコードで を、あなたが持っている:あなたは、クラスのコンストラクタに渡す文字列..but

new DB("someRandomName").open(JNDI_NAME); 

DB は、いくつかのランダムな文字列はなく、JNDI名ではありません。これはデータベースの論理名です。あなたはこれが複数のデータベースへのアクセス権を持っていることを適切に推測しました。ここ はこれを説明するドキュメントです: http://javalite.io/database_connection_management#multiple-database-example

あなただけのシステムで1つのデータベースを持っている場合は、あなたも、単に基本使用、クラスDBを必要としない:それはそのデータベース接続が名前を持っているだろうことを確認します http://javalite.github.io/activejdbc/snapshot/org/javalite/activejdbc/Base.html を「デフォルト」 - モデルが期待するもの

歓声

関連する問題