У меня есть требование написать приложение Java (на основе Интернета), которое будет подключаться к базам данных Oracle 11G (в настоящее время подключается 10-12 различных баз данных оракула), читать некоторые данные из него (все - это выборные запросы).Подключение к нескольким базам данных с использованием производительности драйверов JDBC
После повторного использования этого массива я соединяю каждую базу данных, запрос выбора огня (тот же запрос, который я запускаю для всех баз данных), получаю запись, помещаю ее в один глобальный список коллекций и закрываю соединение и продолжая такой же процесс в этом цикле.
В настоящее время я являюсь «Исполнителем» для подключения нескольких баз данных. снова используя ExecutorService executor = Executors.newFixedThreadPool(20);
дайте мне один сюрприз. для первого соединения с базами данных creting он показывает немедленный журнал, но для последующего подключения к базе данных он печатает журналы через 60 секунд, поэтому я не понимаю, почему это занимает 60 секунд или более для всех подключений? логически, для всех подключений требуется время, подобное одному.
Просьба предложить улучшить производительность для этого приложения.
Вы должны использовать Пул соединений. Если вы не работаете в среде сервера, ищите решения с открытым исходным кодом, такие как [DBCP] (http://commons.apache.org/proper/commons-dbcp/) или [C3P0] (http://sourceforge.net/projects/c3p0 /) –
Открыты ли соединения рабочими потоками или основными потоками? Почему синхронизация OpenConnection? В каком классе он находится? – Joni
В настоящее время я запускаю это приложение, используя JSF 2.0 (для UI) и tomcat как сервер. – user1037452