查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
迈克·富尔顿
新的用户

已加入:2014年6月11日 帖子:22 地点:加拿大
|
|
|
|
我可以使用IGGCSI00来获取一组跨VSAM,GDG,非VSAM的数据集,并且可以获取诸如GDGATTR的字段名信息。
但是-我无法获取有关数据集空间属性的信息。
当我请求以下信息时:
NOBYTTRK,NOTRKAU,PRIMSPAC,SCONSPAC,NOEXTNT
我回来了'FF'X,文档说这意味着:
“ n:如果要检索的数据字段具有固定长度并且不存在。n是固定长度数据的长度,并且该数据被设置为全'FF'X。”
为什么我无法检索此信息?有任何想法吗? |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
我认为您无法通过CSI获得非VSAM数据集的空间信息。此数据不在目录中。 |
|
回到顶部 |
|
 |
迈克·富尔顿
新的用户

已加入:2014年6月11日 帖子:22 地点:加拿大
|
|
|
|
啊-好的-谢谢-这很有道理-可以解释为什么我要得到FF。
有什么想法我可以用来获取太空信息的服务吗? |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
非VSAM数据集的空间信息位于VTOC中,尽管不易消化。
请参见z / OS版本的“ DFSMSdfp高级服务”中的“使用卷目录”一章。数据集空间使用信息位于格式1和格式3 DSCB记录中,用于非扩展卷上的数据集或位于扩展卷上的轨道管理空间中的数据集,以及格式8和格式9 DSCB,用于在圆柱管理中分配的数据集扩展卷上的空间。
对于磁道管理的数据集,我已经做过几次了,但是对于汽缸管理的数据集,我还没有做过。 |
|
回到顶部 |
|
 |
彼得·荷兰
全球主持人

已加入:2009年10月27日 帖子:2475 所在地:荷兰,阿姆斯特尔芬
|
|
|
|
您可以使用DCOLLECT来获取该信息。 |
|
回到顶部 |
|
 |
戴维·罗宾逊
活跃用户
已加入:2011年12月21日 职位:197 地点:英国
|
|
|
|
您可以从DCOLLECT获取非vsam数据集的主要空间分配吗?我知道数据类段包含用于SMS数据集的数据段,但否则D类记录似乎只包含分配的空间,使用的空间和辅助空间分配。
我想如果您知道二级空间分配,已分配空间和扩展数据块的数量,就可以算出。 |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
大卫·罗宾逊(David Robinson)写道: |
您可以从DCOLLECT获取非vsam数据集的主要空间分配吗? ...
我想如果您知道二级空间分配,已分配空间和扩展数据块的数量,就可以算出。 |
其实没有主空间本身最多可以划分为5个扩展区,而没有指示主空间结束的位置,并且扩展区2到5不一定以次级空间为单位进行分配。
理论上的另一个问题是空间释放。最后一个扩展区可能无法以辅助空间为单位进行分配。
最后,可以用其他无法轻易预测的方式来散列所分配的空间。
例如 -
码: |
---否--RELTRK--开始CCHH--结束CCHH--轨迹
1 00000 0C8E0000 0C92000E 75
2 0004B 00510000 0055000E 75 |
我认为(但谁能确定)第一个范围是主要的,第二个范围是次要的。这个数据集如何-
码: |
---否--RELTRK--开始CCHH--结束CCHH--轨迹
1 00000 01820000 0185000E 60
2 0003C 00860000 0086000E 15
3 0004B 01AC0000 01AD000E 30 |
前两个扩展区可能是主要的,第三个扩展区是次要的,但是谁知道呢?
我已经思考了30多年,从未提出任何可靠的想法。 |
|
回到顶部 |
|
 |
