首页 > 解决方案 > z/OS C/C++ fseeko 对于多卷数据集非常慢

问题描述

fseeko多卷数据集上调用需要几秒钟,例如:

stream=fopen("//'A.B.C'", "rb,type=record");
fseeko(stream, 40000, 0);

它需要超过 8 秒。如评论中所述,记录了许多描述该问题的 APAR:

https://www.ibm.com/support/pages/apar/PK5078 https://www.ibm.com/support/pages/apar/PQ94363

问题是:是否可以在不迁移到单卷或多条带数据集的情况下提高性能?

原来的问题是:

我有带有参数的数据集 ABCPO=PSRECFM=FS. 以下 Java 代码对于单卷数据集运行速度很快。

ZFile zfile = new ZFile("//'A.B.C'", "rb,type=record");
file.seek(1000);
file.seek(2000);
file.seek(4000);

搜索功能需要几毫秒。

如果数据集 ABC 分配在多个卷上,则每次调用file.seek()需要几秒钟。进一步的实验表明,访问实际上是顺序的,例如 callzfile.seek(10000)比 call 长 10 倍zfile.seek(1000)

为多卷数据集执行 ZFile.seek 的正确方法是什么?

标签: javacmainframezos

解决方案


推荐阅读