是否可以从DB2下的Java存储过程读取数据定义?

时间:2018-10-23 13:36:10

标签: cobol java-stored-procedures db2-zos

嗨,

这是我关于stackoverflow的第一个问题,所以让我知道是否有问题。 但是,我需要知道是否有可能从DB2下的Java存储过程中读取用COBOL程序中声明的DD名称定义的数据集。

程序流程为:  -JCL调用存储过程  -STORED PROCEDURE调用jar  -jar尝试通过DD名称打开数据集

我尝试使用jZos库中的ZFile类,但是Java代码在z / OS上看不到DD名称和相对文件。 我的疑问是:无法完成此任务,因为DB2上的JVM在隔离的环境中运行,或者存在特定的类/过程来访问数据集?

谢谢!

1 个答案:

答案 0 :(得分:5)

“是否可能”,“是否允许”和“这是个好主意”之间存在显着差异。

因为您知道文件名,我相信可能有可能通过动态分配与DD相关的文件来实现您的目标。 ZFile的javadoc表示它“包含BPXWDYN的接口(MVS动态分配的基于文本的接口)。”

在您的IT商店中是否允许是您的体系结构人员和DB2系统程序员(负责安装,配置和性能DB2的人员)的问题。仅仅因为可能的事情并不意味着它被允许-可能出于性能,安全性或审核方面的考虑。

即使事实证明这种体系结构是可能的并且允许的,可能还有更好的解决方案。与您的体系结构人员以及z / OS和DB2系统程序员讨论您的需求以及为什么要追求这个特定解决方案。向他们询问仍然可以满足您要求的改进建议。

例如,如果您打算在批处理作业中执行此存储过程一百万次,并动态分配文件,请打开它,读取它的内容,关闭它,然后为每次执行重新分配它-这不太可能性能良好,并且可能会对使用DB2存储过程的其他应用程序产生不利影响。也许将文件的内容存储在DB2表中是一个更好的解决方案-我不能说,因为我不知道您的业务需求或应用程序其余部分的上下文,我只是以它为例。