[pgbr-geral] Conexão permanente

2009-01-12 Por tôpico marco

Pessal estou com o seguinte dilema:
Tenho alguns cliente que me pedem para que cada usuário se conecte ao 
sistema em uma máquina por vez. Para resolver o problema, criei os 
usuários da minha app como usuários do PG pois desta forma quando um 
usuário tentar efetuar o login na app, ela pergunta ao PG se o usuário 
já está logado, se não estiver logado a entrada no sistema continua (a 
conexão fica aberta até a app ser finalizada) caso contrário e entrada é 
barrada e ele é avisado que seu login está aberto em outra máquina.
mas recentemente venho estudando o C# e tenho notado que ninguem utiliza 
uma conexão permanente ao banco de dados. todos tem seus ótimos argumentos.


Gostaria de saber a opinião de vocês:
Pensando no controle que preciso, é arriscado manter uma conexão 
permanente com o banco ?


Se este procedimento for ruim e o melhor for o que o mundo c# diz: 
Conecte, pegue o que quer e desconecte. Como fariamos para manter o 
controle em que o usuário só possa ficar conectado em uma máquina.


Não sei se fui claro mas ficaria muujuuuito grato em ler o parecer de vocês

Obrigado.
--
*Marco Antonio J. Victor*
Fone/Fax: *11 2977-5406*
www.tactor.com.br

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conexão permanente

2009-01-12 Por tôpico Sebastian SWC
2009/1/12 marco ma...@tactor.com.br:
 Pessal estou com o seguinte dilema:
 Tenho alguns cliente que me pedem para que cada usuário se conecte ao
 sistema em uma máquina por vez. Para resolver o problema, criei os usuários
 da minha app como usuários do PG pois desta forma quando um usuário tentar
 efetuar o login na app, ela pergunta ao PG se o usuário já está logado, se
 não estiver logado a entrada no sistema continua (a conexão fica aberta até
 a app ser finalizada) caso contrário e entrada é barrada e ele é avisado que
 seu login está aberto em outra máquina.
 mas recentemente venho estudando o C# e tenho notado que ninguem utiliza uma
 conexão permanente ao banco de dados. todos tem seus ótimos argumentos.

Bem vindo ao ADO.NET!

 Gostaria de saber a opinião de vocês:
 Pensando no controle que preciso, é arriscado manter uma conexão permanente
 com o banco ?

Eu não diria que é arriscado, mas sim custoso. Cada conexão ativa
consome memória no servidor. Muitas conexões/desconexões simultaneas
também são custosas para o servidor. Tudo depende. Talvez manter as
conexões abertas com o pg_pool (falei bobagem?), por exemplo, pode
solucionar o problema.

 Se este procedimento for ruim e o melhor for o que o mundo c# diz: Conecte,
 pegue o que quer e desconecte. Como fariamos para manter o controle em que o
 usuário só possa ficar conectado em uma máquina.

Sim, esse é o principio do ADO.NET.

-- 
Atenciosamente,
Sebastian Selau Webber Colombo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conexão permanente

2009-01-12 Por tôpico George Silva




Acredito que voc resolver pela aplicao.

Assim que um usurio abrir a aplicao, insira o nome dele e tempo de
conexo em uma tabela.

No momento de pedir o close da aplicao, apague o nome do usurio na
tabela.

Entre os dois eventos, teste se o usurio j est conectado. (Quando
ele tentar logar denovo em outra mquina) O registro vai ser encontrado
e voc bloqueia o login com este user (volta para a tela de login).
Caso no exista um registro nesta tabela, ele loga.

No sei se consegui explicar o que quero dizer.

Mas veja a, e tenho certeza que otras pessoas podem te dar mais uma
"luz", no sou nem de perto expert no assunto.

Abrao

George


marco escreveu:

  
  
Pessal estou com o seguinte dilema:
Tenho alguns cliente que me pedem para que cada usurio se conecte ao
sistema em uma mquina por vez. Para resolver o problema, criei os
usurios da minha app como usurios do PG pois desta forma quando um
usurio tentar efetuar o login na app, ela pergunta ao PG se o usurio
j est logado, se no estiver logado a entrada no sistema continua (a
conexo fica aberta at a app ser finalizada) caso contrrio e entrada
 barrada e ele  avisado que seu login est aberto em outra mquina.
mas recentemente venho estudando o C# e tenho notado que ninguem
utiliza uma conexo permanente ao banco de dados. todos tem seus timos
argumentos.
  
Gostaria de saber a opinio de vocs:
Pensando no controle que preciso,  arriscado manter uma conexo
permanente com o banco ?
  
Se este procedimento for ruim e o melhor for o que o mundo c# diz:
Conecte, pegue o que quer e desconecte. Como fariamos para manter o
controle em que o usurio s possa ficar conectado em uma mquina.
  
