2.12.1.3 新しいtm_typeswのコンパイルとリンク
インストールを簡単に行うには、バッファ・タイプ・スイッチを共有オブジェクトに格納します。
ノート:
一部のプラットフォームでは、「共有オブジェクト」ではなく「共有ライブラリ」という言葉が使用されています。Windows 2003プラットフォームでは、「共有オブジェクト」ではなく「動的リンク・ライブラリ」と呼ばれています。この3つの用語が示す機能は同じなので、ここでは「共有オブジェクト」を使用します。ここでは、アプリケーション内のすべてのOracle Tuxedoプロセスに、変更後のバッファ・タイプ・スイッチを認識させる方法について説明します。これらのプロセスには、Oracle Tuxedoシステムで提供されるサーバーとユーティリティのほかに、アプリケーション・サーバーおよびアプリケーション・クライアントも含まれています。
- 「tm_typeswへの新しいバッファ・タイプの追加」の説明に従って、
$TUXDIR/lib/tmtypesw.c
をコピーして変更します。関数を追加する場合は、それらの関数をtmtypesw.c
に記述するか、別のCソース・ファイルに記述します。 - 共有オブジェクトに必要なフラグを設定し、
tmtypesw.c
をコンパイルします。 - すべてのオブジェクト・ファイルをリンクして、共有オブジェクトを生成します。
libbuft.so.71
をカレント・ディレクトリから別のディレクトリにコピーします。コピー先のディレクトリとしては、アプリケーションがlibbuft.so.71を認識でき、Oracle Tuxedoシステムで提供されるデフォルトの共有オブジェクトより先にlibbuft.so.71が処理されるディレクトリを選択します。$APPDIR
または$TUXDIR/lib
ディレクトリ、または$TUXDIR/bin
(Windows 2003プラットフォームの場合)のいずれかを使用することをお薦めします。
オペレーティング・システムの規則に従うために、プラットフォームが異なる場合は、バッファ・タイプ・スイッチ共有オブジェクトには異なる名前が使用されます。
表2-13 バッファ・タイプ・スイッチ共有オブジェクトのOS別の名前
プラットフォーム | バッファ・タイプ・スイッチ共有オブジェクトの名前 |
---|---|
UNIXシステム(大部分はSVR4) | libbuft.so.71
|
HP-UX | libbuft.sl
|
Sun OS | libbuft.so.71
|
Windows (16ビット) | wbuft.dll
|
Windows (32ビット) | wbuft32.dll
|
OS/2 (16ビット) | obuft.dll
|
OS/2 (32ビット) | obuft.dll
|
共有オブジェクト・ライブラリのビルド方法については、お使いのプラットフォームのソフトウェア開発ドキュメントを参照してください。
別の方法として、すべてのクライアント・プロセスとサーバー・プロセスで新しいバッファ・タイプ・スイッチを静的にリンクすることもできます。ただし、この方法ではエラーが発生しやすくなり、効率も共有オブジェクト・ライブラリをビルドするより劣ります。
親トピック: 独自のバッファ・タイプの定義