Saber API - 已达到 TALimit 问题
Sabre API - ReachedTALimit issue
每当我尝试调用 SessionCreateRQ 时,我都会收到此响应
<soap-env:Fault>
<faultcode>soap-env:Client.ReachedTALimit</faultcode>
<faultstring>You have reached the limit of Host TAs allocated to you</faultstring>
<detail>
<StackTrace>com.sabre.universalservices.base.exception.ApplicationICEException: errors.authentication.USG_RESOURCE_UNAVAILABLE</StackTrace>
</detail>
</soap-env:Fault>
我如何跟踪打开的会话,如果我没有这些令牌,有没有办法终止未使用的活动会话令牌。
您在 SessionCreateRQ 中使用的 EPR 与连接池相关联(在概念上类似于数据库连接池)。 Saber 支持人员会建议您该池的最大大小是多少。当您有最大数量的并发会话活动时,调用 SessionCreateRQ 将 return 您收到的错误。
SessionCloseRQ 将释放连接回到 TA 池,或者它们将在 15 分钟不活动后自动释放。如果您与其他 EPR(或不同应用程序中的相同 EPR)共享同一个池,并且您无权访问这些会话令牌,那么除了等待那些之外,您无法释放 TA 池中的连接会话关闭(通过调用 SessionCloseRQ 的其他应用程序)或超时。
有几种方法可以跟踪打开的会话,与 connection pooling
相关。我见过用于此目的的数据库 table。创建了一个 SessionCreateRQ 包装器服务,用于检查数据库中是否存在任何现有的未使用令牌 table。如果是,则现有令牌被 returned,否则将调用 saber SessionCreateRQ 服务来创建一个新令牌,然后将其插入到 table 中。 SessionCloseRQ 包装器服务会在数据库 table 中将该令牌标记为 free
,而无需调用底层 Sabre SessionCloseRQ 服务。这是高级概念,还有其他需要考虑的实施细节,例如如果您要重用它们可能与会话关联的 saber 事务,以及处理 15 分钟后超时并需要从中删除的免费令牌table。拥有该数据库 table 然后可以让您看到所有正在使用或空闲的会话令牌,并让您管理连接池的大小。
您已达到凭据的最大打开会话数。
您现在必须将未使用的会话关闭到 return 以达到会话打开操作限制。
为避免这种情况,您必须创建会话管理器或管理工作流中每个打开的会话的打开和关闭。
如果您在使用 BargainFinderMaxRQ 或 AdvancedAirshoppingRQ 服务时遇到此问题,那么我建议使用 TokenCreateRQ 服务来获取航班可用性。
TokenCreateRQ 的管理由 SABRE 完成,在这种情况下,您可以免费使用 SessionCreateRQ 会话,用于预订创建、预订问题等。
每当我尝试调用 SessionCreateRQ 时,我都会收到此响应
<soap-env:Fault>
<faultcode>soap-env:Client.ReachedTALimit</faultcode>
<faultstring>You have reached the limit of Host TAs allocated to you</faultstring>
<detail>
<StackTrace>com.sabre.universalservices.base.exception.ApplicationICEException: errors.authentication.USG_RESOURCE_UNAVAILABLE</StackTrace>
</detail>
</soap-env:Fault>
我如何跟踪打开的会话,如果我没有这些令牌,有没有办法终止未使用的活动会话令牌。
您在 SessionCreateRQ 中使用的 EPR 与连接池相关联(在概念上类似于数据库连接池)。 Saber 支持人员会建议您该池的最大大小是多少。当您有最大数量的并发会话活动时,调用 SessionCreateRQ 将 return 您收到的错误。
SessionCloseRQ 将释放连接回到 TA 池,或者它们将在 15 分钟不活动后自动释放。如果您与其他 EPR(或不同应用程序中的相同 EPR)共享同一个池,并且您无权访问这些会话令牌,那么除了等待那些之外,您无法释放 TA 池中的连接会话关闭(通过调用 SessionCloseRQ 的其他应用程序)或超时。
有几种方法可以跟踪打开的会话,与 connection pooling
相关。我见过用于此目的的数据库 table。创建了一个 SessionCreateRQ 包装器服务,用于检查数据库中是否存在任何现有的未使用令牌 table。如果是,则现有令牌被 returned,否则将调用 saber SessionCreateRQ 服务来创建一个新令牌,然后将其插入到 table 中。 SessionCloseRQ 包装器服务会在数据库 table 中将该令牌标记为 free
,而无需调用底层 Sabre SessionCloseRQ 服务。这是高级概念,还有其他需要考虑的实施细节,例如如果您要重用它们可能与会话关联的 saber 事务,以及处理 15 分钟后超时并需要从中删除的免费令牌table。拥有该数据库 table 然后可以让您看到所有正在使用或空闲的会话令牌,并让您管理连接池的大小。
您已达到凭据的最大打开会话数。 您现在必须将未使用的会话关闭到 return 以达到会话打开操作限制。 为避免这种情况,您必须创建会话管理器或管理工作流中每个打开的会话的打开和关闭。 如果您在使用 BargainFinderMaxRQ 或 AdvancedAirshoppingRQ 服务时遇到此问题,那么我建议使用 TokenCreateRQ 服务来获取航班可用性。 TokenCreateRQ 的管理由 SABRE 完成,在这种情况下,您可以免费使用 SessionCreateRQ 会话,用于预订创建、预订问题等。