No sei se fui claro mas ficaria muujuuuito grato em ler o parecer de
vocs
  
Obrigado.
  -- 
  
  
  

  

Marco Antonio J.
Victor
Fone/Fax: 11 2977-5406
www.tactor.com.br
  

  
  
  

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
  



___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conexão permanente

2009-01-12 Por tôpico ivo nascimento
Eu resolveria(sugeriria) esse seu problema, se voce desejasse resolver do
lado do banco, com uma tabela de logados, em que quando uma pessoa loga cria
um registro com o timestamp e ip da maquina...
em cada operacao ou em um gatilho na propria aplicação rodando em
determinado período, voce atualiza esse timestamp de acesso.
assim que alguem tenta logar voce pergunta para essa tabela se aquele login
ja esta em uso e se o periodo do lastaccess esta valido, se estiver tudo
certo, nega o login, senao, bloqueia o login com aviso de usuario ja logado.

o timestamp e sua atualizacao periodica serve para o caso de travamentos do
desktop em que o usuario nao teve como sair da aplicacao e a chave ficaria
esquecida la, invalidando o usuario ate uma limpeza manual.

no exit da aplicacao dispare um evento que delete registro na tabela de
logados...
acho essa uma solucao elegante... mas com certeza vão haver muitas outras
solucoes.


2009/1/12 marco ma...@tactor.com.br

  Pessal estou com o seguinte dilema:
 Tenho alguns cliente que me pedem para que cada usuário se conecte ao
 sistema em uma máquina por vez. Para resolver o problema, criei os usuários
 da minha app como usuários do PG pois desta forma quando um usuário tentar
 efetuar o login na app, ela pergunta ao PG se o usuário já está logado, se
 não estiver logado a entrada no sistema continua (a conexão fica aberta até
 a app ser finalizada) caso contrário e entrada é barrada e ele é avisado que
 seu login está aberto em outra máquina.
 mas recentemente venho estudando o C# e tenho notado que ninguem utiliza
 uma conexão permanente ao banco de dados. todos tem seus ótimos argumentos.

 Gostaria de saber a opinião de vocês:
 Pensando no controle que preciso, é arriscado manter uma conexão permanente
 com o banco ?

 Se este procedimento for ruim e o melhor for o que o mundo c# diz: Conecte,
 pegue o que quer e desconecte. Como fariamos para manter o controle em que o
 usuário só possa ficar conectado em uma máquina.

 Não sei se fui claro mas ficaria muujuuuito grato em ler o parecer de vocês

 Obrigado.
 --
 *Marco Antonio J. Victor*
 Fone/Fax: *11 2977-5406*
 www.tactor.com.br

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Ivo Nascimento - Iann
-
|   twitter: ivonascimento . |
|   http://ianntech.com.br.  |
|   ZCE ID 227463685|
-
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conexão permanente

2009-01-12 Por tôpico marco
George, obrigado pela resposta mas já pensei nesta dia lógica, mas o 
problema seria o seguinte:

Por algum motivo o usuário é desconectado:
   A máquina pode travar.
   O usuário pode desligar a máquina no botão
   A conexão com o servidor pode cair ( internet )
   Ou seja, a aplicação terminar de forma anormal

Nestes casos, a tebela continuaria como se ele estivesse conectado e 
obviamente seria interpetado como login em uso.


Se houver uma desconexão anormal o PG controla isso pra mim muito bem !

Grato.


George Silva escreveu:

Acredito que você resolver pela aplicação.

Assim que um usuário abrir a aplicação, insira o nome dele e tempo de 
conexão em uma tabela.


No momento de pedir o close da aplicação, apague o nome do usuário na 
tabela.


Entre os dois eventos, teste se o usuário já está conectado. (Quando 
ele tentar logar denovo em outra máquina) O registro vai ser 
encontrado e você bloqueia o login com este user (volta para a tela de 
login). Caso não exista um registro nesta tabela, ele loga.


Não sei se consegui explicar o que quero dizer.

Mas veja aí, e tenho certeza que otras pessoas podem te dar mais uma 
luz, não sou nem de perto expert no assunto.


Abraço

George


marco escreveu:

Pessal estou com o seguinte dilema:
Tenho alguns cliente que me pedem para que cada usuário se conecte ao 
sistema em uma máquina por vez. Para resolver o problema, criei os 
usuários da minha app como usuários do PG pois desta forma quando um 
usuário tentar efetuar o login na app, ela pergunta ao PG se o 
usuário já está logado, se não estiver logado a entrada no sistema 
continua (a conexão fica aberta até a app ser finalizada) caso 
contrário e entrada é barrada e ele é avisado que seu login está 
aberto em outra máquina.
mas recentemente venho estudando o C# e tenho notado que ninguem 
utiliza uma conexão permanente ao banco de dados. todos tem seus 
ótimos argumentos.


