保護モードでCまたはC++外部ルーチンを実行する場合は、追加の管理作業が必要になります。
データベースのインストール プロセスは、オペレーティング システム固有の'tdatuser'という名前のローカル ユーザーを、データベースを実行する各ノード上に作成します。'tdatuser' IDは、外部ルーチンを保護モードで実行するために、AMP vprocおよびPE vprocごとに、2つのデフォルトのプロセスと関連付けられます。
- 'tdatuser'は削除しないでください。
- 'tdatuser'のパスワードは追加しないでください。
そのようにすると、ユーザーはシステムにログオンできなくなります。
- 変更を加える必要がある場合は、まずTeradataサポート センターに連絡してください。
'tdatuser'の作成に加えて、インストール プロセスは、'tdatudf'という名前の新規グループも各ノード上に作成します。前述の注意事項は、'tdatudf'グループにも適用されます。これは変更しないでください。
'tdatuser'ユーザーには、システム上の特別な権限はありません。どのユーザーにも'tdatuser'としてログオンする権限を与えるべきではありません。
保護モードで実行する外部ルーチンがシステム リソースにアクセスする必要がある場合(ファイルを開く場合など)は、適切なアクセス権限を設定して'tdatuser'を付加する必要があります。
デフォルトでは、各vprocに対し、保護モード外部ルーチンを実行する全トランザクションによって共有される保護モード サーバーは2個しかありません。vprocごとの保護モード サーバーの数を増やすには、cufconfigユーティリティを使用します。詳細は、<Teradata Vantage™ - データベース ユーティリティ、B035-1102>を参照してください。
保護モードで実行するテーブル関数は、テーブル関数を実行するステップの期間内はサーバー プロセスを確保します。割り振る保護モードのサーバーの数を、実行するさまざまなセッションからの同時問合わせの数より多くすることは重要です。割り振る数が少なすぎると、いくつかの問合わせは待機することが必要になります。すべてのサーバーが使用されてしまうと、検出されないデッドロックが発生する可能性もあります。