exteNd Application Server 5.0
コアヘルプ

 

    First Previous Next Last 機能ガイド  05/21/03 11:36:28 

第6章    サーバ実装の注意点

この章では、Novell exteNd アプリケーションサーバに関する実装の詳細をいくつか紹介します。 トピックは次のとおりです。

 
Top of page

J2EEコンテナ

J2EEコンポーネントモデルの中心となるのがコンテナです。 コンテナは、Novell exteNd アプリケーションサーバなどのJ2EEプラットフォームプロバイダによって提供されるランタイム環境です。 コンテナは、アプリケーション開発者がプレゼンテーションやアプリケーションのビジネス論理に集中できるようにするための、ライフサイクル管理およびその他のサービスを提供します。

アプリケーションサーバによって、それぞれ3つの種類のJ2EEコンテナが実装されます。

 
Top of section

Webコンテナ

Webコンテナには、WAR(Web archive)ファイルにパッケージ化されている「Webアプリケーション」が含まれています。 アプリケーションサーバに配備する各WARは、完全な、スタンドアロンのアプリケーションとして機能します。 WARファイルには、アプリケーションで使用するすべてのJSPページ、サーブレット、JavaBeanコンポーネント、ユーティリティクラス、静的HTMLページ、およびサウンドが含まれている必要があります。

JSPページおよびサーブレット   WARをサーブレットに配備した後は、WAR内の各JSPページはサーブレットのように動作します。 ページはURLと関連付けられています。 Webクライアントまたはサーバ側のオブジェクトがそのURLで操作を実行する際、サーバは関連付けられたサーブレットを検索し、これをインスタンス化して、サーブレットに関連付けられているinit()および service()メソッドを呼び出します。 サーブレットをアンロードしようとする際、サーバはdestroy()メソッドを呼び出します。

WAR内のJSPページ(またはサーブレット)のサーブレットコンテキストは、WAR自身です。 これはすなわち、WARでアプリケーションの境界を定義しているため、JSPページまたはサーブレットは別のWARに常駐するJSPページまたはサーブレットに転送する(あるいは含める)ことはできないことを意味します。

持続性   アプリケーションサーバ上で実行しているJSPページは、持続的ではありません。 各HTTPリクエストに対して、JSPページの新規のインスタンスが作成されます(配備記述子の中でJSPページがthreadsafeとして定義されているかどうかによります)。

応答   アプリケーションサーバは、Servlet APIを使用して応答バッファリングを実装します。 応答データをバッファに格納するため、ServletResponseインタフェースの次のメソッドが使用されます。

長さ   サーブレットで、setContentLength()を呼び出してコンテンツの長さを指定していない場合は、サーバはHTTP 1.1チャンキングを使用してコンテンツを一連のチャンクとして転送します。

URLの処理方法

Webクライアントまたはサーバ側のオブジェクトがWARのリソースをリクエストすると、サーバはリクエストされたURLをいくつかのコンポーネントに分割します。

コンポーネント

説明

context path

WARを識別します。

servlet path

WAR内のリクエストされた項目(JSPページ、サーブレット、あるいはその他のリソース)を識別します。

pathinfo

(オプション)サーブレットに渡される外部データを提供します。 一般には、リクエストに対してクエリーパラメータ(pathinfoデータの代わり)を渡した場合の方がパフォーマンスが良くなります。pathinfoはルックアッププロセスを遅くしますが、パラメータはそうでないからです。

myWarに配備されたWARファイルに対するURLのコンポーネントの例を次に示します。

  http://host/db/path/to/war/myWar/foo.jsp/pathinfo/for/jsp

ここで、コンテキストパスは/db/path/to/war、サーブレットパスは/myWar/foo.jsp、そしてpathinfoは/pathinfo/for/jspです。

WAR内部にリクエストをディスパッチ

JSPページまたはサーブレットは同一WARに常駐する任意の他のJSPページまたはサーブレットに転送する(あるいは含める)ことができます。

<jsp:forward>アクションまたは<jsp:include>アクションを使用すると、ターゲットURLはコンテキスト相対あるいはページ相対になることができます。 コンテキスト相対のURLはスラッシュ(/)で始まり、WARに対して相対になるように解釈されます。 コンテキスト相対のURLはスラッシュ(/)で始まり、WARに対して相対になるように解釈されます。