Gostaria de saber a opinião de vocês:
Pensando no controle que preciso, é arriscado manter uma conexão 
permanente com o banco ?


Se este procedimento for ruim e o melhor for o que o mundo c# diz: 
Conecte, pegue o que quer e desconecte. Como fariamos para manter o 
controle em que o usuário só possa ficar conectado em uma máquina.


Não sei se fui claro mas ficaria muujuuuito grato em ler o parecer de 
vocês


Obrigado.
--
*Marco Antonio J. Victor*
Fone/Fax: *11 2977-5406*
www.tactor.com.br



___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
  



___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
  




Nenhum vírus encontrado nessa mensagem recebida.
Verificado por AVG - http://www.avgbrasil.com.br 
Versão: 8.0.197 / Banco de dados de vírus: 270.10.6/1888 - Data de Lançamento: 12/1/2009 07:04


  


--
*Marco Antonio J. Victor*
Fone/Fax: *11 2977-5406*
www.tactor.com.br

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conexão permanente

2009-01-12 Por tôpico Sebastian SWC
2009/1/12 George Silva georger.si...@gmail.com:
 Acredito que você resolver pela aplicação.

 Assim que um usuário abrir a aplicação, insira o nome dele e tempo de
 conexão em uma tabela.

 No momento de pedir o close da aplicação, apague o nome do usuário na
 tabela.


já tem pronto!

testa ai:

select * from pg_stat_activity  ;

-- 
Atenciosamente,
Sebastian Selau Webber Colombo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conexão permanente

2009-01-12 Por tôpico ivo nascimento
na minha opniao o ideal seria que cada aplicacao tivesse um usuario no banco
e nao que cada usuario do sistema tivesse um usuario no banco.
entao, pg_stat_activity te ajudaria a acompanhar os problemas de aplicacao
mas nao localizaria o usuario logado.

mas essa eh minha humilde opniao... sem querer causar discussoes.


2009/1/12 Sebastian SWC sebastian...@gmail.com

 2009/1/12 George Silva georger.si...@gmail.com:
  Acredito que você resolver pela aplicação.
 
  Assim que um usuário abrir a aplicação, insira o nome dele e tempo de
  conexão em uma tabela.
 
  No momento de pedir o close da aplicação, apague o nome do usuário na
  tabela.
 

 já tem pronto!

 testa ai:

 select * from pg_stat_activity  ;

 --
 Atenciosamente,
 Sebastian Selau Webber Colombo
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Ivo Nascimento - Iann
-
|   twitter: ivonascimento . |
|   http://ianntech.com.br.  |
|   ZCE ID 227463685|
-
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conexão permanente

2009-01-12 Por tôpico marco

Ivo, pelo que entendi você sugeriu algo como:
Crio uma tabela para registrar quem está logado e a app atualisa o time 
stamp a cada 5 minutos ( por exemplo ).


No caso se um novo login e o registro existir na tabela mas o tempo for 
maior que 5 minutos, isso indica que a conexão terminou de forma 
anormal. então loga normalmente. Caso sontrário o usuário está logado. 
Mesmo que o usuário tenha se desconectado de forma anormal, teria que 
aguardar completar o tempo (5 minutos) para logaar novamente.


É isso ?

Você usa este tidpo de controle ?

Grato.

ivo nascimento escreveu:


Eu resolveria(sugeriria) esse seu problema, se voce desejasse resolver 
do lado do banco, com uma tabela de logados, em que quando uma pessoa 
loga cria um registro com o timestamp e ip da maquina...
em cada operacao ou em um gatilho na propria aplicação rodando em 
determinado período, voce atualiza esse timestamp de acesso.
assim que alguem tenta logar voce pergunta para essa tabela se aquele 
login ja esta em uso e se o periodo do lastaccess esta valido, se 
estiver tudo certo, nega o login, senao, bloqueia o login com aviso de 
usuario ja logado.


o timestamp e sua atualizacao periodica serve para o caso de 
travamentos do desktop em que o usuario nao teve como sair da 
aplicacao e a chave ficaria esquecida la, invalidando o usuario ate 
uma limpeza manual.


no exit da aplicacao dispare um evento que delete registro na tabela 
de logados...
acho essa uma solucao elegante... mas com certeza vão haver muitas 
outras solucoes.
 


2009/1/12 marco ma...@tactor.com.br mailto:ma...@tactor.com.br

