Caramba... to pior q bebado aki

estou revisando o fluxo de execução dentro do blazeds agora...

verifiquei que a requisição recebida no BlazeDS dentro da Classe:


flex.messaging.endpoints.amf.BatchProcessFilter

método: invoke

o parametro recebido: ActionContext context

seu respectivo número de mensagens o valor é o mesmo da quantidade de
requisições que eu disparei no Flex
e o atributo: requestMessage.bodies possui a quantidade e referências dos
processamentos solicitados...

nessa classe BatchProcessFilter ele faz um loop nesses bodies... por isso
que tudo é processado de uma vez no lado do java e depois retorna tudo
junto...

segue a descrição do fluxo do processamento no BlazeDS até chegar a classe
mapeada no destination:

1 - flex.messaging.MessageBrokerServlet ( linha:353 )
2 - flex.messaging.endpoints.BaseHTTPEndpoint ( linha:291 )
3 - flex.messaging.endpoints.amf.SerializationFilter ( linha:166 )
4 - flex.messaging.endpoints.amf.BatchProcessFilter ( linha:67 ) ** nessa
classe possui o loop **
5 - flex.messaging.endpoints.amf.SessionFilter ( linha:44 )
6 - flex.messaging.endpoints.amf.LegacyFilter ( linha:158 )
7 - flex.messaging.endpoints.amf.MessageBrokerFilter ( linha:103 )
8 - flex.messaging.endpoints.AbstractEndpoint ( linha:1005 )
9 - flex.messaging.MessageBroker ( linha:1400 )
10 - flex.messaging.services.RemotingService ( linha:183 )
11 - flex.messaging.services.remoting.adapters.JavaAdapter
12 - [ Classe Java mapeada no destination ]

depois realiza o caminho inverso

--

bom como  vi que no BlazeDS ele recebeu em 1 única requisição dentro do
objeto, todas as requests encapsuladas, agora tenho que descobrir pq diabos
o Flex está unindo em uma request

pois até onde já usei esta é a primeira vez que observo esse comportamento
:P

*sinistro *hehe








Em 21 de dezembro de 2010 14:25, Mário Júnior <juninho...@gmail.com>escreveu:

> Sim, ele poderia Michel.. e na verdade é oq já está acontecendo, mas não é
> oq ele quer.
>
>
> Veja bem, tentando resumir a história até para clarearmos melhor a idéia:
>
> - Por toda vida soubemos que as requisições são assíncronas.
> - Mas no caso do Erko, ele está disparando 8 requisições para o mesmo
> destination (a mesma classe, mas métodos diferentes)
> - Em tese, cada retorno independe do outro, certo? Pois não é isso q está
> acontecendo... a requisição 8 só volta após o processamento da 7 for
> concluida, e essa após a 6, e dessa a 5, assim por diante.
>
>
> Ou seja, já está *síncrono* e não *assíncrono*, como todos esperam.
>
> Por isso q eu acho q é um "bug" ou um "comportamento correto, mas não
> documentado" do BlazeDS. A Factory cria apenas um objeto RemotingService (já
> q todas as requisição apontam para a mesma classe do back-end), e então
> consome os métodos 'em ordem', mas erroneamente segundo sua própria
> documentaçao os objetos são criados por request... enfim, to achando melhor
> classificar isso como um bug mesmo.
>
>
> []s
>
>
>
> Em 21 de dezembro de 2010 14:12, Michel Fernandes 
> <miche...@gmail.com>escreveu:
>
> Vc nao pode chamar no final/result de cada requisicao a proxima,
>> cascateando?
>>
>> Em 21/12/2010 13:33, "Mário Júnior" <juninho...@gmail.com>escreveu:
>>
>>
>> Oq comprova q o problema não tem relação com o swiz diretamente.
>>
>> Conforme nossa conversa ontem, acho q pode ser uma das duas coisas (ou as
>> duas juntas, hehe): *Bug na Factory do BlazeDS.*
>>
>> A documentação diz claramente que um RemotingService (objeto que encapsula
>> seu destination - a sua classe de serviço) é criado com um scope "request"
>> por default. Ou seja, *para cada request um novo objeto de serviço é
>> criado*. Como são 8 requisiçoes, logo deveríamos ter 8 objetos
>> diferentes, mas não é isso oq acontece de fato. Pelo comportamento q vc me
>> disse ontem, me parece q a Factory cria apenas 1 objeto e então executa os
>> métodos um-a-um, tornando o processo síncrono.
>>
>> Portanto, precisamos ver se isso é um bug mesmo, ou um comportamento "nao
>> documentado". Por um lado é até bom não criar 8 instancias do mesmo objeto
>> no servidor - poupa memória e processamento - mas ao menos isso poderia
>> ficar mais claro na documentação.
>>
>>
>> Vc chegou a fazer aquele outro teste que sugeri? Um método em outra classe
>> ... coloque um thread.sleep nesse metodo e chame os outros 7 da primeira
>> classe, só pra ver se o processamento seguirá em threads diferentes (agora q
>> se tem 2 destinations diferentes)
>>
>>
>> []'s
>>
>>
>>
>>
>>
>>
>>
>> Em 21 de dezembro de 2010 11:02, Erko Bridee de Almeida Cabrera <
>> erko.bri...@gmail.com> escreveu:
>>
>>
>> >
>> > Ah para completar...
>> >
>> > conversando com o Mario Junior, ele sugeriu um teste isolado:
>> >
>> > 1 MX...
>>
>>
>>
>>
>> --
>> Mario Junior
>> http://blog.mariojunior.com/
>> @mariojunior
>>
>> --
>>
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie u...
>>
>>  --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>> Para sair da lista, envie um email em branco para
>> flexdev-unsubscr...@googlegroups.com
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>
>
>
> --
> Mario Junior
> http://blog.mariojunior.com/
> @mariojunior
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
> Para sair da lista, envie um email em branco para
> flexdev-unsubscr...@googlegroups.com
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>



-- 
Att,
Erko Bridee de Almeida Cabrera
*TechDev   : *http://blog.erkobridee.com/
*Gospel    : *http://gospel.erkobridee.com/
*Twitter   : *http://twitter.com/ErkoBridee
*Currículo : *http://netcarreiras.com/prof.html?uid=11410

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a