JSPページに対する完全なURLはhttp://localhost/myDatabase/jsptests/myjsps/test.jspで、配備時にWARに指定したURLはjsptestsであるとします。 この場合、同一WARのJSPページに次のタグを埋め込んでページにリクエストを送信することができます。

  <jsp:forward page="/myjsps/test.jsp"/>

サーブレットでは、ServletContextオブジェクトのgetRequestDispatcher()メソッドを使用してターゲットURLを指定すると、URLはコンテキスト相対となります。 スラッシュ(/)で始まる必要があり、WARに対して相対になるように解釈されます。 リクエストをhttp://localhost/myDatabase/jsptests/myjsps/test.jspに送信するには、同一WAR内のサーブレットに次のコードを埋め込みます。

  ServletConfig sconfig = getServletConfig();
  ServletContext sc = sconfig.getServletContext();
  RequestDispatcher rd =
     sc.getRequestDispatcher("/myjsps/test.jsp");
  rd.forward(req, res);

forward()メソッド呼び出しでは、暗黙の「リクエスト」および「応答」オブジェクトを引数として渡します。

JSPページとセッション管理

アプリケーションサーバは、セッションを追跡するためにクッキーまたはURLリライトを使用できます。 ブラウザでクッキーがサポートされている場合はクッキーを使用し、ブラウザでクッキーがサポートされていない場合はURLリライトを使用します。

For more information    詳細については、『管理者ガイド』の サーバ設定に関する章の節を参照してください。

 
Top of section

EJBコンテナ

EJBコンテナではEJB2.0BeanおよびEJB 1.1Bean用のランタイム環境が提供されています。 ランタイム環境には、ネーミングサービス、リモートアクセス、セキュリティ、およびトランザクションサポートなど低いレベルのサービスが含まれます。

この節では、EJBコンテナの機能について説明します。トピックは次のとおりです。

サポートされているEJB

EJBコンテナでサポートされるのは次のとおりです。

EJBコンテナサービス

この節では、アプリケーションサーバを配備する際に提供されるサービスについて説明します。

デバッグ

EJBコンテナでは「配備時」と「ランタイム時」の両方でデバッギンサポートが提供されています。

配備デバッグのサポート    配備デバッグのサポートは、コマンドラインツールSilverCmdを通して提供されます。 次の表は、デバッグでもっとも役に立つコマンドについての説明です。

SilverCmdコマンド

説明

ValidateEJB

仕様に対してEJBを検証します。

配備計画と配備記述子を検証します。

このコマンドはSilverCmd DeployEARやDeployEJBでも呼び出すことができます。

エラーおよび警告を生成します。

DeployEAR

詳細レベル(-v)を指定できます。 3段階のメッセージレベルを指定できます。

  • Low: 1を指定します。

  • Medium: 3を指定します。

  • High: 5を指定します。

検証を省略するには、-nを指定します。

DeployEJB

For more information    SilverCmdの詳細については、 を参照してください。

ランタイムデバッグサポート    ランタイムデバッグサポートは、サーバの起動スイッチまたはサーバコンソールのコマンドシェルを通して提供されます。 次の表は、スイッチとその使用法についての説明です。

サーバスイッチ

説明

EJBDebug

サーバで出力するメッセージのタイプを指定できます。 サーバの起動時にこの構文を使用します。

  SilverServer +DEJBDebug=n

nの有効な値は次のとおりです。

  • 1: コンテナでCMPエンティティBean用に生成したSQLを表示します(別の方法として、sql.debugを使用できます)。

  • 2: トランザクションの開始、コミット、およびロールバックを表示します。

  • 4: 例外を表示します。

  • 8: セキュリティを表示します。

  • 16: EJBメタデータを表示します。

  • 32:コンテキストツールの内容を表示します。

「複数の出力タイプを指定」    値の合計を使用します。 たとえば、SQLと例外を表示するには、5の値を使用します。

「メッセージの表示」    配備されているすべてのBeanあるいは特定のBeanのメッセージを表示できます。 Beanのサブセットの値を表示するには、EJBDebugName (described next)を使用します。

EJBDebugName

EJBデバッグメッセージを表示したい1つのBeanまたはBeanのセットを指定できます。 EJBDebugフラグ(上記)と一緒にこれを指定します。 サーバを起動する際の構文は次のとおりです。

  SilverServer +DEJBDebugName=name

