QDMLOPNF 128 限制是否有解决方法?

Is there a workaround for QDMLOPNF 128 limit?

iSeries QDMLOPNF API 仅 returns 128 个打开的文件。这个限制对于现实世界(意味着设计不良)的应用程序来说非常小。

有人想出了解决方法吗?

TAATOOLS 的 CVTOPNF 也是基于 QDMLOPNF

谢谢

为什么你认为上限是 128?

APIreturns以下信息:

  • 可用的打开文件数。可用的打开文件数 被退回。
  • 返回的打开文件数。完成数 打开返回的文件条目。

如果您分配给 API 使用的 space 数量不足以容纳所有打开的文件,则上述两个值将不同。

根据 APIs by Example: List Open Files API, and the Display Job Open Files Command 文章,

Initially, I allocate enough storage to cater for approximately 400 open files. This would cover the storage requirement in most cases. Should it not suffice, however, I repeat the API call following a reallocation of storage based on the actual amount of open file information available.

许多 IBM i API 以类似的方式工作。

本文包含一些可下载的代码,演示了 API 的用法。