What is the API DBENTRY ?

Our "DBENTRY" emulator is a set of tools and libraries whose goal is to replace "on the fly" an MVS CA-DATACOM database (formely DATACOM-DB) by a DB/2 MVS, DB2 UDB or PostgreSQL UNIX

It is designed :

  • to keep without any modification Legacy DATACOM-DB COBOL programs running on MVS without DATACOM/DB:
    a single link-edit to our DBEntry API transparently forwards "DBENTRY" calls to DB2 (z/OS or UNIX) or PostgreSQL (UNIX).
  • to port Datacom-DB COBOL programs from MVS to UNIX, with few or no changes at all
This unique solution on the market is the alternative to legacy COBOL applications re-writing.

It allows migration time and costs optimization:


API DBEntry vs Re-engineering man-days ratio for 1000 COBOL programs

The DBEntry API runs on z/OS (MVS)

Supported database platforms are:

  • z/OS avec DB/2
  • AIX (32 bits) with DB/2-UDB V9, or PostGreSql
  • Linux 386 (32 bits) with DB/2-UDB V9, or PostGreSql
  • z/Linux (32 bits), with DB/2-UDB V9, or PostGreSql

The Library

It consist mainly in a Shared Library, with a main entry point ('DBENTRY'), designed for COBOL calls, and accepting exactly the same parameters that are passed to the DATACOM MVS subsystem.

The library 'DBENTRY' entry point, when linked to a COBOL program, interprets the parameters of the 'CALL DBENTRY' statements, and dynamically transforms DATACOM requests into SQL Statements.

It generates dynamically the 'SELECT', 'UPDATE', 'INSERT' and 'DELETE' SQL statements with their corresponding ''where'" and "order by" clauses, and analyses or rebuilts exactly the COBOL record that is passed along with the DATACOM parameters.

The Tools

The tools are mainly used to complete the library with the description of the DATACOM records that are read and written by the COBOL programs to and from the MVS DATACOM tables, and to help building the PGSQL or DB/2 corresponding tables, with the required indexes.

In UNIX, the COBOL program (as is) is viewed as an external module, and is called by a small 'C' main routine, dealing with all the "connection to the DATABASE" stuff, then calling the COBOL module.



Currently supported DATACOM DBENTRY commands are :
ABEND Abnormal Termination Command
ADDIT Add Record
CLOSE Close User Requirements Table
CNTKR Count For Key Value Range
CNTKY Count For Equal Key Value
CNTTN Count For Table
COMIT Commit Transaction
DELET Delete Record
GETIT Retrieve Next Sequential Record Must review code before confirm
GETPS Get Next Physical Sequential Record n/a
GSETL Set To Starting Key n/a
GSETP Set Physcal Sequential Record n/a
INQIN Inquire CA n/a
LOCBR Locate Backwards Must review code before confirm
LOCKG Locate Key Greater or Equal
LOCKI Test For Logical Intersections of Two Keys
LOCKL Locate Key Less or Equal
LOCKR Locate a Record in a Specified Range
LOCKX Locate Key Exact
LOCKY Locate Key Greater or Equal
LOCNE Locate Next Equal Key Value Must review code before confirm
LOCNK Locate Next Key Must review code before confirm
LOCNR Locate Next Record in Specified Range Must review code before confirm
LOCNX Locate Next Must review code before confirm
LOGCP Checkpoint the Task n/a
LOGCR Log Checkpoint With Release n/a
LOGDR Log Directed Read n/a
LOGDW Log Directed Write n/a
LOGIT Add Data to Log Area" n/a
LOGLB Read Back a LOGIT Record n/a
LOGTB Back Out Transactions n/a
NOOPS No Operation
OPEN Open User Requirements Table
RDUKG Read Key Greater or Equal for Update
RDUKL Read Key Less or Equal for Update
RDUKX Read Key Exact for Update
RDUKY Read Key Exact for Update
RDULE Read Located Entry for Update
RDUNE Read Next Equal Key for Update
RDUNX Read Next for Update
REDBR/RDUBR Read Backwards Must review code before confirm
REDID/RDUID Read Records By Id n/a
REDKG Read Key Greater or Equal
REDKL Read Key Less or Equal
REDKR/RDUKR Read Record in a Specified Range
REDKX Read Key Exact
REDKY Read Key Exact
REDLE Read Located Entry
REDNE Read Next Equal Key
REDNK/RDUNK Read Record w/ Next Sequential Key Must review code before confirm
REDNR/RDUNR Read Next Record in a Specified Range
REDNX Read Next
RELES Release Record (if no update)
RELFL Release Table
ROLBK Rollback Transaction
SELCN Continue Set Record Selection
SELFR Select Set and Return First Record
SELNR Select Next Record"
SELPR Release Set
SELSM Select Same Record
SELST Stop Set Record Selection
TEST Test Option Command n/a
UPDAT Update Record

Please contact us for information


Contact us for details