WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Parâmetros de Operação CORBA

As operações CORBA podem ter parâmetros que podem ser modificados pelo servidor.

As operações CORBA podem ter parâmetros in, out e inout. Os parâmetros in e inout ditam a aparência da árvore no domínio do DataObject ao ir para um nó CORBARequest. O tipo de retorno, os parâmetros inout e out ditam a aparência da árvore ao sair de um nó CORBARequest.

A mensagem de entrada está contida no elemento interfaceName.operationName e precisa de um elemento para cada parâmetro in ou inout. Se a interface estiver contida em um módulo, o nome é qualificado com o nome do módulo. Se o módulo for agrupado em outros módulos, todos os nomes dos módulos são indicados, como: moduleNameA.moduleNameB.interfaceName.operationName. Os parâmetros out não são necessários porque o cliente não envia um valor para parâmetros out. Estes elementos devem estar na mesma ordem que os parâmetros no arquivo IDL.

A mensagem de saída do nó CORBARequest está contida no elemento interfaceName.operationNameResponse. Se a interface estiver contida em um módulo, o nome será qualificado com o nome do módulo. A mensagem de saída possui um elemento para o tipo de retorno, denominado _return e um elemento para cada parâmetro inout e out.

A seguir há um exemplo de um arquivo IDL:
interface exampleInterface {
	string outsideModuleOperation(in string one, out string two, inout string three);
	
};
A mensagem de entrada pode ser semelhante ao seguinte exemplo:
<exampleInterface.outsideModuleOperation>
	<one>something</one>
	<three>something</three>
</exampleInterface.outsideModuleOperation>
A mensagem de saída pode ser semelhante ao seguinte exemplo:
<exampleInterface.outsideModuleOperationResponse>
	<_return>something</_return>
	<two>something</two>
	<three>something</three>
</exampleInterface.outsideModuleOperationResponse>
A mensagem de entrada requer todos os parâmetros in e inout, portanto, um e três, sejam especificados. A saída possui os seguintes elementos:

Exceções Definidas pelo Usuário

As exceções são propagadas para o terminal Error sob o domínio do DataObject; a estrutura da mensagem depende da exceção.

O exemplo a seguir mostra como uma exceção definida pelo usuário é definida em um arquivo IDL.
exception BadRecord {
    string why;    
  };


  interface SomeInterface {
    long bar(in float pi) raises (BadRecord);
  };
A operação bar pode emitir a exceção BadRecord. Se esta exceção for emitida, a mensagem a seguir será propagada ao terminal Error.
<BadRecord>
	<why>Reason text</why>
</BadRecord>

Casos Críticos

Existem dois caso críticos identificados para leitura de uma árvore e produção de uma árvore:
  • Não existem parâmetros de entrada.
  • Uma função nula não possui parâmetros inout ou out
O arquivo IDL de amostra a seguir ilustra dois exemplos.
interface exampleInterface {
	string exampleOne();
void exampleTwo(in string one);	
};
  • Exemplo 1 - não existem parâmetros de entrada

    Mensagem de entrada: A mensagem de entrada é irrelevante porque o nó CORBARequest não consulta o corpo da mensagem.

    Mensagem de saída:
    <exampleInterface.exampleOneResponse>
    	<_return>something</_return>
    </exampleInterface.exampleOneResponse>
  • Exemplo 2 - Uma função nula não possui parâmetros inout ou out
    Mensagem de Entrada:
    <exampleInterface.exampleTwo>
    	<one>something</one>
    </exampleInterface.exampleTwo>
    Mensagem de saída:
    <exampleInterface.exampleTwoResponse>
    </exampleInterface.exampleTwoResponse>
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:30:50


Tópico de ConceitoTópico de Conceito | Versão 8.0.0.5 | bc22470_