Histórico da Página
thread pool, o ambiente e as características das threads.
Chave | Tipo | Obrigatório |
---|---|---|
Environment | string | X |
MinThreads | integer | X |
MaxThreads | integer | X |
MinFreeThreads | integer | X |
GrowthFactor | integer | X |
Slaves | string/array | |
InactiveTimeout | integer | |
ActiveTimeout | integer | |
AcceptTimeout | integer | |
UserExists | string |
Chaves da sessão
Environment
Esta chave define o environment(ambiente) onde o REST será executado.
Esta chave só é obrigatória quando utilizada no arquivo appserver.ini, quando utilizado o JSON ela não deve ser declarada pois como o appserver já se encontra inicializado, ele considera o environment em uso.
MinThreads
Indica a quantidade mínima de threads ativas no thread pool.O valor declarado deve ser maior que zero.
MaxThreads
Indica a quantidade máxima de threads ativas no thread pool.O seu valor deve ser maior ou igual ao declarado na chave "MinThreads"
.
MinFreeThreads
Indica a quantidade minima de threads ativas no thread pool.Deve ser maior ou igual ao valor declarado na chave "MinThreads"
.
GrowthFactor
O fator de crescimeto indica a quantidade de threads novas a serem alocadas sempre que o thread pool estiver com todas as suas threads em uso. Seu valor deve ser maior que zero.
Slaves
Lista com o(s) thread pool(s) filho(s)/slave(s) deste thread pool. Pode(m) ser utilizado(s) para que sejam direcionados os atendimentos das requisições.
Quando declarada, esta chave respeita o formato de string no appserver.ini e o formato de array quando utilizado o JSON.
InactiveTimeout
Indica o tempo em milisegundos que a thread ficará ativa aguardando uma nova requisição. Se este tempo for expirado a thread poderá ser finalizada conforme controle interno de threads.
O valor informado deve ser maior que zero, mas por ser uma chave opcional, quando não informada o sistema assume o valor de 30000 (30 segundos) por default.
ActiveTimeout
Indica o tempo máximo em milisegundos que a thread ficará ativa mesmo recebendo conexões. Se este tempo for excedido a thread será finalizada conforme controle interno de threads.
O valor informado deve ser maior que zero, mas por ser uma chave opcional, quando não informada o sistema assume por padrão o valor de 3 vezes o valor de InactiveTimeout.
AcceptTimeout
Indica o tempo em milisegundos que uma nova requisição deve ficar na fila de processamento aguardando sua vez de ser atendida. Quando extrapolado este tempo, a requisição é descartada retornando ao client(chamador) o código de status - 503 - "Server Busy".
O valor informado deve ser maior que zero, mas por ser uma chave opcional, quando não informada o sistema assume o valor de 10 segundos por default.
UserExits
Indica o nome da sessão com a configuração das chaves UserExits. O(s) nome(s) definido(s) nesta chave deverão ser utilizado(s) na sessão USEREXITS
.
Observações
** Quando declarada, esta chave respeita o formato de string no appserver.ini e o formato de array quando utilizado o JSON.
Exemplos de configuração
Arquivo appserver.ini
[INIT_THREAD_POOL_01]
Environment=HTTPREST
MinThreads=2
MaxThreads=4
MinFreeThreads=2
GrowthFactor=1
Slaves=SLAVE_THREAD_POOL_01_01,SLAVE_THREAD_POOL_01_02
InactiveTimeout=30000
AcceptTimeout=10000
UserExits=UE_01
[INIT_THREAD_POOL_02]
Environment=HTTPREST
MinThreads=1
MaxThreads=5
MinFreeThreads=1
GrowthFactor=1
Slaves=SLAVE_THREAD_POOL_02_01,SLAVE_THREAD_POOL_02_02
UserExits=UE_02
JSON
jConfig['INIT_THREAD_POOL_01'] := JsonObject():new()
jConfig['INIT_THREAD_POOL_01']['MinThreads'] := 1
jConfig['INIT_THREAD_POOL_01']['MaxThreads'] := 4
jConfig['INIT_THREAD_POOL_01']['MinFreeThreads'] := 1
jConfig['INIT_THREAD_POOL_01']['GrowthFactor'] := 1
jConfig['INIT_THREAD_POOL_01']['Slaves'] := {"SLAVE_THREAD_POOL_01_01","SLAVE_THREAD_POOL_01_02"}
jConfig['INIT_THREAD_POOL_01']['InactiveTimeout'] := 30000
jConfig['INIT_THREAD_POOL_01']['AcceptTimeout'] := 10000
jConfig['INIT_THREAD_POOL_01']['UserExists'] := UE_01
jConfig['INIT_THREAD_POOL_02'] := JsonObject():new()
jConfig['INIT_THREAD_POOL_02']['MinThreads'] := 1
jConfig['INIT_THREAD_POOL_02']['MaxThreads'] := 4
jConfig['INIT_THREAD_POOL_02']['MinFreeThreads'] := 1
jConfig['INIT_THREAD_POOL_02']['GrowthFactor'] := 1
jConfig['INIT_THREAD_POOL_02']['Slaves'] := {"SLAVE_THREAD_POOL_02_01","SLAVE_THREAD_POOL_02_02"}
jConfig['INIT_THREAD_POOL_02']['UserExists'] := UE_02
...