目标路由路径
路由路径定义消息必须通过才能到达目标总线目标的中间总线目标的顺序列表。路由路径用于将几个目标上配置的调解应用于按路径发送的消息。
图 1. 路由路径

正向路由路径标识了一个总线目标列表,在将消息从生产者发送到最后一个目标(使用者从此目标检索消息)时,该消息必须通过所有这些目标。自动构造请求/应答消息的反向路由路径,而且其标识目标的列表,该列表包含将任何应答消息从使用者发送回生产者时应通过的所有目标。使用反向路由路径允许应答消息采用不同的路由回到生产者,因此可应用更多的调解。
当消息到达路径中的目标时,调解可以操纵正向路由路径中的条目,以更改消息通过的一系列目标。如果调解操纵正向路由路径,并且为期望应答的请求消息设置了反向路由路径,那么调解要负责对反向路由路径做出任何相应更改。
可以将没有调解的目标包括在路由路径中,以便将来提供将指定的调解应用于该目标的选项。
请勿将主题空间包括在正向路由路径中。
如果路由路径的首个元素不表示总线已知的目标,那么将消息发送到为当前目标定义的异常目标。
正向路由路径
生产者可以连接到某个目标,然后将消息按正向路由路径传递到使用者使用的目标位置。
- 生产者可以在原始消息中设置正向路由路径。
- 管理员可以在目标上配置缺省正向路由路径,以供不包含正向路由路径的消息使用。
将消息发送至目标时(直接发送到目标,或者通过遵循其正向路由路径发送到目标),并且在调用目标上的任何调解之前,将把该目标的缺省正向路由路径属性应用于该消息的正向路由路径,如下所示:
- 如果入局消息包含空的正向路由路径,那么将把该消息中的正向路由路径设置为目标的缺省正向路由路径属性值(也可能为空或者为 null)。
- 如果入局消息有非空正向路由路径,那么将该消息保持不变。一旦应用了任何调解,就会将消息转发至此路径中的下一个目标。当到达该路径中的最后一个目标时,由目标处理消息。
反向路由路径
生产者可以通过指定它发送的消息中的应答目标来要求应答消息。当消息按正向路由路径从一个目标传递到另一个目标时,动态构造反向路由路径。
将消息发送至目标时(直接发送到目标,或者通过遵循其正向路由路径发送到目标),并且在调用目标上的任何调解之前,将把该目标的应答目标属性应用于该消息的任何非空反向路由路径,如下所示:
- 如果入局消息具有非空反向路由路径(表明需要进行应答),那么将把目标的应答目标属性值添加到该消息中的反向路由路径前面(表明应答消息必须在访问反向路由路径中已包含的任何目标之前访问此新的应答目标)。
- 如果入局消息具有空的反向路由路径(表明不需要进行应答),那么反向路由路径会保持不变。