[firebase-br] Numero de usuários online

Gladiston Santana gladiston em vidy.com.br
Seg Jul 14 16:34:32 -03 2014


Sim, entendi sua indagação.
Mas você só me pergunta isso porque ainda não olhou a tabela de
monitorizacao, se observá-la :
select * from mon$attachments
notará que o login de uma pessoa pode ser contabilizado pelo
username(óbvio) e provavelmente, mas não unicamente, o nome da estação
donde partiu o acesso, essas informações juntas fornecerá uma assinatura de
login. Poderia até acrescentar o nome do aplicativo que partiu o login, se
necessário.
Se no momento do login, notar que esse username está logado hoje e já
consta mais de 1 assinatura de login dele na mon$attachments então você
barra esse login.
Se um segundo login diferente partir da mesma máquina, voce decide barrar,
cancelar o login anterior ou permitir mesmo assim segundo os critérios que
estabelecer.

Mas se posso ter tudo na mon$attachments, então porque usar uma tabela
auxiliar de usuários?
Porque se eu usar apenas ela, terei problemas se o meu banco funciona em
certas oportunidades desconectado.
Se eu estiver desconectado e o proximo usuário (que for diferente) for
usá-la, seu sistema contará 2 e não apenas 1.

Não importa se o sistema 'crashar' porque isso seria tratado como um
usuário desconectado e em seu proximo login, o sistema repetirá o ciclo.
Sem um logoff o mesmo usuário se conectaria sem levantar nenhuma suspeita,
o problema seria ele decidir não voltar a trabalhar naquele dia e seu login
seria contabilizado pelo dia inteiro, se isso for um problema, voce cria
uma rotina para fazer logoff arbitrario desse usuário ou usuários
desconectados por n minutos.
Se seu sistema funcionará online 100% do tempo pode usar apenas a
mon$attachments para fazer o controle, mas se for diferente disso terá de
usar uma tabela auxiliar.

Talvez tenha milhares de métodos diferentes, quando precisei usei assim
como descreví assim.


Em 14 de julho de 2014 13:18, Qatan <wanstadnik em gmail.com> escreveu:

> Olá Gladiston,
>
> Vou estudar sua implementação cuidadosamente, pareceu-me interessante.
> E o que acontece se o programa der um problema (um crash) ou se travar o
> sistema operacional, ou qualquer coisa do tipo que tenha que reiniciar a
> máquina ou mesmo a minha aplicação? Estes campos vão estar preenchidos com
> a data corretamente e não foi registrada a "saída" do usuário, ou seja, ele
> fez o "login" mas nunca fez o "logoff"...
> Talvez eu poderia verificar se o usuário que está tentando logar já estava
> logado antes e permitir ele de logar de novo para solucionar esse problema
> mas isso acabaria com o limite de usuários logados no programa pois o mesmo
> usuário poderia logar mais de uma vez (na realidade poderia logar-se
> inúmeras vezes com o mesmo usuário...)
> Você entendeu minha pergunta?
> Obrigado por compartilhar suas idéias e experiência.
>
> Qatan
>



Mais detalhes sobre a lista de discussão lista