Pessal estou com o seguinte dilema:
Tenho alguns cliente que me pedem para que cada usuário se conecte
ao sistema em uma máquina por vez. Para resolver o problema, criei
os usuários da minha app como usuários do PG pois desta forma
quando um usuário tentar efetuar o login na app, ela pergunta ao
PG se o usuário já está logado, se não estiver logado a entrada no
sistema continua (a conexão fica aberta até a app ser finalizada)
caso contrário e entrada é barrada e ele é avisado que seu login
está aberto em outra máquina.
mas recentemente venho estudando o C# e tenho notado que ninguem
utiliza uma conexão permanente ao banco de dados. todos tem seus
ótimos argumentos.

Gostaria de saber a opinião de vocês:
Pensando no controle que preciso, é arriscado manter uma conexão
permanente com o banco ?

Se este procedimento for ruim e o melhor for o que o mundo c# diz:
Conecte, pegue o que quer e desconecte. Como fariamos para manter
o controle em que o usuário só possa ficar conectado em uma máquina.

Não sei se fui claro mas ficaria muujuuuito grato em ler o parecer
de vocês

Obrigado.
-- 
  	*Marco Antonio J. Victor*

Fone/Fax: *11 2977-5406*
www.tactor.com.br http://www.tactor.com.br


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
mailto:pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




--
Ivo Nascimento - Iann
-
|   twitter: ivonascimento . |
|   http://ianntech.com.br.  |
|   ZCE ID 227463685|
-


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
  




Nenhum vírus encontrado nessa mensagem recebida.
Verificado por AVG - http://www.avgbrasil.com.br 
Versão: 8.0.197 / Banco de dados de vírus: 270.10.6/1888 - Data de Lançamento: 12/1/2009 07:04


  


--
*Marco Antonio J. Victor*
Fone/Fax: *11 2977-5406*
www.tactor.com.br

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conexão permanente

2009-01-12 Por tôpico ivo nascimento
oi,
ja usei esse tipo de controle em aplicacoes php e Borland Delphi e obtive
sucesso,
caso voce fique preocupado que o cliente tente em menos de 5 minutos, basta
reduzir o tempo de validacao do timestamp.
a operacao de validar o registro do login na tabela de logado eh muito
simples e nao vai pesar nem no cliente nem no banco.


2009/1/12 marco ma...@tactor.com.br

  Ivo, pelo que entendi você sugeriu algo como:
 Crio uma tabela para registrar quem está logado e a app atualisa o time
 stamp a cada 5 minutos ( por exemplo ).

 No caso se um novo login e o registro existir na tabela mas o tempo for
 maior que 5 minutos, isso indica que a conexão terminou de forma anormal.
 então loga normalmente. Caso sontrário o usuário está logado. Mesmo que o
 usuário tenha se desconectado de forma anormal, teria que aguardar completar
 o tempo (5 minutos) para logaar novamente.

 É isso ?

 Você usa este tidpo de controle ?

 Grato.

 ivo nascimento escreveu:


 Eu resolveria(sugeriria) esse seu problema, se voce desejasse resolver do
 lado do banco, com uma tabela de logados, em que quando uma pessoa loga cria
 um registro com o timestamp e ip da maquina...
 em cada operacao ou em um gatilho na propria aplicação rodando em
 determinado período, voce atualiza esse timestamp de acesso.
 assim que alguem tenta logar voce pergunta para essa tabela se aquele login
 ja esta em uso e se o periodo do lastaccess esta valido, se estiver tudo
 certo, nega o login, senao, bloqueia o login com aviso de usuario ja logado.

 o timestamp e sua atualizacao periodica serve para o caso de travamentos do
 desktop em que o usuario nao teve como sair da aplicacao e a chave ficaria
 esquecida la, invalidando o usuario ate uma limpeza manual.

 no exit da aplicacao dispare um evento que delete registro na tabela de
 logados...
 acho essa uma solucao elegante... mas com certeza vão haver muitas outras
 solucoes.


 2009/1/12 marco ma...@tactor.com.br

  Pessal estou com o seguinte dilema:
 Tenho alguns cliente que me pedem para que cada usuário se conecte ao
 sistema em uma máquina por vez. Para resolver o problema, criei os usuários
 da minha app como usuários do PG pois desta forma quando um usuário tentar
 efetuar o login na app, ela pergunta ao PG se o usuário já está logado, se
 não estiver logado a entrada no sistema continua (a conexão fica aberta até
 a app ser finalizada) caso contrário e entrada é barrada e ele é avisado que
 seu login está aberto em outra máquina.
 mas recentemente venho estudando o C# e tenho notado que ninguem utiliza
 uma conexão permanente ao banco de dados. todos tem seus ótimos argumentos.

 Gostaria de saber a opinião de vocês:
 Pensando no controle que preciso, é arriscado manter uma conexão
 permanente com o banco ?

 Se este procedimento for ruim e o melhor for o que o mundo c# diz:
 Conecte, pegue o que quer e desconecte. Como fariamos para manter o controle
 em que o usuário só possa ficar conectado em uma máquina.

 Não sei se fui claro mas ficaria muujuuuito grato em ler o parecer de
 vocês

 Obrigado.
  --
 *Marco Antonio J. Victor*
 Fone/Fax: *11 2977-5406*
 www.tactor.com.br

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




 --
 Ivo Nascimento - Iann
 -
 |   twitter: ivonascimento . |
 |   http://ianntech.com.br.  |
 |   ZCE ID 227463685|
 -

 --

 ___
 pgbr-geral mailing 
 listpgbr-ge...@listas.postgresql.org.brhttps://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

 --


 Nenhum vírus encontrado nessa mensagem recebida.
 Verificado por AVG - http://www.avgbrasil.com.br
 Versão: 8.0.197 / Banco de dados de vírus: 270.10.6/1888 - Data de 
 Lançamento: 12/1/2009 07:04




 --

 *Marco Antonio J. Victor*
 Fone/Fax: *11 2977-5406*
 www.tactor.com.br

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Ivo Nascimento - Iann
-
|   twitter: ivonascimento . |
|   http://ianntech.com.br.  |
|   ZCE ID 227463685|
-
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conexão permanente

