none
Чат на MySQL (подводные камни) RRS feed

  • Вопрос

  • Есть мини чат на MySQL, принцип работы такой:

    В одном потоке с заданным интервалом происходит обновление сообщений чата, а во втором по нажатию кнопки происходит добавление нового и удаление устаревшего сообщения.

    Все хорошо, но если частоту обновления поставить в 5 секунд (пользователи просят такую маленькую цифру), то при попытке отправить сообщение вылетает ошибка, мол данное соединение сейчас занято.

    В БД я не силен поэтому не представляю как решить эту проблему...

    Для инфы - используется один DataSet и TableUdapter для Fill и Update, то есть для чтения списка сообщений и для добавления новых. Может стоит эти процессы разделить по разным DataSet и TableUdapter, но я не особо представляю как.

    Выручайте

    11 июля 2011 г. 12:13

Ответы

  • Проблема решилась очень легко. Добавил еще TableAdapter и DataSet и повисил их исключительно на получение списка сообщений в чате. Отправка теперь проходит без конфликтов и ошибок!!!


    • Помечено в качестве ответа Abolmasov Dmitry 12 июля 2011 г. 5:09
    11 июля 2011 г. 14:03

Все ответы

  • Ощущение, что вы сделали сервис, в котором для всех клиентов поднято одно соединение... Если для каждого клиента открывается одно соединение, то проблем не должно быть. Сколько у вас пользователей одновременно пользуется программой?
    11 июля 2011 г. 12:23
  • У одной копии один пользователь, но они то чатятся и пишут друг другу, поэтому их человек 5-6 стабильно висит в чате... дело в том, что в одном потоке идет загрузка сообщений с маленьким интервалом, а во втором постинг и если оба действия приходятся на одно время, то вылетает ошибка
    11 июля 2011 г. 12:45
  • Проблема решилась очень легко. Добавил еще TableAdapter и DataSet и повисил их исключительно на получение списка сообщений в чате. Отправка теперь проходит без конфликтов и ошибок!!!


    • Помечено в качестве ответа Abolmasov Dmitry 12 июля 2011 г. 5:09
    11 июля 2011 г. 14:03