マッピングテーブルに非常に多くのエントリを使用するサイトでは、マッピングテーブルを組織化し、特定の参照に対して一般的なデータベースを呼び出す一般的なワイルドカードエントリを利用するとよいでしょう。特定の参照に対し、2 〜 3 件のマッピングテーブルエントリから一般的なデータベースを呼び出すほうが、数多くのエントリを直接マッピングテーブルで処理するよりもはるかに効率的です。
その一例として、だれがインターネットの電子メールを送信または受信できるのかをユーザーごとに制御するサイトがあります。そのような制御は、ORIG_SEND_ACCESS などのアクセスマッピングテーブルを使って簡単に適用できます。この場合、一般的なデータベースに特定の情報 (たとえば特定のアドレスなど) をまとめて保存し、マッピングテーブルのエントリで呼び出すように設定すれば、効率と性能がかなり向上します。
たとえば、次に示す ORIG_SEND_ACCESS マッピングテーブルの場合を考えてみます。
ORIG_SEND_ACCESS ! ユーザーはインターネットへの接続を許可されている ! *|adam@siroe.com|tcp_local|* $Y *|betty@siroe.com|tcp_local|* $Y ! ...など... ! ! ユーザーはインターネットへの接続を許可されていない ! *|norman@siroe.com|tcp_local|* $NInternet$ access$ not$ permitted *|opal@siroe.com|tcp_local|* $NInternet$ access$ not$ permitted ! ...など... ! ! ユーザーはインターネットからの受信を許可されている ! tcp_*|*|*|adam@siroe.com $Y tcp_*|*|*|betty@siroe.com $Y ! ...など... ! ! ユーザーはインターネットからの受信を許可されていない ! tcp_*|*|*|norman@siroe.com $NInternet$ e-mail$ not$ accepted tcp_*|*|*|opal@siroe.com $NInternet$ e-mail$ not$ accepted ! ...など... |
このように、ユーザーごとに個々のエントリを記述したマッピングテーブルを使用するのではなく、より効率的な設定 (何百、何千件ものユーザーを効率的に処理できる設定) を次の例で示します。この例では、一般データベースのソーステキストファイルのサンプルおよび ORIG_SEND_ACCESS マッピングテーブルのサンプルを示します。このソースファイルをデータベースのフォーマットにコンパイルするには、imsimtacrdb コマンドを使用します。
% imsimta crdb input-file-spec output-database-spec
imsimta crdb ユーティリティーの詳細については、『Sun Java System Messaging Server 6 2005Q4 Administration Reference』の「imsimta crdb」を参照してください。
データベースエントリ SEND|adam@domain.com $Y SEND|betty@domain.com $Y ! ...など... SEND|norman@domain.com $NInternet$ access$ not$ permitted SEND|opal@domain.com $NInternet$ access$ not$ permitted ! ...など... RECV|adam@domain.com $Y RECV|betty@domain.com $Y ! ...など... RECV|norman@domain.com $NInternet$ e-mail$ not$ accepted RECV|opal@domain.com $NInternet$ e-mail$ not$ accepted マッピングテーブル ORIG_SEND_ACCESS ! インターネットに送信する場合はチェックする ! *|*|*|tcp_local $C${SEND|$1}$E ! ! インターネットから受信する場合はチェックする ! tcp_*|*|*|* $C${RECV|$3}$E |
この例では、一般的なデータベースの左側に記述した文字列「SEND|」および「RECV|」を使用 (マッピングテーブルで生成される一般的なデータベースプローブ) することにより、2 種類のプローブを区別しています。一般的なデータベースプローブを「$C」および「$E」フラグで囲むのは、マッピングテーブルから一般的なデータベース呼び出しに特有の方法です。
この例では、単純なマッピングテーブルプローブが一般的なデータベースのエントリを参照するケースを示しています。より複雑なプローブのマッピングテーブルでも一般的なデータベースの使用による効果を得ることができます。