ここで、 nameは次のとおりです。

  • 配備記述子のejb-name要素

  • 大文字と小文字を区別します。

  • 単一文字または文字列(デバッグメッセージは名前に文字または文字列が含まれているBeanを表示します)。

インスタンスプール

EJBコンテナは、エンティティ、ステートレスセッション、およびメッセージ駆動型Beanに対するインスタンスプールをサポートします。 プールはBeanごとにあり、配備計画の中で指定されます。 プールサイズを設定するには、アップデートされた配備計画を使用してBeanを再配備します。

「エンティティBeanおよびセッションBean」については、次の方法で値を指定します。

配備計画の項目

手順

initialPoolSize

プールを事前割り当てするには、この値をゼロより大きい数字に設定しておきます。

maxPoolSize

プールで未使用のインスタンスの最大数を指定します。

デフォルトは次のとおりです。

  • 500 セッションBean用

  • 0 エンティティBean用

  • 5 メッセージ駆動型Bean用

poolingPolicy

プールサイズが最大値を超えた場合の処置を定義します。

指定できる値はCREATEとFAILです(次を参照)。

エンティティおよびステートレスセッションBeanのプールポリシー   Beanを配備する際に、EJBコンテナではインスタンスプールを作成しません。その代わりに、インスタンスが増大する必要性に応じてプールを作成します。

「メッセージ駆動型Bean」の場合は、コンテナはServerSessionPoolインタフェースを実装することによってインスタンスプールを提供します。

ステートフルセッションBeanの非活性化   アプリケーションサーバは、GC(Garbage Collection)レートを計測することによってメモリの使用状況を監視します。 GCレートが急激に増加すると、サーバはステートフルセッションBean非活性化を開始します。 監視および非活性化を無効にするには、次の行をhttpd.propsファイルに追加します。

  http-server.com.sssw.srv.disableMemMonitor=false

httpd.propsファイルは、サーバの\resources ディレクトリにあります。

負荷バランス

負荷バランスの単位はセッションです。 単一セッション内で使用されるすべてのEJBは、クラスタ内の単一サーバ上に常駐します。 負荷バランスはユーザに透過的で、クライアントは通常のJNDIルックアップを行うことができ、ネーミングサーバーは実行するBeanのサーバを選択します。

クラスタ内でEJBを使用する場合は、別のネームサービスポートからサーバを起動する必要があります。 デフォルトのネームサービスポートは54890です。SMCを介してネームサービスポートを設定できます。

For more information    アプリケーションサーバクラスタリングメカニズムの詳細については、『管理者ガイド』の クラスタの管理に関する章を参照してください。

ネーミングサービス

EJBはJNDI(Java Naming and Directory Interface)のルートコンテキストに登録されています。 配備計画の中でJNDI名、Bean参照、リソース参照、環境変数、あるいはUserTransactionsに対して階層的なネーミング構造を指定した場合、コンテナはまだ存在していない中間サブコンテキストを作成します。

デフォルトにより、サーバはBean参照、環境変数、およびリソース参照を java:comp/ envコンテキストに登録します。 EJB仕様の推奨に従って、オブジェクトを別々のサブコンテキストに格納できますが、アプリケーションサーバではこられのネーミング規則を強制しているわけではありません。 すなわちこれはユーザ独自の運用環境にもっとも適したネーミング規則を使用できるということです。

リモートアクセス

アプリケーションサーバは、ORB (jBroker Object Request Broker)を使用しているRMI/IIOPを介してEJBへのアクセスをサポートしています。jBroker isはエンタープライズクラスのJavaベースのCORBA ORBです。

「EJBのポータブルルックアップ」については、次のようなCORBAのネーム構文を使用します。

  corbaname:iiop:host:port#name

例は次のとおりです。

  corbaname:iiop:MyMachine:54520#MyEJB

クライアントアクセス   クライアントがEJBにアクセスするためには、EJBのインタフェース(コンパイル時の参照用)とコンテナ生成のスタブ(ランタイム用)を含むJARが必要です。

EJBの開発者は、EJBクライアントJARを作成し、配備記述子にejb-client-jar要素が含まれていることを確認する必要があります。 この要素が存在する場合は、コンテナはスタブクラスを生成し、スタブをクライアントJARに格納し、そしてクライアントJARをサーバにアップロードします。

