传入消息通过关联逻辑链进行委托,以将消息路由到适当的响应消息。将传入消息与响应消息关联起来的多层方法提供了建模动态和现实的虚拟资产的灵活性和强大功能,这些虚拟资产的行为与真实资产相同,而且在某种程度上比可伸缩性更好。

接收到传入消息后,将出现以下内容:

  1. 虚拟资产选项:选择已部署的虚拟资产,根据在每个虚拟资产配置中配置的 HTTP 路径、JMS/MQ 队列名称或其他扩展/自定义标准响应消息。一个虚拟资产对应一个 .pva,因此这一步有效决定了将使用哪一个 .pva 文件来响应该消息。如果没有找到响应该消息的虚拟资产,则将向请求者返回错误消息。如果在同一个 HTTP 路径上部署了两个虚拟资产,则 Virtualize 将选择一个具有匹配相关条件的响应器。
    • 针对 HTTP 和 HTTPS,路径与定义的前缀匹配。 
    • 针对 JMS 和 MQ,消息总是从队列取出。 
    • 针对自定义传输,监听器设置被发送到用户的代码。
    • 如果没有与传入请求关联的虚拟资产,则将返回错误消息。

  2. 响应器选项:在虚拟资产的 .pva 文件的响应器套件中的响应器中选择一个响应器。响应器按顺序计算,在虚拟资产中采用深度优先的搜索模式。一旦响应器关联标准匹配传入消息(请参阅响应器关联性选项卡),则这个响应器将用于响应消息,并将关联移动到下一步。
    • 响应器按顺序检查(从上至下)。 
    • 响应器关联性用于确定是否应该使用响应器。 
    • 如果没有与传入请求关联的响应器,则将返回错误消息。 
    • 没有配置相关的响应器将始终匹配,这些响应器可以用作‘catch-all’或‘default’响应器。

  3. 响应:使用数据源关联构建和填充响应。 
    • 将传入消息中的值(按字面匹配或与表达式匹配)与数据源中的值进行比较,响应器使用匹配的行数据来创建响应消息。 
    • 如果没有找到匹配指定传入消息值的数据源行,则 Virtualize(使用默认的容错设置)将继续使用匹配的响应器关联为响应器搜索响应器套件。如果没有响应器满足响应器关联标准,则将报告一个错误。
    • 对于禁用了容错选项的响应器,任何数据源关联发生故障时,都将立马报告一个错误,并且 Virtualize 将停止搜索匹配的响应器。 
    • 在错误返回到请求器时,错误事件也将被记录到事件消息视图中(如果启用了对虚拟资产的监控)。
    • 如果使用多响应模式,则将从响应列表中选择用于选择响应消息的指定条件。根据多个响应模式响应消息列表中的每个响应的匹配条件计算 Select request message 字段,并返回第一个匹配的消息。如果没有找到匹配信息,则将向请求器返回一个错误,该错误将被记录到事件细节视图中(如果启用了对虚拟资产的监控,如获得对服务器事件的可见性中所述)。
    • 否则,使用数据源关联(如果通过数据源关联进行了参数化)或使用静态值(如果没有参数化)构建和填充响应。使用数据源关联时(请参阅数据源关联性选项卡),将传入消息中的值(按字面匹配或与表达式匹配)与数据源中的值进行比较,响应器使用匹配的行数据来创建响应消息。如果没有找到匹配指定传入消息值的数据源行,则 Virtualize(使用默认的容错设置)将继续使用匹配的响应器关联为响应器搜索响应器套件。如果没有响应器满足响应器关联标准,则将报告一个错误。而且,对于禁用了容错选项的响应器,任何数据源关联发生故障时,都将立马报告一个错误,并且 Virtualize 将停止搜索匹配的响应器。在错误返回到请求器时,错误事件也将被记录到事件细节视图中(如果启用了对虚拟资产的监控,如获得对服务器事件的可见性中所述)。
    • 对于 SQL 响应器,传入的查询与模板和相应的参数值相匹配(详情请参阅从数据库记录创建 SQL 响应器)。
    • Virtualize 将以 URL 编码的 POST 请求形式发送的文本作为 URL 参数,而不是将其放入请求文本中。可以灵活基于各个参数创建关联。
  • No labels