Using the AMQP Destination Component

The AMQP Destination Component is an SSIS data flow pipeline component that can be used to send messages to an AMQP-1.0 compliant broker. There are three pages of configuration:

  • General
  • Columns
  • Error Handling

General Page

SSIS AMQP Destination

Connection Manager

The destination component requires an active connection to AMQP. The Connection Manager drop-down will show a list of all AMQP Connection Managers that have been created in the current SSIS package.

Action

The Action specifies how you want to write to the AMQP queue service. There are 2 Actions:

  • Create
  • Delete(since v21.2)
Target

The target queue of the messages that will be sent to your AMQP server.

Durable

Specify if the Destination is durable to survive when a broker restart.

Body Column Type

The Body Column Type allows you to specify whether you want to write the binary content of the message or the text content of the message to AMQP. There are two different modes available for Message column types: Binary and Text. The default setting is Text.

Encoding

The encoding that will be used to convert the message body to a byte array when sending the message. This option is only available when the Message Column Type is Text.

Refresh Component Button

Clicking the Refresh Component button causes the component to retrieve the latest metadata and update each field to its most recent metadata. It will remove any custom fields that have been added to the columns page.

Map Unmapped Fields Button

By clicking this button, the component will try to map any unmapped attributes by matching their names with the input columns from upstream components. This is useful when your source component has recently added more columns, in which case you can use this button to automatically establish the association between input columns and unmapped destination attributes.

Clear All Mappings Button

By clicking this button, the component will reset all your mappings in the destination component.

Expression fx Icon

Click the blue fx icon to launch SSIS Expression Editor to enable dynamic updates of the property at run time.

Generate Documentation Icon

Click the Generate Documentation icon to generate a Word document that describes the component's metadata including relevant mapping, and so on.

Columns Page

The Columns page allows you to map the columns from upstream components to destination attributes.

On the Columns page, you will see a grid as shown below.

SSIS AMQP Destination - columns

  • Input Column: You can select an input column from an upstream component here.
  • AMQP Field: The attribute/field that you want to write data to.
  • Data Type: This column indicates the type of value for the current attribute.
  • Unmap: This button provides a convenient way to unset the mapping for the selected attribute/field.

Error Handling Page

The Error Handling page allows you to specify how errors should be handled when they happen.

SSIS AMQP Destination - error handling

There are three options available:

  1. Fail on error
  2. Redirect rows to error output
  3. Ignore error

When the Redirect rows to error output option is selected, rows that failed to write to AMQP will be redirected to the 'Error Output' of the Destination Component. As indicated in the screenshot below, the green output connection represents rows that were successfully written, and the red 'Error Output' connection represents erroneous rows. The 'ErrorMessage' output column found in the 'Error Output' may contain the error message that was reported by AMQP or the component itself.

SSIS AMQP Destination - error output

Note: Use extra caution when selecting Ignore error option, since the component will remain silent for any errors that have occurred.

Target Address

For targets, addresses are:


Addresses
ActiveMQ

{queue_name}

topic://{topic_name}.

RabbitMQ

{queue_name}

/queue/{queue_name}

/amq/queue/{queue_name}

/topic/{routing_key}

/exchange/{exchange_name}

/exchange/{exchange_name}/{routing_key}

/queue

Azure Service Bus

{queue_name}

{topic_name}

{event_hub_name}

{event_hub_name}/Partitions/{partition_number}