JDBC 介体页面调度

对于移动大的数据集,页面调度是很有用的,因为页面调度可以限制任何给定时间放入内存的数据量。JDBC DMS API 提供了实现页面调度的两个接口。

如果提供给数据介体服务 (DMS) 的元数据定义客户并且页大小设置为 10,那么第一个页面是包含前 10 个客户 DataObject 的 Datagraph。下一个页面是包含接下来的 10 个客户的另一个 DataGraph,以此类推。

要注意的是,JDBC DMS 在该图的根提供页面调度。即,对于返回的相关 DataObject 的数量没有限制。例如,如果提供给 DMS 的元数据定义客户和相关订单,那么这些客户就是被页面调度的那些客户。如果页大小设置为 10,那么第一个页面是包含前 10 个客户以及每个客户的所有相关订单的 Datagraph。

DMS 提供了两种您可以利用的接口,PagerCountingPager。Pager 接口提供类似光标的 next() 方法功能。next() 函数返回表示介体元数据指定的整个数据集中的数据的下一个页面的图。还有具有相似功能的 previous() 函数可供使用,只是它表示前一个页面。CountingPager 接口使您能够检索特定的页面数。以下示例描述了使用 CountingPager 接口对大的客户实例集进行页面调度,并且限制最大数为 5 个来自每页的根表的 DataObject。

CountingPager pager = PagerFactory.soleInstance.createCountingPager(5);
int count = pager.pageCount(mediator);
for (int i = 1, i <= count, i++) {
DataObject graph = pager.page(i, mediator);
// Iterate through all returned customers in the 
// current page.
Iterator iter = graph.getList("CUSTOMER").iterator();
 		while (iter.hasNext()) {
  DataObject cust = (DataObject) iter.next();
System.out.println(cust.getString("CUSTFIRS NAME"));
 }
}

如果您尝试在第一个页面之前或者最后一个可用页面之后移动,那么 JDBC 介体会发生异常。


指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_sdopage
文件名:rdat_sdopage.html