sexta-feira, 12 de abril de 2013

JMS Bridge JBoss

Salve galera,

Nesse poste vou continuar o assunto JMS, mas agora como configurar uma Bridge no JBoss. No poste http://ricardobocchi.blogspot.com.br/2013/04/jms-bridge.html eu mostrei como configurar uma Bridge JMS no glassfish, com toda sua simplicidade de configuração. Também expliquei alguns conceitos sobre JMS e JMS Bridge, então nesse post, somente escreverei sobre a configuração no JBoss.

A verdade é que tive bastante dificuldade em implementar no JBoss aquela mesma estrutura que fiz no glassfish, pois a versão corrente JBoss As 7.1.1 não tem implementação integrada de Bridge, com isso ela deve ser configurada diretamente no HornetQ, que é o servidor JMS embutido no JBoss. Mas o problema é que a documentação de como integrar tudo, de modo que funcione, na minha opinião, é bem incompleta. Por exemplo, para mim que nunca tinha usado o JBoss ficou meio que inviavel descobrir onde colocar os arquivos do HornetQ de modo que ao subir o JBoss, ele reconhece as configurações de Bridge. Eu queria que a estrutura fosse bem simples, usando o servidor JMS embutido, e não ter que subir um servidor JMS para depois subir um JBoss e fazer a integração. Bom, depois de muito apanhar e não sair do chão com a bendita Bridge, eu descobri do detalhe da não implementação através do JBoss, e descobri que para a nova versão a funcionalidade estaria presente. Com isso, baixei a versão de desenvolvimento do JBoss, compilei e ai sim a configuração de Bridge ficou fácil. Dito isso, vou apenas postar as configurações usadas.

A versão do JBoss usada foi:  jboss-as-8.0.0.Alpha1-SNAPSHOT

Abra o arquivo

jboss-as-8.0.0.Alpha1-SNAPSHOT\standalone\configuration\standalone.xml

Primeiramente, para habilitar JMS no JBoss, temos que adicionar a extenção do subsystem dentro da tag <extensions>:






Agora vamos adocionar o sub sistema de mensageria dentro da tag <profile>:


        
        
            
                true
                102400
                2

                
                    
                    
                        
                    
                    
                    
                

                
                    
                    
                        
                        
                    
                    
                

                
                    
                        
                        
                        
                        
                    
                

                
                    
                        jms.queue.DLQ
                        jms.queue.ExpiryQueue
                        0
                        10485760
                        BLOCK
                        10
                    
                

                
                    
                        
                            
                        
                        
                            
                        
                    
                    
                        
                            
                        
                        
                            
                            
                        
                    
                    
                        
                        
                            
                        
                        
                            
                        
                    
                

                
                    
                        
                        
                    
                    
                        
                        
                    
                
            
            
                
                    
                    
                    replicador
                    replicador123*
                    
                        
                        
                        
                        
                        
                    
                
                
                    
                    
                    replicador
                    replicador123*
                
                AT_MOST_ONCE
                500
                1
                500
                500
                true
            
   
                
                    
                    
                    replicador
                    replicador123*
                
                
                    
                    
                    replicador
                    replicador123*
                    
                        
                        
                        
                        
                        
                         
                
                AT_MOST_ONCE
                500
                1
                500
                500
                true
               
        
     

Com essa configuração foram criados dois topicos: Um para enviar mensagens ao outro servidor, e um para receber mensagens do outro servidor. Em source, vocês devem mudar o ip remoto para suas configurações de teste.

 Não vou explicar os detalhes da criação das filas, pois basta procurar nos links abaixo, e se você tem noção do que é uma fila, olhando as tags você consegue se achar:

JMS JBoss Documentação
Artigo que explica como configurar filas e tópicos de forma detalhada
JMS Bridge JBoss

 Um detalhe importânte, é que devemos criar os usuários no JBoss para acessarmos as filas remotamente via Bridge. Na pasta bin do JBoss, temos o utilitário add-user, onde você cria usuários para gerenciamento do appserver e também os usuários que podem ter acesso as aplicações remotamente via lookup. Nessa configuração que fiz, tenho o usuário replicador com senha replicador123, que faz parte do grupo guest.

Ah, também nessa versão do JBoss, temos que configurar um módulo:



    
        
    
 
 
 
    
        
        

    
 
 
    
       
       
       
       
       
       
       
       
    


Esse módulo, fica em


jboss-as-8.0.0.Alpha1-SNAPSHOT\modules\system\layers\base\br\com\mobilemind\main\module.xml

Pelo que parece, esse módulo precisa ser configurado para que a Bridge funciono. Falo isso, por que a versão ainda está em desenvolvimento, então alguma coisa ainda pode mudar.

Bom, era isso.. depois de apanhar um pouco, venho aqui e compartilho o que conseguie para que talvez alguém possa poupar seu tempo de error idiotas.

Por hora é só, qualquer dúvida é só postar! abrass

Nenhum comentário:

Postar um comentário