Desenvolvimento Delphi 7 com DataSnap e Firebird 1.5

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.
Alberto Antonio

Alberto Antonio

Curtidas 0

Respostas

Guinther Pauli

Guinther Pauli

19/11/2008

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.
GOSTEI 0
Alberto Antonio

Alberto Antonio

19/11/2008

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.  
GOSTEI 0
Guinther Pauli

Guinther Pauli

19/11/2008

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        
GOSTEI 0
Alberto Antonio

Alberto Antonio

19/11/2008

Bem provavel que seja problema com a thread. Você tem previsão de quando esta video aula estará disponível?   Obrigado.
GOSTEI 0
Guinther Pauli

Guinther Pauli

19/11/2008

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      
GOSTEI 0
Guinther Pauli

Guinther Pauli

19/11/2008

Olá Jefferson,       A vídeo que fizemos para você, resolveu ?       Continuamos aguardando seu retorno para encerrarmos esse chamado,     abs
GOSTEI 0
Alberto Antonio

Alberto Antonio

19/11/2008

Otem não consegui assitir ao video. Estarei assintindo e fazendo os ajustes possíveis e logo darei um retorno a respeito. Obrigado.
GOSTEI 0
Alberto Antonio

Alberto Antonio

19/11/2008

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.
GOSTEI 0
POSTAR