Вопрос

Привет,

Я реализовал приложение чата, используя Comet.запрос «висит» на сервере до поступления новых сообщений.Затем он возвращается клиенту с новыми сообщениями и снова отправляется на сервер.

Моя проблема:

Чтобы проверить наличие новых сообщений, я опрашиваю базу данных каждые 600 мс.Я выполняю простой запрос «выбрать... из сообщений, где messageId > ' + LastMessageId.

Кроме того, для поддержания присутствия я обновляю базу данных очень (очень) часто с каждым пользователем «LastkeePaliveTime».

Журнал транзакций SQL Server разрастается до огромных размеров, и в определенный момент мое приложение для чата перестает работать.

Пользователи чата не являются зарегистрированными пользователями, это просто случайные пользователи, которые могут покинуть страницу в любой момент.

Спасибо, Ярон

Это было полезно?

Решение

Можете ли вы использовать общий объект кэша для последней активной информации?Кажется, что это небольшой объем информации, и вы можете избежать большого количества обновлений sql.

Другие советы

Вот как предотвратить выход журнала транзакций из-под контроля: http://support.microsoft.com/kb/873235

Варианты в этой статье включают в себя:

  • Делаю психиатрию.
  • Изменение размера журнала.
  • Настройка автоматического расширения.
  • Изменение модели восстановления.
  • Регулярное резервное копирование файла журнала.

и более.

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

Переключение с журнала транзакций полного режима на простой режим должно решить проблемы с ростом журнала.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top