使用 TSQ 浏览 VSAM 文件和 DB2 表

Posted

技术标签:

【中文标题】使用 TSQ 浏览 VSAM 文件和 DB2 表【英文标题】:Browsing VSAM files and DB2 tables using TSQ 【发布时间】:2021-10-19 17:04:49 【问题描述】:

我正在寻找在 CICS 中浏览 VSAM 记录和 DB2 表的更好方法。我正在练习的当前方法是使用 readnext/prev 浏览 VSAM 文件并使用游标浏览 DB2 表。浏览文件/表格时如何使用 TSQ?我的示例应用程序都具有写入 VSAM 文件/插入 DB2 表和浏览它们的功能。

【问题讨论】:

当我浏览文件/表格时使用 TSQ 是什么意思? TSQ 只是一个临时存储队列,因此您可以从中读取/写入和浏览数据。 如果我正在浏览 vsam 文件/db2 表,而其他人正在写入 vsam/插入到 db2 表。新添加的记录会在我浏览的同时出现吗? 所以TSQ和这个问题没有任何关系。我建议删除该评论,因为它会混淆您正在寻找的内容。 【参考方案1】:

如果我正在浏览 vsam 文件/db2 表而其他人正在浏览 写入 vsam/插入 db2 表。请问新添加的记录 在我同时浏览时出现?

这取决于。从 VSAM 的角度来看,您的 CICS 任务将在 VSAM 文件中占有一席之地。您可能无法看到新插入的记录,直到它们被原始任务提交。您查看插入记录的能力将取决于您的任务和其他任务如何访问 VSAM 文件。只要所有 CICS 访问都发生在单个 CICS 区域中,无论是独立区域还是文件拥有区域(又名 FOR),那么任何访问该文件的 CICS 任务都将能够看到已提交的新记录。

如果任务在多个 CICS 区域中运行而不使用 FOR,则需要在所有区域中以 RLS 模式打开文件以保持文件内容的完整性。

对非 RLS 文件的批量更新/插入可能会导致与尝试从两个 CICS 区域更新非 RLS 文件类似的问题。

【讨论】:

【参考方案2】:

您的问题是关于使用 TSQ,但我相信您在问如何查看临时存储队列的内容。

CICS 提供了一个事务CEBR 用于浏览临时存储队列 (TSQ)。

CEBR 的文档可以在here找到

【讨论】:

以上是关于使用 TSQ 浏览 VSAM 文件和 DB2 表的主要内容,如果未能解决你的问题,请参考以下文章

如何计算分配给 VSAM 文件的空间

使用 Java JDBC 写入时 VSAM 文件锁定

使用 Python 访问 VSAM 文件?

是否可以强制删除另一个作业/用户使用的 VSAM 文件?

是否有将 VSAM 文件作为 tbble 或数据框导入的 R 包?

编写从单独的 vsam 文件中提取信息的 Cobol 程序时遇到问题