一部の Web サービス メソッドでは、一意の整数型ハンドルで表されるリストが返されます。 リストは単に同じタイプのオブジェクトを集めたものです。 リストは多数のオブジェクトの集まり(システム内のすべての連絡先など)を扱うときに特に便利です。リスト内の複数の項目に関する情報を取得できるからです。 ただし、リスト ハンドルの取得、情報の取得、最終的なリスト ハンドルの解放のために、メソッドのコール回数が増えるという難点があります。 リストの行が少ないと思われる場合は、リスト ハンドルが関係しない doSelect() などのメソッドを使用します。
リストの詳細は以下のとおりです。
リストに含まれるのは、連絡先リストや組織リストなど、単一タイプのオブジェクトのみです。
たとえば、すべての連絡先用のリスト オブジェクトを取得した後に、別の連絡先がシステムに追加された場合、連絡先の追加による更新はリストに反映されません。 最新のデータを取得するには、別のリスト ハンドルを取得する必要があります。
リストをリクエストすると、同じタイプのオブジェクトのリストを表す整数ハンドルが返されます。 クライアントにその他の情報は送信されません。 クライアントはリストをクエリして、リスト内の行に含まれる特定の情報を取得できます。 クライアントはリストを使用した後、freeListHandles() を使用してハンドルを解放する必要があります。 CA SDM サーバがリストを保持しているため、システムのリソースが消費されます。 したがって、リストを解放することは重要です。 オブジェクト ハンドルとは違って、リスト ハンドルはセッション間で固定されていません。
いくつかのメソッドでは、整数インデックスをリストに含める必要があります。 リストはゼロベースのため、最初のエレメントのインデックスは 0 になります。
前述のとおり、リスト ハンドルは何回もクエリされる可能性のある大きなデータに使用すると便利です。 ただし、操作の種類によっては、リストが大きくなることがあります。 メソッドもいくつか用意されており、代表的なものは doSelect() です。リスト ハンドルのオーバーヘッドなしで、データ セットに関するリクエストされた情報が返されます。
リスト ハンドルとメソッド(doSelect() など)のどちらを使用するかは、パフォーマンスと利便性のどちらを重視するかで決まります。 たとえば、アプリケーションがシステム内の15,000個すべての連絡先を処理するとします。 doSelect() メソッドでは、1 回のコールですべての連絡先データを取得することができます。しかし、応答は遅くなり、非常に大きなデータ セットを収集して返す間、システム全体のパフォーマンスは悪くなります。 この場合、doQuery() メソッドでは、リスト参照が非常に迅速に返されます。 リストから特定のデータ範囲をクエリすれば、サーバの応答時間を短縮することができます。 目安として、データ セットのアイテムが 250 個を超える場合にリスト参照を使用することをお勧めします。
リスト ハンドルを使用する意味がない場合もあります。 たとえば、案件にはアクティビティ ログのリストがあります。 インストール形態によって、ログの数が数個から数十個の範囲で違いがあります。 リスト参照をリクエストしてデータをクエリし、リストを解放するよりも、一度にすべてのデータをリクエストする方が早いと考えられます。
リスト参照の代わりにデータ セットを返すメソッドの例は以下のとおりです。
前述のとおり、多くの行を返すクエリはサーバのパフォーマンスに深刻な影響を及ぼします。 これに対処するため、CA SDM では返される行数を 250 に制限しています。 これは、以下のものを含め、オブジェクトのリストを返すすべての CA SDM Web サービス メソッドに影響を与えます。
これらのメソッドで 250 を超える行を取得するようリクエストした場合でも、制限は適用されます。
多数の行を取得するには、結果リストに対するハンドルを取得し、getListValues() を使用して、250 行以下のデータ セットを複数取得します。 この方法によって、大容量のデータの処理中にサーバの動作が遅くなることを防ぎます。
| Copyright © 2012 CA. All rights reserved. | このトピックについて CA Technologies に電子メールを送信する |