EJBクライアントJARはコンテナによって生成され、サーバ上に常駐するため、JARをサーバからディスク上の適切な場所にダウンロードする必要があります。 EJBクライアントJARのディスク上の場所をクライアントのclasspathに指定します。 EJBを変更して再配備するたびに毎回新しいバージョンのEJBクライアントJARをダウンロードすることを確認してください。

ローカルアクセス

ローカルBeanの使用状況を確認する

  EJBLocalHome/beanName

For more information    jBrokerの詳細については、サーバの\jBrokerディレクトリにあるマニュアルを参照してください。

セキュリティ

EJBコンテナは、次のものを使用してランタイム時のセキュリティ管理を行います。

認証と呼び出し側プロパゲーション

EJBを呼び出すと、サーバはユーザを認証し、呼び出し側のセッション中はサーバ上で呼び出し側のIDを使用します。 すべてのメソッド呼び出しはそのセッションのIDを使って実行されます。 ロール名を配備計画のプリンシパル(ユーザ、グループ、あるいはプリンシパルのリスト)にマップできます。

アクセス許可

アクセス許可は、配備記述子で指定されているsecurity-role要素およびmethod-permission要素によって定義されます。 EJB JARで最低でも1つのBeanメソッドのセキュリティを設定する場合は、すべてのメソッドのセキュリティを設定する必要があります。そうしないと、コンテナはセキュリティが設定されていないすべてのメソッドは制限されているものと見なし、ユーザはメソッドの呼び出しを一切できなくなってしまいます。 また、配備記述子のexclude-list要素を使用して一連のメソッドの呼び出しができないように設定することも可能です。 制限されたメソッドが呼び出されると、コンテナはAccessRightsViolation Exceptionを発行します。 または、メソッドに対して一切のセキュリティ設定をしない非セキュリティモードを選択することもできます。

安全な通信

SSLを使用してEJBクライアントとアプリケーションサーバ間に安全な通信を確立できます。 jBroker ORBは、RSAに対してのみIIOP over SSLサポートを提供します。

HTTPSを実行する必要はありません。 次のことが必要となります。

For more information    EJBクライアントとアプリケーションサーバ間に安全な通信を確立する詳細については、『管理者ガイド』のセキュリティのセットアップに関する章を参照してください。

トランザクションサポート

EJBコンテナは、JTS(Java Transaction Service)を完全に実装している、jBroker Transaction Managerを介して分散トランザクションをサポートします。

配備記述子でトランザクション属性が指定されていない場合、コンテナはデフォルトのトランザクション属性としてSupports属性を使用します。

 
Top of section

クライアントコンテナ

「J2EEアプリケーションクライアント」は、ユーザマシン上で実行され、J2EEサーバにアクセスするJavaベースのクライアントを提供する標準的な方法です。 J2EEアプリケーションクライアントは、 JNDI名前空間アクセス(最小限)を提供するクライアントコンテナによってホストされます。 その他、J2EE仕様では、基本的なものから強力なものまで、幅広いクライアントコンテナの実装が可能です。

アプリケーションサーバでは、サーバに配備されたJ2EEアプリケーションクライアントを呼び出して起動させることのできるSilverJ2EEClientと呼ばれるクライアントコンテナが提供されています。 SilverJ2EEClientには、次のものを含む強力なサポートサービスのセットが提供されています。

For more information    詳細については、 を参照してください。

 
Top of page

セッションレベフェイルオーバ

アプリケーションでは、WAR (Web applications)のセッションレベルフェイルオーバおよびステートフルセッションBean(EJB JAR)をサポートしています。 「セッションレベルフェイルオーバ」は、クラスタ内でサーバに障害が発生した際にユーザの一時データ(state)を保持する機能のことを指します。 データは、クラスタ内のどこかのサーバで障害が発生した場合に回復できるようにするため、永続的なストレージレポジトリ(クラスタ内のサーバ間で共用しているデータベースやファイルシステムなど)に格納されます。

セッションレベルフェイルオーバをサポートするため、クラスタのディスパッチャとしてハードウェアディスパッチャをインストールしておく必要があります。 セッションレベルフェイルオーバの設定がされているアプリケーションにアクセスするすべてのクライアントは、クラスタの(ハードウェア)ディスパッチャを介してアプリケーションにアクセスする必要があります。

フェイルオーバサポートは、複数のサーバにまたがる1つのセッションに属するEJBの負荷バランスのためのメカニズムではありません。

 
Top of section

セッションレベルフェイルオーバに対するEJBサポート

