Meu post sobre como criar um servidor DataSnap passo a passo com o RemObjects SDK foi muito bem aceito, fiquei bem satisfeito. O pessoal precisava disso mais do que eu pensava.
Uma pergunta que surgiu mais de uma vez depois da publicação do artigo foi sobre como colocar mais de um DataModule no servidor. E é bem simples de se fazer. Basta adicionar novos serviços descendentes de AppServer no servidor utilizando o Service Builder do RemObjects. Depois disso, para cada serviço novo no servidor você precisa de um novo RODataSnapConnection no cliente com o ServerName preenchido com o mesmo nome do serviço.
É bem normal ter mais de um serviço DataSnap no servidor. Normalmente essa divisão se dá por áreas funcionais do aplicativo como por exemplo, Controle de Estoque, Financeiro, etc. Mas naturalmente você pode dividir da forma que preferir.
TPodcast
2 Comments
Erick,
Goste muito do do artigo, mas dentro desse modelo com vários DataModules no Server, onde eu colocaria o SQLConnection, para que todos os DataModules compartilhassem essa conexão.
Qual seria um modelo ideal nesse caso, uma única conexão para todo o projeto com recursos de pooling?
Como funcionaria isso com o RemObjects, estou levando em consideração uma aplicação grande com vários DataModules no Server e de alta disponibilidade, como um ERP por exemplo.
Tentei seguir seu exemplo, mas na hora de selecionar o ProviderName do ClientDataSet recebi a seguinte exceção: An exception was raised on the server: Unknown method AS_GetProviderNames for interface DataSnapService.
O Server está sendo executado normalmente.
Rodrigo, conexão com o banco é um assunto delicado.
O ideal mesmo é ter um mecanismo de pool de conexões, mas caso não seja problema ter muitas conexões no seu banco, pode colocar um SQLConnection em cada serviço e não deve ter problemas.
Inclusive se você utilizar o mecanismo de pool de serviços, o resultado pode ser até melhor do que simplesmente ter pool de conexões com o banco.