|Oracle8i Server User's Guide
Release 3 (8.1.7) for Fujitsu Siemens Computers BS2000/OSD
Part Number A95463-01
This chapter describes the Oracle Server-specific points that you should take into consideration when using Oracle8i Release 3 for BS2000/OSD under openUTM (Univeral Transaction Monitor). The following topics are discussed in this chapter:
When you are writing a UTM application, the SQL calls are passed to openUTM and converted into openUTM compatible "CALL Oracle" calls to ensure full coordination between the Oracle Server and openUTM.
UTM application program units must use embedded SQL. Explicit calls to any SQLLIB function calls or the Oracle Call Interface (OCI) are not allowed.
A connection is implicitly issued when the UTM task is started. This connection uses the data specified in the open string. Further explicit CONNECTs which are issued by the program units are not allowed.
An explicit COMMIT statement is not allowed in UTM program units. The Oracle Server UTM Interface will automatically issue one upon PEND RE, FI, SP or FC.
An explicit ROLLBACK statement is not allowed in UTM program units. The Oracle Server UTM Interface will automatically issue a ROLLBACK statement upon PEND ER, RS, FR or RSET.
The SAVEPOINT statement is not allowed in UTM program units.
A cursor is only valid until a PEND is executed. Because of a possible task change during a PEND KP, PA or PR, you cannot perform operations on a prevously filled cursor such as OPEN or FETCH after a PEND KP, PA or PR. However you can open and fetch a new cursor after PEND KP. The alternative to using PEND KP is to use the PGWT-call (see the openUTM manual Programming Applications), which will wait until input comes from the terminal, or to assign the same TACCLASS to subsequent programs after a PEND PA or PR.
You may use dynamic SQL as described in the relevant Supplement to the Oracle Precompilers Guide. In this case, however, coordination between openUTM and the Oracle Server could be lost, as the UTM/Oracle Server connection module does not analyze the dynamic SQL statements. This is particularly true if your dynamic SQL contains COMMIT, ROLLBACK, or DDL statements.
COMMIT, ROLLBACK, CONNECT and SAVEPOINT statements are not allowed in PL/SQL programs running under UTM.
Autocommit operations should be avoided, as they violate the synchronization between Oracle Server and UTM transactions. Take care when using DDL operations, as these often contain implicit autocommits.
For example, DDL statements such as CREATE TABLE, DROP TABLE and CREATE INDEX are not allowed in a global transaction because they force pending work to be committed.
This section describes the Oracle Server-specific points that you should take into consideration when using UTM operations. The points in this section refer to PEND (Program Unit End) and RSET (Reset) operations. These operations represent the common synchronization point between openUTM and the Oracle Server.
When you issue a PEND call, UTM calls the Oracle Server, internally, for synchronization. When the PEND takes place:
Resetting a UTM transaction implies rolling back the Oracle Server transaction.
When using these calls to abort a UTM transaction, the Oracle Server transaction is also rolled back.
These operations only end a UTM dialog step without affecting the corresponding Oracle Server transaction.
These PEND calls cause an implicit COMMIT to be executed. All cursors which have not been explicitly closed, are closed.