EJBコンテナは、ステートフルセッションBean(ローカルとリモート)のセッションレベフェイルオーバをサポートします。 ステートフルセッションBeanは、次の要件を満たす必要があります。

ステートフルセッションBeanに対するセッションレベルフェイルオーバの影響

セッションBeanが先にリストされている要件を満たしていて、障害が発生した場合、回復は次のようにして行われます。

  1. 1つまたは複数の回復可能なステートフルセッションBeanを含む各トランザクションの最後に、EJBコンテナはトランザクションで使用された回復可能なすべてのBeanを非活性化、シリアル化して、これをデータベースに保存します(SilverMasterデータベースのAgSessBeansテーブル)。

  2. サーバが活動状態である限り、クライアントは同一サーバを使用し続けます。

  3. クライアントはリモート呼び出しで通信障害があった場合、サーバに障害があったものと判断します。

回復可能なセッションBeanがejbActivate()メソッドで大量の作業をしていた場合には、EJBアプリケーションのパフォーマンスに影響を与える可能性があります。 たとえば、セッションBeanでデータベース接続の割り振りを行い、キャッシュに入れていた場合などです。

セッションレベルフェイルオーバをサポートするためのサーバ設定   IIOP over SSLを使用している場合のセッションレベルフェイルオーバをサポートするには、サーバにIIOP SSL通信用の幅広い範囲のポートを設定する必要があります。

For more information    広範なポートの設定の詳細については、『管理者ガイド』の ORB設定の指定に関する章を参照してください。

 
Top of section

セッションレベルフェイルオーバに対するWebアプリケーションサポート

WARコンテナでは、セッションレベフェイルオーバをサポートしています。 Webアプリケーションは次の要件を満たす必要があります。

Webアプリケーションに対するセッションレベルフェイルオーバの影響

Webアプリケーションが先にリストされている要件を満たしていて、障害が発生した場合、回復は次のようにして行われます。

  1. Webアプリケーションへの各HTTPリクエストに対して、サーバは各リクエストの最後にHTTPSessionステートをデータベース(SilverMasterのAgSessBeansテーブル)にシリアル化します。

    コンテナは、各HTTPリクエストの最後にHTTPSessionステートをデータベースに非活性化してシリアル化し、保存するため、これはアプリケーション全体のパフォーマンスに影響を与える可能性があります。

  2. サーバが活動状態である限り、クライアントリクエストは同一サーバにダイレクトし続けます。

  3. リクエスト間で障害が発生し、ハードウェアディスパッチャが備わっていた場合には、ディスパッチャはサーバの障害を検出して、次のリクエストを別のサーバに送信します。

ハードウェアディスパッチャがない場合   アプリケーションサーバのソフトウェアディスパッチャを使用している場合は(ハードウェアディスパッチャの代わり)、ユーザアプリケーションは障害が発生した後再びディスパッチされるために、手動でディスパッチャまで戻る必要があります。 再びディスパッチされると、セッションIDクッキーが異なるため、新しいサーバによって自動的にステートが復元されることはありません。

フェイルオーバが動作しない場合   HTTPSessionステートはトランザクションではないため、リクエスト中にアップデートされたHTTPSessionの内容は特定の状況下では消失されます。たとえば、リクエスト中にサーバがクラッシュした場合です(ただしリクエスト前の場合は、ステートは保存されます)。 しかし、ステートが保存された後で応答を返す前にサーバがクラッシュした場合、ステートは回復されます。

 
Top of section

セッションレベルフェイルオーバに対するアプリケーションクライアントサポート

J2EEクライアントアプリケーションは、先ほど セッションレベルフェイルオーバに対するWebアプリケーションサポートで説明されているとおり、WebコンポーネントとEJBがセッションレベルフェイルオーバの要件を満たしている限り、セッションレベルフェイルオーバをサポートするWebアプリケーションコンポーネントまたはEJBにアクセスすることができます。 J2クライアントは、次のとおりまず初めにクラスタの(ハードウェア)ディスパッチャに接続する必要があります。

  SilverJ2EEClient dispatcher-name:port database-name application-name

For more information    SilverJ2EEClientの詳細については、 を参照してください。

 
Top of page

CORBA サポート

