https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:89412348059
You Asked
what is the use of TWO_TASK environment variable ?
where can we use it ?
and we said...
If you are in a Unix environment, you can normally set 2 environment variables: ORACLE_HOME
ORACLE_SID that will connect you to a local database identified by that home and sid. If you wanted
to be able to connect to a remote database or a database on that machine via SQLNet, you
can also set: TWO_TASK = <tnsconnect string> The setting of TWO_TASK overrides the ORACLE_SID when set. You will not connecting to a
local database with two_task but rather using sqlnet to connect to a remote database. So, instead of: $ sqlplus scott/tiger@some_db I can: $ setenv TWO_TASK some_db
$ sqlplus scott/tiger and the @some_db is implied.
Tom, In the above example, some_db should have been resolved using tnsnames.ora on the box from
which we connect to the remote database. Is it correct? Thanks.
Followup December 05, 2003 - 11:27 am UTC
yes, the "local machine" it could come from a variety of sources on that machine ~/.tnsnames.ora
$ORACLE_HOME/network/admin/tnsnames.ora
/var/opt/oracle/tnsnames.ora
$TNS_ADMIN/tnsnames.ora for example
Why TWO? Why Task?
Thanks, Jan
Followup March 05, 2007 - 2:15 pm UTC
because in days gone by - the 1980's - two tasks (having two tasks working together) just made 'sense'
Just like "modular code" and "subroutine" used to be commonly used... :)