10.3. Types of Providers

Two types of providers are currently supported:
  • Bus Providers: These specify provider details for “Event Driven” providers, that is, for listeners that are “pushed” messages. Examples of this provider type would be the <jms-provider>.
  • Schedule Provider: Provider configurations for schedule-driven listeners (that is, listeners that “pull” messages.)
A bus provider, such as <jms-provider> can contain multiple <bus> definitions. The <provider> can also be decorated with <property> instances relating to provider specific properties that are common in <bus> instances defined on that <provider>. For example, JMS may have “connection-factory”, “jndi-context-factory” and so on. Likewise, each <bus> instance can be decorated with <property> instances specific to that <bus> instance. (For example, JMS has “destination-type”, “destination-name” and so forth.)
As an example, a provider configuration for JMS would be as follows:
    <providers>
          <jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
              <jms-bus busid="Reconciliation">
                  <jms-message-filter
                      dest-type="QUEUE"
                      dest-name="queue/B"
                   />
              </jms-bus>
          </jms-provider>
      </providers>>

Important

Red Hat recommends using the specialized extensions of these types for creating configurations, namely <jms-provider> and <jms-bus> for JMS. The most important part of the above configuration is the busid attribute defined on the <jms-bus> instance. This is a required attribute on the <bus> element/type (including all of its specializations - <jms-bus> etc). This attribute is used within the <listener> configurations to refer to the <bus> instance on which the listener receives its messages.