问题
I am trying to expose Mainframe files for more dynamic use from both COBOL programs and external programs in Java.
My reading shows that I can configure COBOL to use a JDBC connection. This may be just configuration in the JCL but I assume it is more of a preprocess.
I also found the JzOS libraries will give access to the VSAM datastores themselves from JAVA.
So technically I think this is possible but could not find a single post on it. I know this is getting to be an edge case but I like the idea that Calcite will expose these as standard JDBC object.
Thoughts ? Issues ? Concerns ?
回答1:
Please understand there is a big difference between...
- what is technically possible
- what is allowed in your shop
- what is likely to provide a robust and maintainable solution given your requirements
These are three very different things. Some of us have life experiences that make us reticent about answering questions regarding what is technically possible absent any mention of what is allowed in your shop or what the actual business requirement is that is being solved.
Mainframes have been around for over half a century, and many shops have standard solutions to technical problems. Sometimes the solution is "don't do that, and here's what we do instead." Working against the recommendations of your technical staff, or your shop standards, is career limiting.
Okay, boilerplate out of the way.
VSAM is not a DBMS. It has some of the characteristics of a DBMS but it isn't one itself.
The sharing requirements may give you a headache. VSAM files are defined with a SHAREOPTIONS parameter indicating how many processes can simultaneously read and write. Keep in mind that defining these liberally means each application must control serialization of writes and all applications are collectively responsible for data integrity.
Consider that applications will be written outside your control and knowledge by people who do not understand there are other applications reading/writing from/to these VSAM datasets.
I would approach this by providing access via a web service. Not simple CRUD, but business-specific functions SOA-style. CICS is your friend.
Consider using a DBMS on the mainframe instead of VSAM files.
Please try to avoid the inner-platform effect.
Also, this Q&A may be of interest.
回答2:
Rocket Software have a data virtualization product that exposes flat files, VSAM, IMS data bases via JDBC. IIRC, you can also access mainframe data sources using the MongoDB wire protcol. I think you can use it free and have to pay for support but that may only be when using it with Apache Spark on z/OS.
来源:https://stackoverflow.com/questions/47775793/calcite-for-vsam