Sun Java System Messaging Server 6 2005Q4 管理指南

處理大量存取項目

在對映表中使用大量項目的站點應考量組織其對映表,在其中建立幾個一般萬用字元項目,以呼叫一般資料庫進行特定查詢。與直接在對映表中使用大量項目相比,建立幾個呼叫一般資料庫以進行特定查詢的對映表項目更為高效。

一個特例是某些站點想控制每個使用者,以決定誰可以收發網際網路電子郵件。使用存取對映表 (例如 ORIG_SEND_ACCESS) 可以方便地實作此類控制。對於此類用途,透過將大量特定資訊 (例如特定位址) 儲存在一般資料庫中,並建立對映表項目相應地呼叫一般資料庫,可大幅提昇效率和效能。

例如,可考量如下所示的 ORIG_SEND_ACCESS 對映表。


ORIG_SEND_ACCESS
 
! Users allowed to send to Internet
!
  *|adam@siroe.com|tcp_local|*    $Y
  *|betty@siroe.com|tcp_local|*   $Y
! ...etc...
!
! Users not allowed to send to Internet
!
  *|norman@siroe.com|tcp_local|*  $NInternet$ access$ not$ permitted
  *|opal@siroe.com|tcp_local|*    $NInternet$ access$ not$ permitted
! ...etc...
!
! Users allowed to receive from the Internet
!
  tcp_*|*|*|adam@siroe.com        $Y
  tcp_*|*|*|betty@siroe.com       $Y
! ...etc...
!
! Users not allowed to receive from the Internet
!
  tcp_*|*|*|norman@siroe.com      $NInternet$ e-mail$ not$ accepted
  tcp_*|*|*|opal@siroe.com        $NInternet$ e-mail$ not$ accepted
! ...etc...
      

與使用逐個輸入每個使用者的對映表相比,以下範例中所示的設定效率更高 ( 如果 包含數以千計的使用者項目,則效率更高),該圖顯示一般資料庫的原始碼文字檔 範例和 ORIG_SEND_ACCESS 對映表範例。若要將此原始碼檔案編譯為資料庫格式,請 執行 imsimta crdb 指令:

% imsimta crdb input-file-spec output-database-spec

如需有關 imsimta crdb 公用程式的詳細資訊,請參閱「Sun Java System Messaging Server 6 2005Q4 Administration Reference」中的「imsimta crdb」


DATABASE ENTRIES

SEND|adam@domain.com    $Y
SEND|betty@domain.com   $Y
! ...etc...
SEND|norman@domain.com  $NInternet$ access$ not$ permitted
SEND|opal@domain.com    $NInternet$ access$ not$ permitted
! ...etc...
RECV|adam@domain.com    $Y
RECV|betty@domain.com   $Y
! ...etc...
RECV|norman@domain.com  $NInternet$ e-mail$ not$ accepted
RECV|opal@domain.com    $NInternet$ e-mail$ not$ accepted


MAPPING TABLE

ORIG_SEND_ACCESS

! Check if may send to Internet
!
  *|*|*|tcp_local       $C${SEND|$1}$E
!
! Check if may receive from Internet
!
  tcp_*|*|*|*           $C${RECV|$3}$E
      

在此範例中,在一般資料庫左邊使用任意字串 SEND| 和 RECV| (以及在對映表由此產生的一般資料庫探測中) 提供了一種可區分這兩種探測的方法。如表格所示,使用 $C 和 $E 旗標包圍一般資料庫探測是對映表呼叫一般資料庫的典型方式。

以上範例顯示了根據一般資料庫項目檢查簡單對映表探測的情況。具有更多複雜探測的對映表亦可從使用一般資料庫中受益。