2009-01-12 Por tôpico marco
Sebastian, é exatamente desta forma que faço para saber se um usuário 
está logado.


Sebastian SWC escreveu:

2009/1/12 George Silva georger.si...@gmail.com:
  

Acredito que você resolver pela aplicação.

Assim que um usuário abrir a aplicação, insira o nome dele e tempo de
conexão em uma tabela.

No momento de pedir o close da aplicação, apague o nome do usuário na
tabela.




já tem pronto!

testa ai:

select * from pg_stat_activity  ;

  




Nenhum vírus encontrado nessa mensagem recebida.
Verificado por AVG - http://www.avgbrasil.com.br 
Versão: 8.0.197 / Banco de dados de vírus: 270.10.6/1888 - Data de Lançamento: 12/1/2009 07:04


  


--
*Marco Antonio J. Victor*
Fone/Fax: *11 2977-5406*
www.tactor.com.br

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conexão permanente

2009-01-12 Por tôpico Dickson S. Guedes
marco escreveu:
 Ivo, pelo que entendi você sugeriu algo como:
 Crio uma tabela para registrar quem está logado e a app atualisa o 
 time stamp a cada 5 minutos ( por exemplo ).

 No caso se um novo login e o registro existir na tabela mas o tempo 
 for maior que 5 minutos, isso indica que a conexão terminou de forma 
 anormal. então loga normalmente. Caso sontrário o usuário está logado. 
 Mesmo que o usuário tenha se desconectado de forma anormal, teria que 
 aguardar completar o tempo (5 minutos) para logaar novamente.


Apenas fazendo um adendo, a palestra do Telles cita alguns aspectos 
relacionado a este assunto:

PostgreSQL o Elefante Encouraçado em 
http://www.postgresql.org.br/Palestras_do_PGCon_Brasil_2008?action=AttachFiledo=gettarget=elefante_encoura%C3%A7ado.pdfhttp://www.postgresql.org.br/Palestras_do_PGCon_Brasil_2008

Lá, a partir do slide 23, você pode encontrar algumas informações úteis.

-- 
Dickson S. Guedes
Administrador de Banco de Dados
Confesol - Projeto Colmeia
Florianopolis, SC, Brasil
(48) 3322-1185, ramal: 26

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conexão permanente

2009-01-12 Por tôpico marco

Pessoal, fico grato pelas respostas, concluí o seguinte:

Ou continuo com a minha solução de permaneço com a conexão permanente no 
banco e para cada usuário na App terá um usuário correspondente no PG. 
Pois assim posso controlar quem está locado pelo PG (


select * from pg_stat_activity)

Ou crio um único usuário da app no PG e controlo os acessos por uma tabela 
conforme sogetões recebidas.

Grato.


ivo nascimento escreveu:

oi,
ja usei esse tipo de controle em aplicacoes php e Borland Delphi e 
obtive sucesso,
caso voce fique preocupado que o cliente tente em menos de 5 minutos, 
basta reduzir o tempo de validacao do timestamp.
a operacao de validar o registro do login na tabela de logado eh muito 
simples e nao vai pesar nem no cliente nem no banco.



2009/1/12 marco ma...@tactor.com.br mailto:ma...@tactor.com.br

Ivo, pelo que entendi você sugeriu algo como:
Crio uma tabela para registrar quem está logado e a app atualisa o
time stamp a cada 5 minutos ( por exemplo ).

No caso se um novo login e o registro existir na tabela mas o
tempo for maior que 5 minutos, isso indica que a conexão terminou
de forma anormal. então loga normalmente. Caso sontrário o usuário
está logado. Mesmo que o usuário tenha se desconectado de forma
anormal, teria que aguardar completar o tempo (5 minutos) para
logaar novamente.

