2012-05-07 18 views
0

Я использую ActiveJDBC в одном из моих проектов, и сегодня я столкнулся с неприятной проблемой.Одновременные запросы ActiveJDBC?

Одновременные запросы к моему приложению не удастся, так как ActiveJDBC пытается получить несколько соединений из пула с одинаковым именем «по умолчанию».

Там, как представляется, возможность открыть соединение с другим именем, поэтому вместо написания:

Base.open(JNDI_NAME)

можно было бы написать:

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

... НО при попытке для получения некоторых данных из базы данных возникает проблема: ActiveJDBC ищет соединение «по умолчанию» (или аннотацию @DbName из класса модели) - как я понимаю, эта концепция используется для обработки нескольких баз данных es (не несколько соединений).

Я действительно не хочу заменять ActiveJDBC, потому что написаны тысячи строк кода - любые идеи? существуют

ответ

0

Идеи :) В своем коде, у вас есть:

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

..но строки вы передаете в конструктор класса DB не какая-то случайная строка, а не JNDI имя. Это логическое имя базы данных. Вы правильно догадались, что это связано с доступом к множественному доступу к базе данных. Вот док объясняет: http://javalite.io/database_connection_management#multiple-database-example

Если у вас есть только одна базы данных в вашей системе, вам даже не нужен класс DB, просто использовать базу: http://javalite.github.io/activejdbc/snapshot/org/javalite/activejdbc/Base.html Это будет гарантировать, что подключение к базе данных будет иметь имя «по умолчанию» - то, что ожидаются ваши модели

ура

Смежные вопросы