Vou tentar,
Fazendo uma analogia entre as aplicações windows que já estamos acostumados a criar em centura e as aplicações web.
Uma aplicação web do Centura é um executável normal, idêntico a esses que nós geramos no windows. As variáveis globais são compartilhadas num mesmo executável. Isso não influencia nossas aplicações windows pois cada executável tem seu espaço de memória reservado para as variáveis. Então mesmo que a mesma aplicação centura/windows rode duas vezes simultaneamente na mesma máquina uma jamais terá acesso às variáveis da outra pois estão "rodando" em instâncias separadas. Em sessões separadas.
Com as aplicações web do centura acontece um pouco diferente.
Um executável do centura é inserido como serviço no appConsole e ganha um nome de serviço. É a esse nome que é feito o link da página html com a aplicação centura. Como a págiana web é utilizada (na maioria das vezes) por muitos usuários simultaneamente .... o mesmo serviço web (leia-se executável centura) é executado dezenas ... às vezes até centenas de vezes simultaneamente. O mesmo executável é executado para todas as requisições. Não só o mesmo executável mas tb a mesma instância. O que faz com que as variáveis de memória da aplicação sejam compartilhadas entre todas as instancias. Ou seja, um usuário acessa as variáveis globais do outro. Causando o caos.
O que precisa ser feito é criar algum tipo de variável que seja vista por cada sessão ( ou por cada instância )
Isso é semelhante às variáveis de classe e variáveis de instância. Ou às variáveis globais e variáveis de um formulário.
Acontece que na web, o executável é exatamente o mesmo para todos os serviços.
A solução para esse problema ( que não é privilégio do centura ) é criar variáveis que tenham como escopo a sessão.
Como?
Deixando as variáveis e seus valores na própria página web do usuário e não no servidor. Dessa forma, cada página web no browser do usuário mantém todas as variáveis e seus valores. Como está na máquina do usuário ... não há confusão de valores. Resolvido o problema.
É justamente para isso que as Web State Variables servem. Elas são essas variáveis de sessão que são inseridas na página web, no browser do usuário. Quando vc cria uma web state var ela é inserida na página web no browser e não no executável.
Desculpe o jornal, mas acho que ficou mais ou menos bem explicado.
Abraços,
Lairton.
Em 10/10/06, Figueiredo Felix <[EMAIL PROTECTED]
> escreveu:
Alguém sabe me explicar qual é a real utilidade das state variables? Os exemplos que o Centura traz são pouco sugestivos. Há dias o Lairton passou umas noções de base que agradeço bastante. No entanto, gostaria uma ajuda para identificar a origem do erro "All server applications for the specified service are currently in use".
Qualquer ajuda é bem vinda
Figueiredo Félix
Analista Programador
--
Lairton N de Almeida Jr.
[EMAIL PROTECTED]