Pergunta

Assim, o modelo que preciso para minha solução é a seguinte:

Eu preciso consultar o banco de dados e com base no resultado, criar uma solicitação ao banco de dados de mais dados, obter a resposta e passá-lo para um grupo de portas, para que, com base em uma propriedade promovida, apenas uma das portas vai agir.

Parece que este:

No entanto, se você atribuir "Temp Out" para um grupo de porta de envio, a mensagem é enviada para todos os portos do grupo, independente dos filtros definidos em cada porta. No meu entendimento, este é o comportamento esperado (leia aqui ).

Então eu explorou outras opções, tais como o uso de Content Based Routing (amostra CBR) como no SDK. Você pode visualizar esta aqui .

Eu tentei isso e completamente removida a orquestração (seu realmente não é necessário). No entanto, existem grandes erros de roteamento / subscrição, e sobre novas pesquisas, parece que você não pode fazer isso se você tiver portas solicit-resposta. Alguns artigos sobre que aqui . Eu praticamente tenho o mesmo problema este utilizador faz.

No final, não importa para mim se eu usar uma orquestração ou não. No entanto, eu preciso de uma solução em que eu posso passar a mensagem para várias portas de envio, e eu só pode ter um realmente usar a mensagem e enviar. Isso é necessário para que eu possa editar e adicionar portas facilmente sem ter que modificar qualquer outra coisa ou decisões código rígido para a orquestração.

Foi útil?

Solução 2

Eu achei que o exemplo do modelo CBR faz, de facto trabalho. O problema com roteamento eram as assinaturas. Se eu fosse para inscrever-se uma porta de envio a uma porta solicit-resposta, eu tinha que definir o BTS.SPName (Enviar Nome da porta) filtro em vez do filtro BTS.ReceivePort. Ao fazer isso, a mensagem corretamente foi filtrar. Você está resposta teria trabalhado muito, mas requer o uso de uma orquestração que eu estava tentando evitar.

Outras dicas

Você pode usar direto Encadernação na porta de envio da orquestração para injetar a volta mensagem no db caixa de mensagem. Usando vários grupos de portas, cada grupo de porta pode então assinar directamente para o tipo de mensagem desejada e filtro em propriedades promovidas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top