Search code examples
oraclemainframeprocobol

Accessing Oracle from Mainframe


I am looking for information about accessing data present in ORACLE from IBM Mainframe applications (Z/OS). The data is lying on Oracle which is on a separate server and the IBM Mainframe system, by using COBOL programs need to access the data from Oracle. I heard that by using 'Oracle Access Manager for CICS' we can access Oracle data directly from IBM mainframe applications (using COBOL program). If yes, then are there any limitations/considerations on the Oracle version we are using ? I heard that the gateway 'Oracle Access Manager for CICS/IMS' is only supported in older versions of Oracle(i.e. 10g) but not in 11g or 12c ? Is Oracle still supporting 'Oracle Access Manager for CICS/IMS' ? Has anyone done this or do you have suggestions?
Thanks in advance for your help. Sai


Solution

  • There are a lot of ways this can be done, depending on how much data you're talking about and how real-time your needs are. If you're a commercial customer of Oracle's, you're probably paying them a bundle - don't hesitate to call and put the burden on Oracle to figure out the best way to do what you're trying to do.

    Otherwise, IBM and other vendors have a variety of integration products that can help, if you don't mind using a vendor solution. One example is the IBM Integration Bus - it's pretty much an ESB that can connect to nearly any type of database (as well as REST services, etc) with client-side support on z/OS. There are plenty of similar services out there from other vendors such as Tibco.

    If you want more of an open solution, we've had good luck with JDBC on z/OS, but this isn't particularly easy to connect to COBOL...it is possible to call Java from COBOL, but it's not the easiest thing for someone with limited mainframe experience, and you'll need to worry about things like ASCII vs. EBCDIC and so on. Still, it's basically free and fast, and the Oracle JDBC drivers run fine on z/OS.

    If you just need to do read-only queries against Oracle, some people use an ETL approach to keep a reasonably up to date copy of your Oracle data on z/OS in (say) DB2. This can help prevent overloading your Oracle server and your network since your mainframe apps process locally on the mainframe instead of sending every transaction to your Oracle database in realtime. Informatica and SyncSort are two leading vendors in this space.

    Finally, it does look like Oracle continues to support things like the Oracle Database Gateway for APPC, at least as of Oracle 12c. This would let you access Oracle over an APPC network without any sort of client library on z/OS. If your COBOL is running in CICS or another mainframe environment with good APPC support, it's not even very difficult to program. Of course, APPC is an old technology, and configuring SNA networking is definitely a dying skill in many sites...something to watch for.