Pessoal,
Estou convertendo meu sistema pra C#. Como é um sistema grande eu primeiramente estou migrando toda base de dados de DBF para MySql.
Nesse momento estou fazendo todos os testes com o banco, porém surgiu uma dúvida:
- Quando eu devo abrir e fechar uma conexão ?
A princípio estou abrindo no início do sistema e encerrando no fechamento do sistema.
Pensei também em testar se a conexão está aberta antes de lançar qualquer instrução pro banco, mas estou perdido.
Como vou colocar essa base no AWS essa preocupação aumenta.
Help !!!!!
Boas práticas para conexão no banco
Moderador: Moderadores
-
RobinsonRenato
- Usuário Nível 1

- Mensagens: 1
- Registrado em: 10 Jan 2019 14:21
- Localização: São Paulo / SP
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Boas práticas para conexão no banco
Olá!
Seja bem-vindo ao Fórum Robinson. Apesar de membro antigo, é tua primeira mensagem...
Considere que pode ser necessário executar o sistema em um ambiente que utiliza banco de dados pago. Este cliente possui 50 licenças de conexão simultânea ao banco de dados mas o sistema é acessado por 300 usuários ao mesmo tempo. Neste caso, terá que abrir a conexão, executar o que for necessário e fechar. Existem alguns dispositivos que auxiliam na agilização desta necessidade, conhecidos como pools de conexão.
https://www.google.com/search?q=ado.net ... e&ie=UTF-8
https://stackoverflow.com/questions/276 ... accessible
https://www.codeproject.com/Articles/17 ... onnections
Boa sorte!
Seja bem-vindo ao Fórum Robinson. Apesar de membro antigo, é tua primeira mensagem...
Esta estratégia é válida dependendo dos recursos disponíveis.RobinsonRenato escreveu:- Quando eu devo abrir e fechar uma conexão ?
A princípio estou abrindo no início do sistema e encerrando no fechamento do sistema.
Considere que pode ser necessário executar o sistema em um ambiente que utiliza banco de dados pago. Este cliente possui 50 licenças de conexão simultânea ao banco de dados mas o sistema é acessado por 300 usuários ao mesmo tempo. Neste caso, terá que abrir a conexão, executar o que for necessário e fechar. Existem alguns dispositivos que auxiliam na agilização desta necessidade, conhecidos como pools de conexão.
Você não informa como está conectando ao banco de dados. Suponho que seja com ADO .Net. É possível fazer isto e existem exemplos na internet:RobinsonRenato escreveu:Pensei também em testar se a conexão está aberta antes de lançar qualquer instrução pro banco, mas estou perdido.
https://www.google.com/search?q=ado.net ... e&ie=UTF-8
https://stackoverflow.com/questions/276 ... accessible
https://www.codeproject.com/Articles/17 ... onnections
Boa sorte!
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
Boas práticas para conexão no banco
Sem ter a pretensão de complementar a resposta do alxsts, mas apenas para dar o meu depoimento a respeito: tempos atrás testei abrir uma só conexão e mantê-la aberta durante todo a seção do sistema, mas não deu certo. O Windows fecha a conexão, parece, mas deixa a conexão aberta no servidor, como sleep. Como tenho limite de 100 conexões simultâneas, isso me causava estouro do limite. Na minha experiência, a melhor opção é abrir e fechar a conexão a cada uso.
Inacio de Carvalho Neto
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Boas práticas para conexão no banco
É pra se pensar.
De repente um websevice em json, e nem precisa conexão de banco de dados.
De repente um websevice em json, e nem precisa conexão de banco de dados.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Boas práticas para conexão no banco
Como seria esse webservice, Quintas? Fiquei curioso. Dei um google, achei json (nunca tinha ouvido falar), mas não entendi o que seria esse webservice em json.
Inacio de Carvalho Neto
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Boas práticas para conexão no banco
json é um formato talvez mais prático que XML.
Com um webservice, ele vai receber as requisições e retornar o que for pedido.
Pode-se dizer que vai tudo retornar como array.
Com um webservice, ele vai receber as requisições e retornar o que for pedido.
Pode-se dizer que vai tudo retornar como array.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