É isso ?

Você usa este tidpo de controle ?

Grato.

ivo nascimento escreveu:


Eu resolveria(sugeriria) esse seu problema, se voce desejasse
resolver do lado do banco, com uma tabela de logados, em que
quando uma pessoa loga cria um registro com o timestamp e ip da
maquina...
em cada operacao ou em um gatilho na propria aplicação rodando em
determinado período, voce atualiza esse timestamp de acesso.
assim que alguem tenta logar voce pergunta para essa tabela se
aquele login ja esta em uso e se o periodo do lastaccess esta
valido, se estiver tudo certo, nega o login, senao, bloqueia o
login com aviso de usuario ja logado.

o timestamp e sua atualizacao periodica serve para o caso de
travamentos do desktop em que o usuario nao teve como sair da
aplicacao e a chave ficaria esquecida la, invalidando o usuario
ate uma limpeza manual.

no exit da aplicacao dispare um evento que delete registro na
tabela de logados...
acho essa uma solucao elegante... mas com certeza vão haver
muitas outras solucoes.
 


2009/1/12 marco ma...@tactor.com.br mailto:ma...@tactor.com.br

Pessal estou com o seguinte dilema:
Tenho alguns cliente que me pedem para que cada usuário se
conecte ao sistema em uma máquina por vez. Para resolver o
problema, criei os usuários da minha app como usuários do PG
pois desta forma quando um usuário tentar efetuar o login na
app, ela pergunta ao PG se o usuário já está logado, se não
estiver logado a entrada no sistema continua (a conexão fica
aberta até a app ser finalizada) caso contrário e entrada é
barrada e ele é avisado que seu login está aberto em outra
máquina.
mas recentemente venho estudando o C# e tenho notado que
ninguem utiliza uma conexão permanente ao banco de dados.
todos tem seus ótimos argumentos.

Gostaria de saber a opinião de vocês:
Pensando no controle que preciso, é arriscado manter uma
conexão permanente com o banco ?

Se este procedimento for ruim e o melhor for o que o mundo c#
diz: Conecte, pegue o que quer e desconecte. Como fariamos
para manter o controle em que o usuário só possa ficar
conectado em uma máquina.

Não sei se fui claro mas ficaria muujuuuito grato em ler o
parecer de vocês

Obrigado.
-- 
  	*Marco Antonio J. Victor*

Fone/Fax: *11 2977-5406*
www.tactor.com.br http://www.tactor.com.br


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
mailto:pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Ivo Nascimento - Iann

-
|   twitter: ivonascimento . |
|   http://ianntech.com.br.  |
|   ZCE ID 227463685|
-

___ pgbr-geral
mailing list pgbr-geral@listas.postgresql.org.br
mailto:pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Nenhum vírus encontrado nessa mensagem recebida. Verificado por
AVG - http://www.avgbrasil.com.br Versão: 8.0.197 / Banco de
dados de 

Re: [pgbr-geral] Conexão permanente

2009-01-12 Por tôpico Osvaldo Kussama
Em 12/01/09, marcoma...@tactor.com.br escreveu:
 Pessal estou com o seguinte dilema:
 Tenho alguns cliente que me pedem para que cada usuário se conecte ao
 sistema em uma máquina por vez. Para resolver o problema, criei os
 usuários da minha app como usuários do PG pois desta forma quando um
 usuário tentar efetuar o login na app, ela pergunta ao PG se o usuário
 já está logado, se não estiver logado a entrada no sistema continua (a
 conexão fica aberta até a app ser finalizada) caso contrário e entrada é
 barrada e ele é avisado que seu login está aberto em outra máquina.
 mas recentemente venho estudando o C# e tenho notado que ninguem utiliza
 uma conexão permanente ao banco de dados. todos tem seus ótimos argumentos.

 Gostaria de saber a opinião de vocês:
 Pensando no controle que preciso, é arriscado manter uma conexão
 permanente com o banco ?

 Se este procedimento for ruim e o melhor for o que o mundo c# diz:
 Conecte, pegue o que quer e desconecte. Como fariamos para manter o
 controle em que o usuário só possa ficar conectado em uma máquina.

 Não sei se fui claro mas ficaria muujuuuito grato em ler o parecer de vocês



Na PGCon-br de 2007 Fábio Telles apresentou a palestra Fazendo um
elefante passar por debaixo da porta.
Veja algumas considerações que ele faz na parte Autenticando
Aplicações no PostgreSQL.
http://www.postgresql.org.br/Palestras_do_PGCon_Brasil_2007?action=AttachFiledo=gettarget=07_Fazendo_um_elefante_passar_debaixo_da_porta_-_F%C3%A1bio_Telles.pdf

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conexão permanente

