Start Today

← Documentation

Live host data through CoreIQ

Logic can leave the host before data does. An application's Data source is either Sample data, an H2 database seeded for that application and fresh each play session, or Live host, a shared host connection.

Only CoreIQ can reach IMS DL/I and VSAM; DB2 can be reached either way. An agent can bind the same data source over MCP; see Flow API and MCP.

DB2

A schema is required whenever the program's SQL names tables unqualified. It matters most through CoreIQ: CoreIQ opens a connection per statement, so a SET CURRENT SCHEMA cannot persist across one, and without a schema DB2 resolves the table against the mainframe user id and answers SQLCODE -204.

IMS DL/I

A DL/I call names a DBD FIELD, such as CUSTID, and the generated COBOL hardcodes that name in its SSA. CoreIQ's IMS endpoint runs IMS Universal JDBC, which exposes the IMS catalog's column names instead, such as CUST_ID. Both describe the same segment, and neither side can guess the other's spelling.

So an operation that runs against live IMS ships a .dlicols file beside its .dbd: a per-segment map from DBD field name to catalog column name. Importing such a sample persists the file with the other originals, and Play sends it with the DBD. The map is used only in SQL; the COBOL I/O area keeps the DBD names, and it applies only when the data source is a CoreIQ connection. A field the map omits keeps its DBD name.

A map is not enough on its own: the segment has to exist on the host. A sample whose DBD is our own names segments no live PSB is sensitive to, and pointing it at CoreIQ fails every DL/I call. A read for an unknown segment can also leave the host's IMS endpoints unresponsive for several minutes, for everyone using them, so it is not something to try speculatively. No schema is asked for on an IMS DL/I connection: a segment is qualified by its PCB.

VSAM datasets

A program using CICS file control reads records, not rows. Its FILE operands, or DATASET, which CICS accepts as a synonym, are bound to datasets in the application's settings, one row per FILE the program declares, so the map cannot drift from the copybook. A blank dataset blocks Save and names the FILE, and a host session started with one anyway is refused rather than reading a dataset nobody chose. A FILE name is used without the blanks CICS pads it with to 8 characters.

Reads and writes go through a CoreIQ dataset endpoint: OL-DS-SERVER, the remote dataset server, or OL-DS-LOCAL on a host that reads its own datasets. CoreIQ routes on the endpoint's type, not the name your site gave it. The dataset's key window is compared against the copybook when the session opens, and a disagreement refuses the session naming both, because a wrong key window reads the wrong record without erroring. An empty dataset cannot open until it holds at least one record.

Writes follow the endpoint's CUD permissions. An admin enables Update, Insert and Delete per dataset endpoint in the CoreIQ admin panel, and the host connection dialog shows what CoreIQ reports. A session reads the flags when it opens, and a write the endpoint does not allow answers NOTAUTH naming the endpoint. CoreIQ still checks every call, so a flag turned off mid-session is honoured at once; one turned on takes effect from the next session, so press Play again. A keyed READ needs Update or Insert enabled.

A dataset CoreIQ cannot scan stays closed. An AIX PATH refuses the positioned read the key window is checked with, so its FILE answers NOTOPEN with the reason, and the program's other files still work.

KSDS only. A write commits on its own, so SYNCPOINT ROLLBACK cannot undo one and says so. A CoreIQ-backed browse is not CICS-consistent: the dataset server reads from its own address space with no VSAM RLS or DFSMStvs, so it is not buffer-coherent with a CICS region holding the same KSDS, and a record inserted mid-browse can appear.

Choosing per run

On the RPC player, beside Invoke, a switch picks the data source for that run, sample data or the application's host connection, regardless of what the application is set to. The choice holds for the rest of the browser session and never touches the application's settings. It travels with the session, so press Play again to move a session that is already running. With no host connection configured, the live option is disabled and says why.

Browsing and testing

The Database dialog against a live host lists the host's real tables and reads their rows through the same connection the session runs on, so what you browse is what the program sees. If the host is unreachable, the dialog says so instead of showing an empty table list. Reset DB stays sample-only: a seeded image can be rebuilt, a mainframe cannot.

CoreIQ writes are final. CoreIQ opens a connection per statement, so every INSERT, UPDATE and DELETE commits as it runs, and a program's rollback cannot undo it. A play session against CoreIQ changes real host data.

Play converted programs against real host DB2, IMS DL/I and VSAM through OL CoreIQ.

Read more