全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 阿里云办公 培训与认证 物联网
消息队列 MQ

根据 Message Key 查询轨迹

更新时间:2017-09-19 15:40:33   分享:   

本接口限企业铂金版客户专用,请前往铂金版购买页面查看详情。


OnsTraceQueryByMsgKey 接口通过传入 Topic 和 Message Key 创建轨迹查询任务,得到该查询任务的任务 ID。

使用场景

业务方记录了消息的 Message Key ,并需要根据此 Key 查询该消息的投递轨迹信息,即可使用 OnsTraceQueryByMsgKey 接口创建查询任务。该接口返回任务 ID 后 ,再根据 OnsTraceGetResult 接口传入任务 ID 即可获取查询结果。

请求参数列表

名称 类型 是否必须 描述
OnsRegionId String 当前查询 MQ 所在区域,可以通过 OnsRegionList 方法获取
OnsPlatform String 该请求的来源,默认是从 POP 平台
PreventCache Long 用于 CSRF 校验,设置为系统当前时间即可
Topic String 需要查询的消息的 Topic
MsgKey String 需要查询的消息的 Message Key
BeginTime Long 查询的时间范围的起始时间点
EndTime Long 查询的时间范围的结束时间点

返回参数列表

名称 类型 描述
RequestId String 为公共参数,每个请求独一无二
HelpUrl String 帮助链接
QueryId String 该查询任务的任务 ID,根据该 ID 再调用 OnsTraceGetResult 接口获取详细结果

相关 API

  • OnsTraceQueryByMsgId:根据 Message ID 精确查询消息轨迹。
  • OnsTraceGetResult:根据查询任务 ID 获取轨迹信息。

使用示例

  1. public static void main(String []args) {
  2. String regionId = "cn-hangzhou";
  3. String accessKey = "XXXXXXXXXXXXXXXXX";
  4. String secretKey = "XXXXXXXXXXXXXXXXX";
  5. String endPointName ="cn-hangzhou";
  6. String productName ="Ons";
  7. String domain ="ons.cn-hangzhou.aliyuncs.com";
  8. /**
  9. *根据自己需要访问的区域选择Region,并设置对应的接入点
  10. */
  11. try {
  12. DefaultProfile.addEndpoint(endPointNameregionIdproductNamedomain);
  13. } catch (ClientException e) {
  14. e.printStackTrace();
  15. }
  16. IClientProfile profile= DefaultProfile.getProfile(regionIdaccessKeysecretKey);
  17. IAcsClient iAcsClient= new DefaultAcsClient(profile);
  18. OnsTraceQueryByMsgKeyRequest request = new OnsTraceQueryByMsgKeyRequest();
  19. /**
  20. *ONSRegionId是指你需要API访问MQ哪个区域的资源.
  21. *该值必须要根据OnsRegionList方法获取的列表来选择和配置,因为OnsRegionId是变动的,不能够写固定值
  22. */
  23. request.setOnsRegionId("daily");
  24. request.setPreventCache(System.currentTimeMillis());
  25. request.setAcceptFormat(FormatType.JSON);
  26. request.setTopic("XXXXX");
  27. request.setMsgKey("XXXXX");
  28. request.setBeginTime(System.currentTimeMillis()-1000*3600*24);
  29. request.setEndTime(System.currentTimeMillis());
  30. try {
  31. OnsTraceQueryByMsgKeyResponse response = iAcsClient.getAcsResponse(request);
  32. System.out.print(response.getQueryId());
  33. } catch (ServerException e) {
  34. e.printStackTrace();
  35. } catch (ClientException e) {
  36. e.printStackTrace();
  37. }
本文导读目录
本文导读目录
以上内容是否对您有帮助?