---
schema_version: "1"
id: 2c1bc1c148b0ae13b05060514b248eeba24229dccdac9a71978772203db2755b
title: Avoid Changing the AMQP Topography
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/amqp-connector/latest/amqp-topography.md
canonical_url: https://docs.mulesoft.com/amqp-connector/latest/amqp-topography
source_site: docs.mulesoft.com
content_type: documentation
content_hash: a08d68783dab70af868977eba960e7e53c6f5e4bba052a74e44df7c0610c578c
description: MuleSoft Documentation Site
release: "1.9"
latest: true
---
---
product: AMQP Connector
version: 1.9
is-latest-version: true
---

# Avoid Changing the AMQP Topography

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

You can set the `createFallbackExchange` and `createFallbackQueue` global config properties so that
the declaration of AMQP exchanges and queues is disabled. These parameters have been added for those
scenarios where it must be guaranteed that no changes to the AMQP topography will be attempted. In
those cases, both the declaration of queues and exchanges which do not previously exist will result
in an `AMQP:CREATION_NOT_ALLOWED` error.

For example, in the following flow:

```xml
<amqp:config name="Amqp_Config" createFallbackExchange="false" >
	<amqp:connection host="localhost" username="guest" password="guest" />
</amqp:config>


<flow name="mule-no-create-fallback-queue">
	<http:listener
		doc:name="Listener"
		config-ref="HTTP_Listener_config"
		path="/"/>
	<amqp:publish
		doc:name="Publish"
		config-ref="Amqp_Config"
		exchangeName="newExchange">
		<amqp:fallback-exchange-definition />
	</amqp:publish>
</flow>
```

If the `newExchange` exchange does not exist and the `createFallbackExchange` is set to `false`, an
invocation of the publish operation causes an `AMQP:CREATION_NOT_ALLOWED` error. Notice that the
`createFallbackExchange` can be overridden at the operation level and it can get an expression as a
value. For example:

<flow name="mule-no-create-fallback-queue">
	<http:listener doc:name="Listener"config-ref="HTTP\_Listener\_config" path="/"/>
	<amqp:publish
		doc:name="Publish"
		config-ref="Amqp\_Config"
		exchangeName="newExchange"
		createFallbackExchange="false">
		<amqp:fallback-exchange-definition />
	</amqp:publish>
</flow>

The use of `createFallbackQueue` parameter in a consume operation is analogous:

```xml
<amqp:config
	name="Amqp_Config"
	createFallbackQueue="false" >
	<amqp:connection
		host="localhost"
		username="guest"
		password="guest" />
</amqp:config>


<flow name="mule-no-create-fallback-queue">
	<http:listener
		doc:name="Listener"
		config-ref="HTTP_Listener_config"
		path="/"/>
	<amqp:consume
		config-ref="Amqp_Config"
		queueName="testQueue">
		<amqp:fallback-queue-definition
			removalStrategy="SHUTDOWN"
			exchangeToBind="exchangeToBindToQueue" />
	</amqp:consume>
</flow>
```

You can also use this parameter in the listener:

```xml
<amqp:config
	name="Amqp_Config"
	createFallbackQueue="false" >
	<amqp:connection
		host="localhost"
		username="guest"
		password="guest" />
</amqp:config>


<flow name="mule-no-create-fallback-queue">
	<amqp:listener
		config-ref="Amqp_Config"
		queueName="testQueue">
		<amqp:fallback-queue-definition
			removalStrategy="SHUTDOWN"
			exchangeToBind="exchangeToBindToQueue" />
	</amqp:listener>
	<amqp:consume
		config-ref="Amqp_Config"
		queueName="testQueue">
		<amqp:fallback-queue-definition
			removalStrategy="SHUTDOWN"
			exchangeToBind="exchangeToBindToQueue" />
	</amqp:consume>
</flow>
```
