![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
kokcu |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 23.3.2009 Репутация: нет Всего: нет |
Здравствуйте. Есть приложение которое делает по таймерам несколько запросов в mysql. Одновременно около 20 подключений. Но спустя некоторое время падает, если увеличивается нагрузка то падает быстрее. Пишет что пул соединений переполнен. Соединения все закрываю. Использую .NET mysql connector в настройках мускула поставил 1000 одновременных подключений. Где настраивается пул и почему он переполняется?
|
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 5 Всего: 306 |
в строке подключения. можно его вообще отключить. видимо много подключений. причем с разных клиентов. я так понимаю закрытие соединения идет как аля MySqlConnection.Close(). При наличии пула соединений для закрытия соединения этого мало. Нужно также использовать статический метод MySqlConnection.ClearPool |
|||
|
||||
kokcu |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 23.3.2009 Репутация: нет Всего: нет |
Нету такого метода(
Вообще какие есть опасные моменты при работе с базой данных? У меня локальное приложение и то при нагрузке падает иногда. |
|||
|
||||
Springtime |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 25.10.2006 Где: Россия, Тюмень Репутация: нет Всего: 2 |
Попробуй в строке подключения к базе, указать дополнительную опцию - Pooling=false
http://msdn.microsoft.com/en-us/library/8x...28VS.71%29.aspx --------------------
ICQ: 1fe410f46e7f48f6c721bc866d8294a2 |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 5 Всего: 306 |
||||
|
||||
kokcu |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 23.3.2009 Репутация: нет Всего: нет |
Поставил, но периодически выскакивает ошибка
Программа просто обрабатывает одинаковые запросы. |
|||
|
||||
Мурлыкатам_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 5.2.2007 Где: город-герой Минск Репутация: нет Всего: 2 |
У меня таже проблема с пулом, чего я уже только не перепробывал с конекшен стрингом и какие ток настройки не делал.
Проблема тянется уже больше года ![]() Возник логичный вопрос: А стоит ли постоянно создавать в юзинге SqlConnection и открывать его при каждом выполнение (у мя тоже по таймеру выполняется запрос один и тот же) или подключение можно просто сделать мембером класса и открывать его в конструкторе класса, а в методе который пишет, просто проверять на null и на ? например:
В таком случае ведь не должно быть проблем с пулингом или в таком подходе есть какие-то другие подводные камни? Посоветуйте пожалуйста, а то пулинг этот просто убивает. Раньше было по 100 соединений с базой все работало, никто ничего не менял, перестало работать. Самое обидное в пулинге - это его непредсказуемость. Хотя я понимаю, что проблемы с пулингом может вызывать только утечка соединений. Если кто имел опыт в борьбе с пулингом посредством настройки самого скл сервера, подскажите пожалуйста, где чего нужно настроить.. Спасибо. Похожа моя проблема в незнании правил написания коннекшен стрингов ![]() Это сообщение отредактировал(а) Мурлыкатам_ - 6.8.2010, 03:55 |
|||
|
||||
Мурлыкатам_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 5.2.2007 Где: город-герой Минск Репутация: нет Всего: 2 |
Метод очистки пула нужно вызывать у класса SqlConnection, а не у его объекта. Это статические методы. |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 5 Всего: 306 |
так рекомендуют. как бэ работа с отложенными данными кошерна, дайте вздохнуть серверу свободно, пусть клиент мозги заполняет. собственно для этого пул и существует. при частых обращения к БД на самом деле соединение не разрывается и повторно используется клиентом при следующем подключении. полное закрытие обеспечивает либо отключение пула в строке подключения, либо статические методы описанные выше. |
|||
|
||||
kokcu |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 23.3.2009 Репутация: нет Всего: нет |
Спасибо, засунул claerpool и clearallpools в таймер посмотрим что получилось.
Я сейчас посмотрел process list на сервере и там этим подключений наверно тысяча. Так надо? Статус у все слип. И еще одна странная вещь. Я завел счетчик активных соединений. Когда юзал open просто увеличивал его на 1, когда клоуз то уменьшал. Уменьшалки точно везде стоят, под каждым connection.Close() но почему то уже 700 активных подключений((( Это сообщение отредактировал(а) kokcu - 6.8.2010, 12:26 |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 5 Всего: 306 |
||||
|
||||
kokcu |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 23.3.2009 Репутация: нет Всего: нет |
Всем спасибо но вроде проблема решилась командой SET GLOBAL wait_timeout = 100; Спящие тысячи запросов уходят сами. 5 часов аптайма и все ок) |
|||
|
||||
kokcu |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 23.3.2009 Репутация: нет Всего: нет |
теперь другая проблема((( программа начинает примерно через 6 часов жутко тормозить и жрать половину проца и 100м оперативы( что делать?
|
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 5 Всего: 306 |
тут сложно что либо сказать. юзай профайлер, что бы выявить данные утечки.
|
|||
|
||||
Springtime |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 25.10.2006 Где: Россия, Тюмень Репутация: нет Всего: 2 |
тебе уже написали, что следует выключить пул соединений я с таким же сталкивался только у нас сервак на котором MS SQL просто напросто зависал эпизодически раз в 2 месяца. Это сообщение отредактировал(а) Springtime - 9.8.2010, 14:32 --------------------
ICQ: 1fe410f46e7f48f6c721bc866d8294a2 |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |