Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
9 / 9 / 0
Регистрация: 13.07.2012
Сообщений: 127
Oracle

Долго выполняется подключение к БД

24.07.2019, 12:14. Показов 2336. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Временами долго выполняется подключение? Раз в час может быть и чаще.
Есть класс thread_action унаследованный от класса Thread выполняет подключение к БД Oracle.
Как я отслеживаю время подключения?
Создаем переменную класса.
Запускам поток через start.
открываем цикл. Ждем пока завершиться цикл.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
try {
    thread_action = new thread_action();
} catch (java.net.UnknownHostException ex) {
   return;
}
start = System.nanoTime();
date_start = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date());
// запуск потока
thread_action.start();
finish = System.nanoTime();
date_finish = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date());
run = finish - start == 0 ? 0 : (finish - start) / 1000000000;
// проверяем, что поток пока работает, и текущее время минус время запуска меньше допустимого времени
while (thread_action.getStatus() == 1 && isbreak) {
    finish = System.nanoTime();
    date_finish = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date());
    run = (finish - start) / 1000000000;
    isbreak = run < time_break;
    //    System.out.println("run"+String.format("%f",(finish-start)/1000000000.0));
}
Класс thread_action
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class thread_action{
String status;
public String getStatus(){
return status;
}
public void run(){
status=1;
    try {
        log.write((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date()) + " connecting...");
        connection = DriverManager.getConnection(connection_s, user_s, password_s);
        log.write((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date()) + " connect success");
    }catch (java.sql.SQLException ex){
        log.write("[DB]::create_connection~Error connect. "+ex.getMessage());
        
    }
status=-1;
}
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.07.2019, 12:14
Ответы с готовыми решениями:

Долго выполняется запрос
Всем привет. Довольно долго (порядка 30-40 секунд) выполняется запрос. Подскажите где, что неправильно и как его можно ускорить. ...

Программа долго выполняется
Добрый день, товарищи. Написал прогу, кодирующую данные#include &lt;iostream&gt; #include&lt;fstream&gt; #include&lt;string&gt; using...

Долго выполняется setText
ну код не самый красивый, но щас дело в другом. в StringBuilde загружает файл моментально, но вот в текстареа он очень долго грузит, даже...

22
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
24.07.2019, 12:33
что это и зачем это все?
0
9 / 9 / 0
Регистрация: 13.07.2012
Сообщений: 127
24.07.2019, 12:48  [ТС]
для мониторинг времени подключения к БД. Чтоб понимать. какая сильная нагрузка на систему. Если нет подключений, то значит не рождаются сессий. Значит плохо. Поможете?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
24.07.2019, 12:55
идея кажется довольно абсурдной
0
9 / 9 / 0
Регистрация: 13.07.2012
Сообщений: 127
24.07.2019, 15:04  [ТС]
Это Ваше мнение, и оно на права существовать. Но мне нужно помощь в решение такой сложной задачи. Поможете?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
24.07.2019, 15:11
Цитата Сообщение от met4ka Посмотреть сообщение
такой сложной задачи
какой задачи?
0
9 / 9 / 0
Регистрация: 13.07.2012
Сообщений: 127
24.07.2019, 15:39  [ТС]
Выяснить почему долго выполняется подключение.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
24.07.2019, 17:06
долго это сколько?
0
9 / 9 / 0
Регистрация: 13.07.2012
Сообщений: 127
24.07.2019, 18:27  [ТС]
доходит до 30 секунд. Это не нормально.
Потому что целый час 1 секунда. И бах. 30. Согласны что это странно?

Добавлено через 1 минуту
Если это проблемы не на стороне библиотеки jdbc. то как это доказать?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
24.07.2019, 20:27
Подозреваю, что у бд есть какой то лимит на открытые коннекшны, а ты их не закрываешь, вот и приходится ждать
0
9 / 9 / 0
Регистрация: 13.07.2012
Сообщений: 127
24.07.2019, 20:49  [ТС]
с бд точно нет проблем.
Сессий я все закрываю. Проверял по таблице v$session.
Если запускать одновременно две программы, то одна программы быстро подключается, а другая быстра.
Думал, борьба за ресурс, но тоже нет, так как нет не где статических элементов.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
24.07.2019, 21:10
у тебя какие то треды получают коннекшны. Иногда, как ты пишешь, коннекшны получаются долго. В твоём огрызке кода я не вижу, чтобы ты эти коннекшны закрывал.
одна программы быстро подключается, а другая быстра - так это же вроде хорошо

Добавлено через 1 минуту
ну и пока там разбираешься, прочитай как в Яве принято имена давать, и про коннекшн пулы заодно.
0
9 / 9 / 0
Регистрация: 13.07.2012
Сообщений: 127
25.07.2019, 08:24  [ТС]
так вопрос в том, почему одна быстро а другая долго? в чем проблема? из-за чего так?

Добавлено через 7 минут
Если подключения я не закрывал бы, то oracle в течение часа лег бы. Ты хоть работал с oracle? ты хоть знаешь как устроены сессий?
Само собой что программа состоит не только из это "ОГРЫЗКА".
Проблема не в закрытие сессий, а в том что долго идет подключение (Если ты не знаешь, это совсем разные операций).
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
25.07.2019, 08:44
ну раз ты все знаешь, и все делаешь правильно, то непонятно, что тебе тут нужно
0
9 / 9 / 0
Регистрация: 13.07.2012
Сообщений: 127
25.07.2019, 08:53  [ТС]
мне нужно понять. почему долго временами долго выполняется подключение? с чем это связано? проблема с jdbc, то как это доказать?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
25.07.2019, 09:51
скорее всего проблема с твоим кодом.
Как доказать - используй вместо явы что-нибудь что умеет нормально подключаться к бд, например консольную тулу.
0
9 / 9 / 0
Регистрация: 13.07.2012
Сообщений: 127
25.07.2019, 11:12  [ТС]
и как с помощью консольного пула ослеживать время подключения?
о том, что код в моем "огрызке" ошибка я в первую очередь подумал.
Но выполнил проверку на нескольких баз.
Время подключения (вот именно сейчас) к локальной базе 0,1 секунда,
к удаленной 0,8 .
Разве Вы не согласны, что это очень странно?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
25.07.2019, 14:07
Цитата Сообщение от met4ka Посмотреть сообщение
класс thread_action унаследованный от класса Thread
серьезно?
0
9 / 9 / 0
Регистрация: 13.07.2012
Сообщений: 127
25.07.2019, 16:02  [ТС]
что не так?

Добавлено через 12 минут
как правильно создавать класс который будет запускаться в потоке?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
25.07.2019, 16:44
а где видно что он наследуется от Thread?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.07.2019, 16:44
Помогаю со студенческими работами здесь

Долго выполняется запрос
Приходят в GET слова для работы с БД, все работает хорошо, кроме одного словочитания, база данных возвращает значения, но это происходит...

Долго выполняется запрос к БД
Добрый день. Есть в БД табличка с 192 полями, в ней может быть около 100 тыс. записей. запрос count(*) выполняется 1,31 сек. а выбор...

Долго выполняется цикл
Добрый день или вечер)) Есть цикл for, который выполняется в потоке. Он занимается заполнением структуры. В этом цикле for...

Долго выполняется код.
Уважаемые форумчане, почему у меня тормозит этот немудреный код, хотя в листбоксе всего 490 строк, и как сделать его быстрее? Variant v; ...

Долго выполняется программа и зависает
Программа на C# долго выполняется и зависает при вводе eps вот код: using System; using System.Collections.Generic; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru