Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This transport handler allow to send and receive object via the AQMP protocol, implemented with RabbitMQ (see http://www.rabbitmq.com/). Further parameter information can be found here: http://www.rabbitmq.com/api-guide.html

Remark: In an older version, there was a publish_style. This will be ignored in future versions.

Options

  • queue_name: The queue to send to or receive from

  • exchange_name: The exchange to publish the message to
  • consumer_tag: The consumer tag

  • host: The host where the server runs

  • port: The port of the server (if not default)

  • username: Username (if required)

  • password: Password (if required)

  • virtualhost: The virtual host (if required)

    publish_style: Specifies how messages will be sent (default: workqueue)

  • workqueue: The queue will work as a work queue (See http://www.rabbitmq.com/tutorials/tutorial-two-java.html)

  • publishsubscribe: The queue will use the publish-subscribe pattern (See http://www.rabbitmq.com/tutorials/tutorial-three-java.html

    )

  • durable (true / false)

  • exclusive (true / false)
  • auto_delete (true / false)

In addition, arbitrary options can bedefined. They need to start with the prefix "rabbit." which will be removed in the actual argument. Example: ['rabbit.x-message-ttl',1000]  will be the argument 'x-message-ttl' with the long value '1000'

Work queue example

Code Block
/// Send elements to bus (work queue)
SENDER = SENDER({
              transport='RabbitMQ',
              wrapper='GenericPush',
              protocol='SimpleByteBuffer',
              datahandler='Tuple',
              SINK="SENDER",
              options=[
                ['QUEUE_NAME','nexmark'],
                ['CONSUMER_TAG','person'],
                ['HOST','localhost'],
                ['ByteOrder', 'Little_Endian'] 
              ]                        
            },
            nexmark:person
          )

/// Receive elements from bus (work queue)
input = ACCESS({
            transport='RabbitMQ',
            source= 'Receiver',
            wrapper='GenericPush',
            protocol='SimpleByteBuffer',
            datahandler='Tuple',
            options=[
			  ['PUBLISH_STYLE','workqueue'], 
              ['QUEUE_NAME','nexmark'],
              ['CONSUMER_TAG','person'],
              ['HOST','localhost'],
              ['ByteOrder', 'Little_Endian'], 
              ['durable',true], 
              ['exclusive',false], 
              ['auto_delete',false], 
              ['rabbit.x-message-ttl',1000]
            ],
            schema=[
              ['TIMESTAMP', 'STARTTIMESTAMP'],
              ['id', 'INTEGER'],
              ['name', 'STRING'],
              ['email', 'STRING'],
              ['creditcard', 'STRING'],
              ['city', 'STRING'],
              ['state', 'STRING']
            ]                                            
          }                
        )


Publish-subscribe example

...

Example