Uma classe de trabalho é utilizada para classificar pedidos para aplicar uma política ao pedido. Existem dois tipos de políticas que são aplicadas a um pedido: roteamento e serviço. É possível criar políticas de roteamento para pedidos HTTP e SOAP. É possível criar políticas de serviço para pedidos HTTP, IIOP, SOAP e JMS. Adicionalmente, as classes de trabalho podem conter regras de classificação para ambos os tipos de política, com exceção do JMS. As regras de classificação não são suportadas para classes de trabalho de JMS. As políticas de roteamento e de serviço para classes de trabalho não são suportadas para IIOP e JMS para aplicativos implementados no z/OS. O WebSphere Application Server para z/OS fornece classificação de serviços IIOP e JMS.
Política de Roteamento | Descrição |
---|---|
permit:<application_name> | Nesta política de roteamento, application_name é o nome do aplicativo a ser roteado com um especificador de edição opcional. Isso permite que o pedido continue normal. |
permitsticky:<application_name> | A política de roteamento permitsticky é a mesma que a política de roteamento permit, exceto pelo fato de que o ODR (On Demand Router) também mantém afinidade do cliente para o servidor para quaisquer pedidos futuros que venham do mesmo cliente. Neste caso, o ODR inclui um cabeçalho SET-COOKIE na resposta antes de enviar a resposta para o cliente. |
reject:<HTTP_error_code> | Esta política de roteamento faz com que o ODR rejeite qualquer pedido que tenha o código de erro de HTTP especificado. Por exemplo, reject:503 retorna um erro 503 O Serviço Está Indisponível. |
redirect:<URL> | Com esta política de roteamento, o ODR redireciona o pedido para a URL especificada. A URL tem o padrão de protocolo:// ;. Um exemplo de uma URL válida é: http://w3.ibm.com. |
As políticas de serviço válidas são simplesmente a lista dos nomes das classes de transação. A classe de transação refere-se a um única classe de serviço.
Existem quatro tipos de classes de trabalho:
Classe de Trabalho | Descrição |
---|---|
Política de roteamento de aplicativo | Especifica como determinar a política de roteamento para um pedido para um aplicativo que está instalado no WebSphere Extended Deployment. |
Política de serviço de aplicativo | Especifica como determinar a política de serviço para um pedido para um aplicativo que está instalado no WebSphere Extended Deployment. |
Política de roteamento de cluster de servidor genérico | Especifica como determinar a política de roteamento para um pedido para um cluster de servidor genérico. |
Política de serviço de cluster de servidor genérico | Especifica como determinar a política de serviço para um pedido para um cluster de servidor genérico. |
O diagrama a seguir ilustra o fluxo de um pedido destinado para um aplicativo que está instalado no WebSphere Extended Deployment. O pedido é aplicado em uma classe de trabalho da política de roteamento de aplicativos para determinar a política de roteamento. Se a política de roteamento resultante for permit ou permitsticky, o pedido continuará para uma classe de trabalho de política de serviço de aplicativo para determinar a política de serviço e o nome da classe de transação.
Cada aplicativo contém classes de trabalho padrão de roteamento de aplicativo e de serviço de aplicativo. Também é possível criar classes de trabalho adicionais não-padrão. Cada classe de trabalho tem uma ação correspondente padrão. A política de roteamento padrão para um aplicativo é permit:<application_name>. A política de serviço padrão é Default_TC, a classe de transação padrão.
Cada classe de trabalho contém uma lista ordenada opcional de regras que são avaliadas para um pedido específico para determinar a política para tal pedido. Cada regra consiste em uma expressão booleana e um valor de política. Se a expressão for avaliada como verdadeira para um determinado pedido, a política associada a essa regra será utilizada.
A sintaxe e a semântica de uma expressão booleana para uma regra são semelhantes à cláusula WHERE de uma expressão SQL (Structured Query Language). Mais precisamente, a sintaxe de uma expressão é definida pela especificação JMS (Java Message Service) 1.1. Consulte Classificação de Pedidos Baseada em Regras do ODR para obter informações adicionais.
Na especificação JMS, os identificadores referem-se a vários atributos que podem ser associados a um pedido, por exemplo, um parâmetro de consulta específico, um cookie ou um cabeçalho HTTP. Um identificador JMS pode ser visto como uma variável, ou operando, do pedido. Esses operandos podem ser específicos de um protocolo. Por exemplo, o nome do serviço SOAP é um operando que é válido somente em um classe de trabalho de SOAP.
Embora a lista de operandos seja dinâmica, os que são listados aqui são os operandos da fundação. Para saber mais, revise a documentação do produto que suporta a lista estendida. A tabela a seguir lista os operandos e seus protocolos associados:
Variável do Pedido | Protocolos Válidos | Descrição |
---|---|---|
|
IIOP | O nome do Aplicativo Corporativo no qual o EJB está contido. |
clienthost | HTTP SOAP
|
O nome completo do host cliente. Este é o valor do nome do host do comando IP (Internet Protocol). Este operando não suporta operadores numéricos tais como >, >=, <, <=. |
|
IIOP | O nome da porta do cliente. |
clientipv4 | HTTP SOAP |
O endereço IP da máquina cliente utilizando o tipo de endereço quadrangular pontilhado IPv4 (Internet Protocol version 4) n.n.n.n. |
clientipv6 | HTTP SOAP |
O tipo de endereço IPv6 (Internet Protocol version 6) de 128 bits de x:x:x:x:x:x:x:x seguindo o RFC (Request for Comments) 1924 da máquina cliente. |
cookie$<nome> | HTTP SOAP |
O nome de um cookie. Por exemplo, a expressão cookie$My_Cookie_Name='My_Cookie_Value' testa
um pedido para ver se ele contém um cookie denominado My_Cookie_Name com
um valor de My_Cookie_Value. Para testar a presença ou a ausência de um determinado cookie, utilize uma das expressões a seguir: cookie$MyCookieName IS NOT NULL cookie$MyCookieName IS NULL |
|
IIOP | O nome do módulo de um EJB. |
|
IIOP | O nome de um EJB. |
|
IIOP | O nome de um método no EJB. |
gid | HTTP SOAP |
O ID do grupo do emissor do pedido. |
header $<nome> | HTTP SOAP |
O nome e o valor de um cabeçalho. Por exemplo, a expressão header$Host='localhost' testa um pedido para ver se ele contém um
cabeçalho do host HTTP com um valor de host local.
Para testar a presença ou ausência do cabeçalho do host, utilize uma das seguintes
expressões: cookie$Host IS NOT NULL cookie$Host IS NULL |
HTTPMethod | HTTP SOAP |
O método HTTP para o pedido. Os possíveis valores são POST, GET, PUT e DELETE. |
MIMEType | HTTP SOAP |
O tipo MIME do pedido. |
operation | SOAP | O nome de uma operação de serviço da Web. |
port | HTTP SOAP IIOP |
A porta de atendimento na qual o pedido foi recebido. |
protocol | HTTP SOAP |
O protocolo de comunicações que transmite o pedido. Os protocolos suportados atualmente são HTTP, HTTPS, SOAP e SOAPS. |
queryparm$<nome> | HTTP SOAP |
O nome e o valor de um cabeçalho. Por exemplo, a expressão queryparm$timezone='EST' testa
um pedido para ver se ele contém um parâmetro de consulta HTTP denominado fuso horário com um valor EST. Para testar a presença ou a ausência de um parâmetro de consulta, utilize uma das formas a seguir: queryparm$timezone IS NOT NULL queryparm$timezone IS NULL |
serverhost | HTTP SOAP
|
O nome completo do host do servidor. Este operando não suporta operadores numéricos tais como >, >=, <, <=. |
serveripv4 | HTTP SOAP |
O endereço IP da máquina servidor utilizando o tipo de endereço quadrangular pontilhado IPv4 n.n.n.n. |
serveripv6 | HTTP SOAP |
O tipo de endereço IPv6 de 128 bits de x:x:x:x:x:x:x:x seguindo o RFC 1924 da máquina servidor. |
service | SOAP |
O nome de um serviço da Web. |
uid | HTTP SOAP |
O ID do usuário do emissor do pedido. |
clienthost LIKE '%.ibm.com''%.ibm.com' é um literal que é utilizado para comparação com o nome do host do cliente para um pedido. Essa expressão é avaliada como verdadeira para todos os pedidos que se originam de uma máquina no domínio ibm.com. Coloque os literais da cadeia entre aspas simples. Não delimite literais numéricos com aspas simples. Os parênteses junto com os operadores AND, OR e NOT também podem ser utilizados para formar expressões booleanas compostas. Consulte a especificação JMS 1.1 para obter uma descrição detalhada.
O WebSphere Extended Deployment suporta os operadores abaixo nas expressões de regras. Estes operadores também são referidos como predicados na terminologia SQL, porque aparecem dentro de uma cláusula WHERE ou HAVING. Os operadores não fazem distinção entre maiúsculas e minúsculas.
Operador | Descrição |
---|---|
OR | O operador lógico OR. |
AND | O operador lógico AND. |
NOT | O operador de negação. |
IN | Expressa um operando com vários valores em uma única
expressão. Seu significado é consistente com o significado padrão
do SQL do operador. Por exemplo, se, para um operando chamado port, um usuário desejar expressar que o valor de porta pode ser qualquer um ou todos os valores
como 9080, 9090, 9091, o fragmento de expressão será: port IN (9080,9090,9091) Em
SQL, como os valores entre colchetes são expressos depende do tipo de dados
da porta. Se a porta for um inteiro, os valores sem aspas simples
estarão sintaticamente corretos. Se a porta for uma cadeia, a expressão correta será:
port IN (‘9080’, ‘9090’, ‘9091’) |
LIKE | Expressa correspondência de padrão para valores de operandos de cadeia e seu significado e uso são consistentes com os definidos pela linguagem SQL.
O valor deve conter o caractere curinga (%)
na posição em que é esperado o início da correspondência de padrões. Por exemplo,
a expressão:
host LIKE %blancacorresponde a palavra blanca ou qualquer outra palavra que termine em blanca, enquanto a expressão: host LIKE blanca%corresponde a palavra blanca ou qualquer outra palavra que comece com blanca. A expressão: host LIKE %blanca%corresponde a palavra blanca ou qualquer palavra que tenha o símbolo blanca dentro dela. Do ponto de vista de uma implementação de código, a classe java.util.regex.Pattern é utilizada. |
= | O operador de igualdade expressa uma correspondência em uma forma com distinção entre maiúsculas e minúsculas. |
> | O operador Greater-than para utilização com operandos numéricos. |
>= | Operador Greater-than ou equal para utilização com operandos numéricos. |
< | Operador Less-than para utilização com operandos numéricos. |
<= | Operador Less-than ou equal para utilização com operandos numéricos. |
< > | Operador Not equal. |
BETWEEN | Utilizado com AND para selecionar um intervalo de valores incluindo o primeiro (baixo) e o último (alto) valores. Juntos, eles operam em números e valores de datas. |
IS NULL | Testa um operando que tenha um valor NULL. |
IS NOT NULL | Testa um operando que tenha um valor diferente de NULL. |
Related concepts
Classificação de Pedidos Baseada em Regras do ODR
Related tasks
Definindo uma Política de Serviço
Ativando Edições Simultâneas
Validando uma Edição