AMQP 1.0 Connector is used for communicating messages to and from AMQP 1.0 compliant messaging systems. AMQP 1.0 is a network protocol at the Application Layer which give a standard specification on how the connections and sessions needs to be established and how messages are sent and acknowledged. For more info on AMQP, visit http://www.amqp.org/sites/amqp.org/files/amqp.pdf.
There are various AMQP 1.0 messaging applications, like Azure Service Bus (ASB), ActiveMQ. The current version of the connector is tested and verified to be working with Azure Service Bus. Some of the broker specific feature, like ReceiveMode, are not yet supported. Metadata from source that comes to the Connector is handled and sent as a header to AMQP messages.
Messaging
Publishing to queue and topics can be done using the AMQP Connector. Mandatory properties for enabling publisher are Hosts, Username, Password, and Queue/Topic name. Publishing text and binary file is supported by the AMQP Connector. For enabling broker-specific features, Vendor must be selected. For AMQP generic features, `Common` can be selected in Vendor.
Receiving from queues and topics is supported by AMQP Connector. To enable to the receiver, select the EnableReceiver checkbox. Mandatory properties for receiver are Hosts, Username, Password, and SubscribeTo name. Receiving text and binary files is supported. Creating an ASB topic subscriber requires that you create a subscription for that topic in ASB portal and provide that name in SubscribeTo in the format <topicName>/subscribers/<subscriptionName>
. For ASB Queue subscription the queue name must be entered in SubscribeTo field.
The MessageSelector feature is not currently functional as it is not supported by ASB.
Security
AMQP 1.0 can be implemented with SSL/TLS. In the current version, TLS is supported only with ASB. ASB by default enforces TLS.
Duplicate Detection
The AMQP Connector has Duplicate Detection capability using the JMS Message ID to identify duplicate messages. This feature can be enabled by checking DuplicateDetection checkbox in AMQP10 connector configuration. After the expiry of DuplicateDetectionTimeout, the JMS Ids are deleted from the cache, so if a duplicate message arrives after the timeout, it cannot be detected. This feature would fail if multiple receivers are in a cluster with the same subscription because the message id cache is maintained within the local instance.
For filtering only AMQP-specific configuration, select Connect.Advanced from the configuration screen.
File size limit
File size limit (in the Connector) can be configured by setting `MessageMaxByteSize`. The default size is 1 MB. By default, ASB broker has a message size limit of 1 MB. To increase the message size, both of these settings must be changed.
Limitations
- Volatile subscriptions are currently not supported with ASB.
- Transactions are not supported with ASB.
AMPQ Connector Properties
Each instance of the AMPQ Connector can be configured using the following settings:
Property | Description | Required |
---|---|---|
Broker Url | The broker url. | Yes |
Vendor | The broker vendor. Currently supported values are ’AzureServceBus’ and 'Common' | Yes |
Topics | AMQP topics. Comma-separated (topic1,topic2) Valid pattern: [([a-zA-Z0-9]|-|_|\.|,){0,249}] |
|
Queue | Name of the Queue Valid pattern: [([a-zA-Z0-9]|-|_|\.|,){0,249}] |
|
Message Max Size Bytes | Message size limit for sending. Increasing this value will enable sending a larger file from the connector. Broker configuration also needs to be changed to receive a larger file. | Yes |
Username | user / sas key name using which the connection is established. Valid pattern: [([a-zA-Z0-9]|-|_|\.|,){0,249}] |
Yes |
Password | password or sas key using which the connection is established | Yes |
Enable Receiver | To enable to receiver | |
Subscribe To | Name of the entity to subscribe to (Queue Name/Subscription name) | |
Duplicate Detection | Enabling duplicate detection ignores the duplicate messages received from the broker. Duplicates are detected using the message ID. | |
Duplícate Detection Timeout (seconds) | Timeout for duplicate elements to be detected. If a duplicate message is received after this timeout has expired for the message, the duplicate will not be detected. | |
Delivery Mode | This is the default delivery mode. If we use this delivery mode, then it forces the JMS provider to take extra care to avoid the loss of a message if a provider failure occurs. If a provider failure occurs, then the message will be persisted. When the provider comes up the message will be delivered. This ensures reliable message delivery. | Yes |
Publish To Destination | Publish to Queue/Topic | Yes |
Subscription Destination | Subscribe to Queue/Topic | Yes |
Acknowledgement Mode | There are three acknowledge modes available: CLENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, and DUPS_OK_ACKNOWLEDGE | Yes |
Message Selector | Used by messaging application that needs to filter the messages it receives. A message selector is a String that contains an expression. The syntax of the expression is based on a subset of the SQL92 conditional expression syntax. Example value is NewsType = 'Sports' OR NewsType
= 'Opinion' |
|
Message Properties | Additional message properties to be set (Message metadata/headers) | |
Amqp Vhost | The vhost to connect to. Used to populate the SASL and Open hostname fields. Default value is the main hostname from the Connection URI. | |
Amqp Sasl Layer | Controls whether connections should use a SASL layer or not. Default value is 'true'. | |
UseSsl | If the connection is over SSL. Default value is 'true'. | |
Amqp Sasl Mechanisms | Which SASL mechanism(s) the client should allow to be selected if offered by the server and usable with the configured credentials. Comma-separated list if specifying more than 1 mechanism. The client-supported mechanisms are currently EXTERNAL, SCRAM-SHA-256, SCRAM-SHA-1, CRAM-MD5, PLAIN, ANONYMOUS, and GSSAPI for Kerberos. Default is to allow selection from all mechanisms except GSSAPI, which must be specified here to enable. |
|
Amqp Max Frame size | The max-frame-size value (in bytes) that is advertised to the peer. Default is 1048576 |
|
Amqp Drain Tmeout (seconds) | The time in milliseconds that the client will wait for a response from the remote peer when a consumer drain request is made. If no response is seen in the allotted timeout period, the link is be considered failed and the associated consumer is closed. Default is 60000 (1 minute). |
|
Amqp Idle Timeout (seconds) | amqp.idleTimeout The idle timeout in milliseconds after which the connection will be filled if the peer sends no AMQP frames. Default is 60000 (1 minute). | |
Amqp Alow Non Secure Redirects | Controls whether the client allows an AMQP redirect to an alternative host over a connection that is not secure when the existing connection is secure. For example, redirecting an SSL/TLS connection to a raw TCP connection. Default is false. | |
Transport Key Store Location | Default is to read from the system property javax.net.sslkeyStore | |
Transport Key Store Password | Default is to read from the system property javax.net.ssLkeyStorePassword | |
Transport Trust Store Loca Don | Default is to read from the system property javax.net.ssLtrustStore | |
Transport Trust Store Password | Default is to read from the system property javax.net.ssltrustStorePassword | |
Transport Key Store Type | Default is to read from the system property javax.net.ssLkeyStoreType | |
Transport Context Protocol | The protocol argument used when getting an SSLContext. Default is TLS, or TLSvl.2 if using OpenSSL | |
Transport Enabled Cipher Suites | A comma-separated list of cipher suites to enable. No default, meaning the context-default ciphers are used. Any disabled ciphers are removed from this list. | |
Transport Disabled Protocols | A comma-separated list of protocols to disable. Protocols listed here are removed from the enabled protocol list. Default is SSLv2Heto. | |
Transport Trust All | If enabled, trust the provided server certificate implicitly, regardless of any configured trust store. Default is false. | |
Transport Verify Host | If enabled, verify that the connection hostname matches the provided server certificate. Default is true. | |
Transport Key Alias | The alias to use when selecting a key pair from the key store is required to send a dent certificate to the server. No default. | |
Transport Use Open SSL | If enabled, use native OpenSSL !>raries for SSL/TLS connections if available. Default is false. | |
System Scheme Name | The URI scheme name used as a shortcut to this host. Valid pattern: [([a-zA-Z0-9]|-|_|\.|,){0,249}] |
|
System Public | A switch that indicates whether the connector is public. |
Comments
0 comments
Please sign in to leave a comment.