|
|
|
Долгое закрытие JDBC
|
|||
|---|---|---|---|
|
#18+
Так же сам сервер может им обоим слать кое какие пакеты. Вот это кокраз тот случай. Хранимая процедура возвращает id сессий которым нужно разослать этот пакет. Грубо говоря у вас в списке есть 10 контактов и у меня есть 10 контактов. У вас и у меня 5 одинаковых контактов. Вдруг эти пять контактов становятся онлайн. Сервер выясняет кого нужно уведомить и рассылает данный пакет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 17:12:47 |
|
||
|
Долгое закрытие JDBC
|
|||
|---|---|---|---|
|
#18+
Следовательно этот пакет получите только вы и я. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 17:14:31 |
|
||
|
Долгое закрытие JDBC
|
|||
|---|---|---|---|
|
#18+
Вернее в данном случае мы получаем пакет от одного из ПК и рассылаем его нужным ПК у которых в списках он есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 17:16:49 |
|
||
|
Долгое закрытие JDBC
|
|||
|---|---|---|---|
|
#18+
А эту задачу нельзя было решать на уровне триггеров на users_online, hosts_online? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 17:18:09 |
|
||
|
Долгое закрытие JDBC
|
|||
|---|---|---|---|
|
#18+
maytonА эту задачу нельзя было решать на уровне триггеров на users_online, hosts_online? Я к примеру написал ситуацию. Чтобы было понятно зачем так много потоков. А по вопросу... В данном случае сервер рассылает нужным клиентам не информацию о online. Тут триггера не помогут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 17:30:02 |
|
||
|
Долгое закрытие JDBC
|
|||
|---|---|---|---|
|
#18+
Подход неправильный. Соединение должно возвращаться в пул не "максимально быстро", а "если больше не требуется". Ваш запрос выполняется или "постоянно" или "очень часто", поэтому надо взять соединение, подготовить запрос и выполнять его с нужными параметрами до тех пор, "пока работает" и "нет ошибок выполнения". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 19:25:25 |
|
||
|
Долгое закрытие JDBC
|
|||
|---|---|---|---|
|
#18+
Вопрос номер один -что за сервер? Какая архитектура , какие либы используете ? какой подход : spring или ejb ? какой используется pool соединений и есть ли он вообще? как он настроен? что вам дает использование хранимой процедуры ? Перейдите на select - с параметрами только чтение. Проведите рефакторинг кода - тут явно какая то ошибка в логике кода, нужна декомпозиция , но вот пока не очень пойму какая, ибо кода мало. Какое количество коннектов допускается к базе? сколько из них задействовано ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 20:31:46 |
|
||
|
Долгое закрытие JDBC
|
|||
|---|---|---|---|
|
#18+
GorloPavelФункция sendData У вас ввод/вывод блокирующий. Выходного буфера для sendMessage может не хватить, клиент отвалился - вы будете висеть в ожидании записи/таймаута. GorloPavelКоличество возвращаемых записей в большинстве случаев не более 2-5. Ну вот и выберите их сначала в список. Закройте соединение с базой. А потом по списку уже начинайте уведомлять. При таком количестве вместо списка еще рекомендуется какой-нибудь map. Тогда вместо 20000 итераций у вас будет 2-5. Но проблему с тем, что запись к определенному клиенту может заблокироваться на выводе, это не решит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 09:34:22 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38438725&tid=2128352]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
228ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 490ms |

| 0 / 0 |
