ti-enxame.com

Impasse na tabela de sessões

Raramente, em vez do carregamento do meu site, recebo uma tela branca da morte com esta mensagem de erro:

Impasse encontrado ao tentar obter o bloqueio; tente reiniciar a transação SQL = INSERT INTO jom_session (session_id, client_id, guest, time, userid, username) VALORES ('cv95odk14jbe8738ecg9se9de1', 0, 0, '1402423781', 101, 'nome de usuário @ example.com ')

Não consigo duplicá-lo, mas já o vi antes e foi relatado por outros usuários. Existe alguma maneira de impedir que isso aconteça?

3
ContextSwitch

Se houver um impasse, isso indicaria que as atualizações de índice são feitas de diferentes direções, por assim dizer, e pode haver um bug no Joomla que causa isso. Além de documentar os sintomas ou tentar encontrar o bug, você pode atenuar o problema, permitindo que a tabela de sessões seja mais eficiente.

Além do comentário de Jordans, você pode tornar a tabela de sessões muito eficiente, transformando-a em uma tabela MySQL do tipo MEMORY. No entanto, isso significa que as sessões são perdidas na reinicialização do MySQL.

Para transformá-lo em uma tabela de memória, alterne o campo de dados de texto médio para algo como varchar (15000) (o tamanho depende de quais extensões armazenam quais dados) e, em seguida, vire o tipo para MEMORY.

Você também precisa permitir memória "heap" suficiente na sua configuração do MySQL, já que a tabela será mantida na memória. Para sites grandes que eu administro, uso até 640MB.

Por tudo isso, você precisa ter um VPS, pelo menos é claro.

1
jdog