戴维·罗宾逊
活跃用户
已加入:2011年12月21日 职位:197 地点:英国
|
|
|
|
好点,史蒂夫,当然,没有那么简单!
我还认为可能会发生相反的情况,也就是说,如果数据集由于主要空间分配不足而增长到第二个扩展,但是次要范围恰好在磁盘的连续部分上处于第一个范围,则它将随后报告为一个范围,而不是两个。 |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
大卫·罗宾逊(David Robinson)写道: |
...我还认为可能会发生相反的情况,也就是说,如果数据集由于主要空间分配不足而扩展到第二个扩展,但是次要范围恰好位于磁盘的连续部分上,这是因为那么它将随后报告为一个范围,而不是两个。 |
我很确定DADSM不是那么聪明,即使它们是连续的,它也将是2个扩展盘区。但是,DADSM确实结合了自由空间范围。 DADSM(直接访问磁盘?空间管理)。
问题是开放数据集的多个实例和共享卷的多个系统。 |
|
回到顶部 |
|
 |
迈克·富尔顿
新的用户

已加入:2014年6月11日 帖子:22 地点:加拿大
|
|
|
|
感谢您提供的信息。
我想做的是确定数据集的属性,以便可以在另一个z / OS框上进行“类似分配”的操作。
所以-我希望(以编程方式)获得所分配数据集的3.2信息(主要/次要/分配)的等效信息,并且如果可以算出(大致)到目前为止已使用的总空间,将非常方便。
查看VTOC,看来我可以获得大部分“不易消化”的信息(这是一个很好的表达方式;)。人们是否同意那将是我提取此信息的最佳场所? |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
迈克·富尔顿写道: |
...看VTOC,看来我可以获得大多数“不易消化”的信息(这是一个很好的表达方式;)。人们是否同意那将是我提取此信息的最佳场所? |
这是唯一的地方。尽管尚未以这种形式进行测试,但是这段代码将使您对如何为跟踪管理的数据集分配空间有所了解。
码: |
USING *,12
USING F1DSCB,10
SR 9,9 加载扩展数
IC 9,DS1NOEPV IN THE DATA SET
LA 0,3 加载范围内的条目
* FORMAT 1 DSCB
LA 1,DS1EXT1 首次进入的加载地址
SR 2,2 初始化数据集中的轨迹数
BAL 14,XSPACE 获取在F1 DSCB中定义的跟踪
LTR 9,9 剩余测试
BZ 完成 BR如果已执行所有扩展程序
*使用DS1PTRDS阅读下一个DSCB,并将其地址复制到REG 10
USING F3DSCB,10
NEXTDSCB 命令行界面 DS3FMTID,C'2' 测试格式2 DSCB
BNE TESTF3 BR IF NOT
*使用DS3PTRDS阅读下一个DSCB,并将其地址复制到REG 10
B NEXTDSCB
TESTF3 CLI DS3FMTID,C'3' 测试格式3 DSCB
BE 快捷键 BR IF SO
DC H'0' OOPS
快捷键 CLC DS3KEYID,=4X'03' TEST DS3KEYID
BE 扫描键 BR IF OK
DC H'0' OOPS
扫描键 LA 0,4 加载密钥中的扩展项数
LA 1,DS3EXTNT 首次进入的加载地址
BAL 14,XSPACE PROCESS THE EXTENTS
LTR 9,9 数据集中的剩余测试内容
BZ 完成 BR IF NONE LEFT
LA 0,9 加载范围内的条目
* DATA AREA
LA 1,DS3ADEXT 下一个加载地址
BAL 14,XSPACE 数据区域中的过程扩展
LTR 9,9 TEST IF MORE EXTENTS
BZ 完成 BR IF ALL 完成
*使用DS3PTRDS阅读下一个DSCB,并将其地址复制到REG 10
B NEXTDSCB
DROP 10
完成 ...
*注册人-
* 0-组中的扩展数
* 1-组中的第一个地址
* 2-数据集中的运行轨迹数
* 9-保留数据集中的扩展
*更改了寄存器15、0、1、2、9,其他所有寄存器均未更改
XSPACE SAVE 14 保存 REG 14
下一页 LH 14,2(,1) 一缸加载地址
N 14,=A(X'FFFF') ISOLATE ADDRESS
MH 14,TRKSCYL 乘TRKS /汽缸
AH 14,4(,1) ADD STARTING TRACK
LH 15,6(,1) 末缸加载地址
N 14,=A(X'FFFF') ISOLATE ADDRESS
MH 15,TRKSCYL 乘以轨道/圆柱
AH 15,8(,1) ADD ENDING TRACK
SR 15,14 COMPUTE EXTENT SIZE
BNM *+L'*2 BR如果确定
DC H'0' OOPS
*此负载地址使用说明作为3输入添加器
LA 2,1(15,2) 在总计范围内添加跟踪
LA 1,(DS1EXT2-F1DSCB)-(DS1EXT1-F1DSCB) COMPUTE ADDR OF
* NEXT EXTENT ENTRY
BCT 9,*+L'*+4 BR如果数据集中有更多扩展
B XDONE 数据集中的所有扩展
* PROCESSED
BCT 0,XNEXT 组中下一个进程
XDONE RETURN 14 RESTORE REG 14 & RETURN
...
三氯乙烯 DS H
F1DSCB DSECT
IECSDSL1 1
F3DSCB DSECT
IECSDSL1 3 |
|
|
回到顶部 |
|
 |
