Oracle Netを使用した接続には以下の2つがある。
・専用サーバ接続
ユーザープロセスとサーバプロセスが1対1で関連付けられる。
リソース消費大
デフォルトはこちらのみ
・共有サーバ接続
クライアントからディスパッチャが受け取ったSQLをキューに格納して処理する
リソース消費小
※バッチ処理は専用サーバ接続が向いている
■サーバ側の設定
共有サーバに関する初期化パラメータは以下のとおり
DISPATCHERS
SHARED_SERVERS
MAX_SHARED_SERVERS
SHARED_SERVER_SESSIONS
■クライアント側の設定
クライアント側でどちらのサーバに接続するかは
tnsnames.ora (Oracle\product\10.2.0\client_1\network\ADMINフォルダ内)で指定することができる。
(専用サーバと共有サーバが同じサービス名の場合)
tnsnames.ora
hogehoge = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.xx)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) ←ここの記述。省略可能 (SERVICE_NAME = ORCL) ) )
専用サーバモード→(SERVER = DEDICATED)
共有サーバモード→(SERVER = SHARED)
※SERVER 指定なし の場合は共有サーバに優先して接続しようとする。
接続先が共有か専用かを確認するSQL
SELECT SERVER FROM V$SESSION WHERE SID = USERENV('SID') ;
動作確認環境 oracle10.2.0.1.0