Fórum Desenvolvimento Delphi 7 com DataSnap e Firebird 1.5 #619
19/11/2008
Bom dia.
Hoje tenho um aplicativo desenvolvido em Delphi 7 em uma arquitetura 3 camadas com DataSnap e banco de dados FireBird 1.5.
Estou utilizando o Borland Socket Server como "ponte" para acesso entre o cliente e o server.
O problema é que em muitos casos, quando ocorre uma solicitação de uma massa de dados grande, por exemplo em relatórios, o BSS fica "travado" e as outras estações não conseguem acesso até que o processo que solicitou o relatório finalize.
Já alterei os parâmetros do DataSnap para multiThread, apartment, em fim, fiz várias combinações, mas não obtive resultado.
Gostaria de um auxilio neste sentido.
Caso precise de mais informações, como fontes é só pedir.
Obrigado.
Posts
19/11/2008
Guinther Pauli
Olá Jeferson,
Preciso que me passe alguns dados como por exemplo. Qual tecnologia de acesso a dados ?? Componentes de Acesso a Dados e Etc.
Porém, vc precisa isolar se quem tá travado é a app ou se a tabela no bd tá lockada. Acredito na 2a hipótese, executa a operacao e enquanto estiver "travado" tenta fazer acesso na mesma tabela direto pela console do banco ou pelo inexpert se você utilizar pra ver se consegue.
Se for isso, verifica como executar sem bloqueio, por exemplo, no sqlserver você coloca ( nolock ) após o nome da tabela isso poderá lhe adiantar.
Aguardo seu retorno para nos aprofundarmos um pouco mais no seu paradigma atual,
Abs.
19/11/2008
Alberto Antonio
Estamos utilizando como componente de conexão o DbExpress.
Já em relação a "trava" ser em função de um lock da tabela. Fiz o seguinte teste:
Configuração:
Servidor: FireBird / DataSnap (dll) / Borland Socket Server
Clientes acessando simultaneamente, fica "congelado"
Configuração:
Servidor: Firebird
Cliente: DataSnap (dll) / Borland Socket Server. Neste caso, "transformei" o cliente em um servidor também, exceto pelo banco de dados. Neste caso não congela.
Obrigado.
20/11/2008
Guinther Pauli
Olá Jefferson,
Segundo sua informaçao seu problema aparenta ser com o thread mode da sua aplicação.
Estamos preparando uma vídeo demostrando um técnica que poderá lhe auxiliar nesta tarefa.
abs
20/11/2008
Alberto Antonio
Bem provavel que seja problema com a thread.
Você tem previsão de quando esta video aula estará disponível?
Obrigado.
20/11/2008
Guinther Pauli
Jeferson,
Segue link da vídeo-aula feita para ti ajudar a solucionar seu problema.
http://video.devmedia.com.br/naoexclusivos/RodrigoMourao/Consultoria/Chamado619.zip
Aguardamos seu retorno sobre o chamado,
abs
21/11/2008
Guinther Pauli
Olá Jefferson,
A vídeo que fizemos para você, resolveu ?
Continuamos aguardando seu retorno para encerrarmos esse chamado,
abs
21/11/2008
Alberto Antonio
Otem não consegui assitir ao video.
Estarei assintindo e fazendo os ajustes possíveis e logo darei um retorno a respeito.
Obrigado.
21/11/2008
Alberto Antonio
Fiz alguns ajustes em função das dicas contidas na video aula, e resolveu o problema de travamento.
O problema maior, era a utilização de outros objetos dentro do RemoteDataModule.
Estou alterando as demais rotinas dentro do meu DataSnap.
Obrigado pela ajuda.