某些 Web 服务方法会返回由唯一整型句柄表示的列表。 列表只是一个由相同类型对象组成的集合。 列表在处理较大的对象集合(例如,系统中的所有联系人)时特别有用,因为您可以在列表范围内检索有关项目的信息。 缺点是,您必须进行更多的方法调用以获得列表句柄、检索信息,最后释放该列表句柄。 如果预期的列表行数少,则可以使用不包含列表句柄的方法,如 doSelect()。
以下内容描述了有关列表的详细信息:
列表可能只包含单一类型的对象,例如,联系人列表、组织列表等等。
例如,如果在获得所有联系人的列表对象后,又将另一个联系人添加至系统,则不会在列表中反映该更新。 必须获得另一个列表句柄才能获取最新数据。
列表请求会返回表示相同类型对象列表的整型句柄。 不向客户端发送其它信息。 客户端可以查询列表中有关列表行的特定信息。 客户端完成一个列表后,必须使用 freeListHandles() 释放句柄。 CA SDM 服务器负责维护列表,因此会占用系统资源。 因此,释放列表非常重要。 与对象句柄不同,列表句柄在各个会话间并不持续。
一些方法要求列表中存在整型索引。 由于列表是零基的,因此第一个元素的索引等于 0。
如前所述,对于可能多次查询的大型数据集,使用列表句柄最有用。 但是对于某些操作,列表是多余的。 有多种方法可用,但是最值得注意的是 doSelect(),它可以返回所请求的有关数据集的信息,无需进行列表句柄。
决定使用列表句柄还是方法(如 doSelect())取决于能否提高性能以及是否方便。 例如,假设您的应用程序正在处理系统中全部 15,000 个联系人。 doSelect() 方法可以在一个调用中检索所有联系人数据,但是当它汇编和返回超大数据集时,应答将会延迟,并且对系统总性能产生负面影响。 在这种情况下,doQuery() 方法则可以非常迅速地返回一个列表引用。 可以从列表中查询数据的范围,以缩短服务器的响应时间。 如果数据集超过 250 项,则最好使用列表引用。
有时使用列表句柄毫无意义。 例如,某个投诉具有一个活动日志列表。 根据安装情况,可以有数个到数十个日志。 与请求列表引用、查询数据然后再释放列表相比,一次请求所有数据可能更快。
返回数据集(而不是返回列表引用)的方法示例包括:
如前所述,如果查询返回较多行数,可能会严重影响服务器的性能。 为避免此情况发生,CA SDM 将返回的行数限制为 250。 这会影响返回对象列表的所有 CA SDM Web 服务方法,包括:
即使您请求采用其中一种方法检索超过 250 行的内容,此限制也将适用。
要检索较多行数,您应该获得结果列表的句柄,然后使用 getListValues() 检索行块,每个块包含 250 行或更少行。 此策略有助于避免服务器在为大量数据提供服务时运行变慢。
| 版权所有 © 2012 CA。 保留所有权利。 | 就该主题发送电子邮件至 CA Technologies |