Re: Multiple Instances??

From: MiguelLaw <miguellaw_at_aol.com>
Date: 12 Sep 1994 02:44:03 -0400
Message-ID: <350tbj$nfj_at_search01.news.aol.com>


In article <7SEP94.19403611_at_nauvax.ucc.nau.edu>, kkc_at_nauvax.ucc.nau.edu writes:

> I am trying to install some upgrades to our application software and
 the
> vendor requires that the new upgrades be installed in a "staging" area.
> I then change my ORACLE_SID, apply the "schema" changes (grants,
 columns, etc)
> and then change my ORACLE_SID to do it all over again for our different
> instances (TRAINING, PRODUCTION, PRE-PRODUCTION) However, after I
 compile
> all the c and cobol routines, and then all the SQL forms and such, all
 the
> object code goes to the same file system. My question is, how does
 ORACLE
> know (or does it) which object code to apply to which instance,
 especially
> when I apply it to one instance at a time over a long period of time?
 If
> my training db is running one version of application software and the
> production db is running a different one, yet all the object code is in
 the
> same file system/directory, how can I be sure I am only applying the
 upgrade
> to only one instance?

If I understand your question correctly, you are asking how Oracle "knows" what instance your application code was compiled against. If this is not the question you intended to ask, forgive me.

Oracle is not concerned about the SID used at compilation time. "schema" (you reveal roots in the pre-RDBMS world) information is not part of the compiled application. Information about the database structure will be analyzed at runtime. Depending on your pre-compilation options, it may or may not be analyzed at compile-time. If your object code was compiled with references to columns which are no longer in a particular SID, the code will fail when it executes. Similarly, if the code refers to new columns, it will fail when executed against a SID which does not contain the new column.

In terms of your last question, about maintaining two versions of the application software and one
common object directory, you appear to be asking an application question. Oracle does not select application "object" code to execute. The application must load itself and each subsequent program in a chain. How you could have two version of an application in the same directory is somewhat puzzling to me. If an Oracle app (like a form) is directed to load another application, it would generally look in the current directory for it. Some versions of Oracle will support seaching a set of directories for a named application code unit.

I hope this sheds some light on the subject for you.

.....mike Received on Mon Sep 12 1994 - 08:44:03 CEST

Original text of this message