A Database Gateway for APPC Data Dictionary
The Procedural Gateway Data Dictionary (PG DD) is maintained in a conventional Oracle database. It is installed by a SQL*Plus installation script (pgddcr8.sql
in the %ORACLE_HOME%\dg4appc\admin
directory on Microsoft Windows or $ORACLE_HOME/dg4appc/admin
directory on UNIX based systems) and manipulated by PGAU statements and standard SQL statements.
The dictionary is divided into two sections:
-
the environment dictionary
-
the active dictionary
The environment dictionary is static and should not be changed. The contents of the environment dictionary support proper translation from the remote transaction's environment to the integrating server's environment, and is platform-specific. The active dictionary is updated at the user's location by the PGAU in response to definitions supplied by the user.
Topics:
PG DD Environment Dictionary
The PGAU uses some dictionary tables strictly as input. These dictionary tables define environmental parameters for PGAU. Both table and values are installed by a SQL*Plus script at gateway installation time and are not to be modified by the installation.
The environment dictionary does not reference the active dictionary, but the active dictionary does reference environment dictionary entries.
Environment Dictionary Sequence Numbers
The environment dictionary requires unique identifying numbers in some columns to join environment dictionary entries together. Oracle sequence objects are therefore created by the Oracle Database Gateway for APPC to support this requirement.
Table A-1 presents the Oracle sequence objects and their descriptions.
Table A-1 Oracle Sequence Objects
Oracle Sequence Objects | Descriptions |
---|---|
|
Environment id tag |
|
Compiler id tag |
|
Environment Attribute id tag |
|
Datatype id tag |
|
Datatype Attribute id tag |
Environment Dictionary Tables
The environment dictionary tables contain constants that describe the following components of the operating environment:
-
pga_maint
-
pga_environments
-
pga_env_attr
-
pga_env_values
-
pga_compilers
-
pga_datatypes
-
pga_datatype_attr
-
pga_datatype_values
-
pga_usage
-
pga_modes
pga_maint
The pga_maint
table stores the PG DD maintenance information, including version number and change history, as presented in Table A-2:
Table A-2 pga_maint
Column | Type | Contents |
---|---|---|
|
|
PG DD version in format
|
|
|
Oracle date and time at which the PG DD was upgraded. |
|
|
Description of the PG DD upgrade. |
pga_environments
The pga_environments
table stores the defined environment keywords, as presented in Table A-3:
Table A-3 pga_environments
Column | Type | Content |
---|---|---|
|
|
Environment. Primary key. |
|
|
Env id. Foreign key. |
pga_env_attr
The pga_env_attr
table stores the types of environmental attributes, as presented in Table A-4:
Table A-4 pga_env_attr
Column | Type | Content |
---|---|---|
|
|
Attribute. Primary key. |
|
|
Attribute id. Foreign key. |
|
|
Attr value type. Foreign key. |
pga_env_values
The pga_env_values
table stores the values for environments, as presented in Table A-5:
Table A-5 pga_env_values
Column | Type | Content |
---|---|---|
|
|
Env id. Primary key. |
|
|
Attribute id. Primary key. |
|
|
Numeric attribute value. |
|
|
Character attribute value. |
|
|
Date attribute value. |
pga_compilers
The pga_compilers
table stores the compiler environment names, as presented in Table A-6:
Table A-6 pga_compilers
Column | Type | Content |
---|---|---|
|
|
Compiler name. Primary key. |
|
|
PLS compiler name. Secondary key. |
|
|
Env id. Foreign key. |
|
|
Compiler env id. Foreign key. |
|
|
PGADDL processor number. |
pga_datatypes
The pga_datatypes
table stores the datatype keywords, as presented in Table A-7:
Table A-7 pga_datatypes
Column | Type | Content |
---|---|---|
|
|
Compiler env id. Primary key. |
|
|
Datatype keyword. Primary key. |
|
|
Datatype_values. Foreign key. |
pga_datatype_attr
The pga_datatype_attr
table stores datatype attribute keywords, as presented in Table A-8:
Table A-8 pga_datatype_attr
Column | Type | Content |
---|---|---|
|
|
Attribute keyword. Primary key. |
|
|
Attribute id. Foreign key. |
|
|
Type of attr. Foreign key. |
pga_datatype_values
The pga_datatype_values
table stores the datatype attribute values, as presented in Table A-9:
Table A-9 pga_datatype_values
Column | Type | Content |
---|---|---|
|
|
Compiler env id. Primary key. |
|
|
datatype_values. Foreign key. |
|
|
Attribute id. Foreign key. |
|
|
Datatype attr group no. |
|
|
Numeric attribute value. |
|
|
Character attribute value. |
|
|
Date attribute value. |
pga_usage
The pga_usage
table performs a referential integrity check of pga_data
and pga_field
column "usage" as presented in Table A-10:
Table A-10 pga_usage
Column | Type | Content |
---|---|---|
|
|
Value for the " ' ' ' ' Primary key. Max length => 4-char string length. |
pga_modes
The pga_modes
table performs a referential integrity check of pga_call_parm
column "mode", as presented in Table A-11:
Table A-11 pga_modes
Column | Type | Content |
---|---|---|
|
|
Name of valid parameter call modes. For example:
|
PG DD Active Dictionary
Active Dictionary Versioning
The PG DD active dictionary tables contain the descriptions of transactions and data structures. There might be more than one version of a definition. Old versions are retained indefinitely.
In PGAU dictionary operations, a definition is referred to by its "name", which can be qualified by a specific version number. If omitted, the most recent version is assumed.
Active Dictionary Sequence Numbers
Because the active dictionary is constantly changing, the identifying numbers needed to join active dictionary entries together must also change. To support this requirement, PG DD installation creates the following Oracle sequence objects.
Table A-12 lists the Oracle sequence objects and their descriptions:
Table A-12 Active Dictionary Oracle Sequence Object Descriptions
Oracle Sequence Objects | Description |
---|---|
|
Transaction id tag |
|
Transaction Version id tag |
|
Transaction Attribute id tag |
|
APPC-Call id tag |
|
Call Version id tag |
|
APPC-Call Parameter id tag |
|
Data id tag |
|
Data subfield id tag |
|
Data Version id tag |
|
Data Attribute id tag |
Active Dictionary Tables
Following is a list of active dictionary tables:
-
pga_trans
-
pga_trans_attr
-
pga_trans_values
-
pga_trans_calls
-
pga_call
-
pga_data
-
pga_fields
-
pga_data_attr
-
pga_data_values
pga_trans
One row exists in the PGA_TRANS
table for each user transaction. The row is created by a PGAU DEFINE TRANSACTION
statement and used by a PGAU GENERATE
statement to create the PL/SQL package (TIP).
Table A-13 This 3-column table presents the column, type and content information for PGA_TRANS
:
Table A-13 pga_trans
Column | Type | Content |
---|---|---|
|
|
Transaction name as defined by the customer. Primary key. Max length => APPC TPname string length. |
|
|
Version identification of this entry; it exists in the table because multiple archived or invalid entries might exist and be kept for possible future reactivation. Primary key. Set from an Oracle sequence object for transaction version inserted into the PG DD. |
|
|
Audit-trail date/time record last updated. |
|
|
Audit-trail user ID/program which last updated this record. |
|
|
PGA Transaction number, used for the define call, define data and define transaction statements. Foreign key.
Set from an Oracle sequence object for transaction inserted into the PG DD. |
pga_trans_attr
The pga_trans_attr
table relates a character string defining the transaction attributes supported by PGA to pga_trans_values
entries through an attribute id number and type.
The pga_trans_attr
table is also used for integrity checks of transaction attributes when new transactions are being defined.
There is an entry in the pga_trans_attr
table for each transaction attribute name. All possible transaction attribute names supported by PGA on any defined transaction are specified. There is one row for each attribute, and no duplicates are allowed.
Table A-14 This 3-column table presents the column, type and content information for pga_trans_attr
:
Table A-14 pga_trans_attr
Column | Type | Content |
---|---|---|
|
|
Character string name of attribute. Primary key. Contains: " " " " " " " " " |
|
|
Attribute id assigned. Foreign key. pga_data_values(attr#). Set from an Oracle sequence object for each supported transaction attribute inserted into the PG DD. |
|
|
Type of Oracle column from which attribute value is retrieved from pga_tran_values. For example: ' ' ' |
|
|
If not null, required keyword for |
pga_trans_values
The pga_trans_values
table describes the values of transaction attributes.
A row exists to specify the value of each attribute of each transaction defined in the data dictionary.
The column, type and content information for pga_trans_values
is presented in Table A-15:
Table A-15 pga_trans_values
Column | Type | Content |
---|---|---|
|
|
Transaction id from Primary key. Set from an Oracle sequence object for transaction inserted into the PG DD. |
|
|
Attribute id from Primary key. Set from an Oracle sequence object for each supported transaction attribute inserted into the PG DD. |
|
|
Attribute's numeric value, for example for a given transaction's |
|
|
Attribute's character value; for example, a given transaction's |
|
|
Attribute's date value. Probably always null; included for completeness. |
pga_trans_calls
The pga_trans_calls
table relates all calls available with any single transaction to each specific call definition through a call ID number.
An entry exists in the pga_trans_calls
table for each PL/SQL call referenced in a transaction definition through the CALL
(cname,...) operand. One row per transaction call; no duplicates.
The column, type and content information for pga_trans_calls
is presented in Table A-16:
Table A-16 pga_trans_calls
Column | Type | Content |
---|---|---|
|
|
Transaction id number from Primary key. Set from an Oracle sequence object for transaction inserted into the PG DD. |
|
|
Sequence number of this call. Primary key. |
|
|
Call id number in Foreign key. Copied from |
pga_call
The pga_call table relates all calls that are available for all defined transactions, to a unique call id number and PL/SQL remote procedural call (RPC) name. One entry exists in this table for each PL/SQL call (defined in a DEFINE CALL
statement).
One row per call, duplicates are possible when multiple transactions make identical calls. The plsrpc specification must be unique within the Oracle database which makes the calls, and rows are uniquely distinguished by call#.
The column, type and content information for pga_call are presented in Table A-17:
Table A-17 pga_call
Column | Type | Content |
---|---|---|
|
|
Call name for PGAU reference; Primary key. Max length => COBOL name string length |
|
|
RPC call name for reference in PL/SQL (public procedure to be generated). Max length => PL/SQL RPC name length |
|
|
Audit trail date/time of record's last update. |
|
|
Audit trail user id/program which last updated this record. |
|
|
Version identification of this entry, because multiple archived or invalid entries might exist and be kept for possible future reactivation. Primary key. Set from an Oracle sequence object for call version inserted into PG DD. |
|
|
Call id number. Foreign key.
Set from an Oracle sequence object for each call inserted into the PG DD. |
pga_call_parm
The pga_call_parm
table relates all parameters of any single transaction call to the data definitions describing each parameter.
One entry exists in the pga_call_parm
table for each parameter on a call in the PARMS()
operand of the PGAU DEFINE CALL
statement. One row per parameter, duplicates allowed when multiple calls (in the pga_call
table) refer to the same parameters.
Table A-18 This 3-column table presents the column, type and content information for pga_call_parm
:
Table A-18 pga_call_parm
Column | Type | Content |
---|---|---|
|
|
Call number for the referencing call from Primary key. Set from an Oracle sequence object for each call inserted into the PG DD. |
|
|
Position in the Primary key. |
|
|
Call mode of this parameter; one of the values in ' Max length => ' |
|
|
Data definition # in Foreign key.
Copied from |
pga_data
The pga_data
table defines each data item used as a parameter in a call and relates the remote host data name to its PL/SQL variables and any component subfields or clauses within each data item (if the data item is an aggregate, such as a record). Each data item might have attributes related to it through its corresponding field definition. Even atomic data items have a single row in the pga_field
table.
One row exists in the pga_data
table for each data item defined by a PGAU DEFINE DATA
or REDEFINE DATA
statement.
Table A-19 This 3-column table presents the column, type and content information for pga_data
:
Table A-19 pga_data
Column | Type | Content |
---|---|---|
|
|
Compiler id number.; Foreign key. ( Set from |
|
|
Compiler options from the |
|
|
Name from the DEFINE statement; Primary key. Max length => COBOL name length |
|
|
PL/SQL variable name of data item for reference in PL/SQL. Max length => PL/SQL variable length |
|
|
Version number of this entry. Set from an Oracle sequence object for data version inserted into the PGADD. |
|
|
Audit-trail date/time this control record last updated. |
|
|
Audit-trail user id/program which last updated this record. |
|
|
Default usage of this data item: Used primarily by PGAU Max length => 4-char string length |
|
|
Data definition number. Foreign key. ( Set from an Oracle sequence object. |
pga_fields
The pga_fields table defines each field within a data item and relates the remote host data field to its PL/SQL variables or nested records. Each field item might have attributes related to it (by field#) in the pga_data_attr
and pga_data_values
tables.
One row exists in the pga_fields table for each atomic item, field, clause, or nested record defined by a PGAU DEFINE DATA
statement. Several rows would exist (related by a single data# and incrementing fld#) to define an aggregate data item, one row per field or group.
Table A-20 This 3-column table presents the column, type and content information for pga_fields:
Table A-20 pga_fields
Column | Type | Content |
---|---|---|
|
|
Data definition number. Primary key. ( Set from an Oracle sequence object. |
|
|
Extracted or derived name of a field if dname defines aggregate data. Max length => COBOL name length |
|
|
PL/SQL variable name of subfield in aggregate data for reference in PL/SQL. Max length => PL/SQL variable length |
|
|
Audit-trail date/time this control record last updated. |
|
|
Audit-trail user id/program which last updated this record. |
|
|
Clause or field within data definition id no. Foreign key.
Set from an Oracle sequence object. |
|
|
Relative position number of each field defined within an aggregate data item (for example, 1, 2 3, and so on) or |
|
|
Usage of this data field: ' Max length => 4-char string length |
|
|
Datatype or Mask value. For example: ' ' ' '
When Max length => arbitrarily chosen |
|
|
Datatype or Mask options value. For example: ' '
Max length => arbitrarily chosen |
pga_data_attr
The pga_data_attr
table defines all possible data attribute names allowed by PGA and relates each attribute name to a number and type, by which the value of this attribute for a specific data item can be selected from pga_data_values
.
The pga_data_attr
table is also used for integrity checks of data attributes when new data items are defined.
There is one entry in the pga_data_attr
table for every possible attribute name to which any PGA supported data item might relate.
Table A-21 This 3-column table presents the column, type and content information for pga_data_attr
:
Table A-21 pga_data_attr
Column | Type | Content |
---|---|---|
|
|
Character string name of attribute. Primary key. Contains: "LEVEL" "RENAMEMF" (renames member first) "RENAMEML" (renames member last) "REMAPSMF" (redefines member first) "REMAPSML" (redefines member last) "REMAPSWM" (redefines when member) "REMAPSWC" (redefines when char value) "REMAPSWN" (redefines when num value) "REPGRPFF" (occurs n) "REPGRPVF" (odo first n) "REPGRPVL" (odo last n) "REPGRPVM" (odo depending member) "REPGRPKA" (either Key Asc name) "REPGRPKD" (either Key Desc name) "REPGRPIX" (either index name) "PLSTYPE" "JUST" (justified char data) "SYNC" (aligned aggregate data) "LOCAL_LANGUAGE" "REMOTE_LANGUAGE" "LENGTH" (LENGTH IS variable) Max length => attr name string lengths |
|
|
Attribute id assigned. Foreign key. pga_data_values(attr#). Set from an Oracle sequence object for each supported data attribute inserted into the PG DD. |
|
|
Type of Oracle column from which attribute value is retrieved from pga_data_values. For example: ' ' ' |
|
|
If not null, required keyword. |
pga_data_values
A row exists in the pga_data_values
table for each attribute of each data item defined by each data definition.
Table A-22 This 3-column table presents the column, type and content information for pga_data_values
:
Table A-22 pga_data_values
Column | Type | Content |
---|---|---|
|
|
Data Field Definition number from pga_data(fld#). Primary key. |
|
|
Attribute id from Primary key. |
|
|
Attribute's numeric value. For example: number for "LEVEL" number for "REMAPSWN" (redefines) number for "REPGRPFF" (occurs n) number for "REPGRPVF" (odo first n) number for "REPGRPVL" (odo last n) If a non-numeric attribute, this item is |
|
|
Attribute's character value. fname for "RENAMEMF (renames first) fname for "RENAMEML" (renames last) fname for "REMAPSMF" (redefines first) fname for "REMAPSML" (redefines last) fname for "REMAPSWM" (redefines when) fname for "REPGRPVM" (odo member) string for "REMAPSWC" (redefines) string for "REPGRPKA" (occurs key) string for "REPGRPKD" (occurs key) string for "REPGRPIX" (occurs index) string for "PLSTYPE" (PL/SQL data type) string for "JUST" string for "SYNC" string for "REMOTE_LANGUAGE" fname for "LENGTH" If a non-character attribute, this item is Max length => NLS_charset string length |
|
|
Attribute's date value. Always null, included for completeness. |
|
|
Qualified name number. Foreign key. |