0

ランタイム変数に基づいて、さまざまなデータベースのデータにアクセスしようとしています。この目的のために、私は のカスタム実装を持っていますMongoOperations。私の実装は、私のメソッドが以下のようになることをMongoTemplate除いて同じです:getDb()

public DB getDb() {
    return mongoDbFactory.getDb(PropertyManager.getCurrentTenant().getCode());
}

トランザクションでデータを読み取っているときに、以下のエラーが発生します。

[TransactionSynchronizationUtils] - TransactionSynchronization.beforeCompletion threw exception
java.lang.IllegalStateException: No value for key [Mongo: localhost/127.0.0.1:27017] bound to thread

この例外はログに記録されるだけなので、無害に見えます。

public static void triggerBeforeCompletion() {
    for (TransactionSynchronization synchronization : TransactionSynchronizationManager.getSynchronizations()) {
        try {
            synchronization.beforeCompletion();
        }
        catch (Throwable tsex) {
            logger.error("TransactionSynchronization.beforeCompletion threw exception", tsex);
        }
    }
}

しかし、なぜこれが起こっているのかを理解するのに苦労しています。手がかりはありますか?

バージョン:

  • 春-データ-mongodb: 1.2.3.RELEASE
  • 春-tx: 4.0.5.RELEASE

リリースで修正された同様の問題に対して発生したバグがありました。1.1 GA

4

1 に答える 1