Version 12

    This page describes the mapping between JMS concept of JBoss Messaging and MINA concept.

     

    It is planned for JBoss Messaging 2.0 to use MINA as the transport layer between JMS clients and server peers

     

    Tracked by JBMESSAGING-544.

     

     

    This integration is discuted on the design forum

     

    Requirements

     

    • support for TCP/IP, HTTP (with or without SSL)

    • message can be sent by either server or client

    • send heartbeat sent by clients (see DIRMINA-350)

    • send one-way message

    • send one-way message and be called back later

    • send message and block until a response is received

    • define a wireformat based on JBoss Messaging Core API (JMS agnostic)

     

     

          +----------------+                           +------+
          | Core Messaging |                           | MINA |
          +----------------+                           +------+
    
                                               IoConnector   IoAcceptor
                                                 (client)     (server)
                                                      \1        /1
                                                       \       /    
                           1                         1  \1    /*    
                Connection --------------------------- IoSession        
                    |1              TCP/IP [SSL]                      
                    |               HTTP[S]                       
                    |*                                     
                 Session                  
                    |1
                    |
                    |*
                 Consumer
    

     

    Compared to JMS, Producer and Browser features are handled by Core Session.

     

    • 1 IoSession per JBM Connection

    • When an IoSession receives a MINA message, it must forward it to the proper Core Objects

      • -> each Core objects must have a unique ID

     

    MINA messages sent by Core Messaging Client:

    • Connection

      • start/stop

      • set the client ID

      • send a transaction

    • Session

      • ack/cancel delivery(ies)

      • add/delete temporary destination

      • unsubscribe from a topic

      • send a Message

    • Consumer

      • change throttle rate

      • Connection/Session/Consumer/Browser

      • close

     

    MINA messages sent by Core Messaging server

     

    • ConnectionFactory

      • receive an updated cluster topology view

    • Consumer

      • receive a Message

     

    MINA blocking messages sent by Core Messaging Client

    • ConnectionFactory

      • create Connection

      • get cluster topology view

    • Connection

      • create Session

      • get client ID

      • get ID block

      • get prepared transactions

    • Session

      • create Producer/Consumer/Browser/Destination

    • Browser

      • has next message

      • next message

      • next message block

    • Connection/Session/Consumer/Browser

      • closing