Histórico da Página
...
O nome da chave deverá ser userDataUserData, ela pode ser informada no INI do appserver [detalhes aqui] ou via JSON, caso opte por executar o REST via código-fonte [detalhes aqui].
O userDataUserData deve ao final ser um JSON, porém existem algumas formas de informá-lo ao server, vamos à elas:
...
JSON diretamente na chave
Exemplo:
userDataUserData={"exemplo":"direto na chave"}
...
Exemplo: (somente nome do arquivo):
userDataUserData=userDataUserData.json
No exemplo acima, o arquivo deverá estar na mesma pasta do appserver.
Exemplo: (caminho absoluto + nome do arquivo)
userDataUserData=c:\configRest\userDataUserData.json
O uso de caminho absoluto facilita na manutenção de arquivos de configuração, pois podem estar localizados em local central.
...
Considerando essa informação, pode-se então informar um userDataUserData nos seguintes níveis:
Para todos
...
1 - Podem haver configurações coexistentes entre Server e ( Thread Pool ou Slave ).
2 - Não podem haver configurações coexistentes entre Thread Pool e Slave.
3 - Se Thread Pool possuir Slave, a configuração do userDataUserData deve ser feito diretamente no Slave.
4 - A userDataUserData que estiver configurada no Thread Pool somente será considerada se não possuir Slave.
...
[HTTPSERVER] Enable=1 Servers=HTTP_SRV [HTTP_SRV] locations=HTTP_ROOT userDataUserData={"config":"server"} [HTTP_ROOT] ThreadPool=THREAD_POOL [THREAD_POOL] userDataUserData={"config":"threadpool"}
Nesse caso, temos 2 (dois) userDataUserData configurados:
Um para o servidor todo, ou seja, de qualquer Thread teremos acesso a esse mesmo userDataUserData.
O outro para as Threads de atendimento, e todas pegarão o userDataUserData configurado na Thread Pool, no exemplo acima com o nome de [THREAD_POOL]
.
...
[HTTPSERVER] Enable=1 Servers=HTTP_SRV [HTTP_SRV] locations=HTTP_ROOT userDataUserData={"config":"server"} [HTTP_ROOT] ThreadPool=THREAD_POOL [THREAD_POOL] Slaves=SLAVE_01,SLAVE_02 [SLAVE_01] userDataUserData={"config":"slave01"} [SLAVE_02] userDataUserData={"config":"slave02"}
Nesse caso, temos 3 (três) userDataUserData configurados:
Um para o servidor todo, ou seja, de qualquer Thread teremos acesso a esse mesmo userDataUserData.
Os outros 2 (dois) para as Threads de atendimento, porém, cada uma de seu respectivo Slave, ou seja, se a requisição for distribuída para qualquer thread do [SLAVE_01], o conteúdo de userDataUserData será {"config":"slave01"}
, caso seja distribuída para qualquer thread do [SLAVE_02], então o conteúdo de userDataUserDataserá {"config":"slave02"}
Como resgatar os valores de
...
UserData
Para obter os valores configurados em userDataUserData, temos disponível dois métodos em oRest, são eles:
...
Esse método retornará o JSON informado no userDataUserData da sessão Server, nos exemplos aqui utilizados, a sessão seria [HTTP_SRV] e seu conteúdo:
...
Esse método retornará o JSON informado no userDataUserData do Thread Pool, ou do Slave.
...