迈克·富尔顿
新的用户

已加入:2014年6月11日 帖子:22 地点:加拿大
|
|
|
|
谢谢史蒂夫! |
|
回到顶部 |
|
 |
迈克·富尔顿
新的用户

已加入:2014年6月11日 帖子:22 地点:加拿大
|
|
|
|
好吧,史蒂夫-阅读代码后,我想我明白了。但是,我不确定您是如何计算TRKSCYL的-我想这是在此之前。那是VTOC中可用的东西,还是我需要根据lrecl / blksize / dasd等的类型进行计算? |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
好问题。有两种或三种方法。- 我认为该卷仍处于Format 4 DSCB中。
- 如果该卷具有DD语句,请在具有DEVTAB选项的DEVTYPE生成的输出中查找。输出由SYS1.MACLIB中的IHADVA宏描述。
- 如果您有UCB,请使用设备特征区域。您可以按照SYS1.MODGEN(IHADVCT)中的说明进行访问。这就是我通常使用的。
当然,如果您很懒,只需使用15。 |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
哎呀。
XSPACE中都有两个问题。
LH 15,6(,1)
N 14,= A(X'FFFF')
应该
LH 15,6(,1)
N 15,= A(X'FFFF')
和
LA 1,(DS1EXT2-F1DSCB)-(DS1EXT1-F1DSCB)
应该
AHI 1,(DS1EXT2-F1DSCB)-(DS1EXT1-F1DSCB)
要么
LA 1,(DS1EXT2-F1DSCB)-(DS1EXT1-F1DSCB)(,1) |
|
回到顶部 |
|
 |
迈克·富尔顿
新的用户

已加入:2014年6月11日 帖子:22 地点:加拿大
|
|
|
|
好的-我能够从前三个范围正确计算出轨道数。
我不确定如何计算DSCB格式1末尾的CCHHR 5字节实体在DSCB格式2或3控制块的位置。
谷歌不是我的朋友,也不是书。 |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
您如何获得格式1 DSCB? |
|
回到顶部 |
|
 |
迈克·富尔顿
新的用户

已加入:2014年6月11日 帖子:22 地点:加拿大
|
|
|
|
抱歉,如果出现两次...我提交了,但是没有出现...
我认为您的问题可能帮助我回答了我的问题,但是我不确定。
我正在打电话给SVC 27(OBTAIN)以获取DSCB。我传入的'dscbs'参数为1-所以我只为1个DSCB提供空间。我认为我需要提高这一点,以便为其他DSCB提供空间。 |
|
回到顶部 |
|
 |
迈克·富尔顿
新的用户

