CまたはC++の外部ルーチンを作成、置換または削除する度に、Teradata Databaseは、新しいダイナミック リンク ライブラリ(DLLまたはSO)を作成します。このDLLまたはSOは、外部ルーチンが配置、配布されるすべてのノードのデータベースに関連付けられます。
通常の環境では、古いバージョンのライブラリがあれば、データベースはそれを削除して、その時点で古いバージョンのライブラリが使用されないようにします(例えば、古いバージョンのライブラリに含まれる外部ルーチンを実行しているトランザクションが存在しないようにします)。
外部ルーチンの作成や置換を頻繁に繰り返していて、それらの外部ルーチンをほとんど実行しないような環境では、気付かないうちにデータベースで削除できないライブラリを蓄積していることがあります。
ファイル システムを使い果たすほどのライブラリを蓄積すると、外部ルーチンを作成または置換しようとしたときに、Teradata Databaseが新しいUDF/外部ストアド プロシージャ/UDMのDLLを作成できないことを示すエラー メッセージを受け取ることになります。
このメッセージを受け取ったときには、データベースがライブラリを保存する、サブディレクトリを確認してください。
<tdconfig>/udflib
<tdconfig>は、Teradataソフトウェア ディストリビューションの構成ディレクトリになります。このディレクトリを確認するには、コマンド ラインに以下を入力します。
pdepath -c
通常、tdbs_1053というような名前の付いたサブディレクトリごとに、1つのダイナミック リンク ライブラリが格納されています。
古いライブラリをクリーン アップするための最善策は、データベースを再始動することです。手動でライブラリを削除することはお勧めできません。これは、問題の原因になることがあります。