This article summarizes the means by which Oracle data can be accessed from within an IDMS-based Program or Dialog.
Accessing Oracle data "directly" from an IDMS-based program is complex. Listed below are a couple of different approaches to accomplish this task:
- Oracle provides an 'OCI' (Oracle Call Interface) connector, which is a common interface to its database engine for many of the Oracle drivers & tools (ODBC, JDBC, pre-compilers, .net Interface, etc). Some IDMS clients have attempted to communicate with OCI using the embedded TCP/IP support within IDMS. These efforts have not been successful however, as OCI is a private interface and Oracle is generally unwilling to provide specs on its use.
- Alternatively, clients could code their own 'listener' service within Oracle, and use IDMS's TCP/IP driver to communicate with the Oracle-based custom listener. While feasible, this approach would require a significant development effort, as custom code would have to be developed to interface with the Oracle database.
Both of the above options have certain drawbacks, so instead some users have opted to write an intermediate Java Service program, which runs either in Windows, UNIX, or Linux. The Java Service establishes a listener with which an IDMS/DC COBOL (Assembler, or ADS) program communicates via the embedded TCP/IP support in IDMS. The Java listener service then communicates to the OCI connector using Oracle's JDBC driver.
Clients who implement this alternative approach will need to devise their own applications-level communications protocol in order to communicate (via TCP/IP) between the IDMS/DC program and the middle-tier Java listener. ASCII-EBCDIC data conversion can be easily accomplished using the data conversion functions provided within CA IDMS. Although this is not optimal solution architecturally, the relative simplicity of the coding effort makes it a desirable option for many clients. Additional information on the use of TCP/IP within IDMS can be found in the CA IDMS Callable Services Guide.