Pergunta

Helo,

Eu tenho implementado um aplicativo de bate-papo usando Comet. o pedido é "travar" no servidor até que novas mensagens arive. Ele, então, retorna para o cliente com as novas mensagens, e vai para o servidor novamente.

O meu problema é:

A fim de verificar se há novas mensagens, eu consultar o banco de dados a cada 600 ms. I realizar uma consulta simples ", selecione ... a partir de mensagens onde messageId> '+ lastMessageId.

Além disso, a fim de manter a presença, eu atualizar o banco de dados muito (muito) freqüentemente com cada usuário "LastKeepAliveTime".

O log de transações SQL Server está crescendo enorme, e, em um certo ponto, a minha aplicação de chat pára de funcionar.

usuários

Os usuários de bate-papo não são registrados, eles são usuários apenas aleatórios que podem deixar a página a qualquer momento.

graças Yaron

Foi útil?

Solução

Você pode usar um objeto de cache comum para a última informação viva sustento? Parece que é uma pequena quantidade de informações e você pode evitar uma série de atualizações de SQL.

Outras dicas

Veja como manter o registo de transacções de ficar fora de controle: http://support.microsoft. com / kb / 873235

Opções nesse artigo incluem:

  • Fazer um psiquiatra.
  • Alterar o tamanho do registo.
  • Configuração de expansão automática.
  • A alteração do modelo de recuperação.
  • Fazer o backup do arquivo de log regularmente.

e muito mais.

Como uma nota lateral, ele pode ser útil para configurar uma lista de usuários e suas últimas datas de atividade que você armazenar objetos em seu estado de aplicação. Seria mais rápido para o acesso dessa forma e você pode persistir os valores com menor frequência.

Mudar de log modo de transação completo para o modo simples deve resolver seus problemas de crescimento log.

No entanto, eu também deve adicionar que é geralmente uma boa idéia para evitar a votação, se puder, já que não é escalável. Você pode considerar a mudança para um modelo orientado a eventos usando Service Broker ou SqlDependency. Há outras abordagens para manter-alives também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top