MultiCamadas com Firebird
Amigos bom dia !!!
Eu tinha uma aplicação feita com Delphi 2007 utilizando DataSnap, o banco utilizado era o SQLServer Express e funcionava muito bem, mas como o SqlExpress é bem travado resolvi a pedidos de alguns cliente migrar para o Firebird, pois bem aí começaram todos os meus problemas... Por utilizar o Dbexpress eu comprei a biblioteca interxpress (dbxup30dll). O meu servidor de aplicação faz apenas uma coneção ao banco utilizando o DataModule e os remotes são utilizados normalmente, a versão do Firebird é a 2_1_1.
Aqui no meu escritorio tudo esta funcionando normalmente, envie para um cliente que utiliza localmente e também funciona bem, mas tem 2 clientes que utilizam remotamente (como deveria ser) e aí acontece o seguinte: Quando uma pessoa esta logada não é possível outra pessoa logar, acaba não retornando erro e tudo fica travado. Então fiz um teste e comecei a fazer a conexao com o banco diretamente no remotedatamodule, por incrivel que pareça comecou a funcionar, mas sei que o correto seria somente uma conexao com o banco. Mas mesmo funcionando as vezes simplesmente a coisa para de funcionar sem fornecer nenhum erro, e ainda existe um outra coisinha que acontece, as vezes não tem ninguém utilizando o sistema e o servidor de aplicação fica ativo (as vezes) e quando isto acontece ninguém mais consegue logar, fica tudo parado sem mensagem alguma. E muito de vez em quando aparece uma mensagem do banco ao tentar logar que é ICS ERROR CODE 335544332 - Invalid Transaction Handle Expecting Explicit Transaction Start
Acredito que não estou programando errado pois no MSSQL funcionava perfeitamente, somente agora é que começou a dar pau com o Firebird, será que tem alguma configuração a se fazer no banco? Será que tem algum macete para ser programado quando for firebird ? Já tentei de tudo até substitui o SOcket Server, já instalei a novo firebird 2_1_5, voltei ao anterior, nada parece dar certo, tentei usar um DLL gratuita feita por um brasileiro (esqueci o nome agora) e ai o problema piorou pois qualque campo blob começou a dar pau...Estou totalmente merdido e sem saida. Espero que consigam me ajudar.
Abs
Edson
Edson Almeida
Curtidas 0
Respostas
Devmedia
16/04/2009
Boa tarde Edson,
provavelmente vc realmente não está programando errado, pois se funcionava com o MSSQL teoricamente teria que funcionar também. Eu não usei ainda o Firebird 2.1.1, em minhas aplicações eu uso ainda o Firebird 1.5, que para mim é o mais estável, recomendo que faça testes com esta versão.
Uma dúvida, qual a versão do DBExpress que você está usando ?
Att.
Wesley Y
provavelmente vc realmente não está programando errado, pois se funcionava com o MSSQL teoricamente teria que funcionar também. Eu não usei ainda o Firebird 2.1.1, em minhas aplicações eu uso ainda o Firebird 1.5, que para mim é o mais estável, recomendo que faça testes com esta versão.
Uma dúvida, qual a versão do DBExpress que você está usando ?
Att.
Wesley Y
GOSTEI 0
Edson Almeida
16/04/2009
Estou usando o Delphi 2007 se não me engano é o Dbexpress 4
Agora se eu for ter que voltar o banco para a versão 1.5 ao inves da 2.1 fica mais algumas duvidas:
-Hoje eu uso o collate win_ptbr pois ele não é case sensitive e não é sensitive nos acentos
-devo continuar usando os Drivers do InterXpress ou seria neste caso melhor usar os drivers para Interbase
Como você tem feito as conexões com o firebird usando o DataSnap ? Você Cria somente uma datamodule para fazer uma só conexão com o banco? Falo isto pois teve uma hora que para diminuir os problemas tive que fazer a conexão com o banco dentro do remotedatamodule e não no datamodule.
Grato
GOSTEI 0
Rodrigo Mourão
16/04/2009
Olá Edson!!
Meu nome é Rodrigo Carreiro, sou coordenador da área de Delphi da consultoria. Em primeiro lugar peço desculpas pela demora em responder seu chamado. Segue abaixo algumas considerações em relação a sua primeira colocação:
(...) Por utilizar o Dbexpress eu comprei a biblioteca interxpress (dbxup30dll) (...).
Este é um driver de terceiro e eu nunca o utilizei. A principio você deverá verificar com o Fabricante do drive se ele suporta a versão do firebird que esta usando. Porém acho que esse ainda não é o caminho. Veja as conderaçoes abaixo:
(...) a versão do Firebird é a 2_1_1. (...)
Também sou usuario de FireBird nas minhas aplicações, porém vai aqui um conselho: esta versão, na minha opinião, não esta estável a ponte de eu colocar uma aplicação minha para rodar nela. Estamos com alguns bugs ainda e com alguns releases para serem lançados. Atualmente trabalho com a versão 2.0 e indicaria esta para você.
(...) Quando uma pessoa esta logada não é possível outra pessoa logar, acaba não retornando erro e tudo fica travado. Então fiz um teste e comecei a fazer a conexao com o banco diretamente no remotedatamodule, por incrivel que pareça comecou a funcionar, mas sei que o correto seria somente uma conexao com o banco. (...)
Este é um erro muito comum de acontecer quando a configuração da gerências das threads esta feita de forma incorreta. Abaixo segue o link de uma video onde eu explico como isto funciona. A video foi gravada para atender um outro chamado com o mesmo problema que você.
http://video.devmedia.com.br/RodrigoCarreiro/Consultoria/chamado/4578/Chamado619.html
(...)tentei usar um DLL gratuita feita por um brasileiro (esqueci o nome agora) e ai o problema piorou pois qualque campo blob começou a dar pau...(...)
Este Dll e do Driver do Thiago Borges, eu tenho utilizado ele nas minhas aplicações sem problemas. O problema com o blob provavelmente deve ser com a maneira que esta acessando o campo blob. Eu aconselho a trabalhar com Stream, isso idependente do driver ou banco que utiliza.
(...)Agora se eu for ter que voltar o banco para a versão 1.5 ao inves da 2.1 fica mais algumas duvidas: -Hoje eu uso o collate win_ptbr pois ele não é case sensitive e não é sensitive nos acentos(...)
Você não precisa voltar ao 1.5, acredito que o 2.0 está estável a ponto de usá-lo numa aplicação. Ele possui o collate PT_BR.
(...)-devo continuar usando os Drivers do InterXpress ou seria neste caso melhor usar os drivers para Interbase(...)
Bem isto é uma decisão muito pessoal, eu sou contra componentes de terceiros pois você acaba ficando na mão de empresas que podem não dar continuidade ao projeto. Porém tem situações em que não temos como escapar como é o caso de driver para DBX4 acessar firebird. O Driver do interbase funciona mas a Borland nem a CodeGear garantem compatibilidade. Eu estou usando o TBODbx do Thiago Borges e tenho gostado.
(...)Como você tem feito as conexões com o firebird usando o DataSnap ? Você Cria somente uma datamodule para fazer uma só conexão com o banco? Falo isto pois teve uma hora que para diminuir os problemas tive que fazer a conexão com o banco dentro do remotedatamodule e não no datamodule.(...)
Você verá na video que eu te indiquei acima como isso tudo funciona e aprenderar a colocar a configuração certa.
Acredito que as observações acima juntamente com a vídeo ja te daram uma "saída". Porém não custa lembrar que uma alteração como esta, mudar o banco e driver de acesso, deve ser feita com muito cautela, principalmente em sistema que já estão rodando pois pode levar tudo a perder, sempre devemos manter um sistema funcionando e so depois de testar muito, mas muito mesmo o outro, colocar em produção.
Estamos às ordens !!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Meu nome é Rodrigo Carreiro, sou coordenador da área de Delphi da consultoria. Em primeiro lugar peço desculpas pela demora em responder seu chamado. Segue abaixo algumas considerações em relação a sua primeira colocação:
(...) Por utilizar o Dbexpress eu comprei a biblioteca interxpress (dbxup30dll) (...).
Este é um driver de terceiro e eu nunca o utilizei. A principio você deverá verificar com o Fabricante do drive se ele suporta a versão do firebird que esta usando. Porém acho que esse ainda não é o caminho. Veja as conderaçoes abaixo:
(...) a versão do Firebird é a 2_1_1. (...)
Também sou usuario de FireBird nas minhas aplicações, porém vai aqui um conselho: esta versão, na minha opinião, não esta estável a ponte de eu colocar uma aplicação minha para rodar nela. Estamos com alguns bugs ainda e com alguns releases para serem lançados. Atualmente trabalho com a versão 2.0 e indicaria esta para você.
(...) Quando uma pessoa esta logada não é possível outra pessoa logar, acaba não retornando erro e tudo fica travado. Então fiz um teste e comecei a fazer a conexao com o banco diretamente no remotedatamodule, por incrivel que pareça comecou a funcionar, mas sei que o correto seria somente uma conexao com o banco. (...)
Este é um erro muito comum de acontecer quando a configuração da gerências das threads esta feita de forma incorreta. Abaixo segue o link de uma video onde eu explico como isto funciona. A video foi gravada para atender um outro chamado com o mesmo problema que você.
http://video.devmedia.com.br/RodrigoCarreiro/Consultoria/chamado/4578/Chamado619.html
(...)tentei usar um DLL gratuita feita por um brasileiro (esqueci o nome agora) e ai o problema piorou pois qualque campo blob começou a dar pau...(...)
Este Dll e do Driver do Thiago Borges, eu tenho utilizado ele nas minhas aplicações sem problemas. O problema com o blob provavelmente deve ser com a maneira que esta acessando o campo blob. Eu aconselho a trabalhar com Stream, isso idependente do driver ou banco que utiliza.
(...)Agora se eu for ter que voltar o banco para a versão 1.5 ao inves da 2.1 fica mais algumas duvidas: -Hoje eu uso o collate win_ptbr pois ele não é case sensitive e não é sensitive nos acentos(...)
Você não precisa voltar ao 1.5, acredito que o 2.0 está estável a ponto de usá-lo numa aplicação. Ele possui o collate PT_BR.
(...)-devo continuar usando os Drivers do InterXpress ou seria neste caso melhor usar os drivers para Interbase(...)
Bem isto é uma decisão muito pessoal, eu sou contra componentes de terceiros pois você acaba ficando na mão de empresas que podem não dar continuidade ao projeto. Porém tem situações em que não temos como escapar como é o caso de driver para DBX4 acessar firebird. O Driver do interbase funciona mas a Borland nem a CodeGear garantem compatibilidade. Eu estou usando o TBODbx do Thiago Borges e tenho gostado.
(...)Como você tem feito as conexões com o firebird usando o DataSnap ? Você Cria somente uma datamodule para fazer uma só conexão com o banco? Falo isto pois teve uma hora que para diminuir os problemas tive que fazer a conexão com o banco dentro do remotedatamodule e não no datamodule.(...)
Você verá na video que eu te indiquei acima como isso tudo funciona e aprenderar a colocar a configuração certa.
Acredito que as observações acima juntamente com a vídeo ja te daram uma "saída". Porém não custa lembrar que uma alteração como esta, mudar o banco e driver de acesso, deve ser feita com muito cautela, principalmente em sistema que já estão rodando pois pode levar tudo a perder, sempre devemos manter um sistema funcionando e so depois de testar muito, mas muito mesmo o outro, colocar em produção.
Estamos às ordens !!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Edson Almeida
16/04/2009
Valeu Rodrigo,
Eu vou tentar mudar o banco para a versão 2.0
Quando ao aplicativo eu estou utilizando um datamodule para fazer a conexão com o banco de dados e Remotedatamodules com os SqlDataset e datasetprovider, isto conforme aprendi em curso, a única referencia ao datamodule ou seja fora do remote como você falou no vídeo é o acesso ao sqlconection, estou achando estranho pois com o SqlServer funcionava bem, passei para o Firbird meus problemas começaram, inclusive o travamento eu não tinha no SqlServer, O remotedatamodule está com MultInstance e Apartment, o mais interessante é que quando alguém se coneta (primeira conexão) funciona, o segundo usuário já não consegue mais utilizar, somente quando fiz algo parecido com o que você mostra no vídeo que é colocar a conexão dentro do remotedatamodule começa a funcionar com mais estatabilidade, inclusive neste final de semana reparei uma coisa muito interessante, eu abri vários clientes, em torno de uns 15 em várias máquinas, aí meu irmão aconteceu a coisa mais estranha...fui fechando os aplicativos, quando fechei o último o servidor de aplicação continuou funcionando e não permitiu mais nenhuma conexão, ficou literalmente parado, parei o servidor de aplicação chamei tudo de novo e funciounou tudo bem, fiquei fazendo isto o dia inteiro, passada mais umas 3 horas ocorre novamente do servidor ficar ativo, estou cada vez mais preocupado...mas vamos continuar, vou tentar mudar o banco de dados o mais rápido possível e assim que tiver alguma coisa eu te aviso.
Grato
Edson
GOSTEI 0
Edson Almeida
16/04/2009
Rodrigo, esqueci de passar uma informação ainda mais interessante, o aplicativo funciona muito bem mesmo com o firebird 2_1 mas em um cliente onde tudo é feito localmente, todas as estações acessam um servidor da empresa na rede local, se eu coloco a mesma aplicação no DataCenter, começa os problemas, será que poder ter algum problema lá, se bem que é da LocaWeb o servidor é aquele servidor compartilhado com vários windows server sendo executados (máquina virtual se não me engano).
Grato Novamente
Edson
GOSTEI 0
Rodrigo Mourão
16/04/2009
Ok Edson, ficarei no aguardo !!
Quando realizar o teste e ocorrer o travamento tente acessar o banco fora da aplicação, derepente com o IBExpert para que possamos saber se o travamento é do banco ou da aplicação.
Quanto a colocar o Sql Connection num DataModule externo isso e possivel e viável porém o acesso a este data module nao deve ser fetio na base do uses. Você teria que fazer através da interface do servidor de aplicação, da mesma maneira com que trabalhamos com SharedConnection.
Ficarei no aguardo de uma posição sua !!!
Abs !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Quando realizar o teste e ocorrer o travamento tente acessar o banco fora da aplicação, derepente com o IBExpert para que possamos saber se o travamento é do banco ou da aplicação.
Quanto a colocar o Sql Connection num DataModule externo isso e possivel e viável porém o acesso a este data module nao deve ser fetio na base do uses. Você teria que fazer através da interface do servidor de aplicação, da mesma maneira com que trabalhamos com SharedConnection.
Ficarei no aguardo de uma posição sua !!!
Abs !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Edson Almeida
16/04/2009
Valeu vou mudar o banco e ver o que ocorre, quem esta travando é a aplicação pois o Banco continua funcionando, eu acesso ele através do EMSManager.
Quando ao sqlconection teria um exemplo de como faze-lo sem usar a uses como você comentou ?
Grato
Edson
GOSTEI 0
Edson Almeida
16/04/2009
Rodrigo bom dia !!! ou melhor quase tarde !!!
Eu ainda não mudei o banco, mas fiz uma pequena alteração no servidor de aplicação, eu mudei o threading model de apartment para single, e começou a funcionar melhor, não deu travamento (pelo menos nos testes que fiz).
O que não consigo entender é que me ensinaram que quando esta Single não se pode ter vários usuários ao mesmo tempo, eu conectei 4 e não deu problema. Depois voltei para apartment e começou a dar os travamentos, e o mais interessante, voltei para o MSSQL Server e aí não travou nada, acho que o firebird deve dar algum problema com o servidor multicamadas, inclusive fiz os trabamentos e o banco continua numa boa. Eu usei o datamodule para fazer apenas uma conexão com o banco e funciona, desde que seja o remote em Single, será que pode dar algum problema ? Outra coisinha será que dá problema no apartment por causa do datamodule estar sendo usado por uses unit, se puder me diga como fazer uma só conexão para que eu possa testar, não tenho a menor idéia de como fazer a conexão como se fosse sharedconection.
Grato e vou continuar até acharmos uma resposta...
Edson
GOSTEI 0
Rodrigo Mourão
16/04/2009
Olá Edson !!!
Bem o que te falaram não procede. O fato é que se esta tentando acessar um recurso externo ao RemoteDataModule então terás que trabalhar com Single. Repare na vídeo o teste que eu faço. Eu recebo muitos alunos que chegam nos treinamentos oficiais cheios de (me disseram) kkkk . Eu lembro de mim quando comecei a fazer a formação, cheguei cheio de achismo: ApplyUpdates com -1 e não com 0, Query e Melhor que SqlDataSet entre outros. Isso e comum quando a gente começa a meter a cara por conta própria e então recebemos informações e julgamos estar corretas. Isso é normal.
O importante nisso tudo é o que eu sempre digo para meus alunos: "Tira você suas conclusões, crie você a sua teoria, não viva em função da teoria dos outros". É obvio que ninguém e dono da verdade e que não devemos ser com isso soberbos mas temos que ser questionadores.
Bem no seu caso, como falei, usar o apartment implica em ter uma Thread, um processo para cada requisição. Ou seja um servidor de aplicação é na verdade o TypeLybrary, um processo que roda dentro do Exe (mais ou menos). Então quando você acessa um DataModule fora deste processo para um usuário tudo bem. Agora imagina que 10 pessoas abram o sistema. Você terá 10 processos rodando e apenas 1 aplicativo, correto ??? Se é um só exe, então é um só DM, correto ? Então concluímos que temos 10 pessoas utilizando o mesmo DataModule.
Com Firebird ocorre esse travamento como você mencionou e já tive outros clientes com este problema. E em outros banco isso não ocorre. Isso pode ser devido a maneira com que o Firebird gerencia este processo. O super Server cria uma única instancia para todos os clientes conectados já o classic cria um processo para cada requisição. Mas ai cabe fazermos teste.
Agora posso te dar um conselho, o trabalho que vai dar para implementar shared connection não compensa dependendo do numero de usuário. E melhor neste caso colocar como Single. Imagine que você tenha 100 usuário conectados direto e cada um consumindo 1 MB (coisa já absurda) vc consumiria 100 MB. Se seu servidor tiver no mínimo 2GB (que e mínino para uma maquina servidor da app) então não terá problema algum.
Abs
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Bem o que te falaram não procede. O fato é que se esta tentando acessar um recurso externo ao RemoteDataModule então terás que trabalhar com Single. Repare na vídeo o teste que eu faço. Eu recebo muitos alunos que chegam nos treinamentos oficiais cheios de (me disseram) kkkk . Eu lembro de mim quando comecei a fazer a formação, cheguei cheio de achismo: ApplyUpdates com -1 e não com 0, Query e Melhor que SqlDataSet entre outros. Isso e comum quando a gente começa a meter a cara por conta própria e então recebemos informações e julgamos estar corretas. Isso é normal.
O importante nisso tudo é o que eu sempre digo para meus alunos: "Tira você suas conclusões, crie você a sua teoria, não viva em função da teoria dos outros". É obvio que ninguém e dono da verdade e que não devemos ser com isso soberbos mas temos que ser questionadores.
Bem no seu caso, como falei, usar o apartment implica em ter uma Thread, um processo para cada requisição. Ou seja um servidor de aplicação é na verdade o TypeLybrary, um processo que roda dentro do Exe (mais ou menos). Então quando você acessa um DataModule fora deste processo para um usuário tudo bem. Agora imagina que 10 pessoas abram o sistema. Você terá 10 processos rodando e apenas 1 aplicativo, correto ??? Se é um só exe, então é um só DM, correto ? Então concluímos que temos 10 pessoas utilizando o mesmo DataModule.
Com Firebird ocorre esse travamento como você mencionou e já tive outros clientes com este problema. E em outros banco isso não ocorre. Isso pode ser devido a maneira com que o Firebird gerencia este processo. O super Server cria uma única instancia para todos os clientes conectados já o classic cria um processo para cada requisição. Mas ai cabe fazermos teste.
Agora posso te dar um conselho, o trabalho que vai dar para implementar shared connection não compensa dependendo do numero de usuário. E melhor neste caso colocar como Single. Imagine que você tenha 100 usuário conectados direto e cada um consumindo 1 MB (coisa já absurda) vc consumiria 100 MB. Se seu servidor tiver no mínimo 2GB (que e mínino para uma maquina servidor da app) então não terá problema algum.
Abs
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Edson Almeida
16/04/2009
Valeu meu amigo, eu já tinha uma adminiração pelo seu trabalho, mas seu atendimento foi super 10...como esta conversa é só entre a gente, vou dizer uma coisa, quem me ensinou o DataSNap foi o Manoel Edésio, nosso conhecido, inclusive ele me instruiu em como dar aula para os alunos pois eu tirei certificação e comecei a dar aula lá na TDS, não sei os motivos mas o Manoel acabou me deixando de lado,mesmo com 100% de aprovação dos alunos...não tem nada a ver, mas veja como é dificil, eu aprendi ensinei e agora estou quebrando a cara, fico pensando nos alunos que estão passando por esta mesma situação...novamente muito obrigado pelo apoio, vou continuar testando com o Single e deixar o banco do jeito que esta, pois a versa 2_1 tem para 64bits e eu tenho alguns clientes com esta configuração. Mas acredito que também tenha alguma coisa com o firebird, mesmo ele não travando ele pode causar alguma coisa, pois em um cliente que usa local posso deixar como apartment que funciona redondinho.
ABs, tendo mais notícias eu te informo (pelo menos enquando durar a consultoria,rsrsrsrs
GOSTEI 0
Rodrigo Mourão
16/04/2009
Olá Edson então estamos em casa !!!!
Bem como lhe falei, o que o Manoel possa ter falado não esta totalmente errado, mas eu sou muito receoso em afirmar que uma coisa tem que daquela maneira todo o tempo. Eu sou daqueles que defende que a informática nao e uma ciencia exata, ela mais humana, entende? Temos que sentir o ambiente kkkkkkk
Mas precisando estamos às ordens.
P.S.: Quem cuida da TDS de São Paulo é o Bernardo, é meu chefe aqui no Rio, entre em contato com ele. Derepente pode pintar algum treinamento lá. Não desista não.
Abs !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Bem como lhe falei, o que o Manoel possa ter falado não esta totalmente errado, mas eu sou muito receoso em afirmar que uma coisa tem que daquela maneira todo o tempo. Eu sou daqueles que defende que a informática nao e uma ciencia exata, ela mais humana, entende? Temos que sentir o ambiente kkkkkkk
Mas precisando estamos às ordens.
P.S.: Quem cuida da TDS de São Paulo é o Bernardo, é meu chefe aqui no Rio, entre em contato com ele. Derepente pode pintar algum treinamento lá. Não desista não.
Abs !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Edson Almeida
16/04/2009
Rodrigo, bom dia !!!
Somente para aumentar as informações, eu mudei para single onde estava dando problemas e ficou legal, mas de vez em quando trava, mas naquele cliente que funciona local, eu liberei o acesso para ser usado pela internet e várias pessoas acessaram de fora sem nenhum problema, utilizando apartment e apenas uma conexão pelo DataModule e usando via uses...vai dormir com essa meu amigo, parece fantasma, não deveria funcionar e agora funciona não sei mais o que fazer para ter algo estavel...sou sincero, perdi a esperança
Abs
Edson
GOSTEI 0
Rodrigo Mourão
16/04/2009
Perai !!
MultiInstance com Apartment + FireBird + Uses Em um DataModule Externo via Internet não trava, se colocar a mesma estrutura em rede ele trava, seria isso ??
MultiInstance com Apartment + FireBird + Uses Em um DataModule Externo via Internet não trava, se colocar a mesma estrutura em rede ele trava, seria isso ??
GOSTEI 0
Edson Almeida
16/04/2009
Eu estou fazendo testes em máquinas e situações diferentes para o mesmo aplicativo, veja que resultado de louco
Situação A - Máquina de um cliente (quad core 4 giga memoria)
Apartment funciona local e via internet
Single funciona local e via internet
B - Máquina de outro cliente (core 2 2 giga memoria)
Apartment não funciona internet (local não dá para testar pois é em Datacenter)
Single funciona via internet
As duas situações foram utilizadas com Firebird e uses no datamodule.
Depois que descobrimos que funcionava em single, quis testar em um cliente onde tudo funcionan normalmente, então voltei a aplicação para Apartment e a maldita rodou tanto local como externamente via internet.
Vou pirar,rsrsrsrsrs se já não estou pirado...
Bem que minha mãe falou 'Estuda meu filho' o tonto foi e estudou...podia ser pedreiro (rs).
Otimo feriado
GOSTEI 0