Re: RES: RES: [delphi-br] Conexão para Threads
Olá, trabalho muito com Thread com acesso a banco de dados. Já bati muito a cabeça. A melhor solução que lhe sugiro e que comigo funciona muito bem, é o seguinte: POOL de Conexões. Eu trabalho com Delphi + Zeos + PostgreSQL. Eu criei uma Thread específica que mantém um array de conexões com o banco de dados. Quando uma outra Thread precisa fazer algo com o banco, ela solicita uma conexão. Com isso há um balanceamento muito interessante. Não compartilhe uma conexão entre várias Threads! Uma quer dar Insert, outra Delete... E a Transação, como fica? Uma conexão por Thread pura e simples - por sua vez - faz com que haja muita conexão ociosa com o banco. [As partes desta mensagem que não continham texto foram removidas]
RES: RES: RES: [delphi-br] Conexão para Threads
Não somente o componente. Depende tbem do cliente do banco de dados. Até a versão 1.5 o firebird ficava maluco (problemas em relação à cursores) com multiplas thread na mesma conexao. []´s Sérgio T. Uetanabaro _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Joao Morais Enviada em: sexta-feira, 7 de dezembro de 2007 17:32 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: RES: [delphi-br] Conexão para Threads Sérgio T. Uetanabaro wrote: Alguma tratativa deve haver pois ja tive problemas graves compartilhando conexoes entre threads. Você *deve* usar uma conexão por thread se o componente não for thread safe. Você pode usar apenas uma conexão se o componente for thread safe e estiver configurado para trabalhar desta forma. -- Joao Morais No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.16.17/1178 - Release Date: 8/12/2007 11:59 No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.16.17/1178 - Release Date: 8/12/2007 11:59 [As partes desta mensagem que não continham texto foram removidas]
Res: RES: [delphi-br] Conexão para Threads
Estranho, então agora fiquei com duvidas sobre o porque dos sistemas NTier do Bruno Lichot utilizam apenas uma unica conexão com banco de dados... No caso de ter varios clientes acessando seriam varias threads do aplicativo servidor...e me parece bem semelhante ao que voce deseja... Por favor me corrigam se falei besteira. - Mensagem original De: Sérgio T. Uetanabaro [EMAIL PROTECTED] Para: delphi-br@yahoogrupos.com.br Enviadas: Sexta-feira, 7 de Dezembro de 2007 15:55:04 Assunto: RES: [delphi-br] Conexão para Threads É melhor fazer uma conexao por thread pq sinao vc pode ter problemas. []´s Sérgio T. Uetanabaro _ De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] Em nome de Evaldo Enviada em: sexta-feira, 7 de dezembro de 2007 16:49 Para: [EMAIL PROTECTED] os.com.br Assunto: [delphi-br] Conexão para Threads Olá, Estou trabalhando em uma tela onde vou criar várias threads que irão fazer acesso ao banco de dados para fazer diferentes consultas. Gostaria de saber o que eh melhor: criar uma conexão para cada thread ou uma única conexão seria suficiente para todas? As consultas serão relativamente leves, na média de 200 registros por threads. Obs.: No total são disparadas 5 threads simultaneamente. O BD é firebird. componente de Acesso Zeos. Delphi 7. -- Atenciosamente: Evaldo Avelar Marques Programador Junior Delphi, C# Dot Net HYPERLINK mailto:evaldoavela r%40yahoo. com.brevaldoave [EMAIL PROTECTED] com.-br Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! HYPERLINK http://br.mail. yahoo.com/http://br.mail. -yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.16.17/1177 - Release Date: 7/12/2007 13:11 No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.16.17/1177 - Release Date: 7/12/2007 13:11 [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
RE: Res: RES: RES: [delphi-br] Conexão para Threads
Sim! To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Fri, 7 Dec 2007 11:41:47 -0800 Subject: Res: RES: RES: [delphi-br] Conexão para Threads Certo, DBX é thread safe? - Mensagem original De: Joao Morais [EMAIL PROTECTED] Para: delphi-br@yahoogrupos.com.br Enviadas: Sexta-feira, 7 de Dezembro de 2007 16:32:27 Assunto: Re: RES: RES: [delphi-br] Conexão para Threads Sérgio T. Uetanabaro wrote: Alguma tratativa deve haver pois ja tive problemas graves compartilhando conexoes entre threads. Você *deve* usar uma conexão por thread se o componente não for thread safe. Você pode usar apenas uma conexão se o componente for thread safe e estiver configurado para trabalhar desta forma. -- Joao Morais Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] _ Veja mapas e encontre as melhores rotas para fugir do trânsito com o Live Search Maps! http://www.livemaps.com.br/index.aspx?tr=true
RES: RES: [delphi-br] Conexão para Threads
Alguns drivers de acesso não suportam mutiplas threads em uma conexão, que era (ou ainda é, nao sei) o caso do firebird. Vc tbem poderá ter problemas de transação e cursores. As boas práticas de programação thread-safe diz que threads q usam banco de dados devem ter conexoes de forma exclusiva. Procure mais literatura sobre thread-safe que é um assunto bem interessante. Sérgio T. Uetanabaro _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Leandro Enviada em: sexta-feira, 7 de dezembro de 2007 18:10 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: [delphi-br] Conexão para Threads Só por curiosidade mesmo, que tipo de problemas? É que vou precisar fazer algo parecido em breve. Obrigado, Leandro - Original Message - From: Rubem Nascimento da Rocha To: HYPERLINK mailto:delphi-br%40yahoogrupos.com.br[EMAIL PROTECTED] Sent: Friday, December 07, 2007 3:59 PM Subject: RE: RES: [delphi-br] Conexão para Threads Assino embaixo, Sérgio. Sds. To: HYPERLINK mailto:delphi-br%40yahoogrupos.com.brFrom[EMAIL PROTECTED] : HYPERLINK mailto:suka%40allbras.com.brDate[EMAIL PROTECTED]: Fri, 7 Dec 2007 16:55:04 -0200Subject: RES: [delphi-br] Conexão para Threads É melhor fazer uma conexao por thread pq sinao vc pode ter problemas.[]´-sSérgio T. Uetanabaro__-___ De: HYPERLINK mailto:delphi-br%40yahoogrupos.com.br[EMAIL PROTECTED] [mailto:HYPERLINK mailto:delphi-br%40yahoogrupos.com.br[EMAIL PROTECTED] Emnome de EvaldoEnviada em: sexta-feira, 7 de dezembro de 2007 16:49Para: HYPERLINK mailto:delphi-br%40yahoogrupos.com.brAssunto[EMAIL PROTECTED] ssunto: [delphi-br] Conexão para ThreadsOlá, Estou trabalhando em uma tela onde vou criar várias threads que irão fazeracesso ao banco de dados para fazer diferentes consultas.Gostaria de saber o que eh melhor: criar uma conexão para cada thread ou umaúnica conexão seria suficiente para todas?As consultas serão relativamente leves, na média de 200 registros porthreads. Obs.:No total são disparadas 5 threads simultaneamente. O BD é firebird.componente de Acesso Zeos.Delphi 7.--Atenciosamente:-Evaldo Avelar MarquesProgramador Junior Delphi, C# Dot Net HYPERLINK mailto:evaldoavela-r%40yahoo.-com.br[EMAIL PROTECTED] sua conta no Yahoo! Mail, o único sem limite de espaço paraarmazenamento!-HYPERLINK HYPERLINK http://br.mail.yahoo.com/http://br.mail.-yahoo.com/HYPERLINK http://br.mail.-yahoo.com/http://br.mail.--yahoo.com/[As partes desta mensagem que não continham texto foram removidas]No virus found in this incoming message.Checked by AVG Free Edition.Version: 7.5.503 / Virus Database: 269.16.17/1177 - Release Date: 7/12/200713:-11No virus found in this outgoing message.Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.16.17/1177 - Release Date: 7/12/200713:-11[As partes desta mensagem que não continham texto foram removidas] -_-_-_-_-_-_ Conheça o Windows Live Spaces, a rede de relacionamentos conectada ao Messenger! HYPERLINK http://spaces.live.com/signup.aspxhttp://spaces.-live.com/-signup.aspx [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.16.17/1177 - Release Date: 7/12/2007 13:11 No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.16.17/1177 - Release Date: 7/12/2007 13:11 [As partes desta mensagem que não continham texto foram removidas]
RES: RES: [delphi-br] Conexão para Threads
Alguma tratativa deve haver pois ja tive problemas graves compartilhando conexoes entre threads. Sérgio T. Uetanabaro Tecnologia * 55 16 2102-8787 - Ribeirão Preto * HYPERLINK mailto:[EMAIL PROTECTED][EMAIL PROTECTED] _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Elazar Dornelles Ceza Enviada em: sexta-feira, 7 de dezembro de 2007 17:05 Para: delphi-br@yahoogrupos.com.br Assunto: Res: RES: [delphi-br] Conexão para Threads Estranho, então agora fiquei com duvidas sobre o porque dos sistemas NTier do Bruno Lichot utilizam apenas uma unica conexão com banco de dados... No caso de ter varios clientes acessando seriam varias threads do aplicativo servidor...e me parece bem semelhante ao que voce deseja... Por favor me corrigam se falei besteira. - Mensagem original De: Sérgio T. Uetanabaro HYPERLINK mailto:suka%40allbras.com.br[EMAIL PROTECTED] Para: HYPERLINK mailto:delphi-br%40yahoogrupos.com.br[EMAIL PROTECTED] Enviadas: Sexta-feira, 7 de Dezembro de 2007 15:55:04 Assunto: RES: [delphi-br] Conexão para Threads É melhor fazer uma conexao por thread pq sinao vc pode ter problemas. []´s Sérgio T. Uetanabaro _ De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] Em nome de Evaldo Enviada em: sexta-feira, 7 de dezembro de 2007 16:49 Para: [EMAIL PROTECTED] os.com.br Assunto: [delphi-br] Conexão para Threads Olá, Estou trabalhando em uma tela onde vou criar várias threads que irão fazer acesso ao banco de dados para fazer diferentes consultas. Gostaria de saber o que eh melhor: criar uma conexão para cada thread ou uma única conexão seria suficiente para todas? As consultas serão relativamente leves, na média de 200 registros por threads. Obs.: No total são disparadas 5 threads simultaneamente. O BD é firebird. componente de Acesso Zeos. Delphi 7. -- Atenciosamente: Evaldo Avelar Marques Programador Junior Delphi, C# Dot Net HYPERLINK mailto:evaldoavela r%40yahoo. com.brevaldoave [EMAIL PROTECTED] com.-br Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! HYPERLINK HYPERLINK http://br.mail.http://br.mail. yahoo.com/HYPERLINK http://br.mail.http://br.mail. -yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.16.17/1177 - Release Date: 7/12/2007 13:11 No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.16.17/1177 - Release Date: 7/12/2007 13:11 [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! HYPERLINK http://br.mail.yahoo.com/http://br.mail.-yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.16.17/1177 - Release Date: 7/12/2007 13:11 No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.16.17/1177 - Release Date: 7/12/2007 13:11 [As partes desta mensagem que não continham texto foram removidas]