Что такое TWO_TASK ?

Alex Roudnev
Дата: 28.02.2007 02:48:29
Тут недавно с удивлением узнал, что правильная переменная для задания имени сервиса по умолчанию в sqlplus - TWO_TASK, а не ORACLE_SID.

Помимо прочего, откуда такое странное имя и что оно означает? И кто нибудь в Оракле написал нормальное описание ораклиного видения, зачем там столько разных имен наворочено (имя сервиса, SID, инстанс и прочее)? Не формальное описание, а именно _зачем это все задумано_?
Nickname
Дата: 28.02.2007 08:27:26
Странно слышать такие вопросы от столь уважаемого и авторитетного человека на форуме.

Насколько я знаю ORACLE_SID используется для локального соединения с инстантом базы минуя Oracle Client.
TWO_TASK же определяет алиас соединения прописанного в файле tnsnames.ora
на самом деле оти переменные должны быть взаимоисключающими, т.е. если задаешь одну то вторую не имеет смысла задавать.

т.о. получается что для того что бы соединиться с базой находящейся на другой машине (посредством Oracle Net) необходимо обязательно прописывать TWO_TASK.
Dimka9
Дата: 28.02.2007 08:33:17
Nickname

т.о. получается что для того что бы соединиться с базой находящейся на другой машине (посредством Oracle Net) необходимо обязательно прописывать TWO_TASK.

либо указать алиас явно в строке соединения
AI
Дата: 28.02.2007 09:51:48
Alex Roudnev
Тут недавно с удивлением узнал, что правильная переменная для задания имени сервиса по умолчанию в sqlplus - TWO_TASK, а не ORACLE_SID.

Помимо прочего, откуда такое странное имя и что оно означает? И кто нибудь в Оракле написал нормальное описание ораклиного видения, зачем там столько разных имен наворочено (имя сервиса, SID, инстанс и прочее)? Не формальное описание, а именно _зачем это все задумано_?


Под виндой two_task переименован в local.
Сосуля
Дата: 28.02.2007 09:56:22
Net Services Administrator’s Guide
On most operating systems, you can define a default connect identifier. This way, a
connect identifier does not need to be specified in the connect string. To define a
default connect identifier, use the TWO_TASK environment variable on UNIX
platforms or the LOCAL environment variable or registry entry on Windows NT.

For example, if the TWO_TASK environment variable is set to sales, you can
connect to a database from SQL*Plus with CONNECT username/password rather
than CONNECT username/password@sales. Oracle Net checks if TWO_TASK is
set and uses the value sales as the connect identifier. If it exists, Oracle Net
connects.
Sal
Дата: 28.02.2007 10:31:36
Это было так давно, помнится смутно %)
В концепциях оракла 7 писали про single-task, т.е. клиент и сервер линковались в одну задачу,
вроде как так. ну а two-task стал быть наоборот, вот такая история :)
Sal
Дата: 28.02.2007 10:46:37
вдогонку

Note:52575.1. VMS: FAQ for Oracle RDBMS Release 7.3.X on VAX OpenVMS

11. What are the ORA_TNSnnnnnnnnn processes seen on the VAX after
installing 7.3.X?

Every connection to a 7.3.X database is two-task. Two-task requires
both a client and a server process. This is different from the default
behavior in pre-Oracle 7.3 releases which was single-task. If your system
is not capable of handling the additional process load, consider setting
up multi-threaded server (MTS).
Alex Roudnev
Дата: 28.02.2007 22:49:20
Сосуля
Net Services Administrator’s Guide
On most operating systems, you can define a default connect identifier. This way, a
connect identifier does not need to be specified in the connect string. To define a
default connect identifier, use the TWO_TASK environment variable on UNIX
platforms or the LOCAL environment variable or registry entry on Windows NT.

For example, if the TWO_TASK environment variable is set to sales, you can
connect to a database from SQL*Plus with CONNECT username/password rather
than CONNECT username/password@sales. Oracle Net checks if TWO_TASK is
set and uses the value sales as the connect identifier. If it exists, Oracle Net
connects.


Дело в том, что если вы посмотрите в большинство скриптов (включая и orarun), то там используют только ORACLE_SID. Наши DBA тоже суют в свои скрипты ORACLE_SID (с чего и началось - их скрипт не работал с кластером, я туда полез и довольно быстро обнаружил, что имя соединения надо задавать через TWO_TASK).

Но я спросил в первую очередь, что означает оная белиберда - TWO_TASK? ORACLE_SIDE понятно, если бы было ORACLE_SERVICE например - я бы тоже понял, а при чем тут какие то таски и к тому же пара?
Alex Roudnev
Дата: 28.02.2007 22:51:08
Sal
Это было так давно, помнится смутно %)
В концепциях оракла 7 писали про single-task, т.е. клиент и сервер линковались в одну задачу,
вроде как так. ну а two-task стал быть наоборот, вот такая история :)


А... теперь ясно. Ну и фантазия у ораклиных разработчиков!

Кто придумал переименовать в LOCAL, тому сразу надо медаль Дарвина давать. Оно же будет пересекаться с каждым вторым приложением!