アプリケーションサーバにはjBroker ORBが含まれています。jBroker ORBは、エンタープライズクラスJavaベースのCORBA ORBです。 アプリケーションサーバ、SilverJ2EEClient、あるいはその他のブラウザからjBroker ORBを使用できます。 jBroker ORBを使用してJavaベースのCORBA ORBアプリケーションの開発、配備、および管理を行うことができます。 アプリケーションサーバでは、次のフィーチャのサブセットを使用します。

For more information    jBrokerの詳細については、アプリケーションサーバヘルプの『機能ガイド 』の jBrokerドキュメンテーションに関する節を参照してください。

 
Top of page

XMLサポート

XML (eXtensible Markup Language)では、異機種のコンピュータシステム間およびWebのアプリケーション上でデータ交換するために使用できるXMLドキュメントを作成できます。 この節では、XMLドキュメントに対するアプリケーションサーバの使用およびサポートについて説明します。トピックは次のとおりです。

 
Top of section

XMLに対するアプリケーションサーバサポート

アプリケーションサーバは次のものに対してXMLドキュメントを使用します。

詳細については、次を参照してください。

 
Top of section

XML習得のためのリソース

XMLの初心者あるいは特定のXMLトピックについてのみ調べる必要がある場合は、次の学習リソースにアクセスしてみてください。

リソース

説明

入手先

Novell exteNd開発者サイト

多数のドキュメントおよびWebサイトにリンクされているXML習得のためのインデックスおよび参照マニュアル。

developer.novell.com/extend

XML.orgサイト

XMLニュースおよび情報についてのディレクトリ

www.xml.org

 
Top of page

各国対応サポート

この節では、次の各国対応トピックについて説明します。

 
Top of section

データベースサポート

アプリケーションサーバでの使用が認可されているJDBCドライバはすべて英語/ヨーロッパ言語およびアジアの言語をサポートするため完全にテスト済みです。

Procedure JDBC-ODBCブリッジドライバのマルチバイトバージョンを使用する。

  1. 次の行をサーバの /ResourcesディレクトリのAgUserIni.propsに追加します。

      com.sssw.srv.ambry.mbcs.AgOdbc=true
    
  2. アプリケーションサーバを再起動します。

 
Top of section

クライアント側のサポート

アプリケーションサーバには、簡字体および繁体字の中国語、英語、フランス語、ドイツ語、イタリア語、日本語、韓国語、ポルトガル語、ロシア語、そしてスペイン語用のランタイム言語ライブラリが含まれています。

SilverJ2EEClientで文字が正しく表示されないフォントマッピングの問題が発生した場合は、JREのfont.propertiesファイルを編集することによって問題を解決できます。 サーバのインストールディレクトリのjre/libサブディレクトリのfont.properties.XXファイルを編集する必要があります。XXは、使用する言語の2文字の言語エンコードです。たとえば、韓国語の場合はfont.properties.koを編集します。

ファイルの2つのセクション   ファイルには前後して2つのセクションが表示されます。 それぞれのセクションには、ラベルname aliasesとラベルfor backwardcompatibilityが付いています。

font.properties.koの元のバージョンは次のとおりです。

  # name aliases
  #
  # alias.timesroman=serif
  # alias.helvetica=sansserif
  # alias.courier=monospaced
  # for backward compatibility
  timesroman.0=Times New Roman,ANSI_CHARSET
  helvetica.0=Arial,ANSI_CHARSET
  courier.0=Courier New,ANSI_CHARSET
  zapfdingbats.0=WingDings,SYMBOL_CHARSET

処理方法   name aliasesセクションは、存在しないフォント名をファイルに定義されているフォントマッピングにマップします。 これらのエイリアスの行のコメントを外す必要があります。 (これはマップを処理する方法として推奨されます。 セクションfor backward compatibilityは、存在しないフォント名をファイルで定義されているフォントにマップする古いやり方です。

注記:   このセクションの最初の3行のコメントを外す必要があります。

更新されたファイルバージョンは次のとおりです。

  # name aliases
  #
  alias.timesroman=serif
  alias.helvetica=sansserif
  alias.courier=monospaced
  # for backward compatibility
  # timesroman.0=Times New Roman,ANSI_CHARSET
  # helvetica.0=Arial,ANSI_CHARSET
  # courier.0=Courier New,ANSI_CHARSET
  zapfdingbats.0=WingDings,SYMBOL_CHARSET
    First Previous Next Last 機能ガイド  05/21/03 11:36:28 

Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC, a wholly owned subsidiary of Novell, Inc. All rights reserved.