contents.gifindex.gifprev1.gifnext1.gif

Oracle Concepts Overview

A quick overview of some basic design concepts underlying the Oracle Database Management System will help you interface your COBOL program to it.

Transactions

The Oracle RDBMS is a transaction-based system. All of the work that you perform while using Acu4GL for Oracle must occur within a transaction. A transaction is implicitly started for you with the first file I/O operation performed on a file associated with Oracle. Because all operations with Acu4GL for Oracle occur within a transaction, any record locked during processing will remain locked until either a COMMIT WORK or ROLLBACK WORK is issued. This will result in behavior similar to the LOCK ON MULTIPLE RECORDS clause in COBOL.

Note that transaction management facilities are also available in compiler version 2.4.0 and later. If you use these facilities, then the runtime configuration variable COMMIT-COUNT is automatically set to -1. This prevents a COMMIT WORK from being issued automatically by Acu4GL/Oracle, allowing the COBOL program to control COMMITs and ROLLBACKs. Automatic transaction flags are not recommended as they commit too often in most cases.

Oracle System Settings

The Oracle system parameter open_cursors should be set to enhance communication with Acu4GL.

Table Ownership

Table names in Oracle have the form owner.table_name. If you are the owner of a given table, you can refer to it as just table_name. If you are not the owner, you must refer to it with the owner of the table as a prefix. Acu4GL for Oracle provides a user configurable method (USER-PATH ) for implementing this.

Security

Security is implemented in the Oracle RDBMS. A user is required to log in to the RDBMS before any file processing can occur. Acu4GL for Oracle provides both a default and a user configurable method for implementing this. See the Setting Up a User Account section for more information.

Oracle's security considerations pose several challenges for COBOL programmers. Because of the various levels of permissions, certain operations are not allowed unless you have Database Administrator (DBA) privileges. These restricted operations include:

creating a table under another user's name

dropping a table owned by another user

Oracle version 7.3.3 also provides additional security levels; however, you will need to consult the Oracle documentation to determine if any of these permission levels are appropriate for your site.

Generally, it is best for someone with DBA privileges to create and drop the tables, allowing others only the permissions to process information contained in them. A table can be referenced either by owner.table_name or by a public synonym that you have created for the table.

See the Oracle documentation for more details on DBA privileges and public synonyms.

NOTE

By default, Acu4GL for Oracle will always check to see if a public synonym is available for a file at open time regardless of what the USER-PATH is set to. If the name of a table owned by a current user is the same as a public synonym, the user-owned table will be chosen.