Я провел несколько нагрузочных тестов в своем простом CordApp, и теперь, когда я делаю запрос к хранилищу, чтобы проверить список транзакций, я получаю исключение в журналах: net.corda.core.node.services.VaultQueryException: Пожалуйста, укажите PageSpecification
, поскольку результатов [201] больше, чем размер страницы по умолчанию [200]. Кажется, нет возможности передать параметр для пейджинга. Нужно ли фильтровать результаты? Это не повлияет на причину исключения. Какова рекомендуемая практика?
vaultQuery превышает размер страницы по умолчанию
Ответы (1)
Согласно документации здесь ссылка
Максимальный размер страницы
val pagingSpec = PageSpecification(DEFAULT_PAGE_NUM, MAX_PAGE_SIZE)
val criteria = VaultQueryCriteria(status = Vault.StateStatus.ALL)
val results = vaultService.queryBy<ContractState>(criteria, paging = pagingSpec)
Перелистывая каждую страницу.
var pageNumber = DEFAULT_PAGE_NUM
val states = mutableListOf<StateAndRef<ContractState>>()
do {
val pageSpec = PageSpecification(pageNumber = pageNumber, pageSize = pageSize)
val results = vaultService.queryBy<ContractState>(VaultQueryCriteria(), pageSpec)
states.addAll(results.states)
pageNumber++
} while ((pageSpec.pageSize * (pageNumber - 1)) <= results.totalStatesAvailable)
person
Adrian
schedule
05.09.2018