0

プロジェクトの 1 つでActiveJDBCを使用していますが、今日、厄介な問題に遭遇しました。

ActiveJDBC はプールから同じ名前の「デフォルト」で複数の接続を取得しようとするため、アプリケーションへの同時リクエストは失敗します。

別の名前で接続を開く可能性があるようですので、書く代わりに:

Base.open(JNDI_NAME)

1 つは次のように記述します。

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

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

何千行ものコードが書かれているので、ActiveJDBC を置き換えたくありません - 何かアイデアはありますか?

4

1 に答える 1

0

アイデアが存在します:) コードには次のものがあります。

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

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

システムにデータベースが 1 つしかない場合は、クラス DB も必要ありません。Base を使用するだけです : http://javalite.github.io/activejdbc/snapshot/org/javalite/activejdbc/Base.htmlデータベース接続には「デフォルト」という名前が付けられます-モデルが期待するもの

乾杯

于 2012-05-07T16:27:22.930 に答える