已加入:2014年6月11日 帖子:22 地点:加拿大
|
|
|
|
好的-我打电话给SVC 27 / OBTAIN,要求提供3个DSCB而不是仅容纳1个空间。这给了我3号格式的DSCB。
但是-我不确定的一件事是如何准确确定-哪种格式3 DSCB将存储在内存中。
通过检查,我发现在Format 1 DSCB结束之后,第一个Format 3 DSCB为44字节。我能够找到的OBTAIN文档只是表明了之后的情况-如果我要求从OBTAIN返回它,谁知道我应该如何对Format 3 DSCB进行寻址? |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
码: |
MVC CCHHR,DSxPTRDS
OBTAIN CAMLST
...
CAMLST CAMLST SEEK,CCHHR,VOL,DSCBAREA
音量 DC CL6'XXXXXX'
DC 0D'0'
DSCBAREA DC XL140'0' |
OBTAIN与CAMLST SEEK的描述如下 DFSMSdfp高级服务 与使用CAMLST SEARCH的OBTAIN位于同一区域。尽管我了解过,但我从未使用过OBTAIN的多个DSCB功能。看完您的问题后,我不愿意尝试! |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
大卫·罗宾逊(David Robinson)写道: |
好点,史蒂夫,当然,没有那么简单!
我还认为可能会发生相反的情况,也就是说,如果数据集由于主要空间分配不足而增长到第二个扩展,但是次要范围恰好在磁盘的连续部分上处于第一个范围,则它将随后报告为一个范围,而不是两个。 |
好吧,不,检查一下-
码: |
---否--RELTRK--开始CCHH--结束CCHH--轨迹
1 00000 0012000D 0012000D 1
2 00001 001E000E 001E000E 1
3 00002 001F000E 001F000E 1
4 00003 00220000 00220000 1
5 00004 00220008 00220008 1
6 00005 002F000E 002F000E 1
7 00006 00590002 00590002 1
8 00007 0082000E 0082000E 1
9 00008 0088000E 0088000E 1
10 00009 0109000B 0109000B 1
11 0000A 0109000C 0109000C 1
12 0000B 0109000D 0109000D 1
13 0000C 0109000E 0109000E 1
14 0000D 010F0000 010F0000 1
15 0000E 010F0001 010F0001 1
16 0000F 010F0002 010F0002 1 |
通过将SMF数据复制到该数据集来创建该数据集,以使其获得B37。 |
|
回到顶部 |
|
 |
皮特·威尔逊
活跃用户
已加入:2009年12月31日 帖子:490 地点:伦敦
|
|
|
|
大卫·罗宾逊(David Robinson)写道: |
好点,史蒂夫,当然,没有那么简单!
我还认为可能会发生相反的情况,也就是说,如果数据集由于主要空间分配不足而增长到第二个扩展,但是次要范围恰好在磁盘的连续部分上处于第一个范围,则它将随后报告为一个范围,而不是两个。 |
您是正确的...对于SMS托管的VSAM数据集,“扩展合并”生效,因此,如果可以在前一个扩展域之后进行后续扩展,则将扩展域合并为一个扩展域。对于RLS数据集,目录和VVDS,页面空间等有一些限制。
pic.dhe.ibm.com/infocenter/zos/v1r13/index.jsp?topic=%2Fcom.ibm.zos.r13.idad400%2Fspalloc.htm
这些天,您还可以使用Dataclas Space Constraint Relief,这将更改范围大小以适合可用空间。
很好奇为什么有那么多的东西为什么要为此编写实用程序。 Naviquest(ISMF批处理),FDREPORT和DMS仅举几例。甚至REXX LISTDSI和SYSDSN函数也可能有所帮助。 |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
皮特·威尔逊(Pete Wilson)写道: |
...很好奇为什么有那么多东西时您要尝试为此编写实用程序。 Naviquest(ISMF批处理),FDREPORT和DMS仅举几例。甚至REXX LISTDSI和SYSDSN函数也可能有所帮助。 |
皮特-值得学习如何做。也许-不太可能-他会想出一种更好的方法,无论是改善机制还是显示信息。 |
|
回到顶部 |
|
 |
|