2009-01-12 Por tôpico marco
Ivo, será que não ficará muito tráfego na rede ? Pois além de toda hora 
que a app precisar de algo ela terá que reconecrar, excetutar algo e 
desconectar também teremos um timer (a cada n minutos) para validação do 
login ?


Marco Antonio

ivo nascimento escreveu:

oi,
ja usei esse tipo de controle em aplicacoes php e Borland Delphi e 
obtive sucesso,
caso voce fique preocupado que o cliente tente em menos de 5 minutos, 
basta reduzir o tempo de validacao do timestamp.
a operacao de validar o registro do login na tabela de logado eh muito 
simples e nao vai pesar nem no cliente nem no banco.



2009/1/12 marco ma...@tactor.com.br mailto:ma...@tactor.com.br

Ivo, pelo que entendi você sugeriu algo como:
Crio uma tabela para registrar quem está logado e a app atualisa o
time stamp a cada 5 minutos ( por exemplo ).

No caso se um novo login e o registro existir na tabela mas o
tempo for maior que 5 minutos, isso indica que a conexão terminou
de forma anormal. então loga normalmente. Caso sontrário o usuário
está logado. Mesmo que o usuário tenha se desconectado de forma
anormal, teria que aguardar completar o tempo (5 minutos) para
logaar novamente.

É isso ?

Você usa este tidpo de controle ?

Grato.

ivo nascimento escreveu:


Eu resolveria(sugeriria) esse seu problema, se voce desejasse
resolver do lado do banco, com uma tabela de logados, em que
quando uma pessoa loga cria um registro com o timestamp e ip da
maquina...
em cada operacao ou em um gatilho na propria aplicação rodando em
determinado período, voce atualiza esse timestamp de acesso.
assim que alguem tenta logar voce pergunta para essa tabela se
aquele login ja esta em uso e se o periodo do lastaccess esta
valido, se estiver tudo certo, nega o login, senao, bloqueia o
login com aviso de usuario ja logado.

o timestamp e sua atualizacao periodica serve para o caso de
travamentos do desktop em que o usuario nao teve como sair da
aplicacao e a chave ficaria esquecida la, invalidando o usuario
ate uma limpeza manual.

no exit da aplicacao dispare um evento que delete registro na
tabela de logados...
acho essa uma solucao elegante... mas com certeza vão haver
muitas outras solucoes.
 


2009/1/12 marco ma...@tactor.com.br mailto:ma...@tactor.com.br

Pessal estou com o seguinte dilema:
Tenho alguns cliente que me pedem para que cada usuário se
conecte ao sistema em uma máquina por vez. Para resolver o
problema, criei os usuários da minha app como usuários do PG
pois desta forma quando um usuário tentar efetuar o login na
app, ela pergunta ao PG se o usuário já está logado, se não
estiver logado a entrada no sistema continua (a conexão fica
aberta até a app ser finalizada) caso contrário e entrada é
barrada e ele é avisado que seu login está aberto em outra
máquina.
mas recentemente venho estudando o C# e tenho notado que
ninguem utiliza uma conexão permanente ao banco de dados.
todos tem seus ótimos argumentos.

Gostaria de saber a opinião de vocês:
Pensando no controle que preciso, é arriscado manter uma
conexão permanente com o banco ?

Se este procedimento for ruim e o melhor for o que o mundo c#
diz: Conecte, pegue o que quer e desconecte. Como fariamos
para manter o controle em que o usuário só possa ficar
conectado em uma máquina.

Não sei se fui claro mas ficaria muujuuuito grato em ler o
parecer de vocês

Obrigado.
-- 
  	*Marco Antonio J. Victor*

Fone/Fax: *11 2977-5406*
www.tactor.com.br http://www.tactor.com.br


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
mailto:pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Ivo Nascimento - Iann

-
|   twitter: ivonascimento . |
|   http://ianntech.com.br.  |
|   ZCE ID 227463685|
-

___ pgbr-geral
mailing list pgbr-geral@listas.postgresql.org.br
mailto:pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Nenhum vírus encontrado nessa mensagem recebida. Verificado por
AVG - http://www.avgbrasil.com.br Versão: 8.0.197 / Banco de
dados de vírus: 270.10.6/1888 - Data de Lançamento: 12/1/2009 07:04


-- 
  	


*Marco Antonio J. Victor*
Fone/Fax: *11 2977-5406*
www.tactor.com.br 

Re: [pgbr-geral] Conexão permanente

