[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: [reverbel-sma] 1) como testar invoker. 2) propagaÃÃo de contexto de transaÃÃo



Olà Alexandre.

On 10/11/06, Alexandre Freire <chegado@xxxxxxxxx> wrote:
 - preciso alterar o arquivo standardjboss.xml ? se sim, a alteraÃÃo
abaixo està correta?

    <invoker-proxy-binding>
       <name>java-iiop-invoker</name>
       <invoker-mbean>jboss:service=invoker,type=iiop</invoker-mbean>
       <proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-factory>
       <proxy-factory-config>
       </proxy-factory-config>
   </invoker-proxy-binding>
Vocà pode declarar <invoker-proxy-binding>s tanto no standardjboss.xml
quanto no jboss.xml. No primeiro caso, <invoker-proxy-binding> serÃ
visÃvel para todos os EJBs que vocà implantar no servidor de
aplicacÃes (no profile que vocà alterar, à claro). Jà no segundo caso,
o <invoker-proxy-binding> serà visÃvel apenas para os EJBs dentro da
unidade de implantacÃo (arquivo ejb-jar) que contÃm o jboss.xml. No
caso do EP, como sà o EJB de teste vai usar o JavaIIOPInvoker, vocÃs
podem declarar o <invoker-proxy-binding> no jboss.xml mesmo (mas isso
à sà uma sugestÃo).

Mais uma coisa: vi que o elemento <proxy-factory-config> està vazio no
exemplo acima. NÃo sei se vocà fez isso para nÃo sobrecarregar o
e-mail, mas à necessÃrio configurar os interceptadores que estarÃo
presentes nos proxies dentro desse elemento (dà uma olhada no
standardjboss.xml).

 - preciso criar um arquivo jboss.xml no ejb q vou usar para testar o
invoker ? se sim, deveria ser assim?

   <jboss>
         <invoker-proxy-binding>
         <name>java-iiop-invoker</name>
         <invoker-mbean>jboss:service=invoker,type=iiop</invoker-mbean>
         <proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-factory>
         <proxy-factory-config>
         </proxy-factory-config>
      </invoker-proxy-binding>
   </jboss>
Sim, vocà precisa criar um arquivo jboss.xml, mesmo se vocà declarar o
<invoker-proxy-binding> no standardjboss.xml. PorÃm, o formato dele Ã
parecido, mas nÃo exatamente igual ao que vocà mencionou. Veja a
"cara" de um jboss.xml com um <invoker-proxy-binding> em:

http://wiki.jboss.org/wiki/Wiki.jsp?page=HowDoIConfigureAnMDBToTalkToARemoteQueue

Vocà vai ter que alterar os dados utilizados no link acima (inclusive
os dados do elemento <proxy-factory-config>, jà que o EJB de teste Ã
um bean de sessÃo sem estado, e nÃo um message-driven bean).

  - outra dÃvida à com relaÃÃo à propagaÃÃo do contexto de transaÃÃo.
caso a invocaÃÃo esteja sendo feita dentro de uma transaÃÃo, o
contexto de transaÃÃo nÃo à propagado dentro do objeto invocation?
caso nÃo, nosso invoker terà que tratar isso?
O contexto transacional, caso exista (ou seja, se a chamada for feita
dentro de uma transaÄÃo), Ã propagado junto com o objeto
MarshalledInvocation. O mÃtodo invoke(Invocation invocation) da classe
org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy faz o seguinte:

  public Object invoke(Invocation invocation)
     throws Exception
  {
     // We are going to go through a Remote invocation, switch to a
Marshalled Invocation
     MarshalledInvocation mi = new MarshalledInvocation(invocation);

     // Set the transaction propagation context
     mi.setTransactionPropagationContext(getTransactionPropagationContext());
     ...

Ou seja, o contexto transacional faz parte de um objeto MarshalledInvocation.

Valeu!
Qualquer dÃvida volte a escrever.

--
Ivan Neto