嗨,
这是我关于stackoverflow的第一个问题,所以让我知道是否有问题。 但是,我需要知道是否有可能从DB2下的Java存储过程中读取用COBOL程序中声明的DD名称定义的数据集。
程序流程为: -JCL调用存储过程 -STORED PROCEDURE调用jar -jar尝试通过DD名称打开数据集
我尝试使用jZos库中的ZFile类,但是Java代码在z / OS上看不到DD名称和相对文件。 我的疑问是:无法完成此任务,因为DB2上的JVM在隔离的环境中运行,或者存在特定的类/过程来访问数据集?
谢谢!
答案 0 :(得分:5)
“是否可能”,“是否允许”和“这是个好主意”之间存在显着差异。
因为您知道文件名,我相信可能有可能通过动态分配与DD相关的文件来实现您的目标。 ZFile的javadoc表示它“包含BPXWDYN的接口(MVS动态分配的基于文本的接口)。”
在您的IT商店中是否允许是您的体系结构人员和DB2系统程序员(负责安装,配置和性能DB2的人员)的问题。仅仅因为可能的事情并不意味着它被允许-可能出于性能,安全性或审核方面的考虑。
即使事实证明这种体系结构是可能的并且允许的,可能还有更好的解决方案。与您的体系结构人员以及z / OS和DB2系统程序员讨论您的需求以及为什么要追求这个特定解决方案。向他们询问仍然可以满足您要求的改进建议。
例如,如果您打算在批处理作业中执行此存储过程一百万次,并动态分配文件,请打开它,读取它的内容,关闭它,然后为每次执行重新分配它-这不太可能性能良好,并且可能会对使用DB2存储过程的其他应用程序产生不利影响。也许将文件的内容存储在DB2表中是一个更好的解决方案-我不能说,因为我不知道您的业务需求或应用程序其余部分的上下文,我只是以它为例。