2009-01-12 Por tôpico ivo nascimento
isso iria precisar ser avaliado, mas imagino que se deixar com um timer
muito pequeno realmente voce vai ter um grande numero de requisicoes
mas voce pode criar alguma politica como
se houver tentativas de re-login a partir do mesmo ip a chave vale somente
por 1 minuto(tecnicamente se a pessoa saiu do sistema normalmente a chave
foi apagada e se o computador falhar[reboot etc...] a chave fica invalida
rapidamente para aquele ip)
se houver tentavivas de outros ips e a chave existir considere a chave
valida por mais tempo, como 5 ou 10 minutos ...
execute a atulizacao do timestamp de 5 ou 10 minutos de intervalo...
isso vai reduzir de 60 requisicoes por hora para 12 ou 6 por hora...
melhorando bastante o quisito uso de banda para trafego das requisicoes e
respostas.

acho que isso ajudaria bastante.

grande abraco.


2009/1/12 marco ma...@tactor.com.br

  Ivo, será que não ficará muito tráfego na rede ? Pois além de toda hora
 que a app precisar de algo ela terá que reconecrar, excetutar algo e
 desconectar também teremos um timer (a cada n minutos) para validação do
 login ?

 Marco Antonio

 ivo nascimento escreveu:

 oi,
 ja usei esse tipo de controle em aplicacoes php e Borland Delphi e obtive
 sucesso,
 caso voce fique preocupado que o cliente tente em menos de 5 minutos, basta
 reduzir o tempo de validacao do timestamp.
 a operacao de validar o registro do login na tabela de logado eh muito
 simples e nao vai pesar nem no cliente nem no banco.


 2009/1/12 marco ma...@tactor.com.br

 Ivo, pelo que entendi você sugeriu algo como:
 Crio uma tabela para registrar quem está logado e a app atualisa o time
 stamp a cada 5 minutos ( por exemplo ).

 No caso se um novo login e o registro existir na tabela mas o tempo for
 maior que 5 minutos, isso indica que a conexão terminou de forma anormal.
 então loga normalmente. Caso sontrário o usuário está logado. Mesmo que o
 usuário tenha se desconectado de forma anormal, teria que aguardar completar
 o tempo (5 minutos) para logaar novamente.

 É isso ?

 Você usa este tidpo de controle ?

 Grato.

 ivo nascimento escreveu:


 Eu resolveria(sugeriria) esse seu problema, se voce desejasse resolver do
 lado do banco, com uma tabela de logados, em que quando uma pessoa loga cria
 um registro com o timestamp e ip da maquina...
 em cada operacao ou em um gatilho na propria aplicação rodando em
 determinado período, voce atualiza esse timestamp de acesso.
 assim que alguem tenta logar voce pergunta para essa tabela se aquele
 login ja esta em uso e se o periodo do lastaccess esta valido, se estiver
 tudo certo, nega o login, senao, bloqueia o login com aviso de usuario ja
 logado.

 o timestamp e sua atualizacao periodica serve para o caso de travamentos
 do desktop em que o usuario nao teve como sair da aplicacao e a chave
 ficaria esquecida la, invalidando o usuario ate uma limpeza manual.

 no exit da aplicacao dispare um evento que delete registro na tabela de
 logados...
 acho essa uma solucao elegante... mas com certeza vão haver muitas outras
 solucoes.


 2009/1/12 marco ma...@tactor.com.br

 Pessal estou com o seguinte dilema:
 Tenho alguns cliente que me pedem para que cada usuário se conecte ao
 sistema em uma máquina por vez. Para resolver o problema, criei os usuários
 da minha app como usuários do PG pois desta forma quando um usuário tentar
 efetuar o login na app, ela pergunta ao PG se o usuário já está logado, se
 não estiver logado a entrada no sistema continua (a conexão fica aberta até
 a app ser finalizada) caso contrário e entrada é barrada e ele é avisado que
 seu login está aberto em outra máquina.
 mas recentemente venho estudando o C# e tenho notado que ninguem utiliza
 uma conexão permanente ao banco de dados. todos tem seus ótimos argumentos.

 Gostaria de saber a opinião de vocês:
 Pensando no controle que preciso, é arriscado manter uma conexão
 permanente com o banco ?

 Se este procedimento for ruim e o melhor for o que o mundo c# diz:
 Conecte, pegue o que quer e desconecte. Como fariamos para manter o controle
 em que o usuário só possa ficar conectado em uma máquina.

 Não sei se fui claro mas ficaria muujuuuito grato em ler o parecer de
 vocês

 Obrigado.
  --
 *Marco Antonio J. Victor*
 Fone/Fax: *11 2977-5406*
 www.tactor.com.br

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




 --
 Ivo Nascimento - Iann
 -
 |   twitter: ivonascimento . |
 |   http://ianntech.com.br.  |
 |   ZCE ID 227463685|
 -

 --

 ___
 pgbr-geral mailing 
 listpgbr-ge...@listas.postgresql.org.brhttps://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

 --


 Nenhum vírus encontrado nessa mensagem recebida.
 Verificado