「データとサービス」セクション

ColdFusion Administrator の「データとサービス」セクションは、ColdFusion、データソース、検索およびインデックス作成機能のインターフェイスです。次の表に、ColdFusion Administrator の「データとサービス」セクションで実行できる一般的なタスクの一部を示します。

タスク

説明

JDBC データソースの作成および管理

データソースページでは、ColdFusion 用の JDBC データソース接続の確立、編集および削除が可能です。詳しくは、データソース管理を参照してください。

ColdFusion コレクションの作成と保守

ColdFusion コレクションページでは、Solr コレクションの作成と削除、および作成したコレクションの保守作業が可能です。詳しくは、ColdFusion コレクションページを参照してください。

Web サービスへのマッピングの定義

Web サービスページを使用すると、リモートアプリケーションの機能をインターネットを介して公開したり利用したりできます。詳しくは、Web サービスページを参照してください。

Adobe® Flex™ アプリケーションとの統合のための設定の指定

Flex 統合ページでは、どの Flex 統合機能を有効にし、どの IP アドレスでデータサービス操作を実行するかを指定できます。詳しくは、Flex 統合ページを参照してください。

データソースページ

ColdFusion では、動的なデータベースコンテンツを Web にすばやく配信できます。データソースは、データベース操作に対するエントリポイントです。

データソースページでは、JDBC データソースの作成、編集および削除が可能です。ColdFusion アプリケーションでデータベースを使用するには、まず ColdFusion Administrator でデータソースを登録します。詳しくは、データソース管理を参照してください。

ColdFusion アプリケーションでデータベースにアクセスする前に、次のことを行う必要があります。
  1. データソースとやりとりするために必要なデータベースドライバーを把握して決定します。ColdFusion では、JDBC データベースドライバーを使用してデータソースと通信します。

  2. ドライバーを指定し、データソース情報を追加し、データベースに接続することにより、データベースを ColdFusion データソースとして設定します。

  3. データソースを確認します。

データソースの追加について詳しくは、データソースの追加を参照してください。

[ColdFusion コレクション] ページ

このページを使用すると、Solr コレクションを作成して管理できます。

ColdFusion Administrator では、コレクションの管理を実行できます。ColdFusion に接続されている Solr コレクションのインデックス作成、最適化、破棄または削除が可能です。[アクション] 列内のアイコンを使用して、次のアクションを実行します。

アクション

説明

インデックス作成

コレクション内のファイルを分析し、メタデータおよびそのファイルを指すポインターを組み立てます。

最適化

検索をさらに高速化するために、コレクションのインデックスを統合することによって、ファイルの削除や変更後にできた領域をメモリ空間を再利用できるようにします。コレクションを定期的に最適化する必要があります。

破棄

コレクション内のすべてのドキュメントを削除しますが、コレクション自体は削除しません。コレクションのディレクトリ構造を保持します。

削除

コレクションを削除します。

ColdFusion には、インデックス作成と検索のテクノロジーを提供する Solr が含まれています。そのため、高速かつ効率的なサイト検索を行えるように最適化されたインデックス付きデータコレクションの作成、挿入および管理が可能です。

「コレクション」とは、ドキュメントの論理グループおよびドキュメントについてのメタデータです。「メタデータ」には、単語のインデックス、ドキュメントフィールド情報の内部ドキュメントテーブル、ドキュメントファイルに対する論理ポインターが含まれます。

検索インターフェイスの構築について詳しくは、『ColdFusion アプリケーションの開発』の「検索インターフェイスの構築」および「Solr 検索のサポート」を参照してください。

ColdFusion コレクションページでコレクションを取得できない場合は、Solr 検索サーバーが動作しているか確認してください。

Solr コレクションの値の設定

コレクションを作成した後、「Solr コレクション」セクションを使用して、指定したディレクトリのテキストファイルおよびバイナリファイルのデータでコレクションに値を設定(またはインデックス作成)します。コレクションは、インデックス作成されたドキュメントを説明するメタデータで構成されています。ColdFusion クエリーのデータは、ColdFusion の cfindex タグのみを使用してインデックス作成できます。コレクションに値を設定またはインデックス作成するには:
  1. Solr コレクションのリストで、コレクションの名前またはその「コレクションのインデックス作成」ボタンをクリックします。Solr コレクションのインデックス作成ページが表示されます。

  2. 「ファイル拡張子」フィールドの拡張子を確認します。コレクションのファイルの拡張子を追加、編集または削除できます。

  3. インデックス作成するディレクトリへのパスを「ディレクトリパス」フィールドに入力します。パスを検索して入力するには、「サーバーのブラウズ」をクリックします。

  4. 指定したディレクトリのサブディレクトリを含めるには、「サブディレクトリを再帰的にインデックス」オプションを選択します。

  5. (オプション)ブラウザー内の検索で見つかったドキュメントを表示するために使用された URL 接頭辞を「返信先 URL」フィールドに入力します。

    例えば、ColdFusion のマニュアルディレクトリのインデックスを作成する場合は、C:¥ColdFusion9¥wwwroot¥cfdocs がインデックスを作成するディレクトリになります。

    返信先 URL には http://localhost:8500/cfdocs/ と入力します。ここでは、ポート 8500 でビルトイン Web サーバーを使用しているものと仮定しています。

  6. 「送信」をクリックします。指定したディレクトリのデータでコレクションの値が設定されます。次に、ColdFusion コレクションページが表示されます。

変更を保存せずにページを閉じるには、「キャンセル」をクリックします。

Solr コレクションのエイリアスの名前変更または作成

  1. ColdFusion コレクションページで、名前を変更する ColdFusion コレクションをクリックします。コレクションの管理ページが表示されます。

  2. 「コレクション名の変更」セクションの「コレクションの新しい名前」フィールドに新しい名前を入力して、「送信」をクリックします。

  3. コレクションのエイリアスを指定するには、「コレクションのエイリアス」フィールドにエイリアスを入力して、「送信」をクリックします。

Solr サーバーページ

Solr サーバーインスタンスは、サービスとして起動または停止できる、独立したサーバーとして動作します。ColdFusion Administrator を使用すると、インデックス作成および検索機能用の Solr コレクションを設定できます。

Solr コレクション

Solr コレクションは ColdFusion Administrator または <cfcollection> タグを使用して作成できます。

ColdFusion Administrator では、「データとサービス」領域の次のパネルを使用して Solr サポートを実装します。

ColdFusion コレクション
コレクションを作成するときに、Solr コレクションオプションを選択します。Solr コレクションが作成されたら、パネルの下部にある「Solr コレクション」領域で、インデックス作成、最適化、破棄、削除のいずれかのアクションを使用できます。

また、ColdFusion Administrator では、Solr コレクションの名前の変更やエイリアスの設定も行えます。これを行うには、次のようにします。

  1. ColdFusion コレクションページで、名前を変更する ColdFusion コレクションをクリックします。コレクションの管理ページが表示されます。

  2. 「コレクション名の変更」セクションの「コレクションの新しい名前」フィールドに新しい名前を入力して、「送信」をクリックします。

  3. コレクションのエイリアスを指定するには、「コレクションのエイリアス」フィールドにエイリアスを入力して、「送信」をクリックします。

Solr サーバー
Solr サーバーページでは、Solr サーバーのホスト名、ホームディレクトリおよびその他の詳細設定を指定できます。

Solr サーバー

Solr 検索サービスはローカルホストまたはリモートホストにインストールして設定できます。リモートサーバーの場合は、検索操作を実行する際に ColdFusion が使用するホストを設定できます。

Solr サーバーページで、Solr サーバーのホスト名とホームディレクトリを指定します。また、管理ポート、Web アプリケーション名、バッファー制限などの詳細設定も指定できます。

Web サービス

Web サービスの概要

Web サービスを使用すると、リモートアプリケーションの機能をインターネットを介して公開したり利用したりできます。ユーザーは、リモートアプリケーションにリクエストを行って、アクションを実行させることができます。ColdFusion Administrator を使用して Web サービスを登録できるので、Web サービスを参照するときに WSDL の URL 全体をクライアントで指定する必要はありません。ColdFusion を使用した Web サービスの公開と利用について詳しくは、『ColdFusion 開発ガイド』を参照してください。

Web サービスの追加

  1. Web サービスの名前を「Web サービス名」ボックスに入力します。

  2. Web Services Description Language(WSDL)の URL を「WSDL URL」ボックスに入力します。

  3. ユーザー名とパスワードを入力します。

  4. (必要に応じて)プロキシサーバーの詳細および資格情報を指定します。

  5. (オプション)Web サービスリクエストのタイムアウト値を秒単位で指定します。

  6. 「Web サービスの追加」をクリックします。アクティブな ColdFusion Web サービスのリストに、Web サービス名が表示されます。

Web サービスの編集

  1. 「アクティブな ColdFusion Web サービス」領域で、Web サービス名をクリックします。

    ColdFusion Administrator のウィンドウの上部に Web サービスが表示されます。

  2. 設定を変更します。

  3. 「Web サービスの更新」をクリックします。

Web サービスの WSDL の表示

 「アクティブな ColdFusion Web サービス」領域で、「WSDL URL」をクリックします。

新規ブラウザーウィンドウで、WSDL が開きます。

Web サービスページ

Web サービスを使用すると、リモートアプリケーションの機能をインターネットを介して公開したり利用したりできます。ColdFusion Administrator を使用して Web サービスを登録できるので、Web サービスを参照するときに Web Services Description Language(WSDL)の URL 全体を指定する必要はありません。Web サービスを初めて参照すると、その Web サービスが ColdFusion Administrator に自動的に登録されます。

Web サービスを登録すると、コードを短縮でき、コードを編集せずに Web サービスの URL を変更できるようになります。詳しくは、『ColdFusion アプリケーションの開発』の「Web サービスの使用」を参照してください。

REST サービスページ

REST を有効にする CFC を作成した後、ColdFusion Administrator で Web サービスとして登録するフォルダーを指定します。

注意:ネストされた REST アプリケーションは登録できません。

フォルダーを指定する際に、rest または restPath を指定したフォルダーまたはサブフォルダーにあるすべての CFC が登録されます。

  1. ColdFusion で CFC が検索されるアプリケーションパスまたはルートフォルダーを参照して選択します。

  2. (オプション)「サービスマッピング」セクションで、アプリケーション名の代わりに仮想マッピングを指定します。

    Application.cfc とアプリケーション名がフォルダーにある場合は、アプリケーション名でサービスが識別されます。サービスマッピングを指定すれば、これを上書きできます。この場合、指定されたサービスマッピングでサービスが識別されます。フォルダーに Applicaiton.cfc がない場合は、サービスマッピングの指定は必須です。

  3. (オプション)デフォルトの REST サービスとしてアプリケーションを指定します。1 つのサーバーインスタンスに対してデフォルトとして設定できるアプリケーションは 1 つだけです。デフォルトアプリケーションはいつでも変更できます。「デフォルトアプリケーションを設定する」を選択し、「サービスを追加」をクリックします。デフォルトとしてのサービスを削除するには、選択を解除します。

  4. 詳細を指定した後、「サービスを追加」をクリックして登録します。

    「アクティブな ColdFusion REST サービス」セクションで、すべての登録済み Web サービスの詳細を指定します。

登録が済むと、すべての CFC は RESTful サービスとして公開されます。登録後に起動すると、登録されたサービスが自動的に公開されます。

注意:アプリケーションの REST 関連コンポーネントを変更したときは、必ずアプリケーションを更新してください。

ColdFusion Splendor では、サイトレベルの REST アプリケーションがサポートされ、プラグ可能なシリアライザーとデシリアライザーを使用できるようになりました。

サイトレベルの REST アプリケーションのサポート

ColdFusion 10 では、たとえアプリケーションが異なるホストに存在する場合でも、複数のアプリケーションで同じ名前を持つことはできません。ColdFusion Splendor では、REST 機能が強化され、異なるホストの複数のアプリケーションで同じ名前を持つことができます。また、仮想ホストごとにデフォルトのアプリケーション(REST サービスを含む)を 1 つ設定できます。 
次のオプションのいずれかを使用して、REST サービスを含むディレクトリを登録できます。

  • アプリケーション設定の自動登録
  • ColdFusion Administrator コンソール
  • ColdFusion Admin API
  • restInitApplication メソッド

オプション 1:アプリケーション設定の自動登録

ColdFusion Splendor では、新しいアプリケーション設定の「自動登録」が導入されました。

  • アプリケーションの自動登録を有効にする場合、autoregister を true に設定します。

<cfset this.restsettings.autoregister="true"/> 

  • servicemapping の指定はオプションです。servicemapping が指定されていない場合、"this.name"/アプリケーション名がデフォルトとして使用されます。

<cfset this.restsettings.servicemapping="testmapping"/>                                                                                                                                          

  • usehost または hostname を指定します。usehost 属性を true に設定すると、ホスト名は URL から解析され、使用されます。

<cfset this.restsettings.usehost=true/>                                                                                                                                                          

  • host に明示的に名前を指定すると、ホスト名が作成されます。host が指定されていない場合は、usehost 名がデフォルトになります。

<cfset this.restsettings.host="www.adobe.com"/> 

  • isDefault を true に設定すると、そのアプリケーションがデフォルトアプリケーションになります。 

<cfset this.restsettings.isDefault=true/>

usehosthost の両方が指定されていない場合、そのアプリケーションはホスト名なしで登録されます。アプリケーションに最初のリクエストが到達し、そのリクエストが REST リクエストでない場合、アプリケーションが開始され、登録されます。

最初のリクエスト自体が REST リクエストである場合、アプリケーションは開始されません。

オプション 2:ColdFusion Administrator コンソールを使用した REST アプリケーションの登録

  • Administrator コンソールを使用して、REST 対応 CF コンポーネントを含むディレクトリを登録します。Adobe ColdFusion Splendor Administrator コンソールデータとサービスREST サービスを選択します。
  • ColdFusion が REST 対応 CF コンポーネントのセットを含むディレクトリを検索する際のルートパス(またはアプリケーションのパス)を参照して選択します。
    (オプション)「サービスマッピング」セクションで、アプリケーション名の代わりに仮想マッピングを指定します。フォルダーに Application.cfc ファイルがあり、アプリケーション名が指定されている場合、アプリケーション名を使用してディレクトリ内の REST サービスを特定します。
    (オプション)ホスト名を入力します。これにより、選択したアプリケーションをホストとマッピングできます。ホストごとにデフォルトアプリケーションを持つことができ、同じアプリケーション名を持つ複数のアプリケーションが異なるホストにマッピングできます。
  • 「デフォルトアプリケーションとして設定する」オプションを設定することで、REST アプリケーションをデフォルトアプリケーションとして設定します。このオプションを選択することで、URI でサービスマッピングやアプリケーション名を指定する必要がなくなります。
  • サービスを追加」ボタンをクリックして、ディレクトリの登録を完了します。
  • 「アクティブな ColdFusion REST サービス」表示テーブルを表示して、アクティブなサービスのマッピングのリストを表示します。将来のサービスマッピングの編集または削除に、同じ表示テーブルを使用できます。


オプション 3:ColdFusion Admin API を使用した REST アプリケーションの登録
CFIDE.adminapi.extensions CFC で定義した関数を使用して、REST アプリケーションを管理できます。その関数を次に示します。

  • registerRESTService(path[,serviceMapping[,host[,isdef]]]:この関数は、REST アプリケーションを登録します。ルートパスは、REST 対応 CF コンポーネントを含むディレクトリを指定します。オプションで、REST アプリケーションのサービスマッピング、ホスト名および isdefault を指定できます。
  • getRESTServices():この関数は、ColdFusion Administrator で登録した REST サービスの配列を返します。
  • deleteRESTService(rootPath):この関数は、ColdFusion Administrator で登録された REST アプリケーションのうち指定されたものを削除します。
  • refreshRESTService(rootPath):REST 対応 CF コンポーネントに変更を加えた場合、この関数を呼び出すことで、登録されたアプリケーションを更新できます。
  • getDefaultRestService():サーバー全体のデフォルトの REST アプリケーションを返します。
  • getAllDefaultRESTServices:すべてのデフォルト REST サービスを返します。値は、パスとホストのペアの配列です。

オプション 4:restInitApplication メソッドを使用した REST アプリケーションの登録
また、メソッド restInitApplication を呼び出すことでも、REST アプリケーションを登録できます。
構文を次に示します:
restInitApplication(rootPath[,serviceMapping[,options]])

options はオプションの引数です。options 構造体で、次を渡すことができます:

  • ホスト
  • useHost
  • isDefault

host を明示的に指定することで登録する場合:

<cfset str=structNew()>
<cfset str.host = "www.site1.com:82">
<cfset str.isDefault = "true">
<cfscript>
     RestInitApplication("C:¥dev¥ColdFusion¥cf_main¥cfusion¥wwwroot¥withhostAndDefault",  "withhostAndDefault", str);
     </cfscript>
<cfoutput> App registered </cfoutput>



useHost 属性を指定することで登録する場合:ホスト名は、リクエスト URL から抽出され、登録に使用されます。

<cfset str=structNew()>
<cfset str.useHost = "true">
<cfset str.isDefault = "true">
<cfscript>
     RestInitApplication("C:¥dev¥ColdFusion¥cf_main¥cfusion¥wwwroot¥withhostAndDefault",  "withhostAndDefault", str);
     </cfscript>
<cfoutput> App registered </cfoutput>


このタスクを実行するのに、管理者権限は必要ありません。構文を次に示します。
restInitApplication(rootPath[,serviceMapping[,options]])

  • options には、host、useHost、isDefault を指定できます。このオプションの使用方法は、autoRegister 機能と同じです。
  • 既に Administrator モジュールを使用してアプリケーションを登録済みの場合、restInitApplication を呼び出してREST サービスを更新します。
  • restDeleteApplication 関数を使用して REST サービスを削除します。構文は restDeleteApplication(rootPath) です。

プラグ可能なシリアライザーおよびデシリアライザーのサポート

application.cfc で、複合型のシリアライズおよびデシリアライズのための独自のハンドラーを登録できます。シリアライザーが指定されていない場合、ColdFusion は、デフォルトのシリアル化メカニズムを使用します。
例:次のパラメーターでシリアル化する必要のある電話帳がある場合:

  • 主要なデータ構造は配列です。 
  • 配列の各要素は、構造体です。 
  • 構造体には、2 つの要素が含まれます。 
  • 1 番目は連絡先の名前で、2 番目はコードおよび電話番号を含む構造体です。

配列
構造体
[
name(String],
phoneNo(Struct)
[
code(String),
no(String)
]
]
構造体
[
name(String],
phoneNo(Struct)
[
code(String),
no(String)
]
]



デフォルトの ColdFusion シリアル化データは次のように表示されます。
<Array size="1"> <Item index="1"> <Struct> <Entry> <Key>Name</Key> <Value>Paul</Value> </Entry> <Entry> <Key>PhoneNo</Key> <Value> <Struct> <Entry> <Key>Code</Key> <Value>080</Value> </Entry> <Entry> <Key>No</Key> <Value>411150326</Value> </Entry> </Struct> </Value> </Entry> </Struct> </Item> </Array>

またこの例では、構造体のみを単純な形式でシリアル化し、次のような結果を得ることを目的とします。
<Array size="1"> <Item index="1"> <root> <Name>Paul</Name> <PhoneNo> <root> <Code>080</Code> <No>411150326</No> </root> </PhoneNo> </root> </Item> </Array>

強化された ColdFusion Splendor REST 機能により、ユーザーは、デフォルトのシリアル化メカニズムを使用する代わりに、プラグインのカスタムシリアライザーを使用できます。カスタムシリアライザーには、次の 4 つの関数があります。

  • canSerialize:ブール値を返し、リクエストの「承認タイプ」を引数として取ります。カスタムシリアライザーに、渡された引数タイプにデータをシリアル化させたい場合、true を返すことができます。
  • Serialize:主要なシリアル化ロジックは、この関数で実装される必要があります。canSerialize がリクエストに「True」を返す場合、ColdFusion はこの関数を使用してシリアル化します。canSerialize がリクエストに「false」を返す場合、ColdFusion はデフォルトのシリアル化メカニズムを使用してシリアル化します。
  • CanDeserialize:ブール値を返し、リクエストの「コンテンツタイプ」を引数として取ります。カスタムシリアライザーにデータを逆シリアル化させたい場合、true を返すことができます。
  • DeSerialize:主要な逆シリアル化ロジックは、この関数で実装される必要があります。canDeSerialize がリクエストに「True」を返す場合、ColdFusion はこの関数を使用して逆シリアル化します。canDeSerialize がリクエストに「false」を返す場合、ColdFusion はデフォルトの逆シリアル化関数を使用して逆シリアル化します。

次の CustomSerializer コード例は、上記で説明したシナリオ(電話帳のシリアル化/逆シリアル化のカスタマイズ)で結果を出すのに役立ちます。

<cfcomponent>
<cffunction  name="serializeData" access="remote"  returntype="String">
<cfargument name="arg" type="any" hint="The  object to be serialized"/>
<cfargument name="type" type="string"
     hint="The accept header of the request in array format. The order  of types in the array is according to the priority of the MIME types in the  header."/>
<cfif  #type# eq "XML">
<cfif  isStruct(#arg#)>
<cfset var result =  "<root>">
<cfset var key = "">
<cfloop collection=#arg# item="key">
<cfset var result = result & "<" & #key# &  ">">
<cfset var result = result & serializeXML(#arg[key]#, true)>
<cfset var result = result & "</" & #key# &  ">">
</cfloop>
<cfset var result = result & "</root>">
<cfreturn result>
<cfelse>
<cfreturn serializeXML(#arg#)>
</cfif>
<cfelseif  #type# eq "JSON">
<cfdump var="#arg.getClass().getName()#"  output="console">
<cfif arg.getClass().getName() eq  "java.lang.String">
<cfreturn "test" & #arg#>
<!---<cfelseif isStruct(#arg#)>
<cfdump var="#arg#" output="console" >
<cfset var kresult = "{">
<cfset var kkey = "">
<cfloop collection=#arg# item="key">
<cfset var kresult = kresult & "__" & #kkey# &  "__">
<cfset var kresult = kresult & serializeJSON(#arg[kkey]#)>
<cfset var kresult = kresult & "</" & #kkey#  & ">">
</cfloop>
<cfset var kresult = kresult & "}">
<cfreturn kresult>--->
<cfelse>
<cfreturn  serializeJSON(#arg#)>
</cfif>
<cfelse>
<cfreturn serialize(#arg#, #type#)>
</cfif>
</cffunction>
<cffunction  name="canSerialize" access="remote"  returntype="boolean">
<cfargument name="type" type="string"/>
<cfif  #type# eq "XML">
<cfreturn true>
<cfelseif  #type# eq "JSON">
<cfreturn true>
<cfelse>
<cfreturn false>
</cfif>
</cffunction>
<cffunction  name="canDeserialize" access="remote"  returntype="boolean">
<cfargument name="type" type="string"/>
<cfif  #type# eq "XML">
<cfreturn true>
<cfelseif  #type# eq "JSON">
<cfreturn true>
<cfelse>
<cfreturn false>
</cfif>
</cffunction>
<cffunction  name="deserializeData" access="remote"  returntype="any">
<cfargument name="arg" type="String"  hint="The string to be deserialized"/>
<cfargument name="type" type="String"  hint="The content-type header of the request."/>
<cfargument name="returntype" type="String"  required="false" defaultvalue="any"
     hint="The expected type of data. It could be any for the contents  of complex types such as Struct, array etc."/>
<cfif #type# equals "XML" and  isXml(arg)>
<cfset  var xmlDoc = xmlParse(arg)>
<cfif  #xmlDoc.XmlRoot.XmlName# equals "root">
<cfset var result = StructNew()>
<cfset var numEntries = ArrayLen(xmlDoc.root.XMLChildren)>
<cfloop index="i" from="1" to=#numEntries#>
<!--- <cfdump  var="#xmlDoc.root.XMLChildren[i].XMLChildren#"  output="console" > --->
<cfset var key = xmlDoc.root.XMLChildren[i].XmlName>
<cfif "" eq Trim(xmlDoc.root.XMLChildren[i].XMLText)>
<cfset var value =  deserializeXML(ToString(xmlDoc.root.XMLChildren[i].XMLChildren[1]), true)>
<cfelse>
<cfset var value =  deserializeXML(xmlDoc.root.XMLChildren[i].XMLText, true)>
</cfif>
<cfset result[key] = value>
</cfloop>
<cfreturn result>
<cfelse>
<cfreturn  deserializeXML(#arg#, true)>
</cfif>
<cfelse>
<cfreturn deserializeXML(#arg#, true)>
</cfif>
</cffunction>
</cfcomponent>


実装した CustomSerializer は、application.cfc で指定できます。  
<cfset this.customSerializer="CustomSerializer">

注意:この新しいプラグ可能なシリアライザー/デシリアライザーは、RESTful Web サービスに限定されません。ColdFusion では、このプラグ可能なシリアライザー/デシリアライザーを使用できる新しい API を提供しています。以下のリストを参照してください。

PDF サービスページ

リモート PDF サービスマネージャーの使用

次の場合は、ローカル PDF サービスマネージャーの代わりにリモート PDF サービスマネージャーを使用する必要があります。

  • ローカル PDF サービスマネージャーでサポートされていない OS 上で ColdFusion サーバーが実行されている場合
  • PDF 生成が CPU に負荷をかけるので、ローカルの ColdFusion サーバーのパフォーマンスが重要になる場合
  • PDF 生成の負荷を分散して最大限のスループットを確保する場合

PDF サービスマネージャーの追加および編集

Administrator コンソールで、データとサービス/PDF サービスをクリックします。
名前、ホスト名、ポートおよびその他の設定の詳細を指定して PDF サービスマネージャーを追加または編集できます。 
 
リモートサービスマネージャーを追加または編集するには、サービスマネージャーがデプロイされるローカルまたはリモートマシンで実行される Jetty サービスの詳細を指定する必要があります。このプロセスを完了するには、次の手順を実行します。

  1. 名前を入力します。PDF サービスマネージャーを表す一意の名前です。
  2. ホスト名を入力します。これは、リモート PDF サービスマネージャーのホスト名です。
  3. ポート番号を入力します。これは、PDF サービスマネージャーのポート番号です。デフォルトでは、ポートは 8987 に設定されます。
  4. PDF サービスマネージャーの「重み」の詳細を入力します。重みは負荷分散係数であり、サービスマネージャーで処理可能な PDF 変換の量を指定します。システムの設定に基づいてこの値を設定してください。
  5. PDF サービスマネージャーが HTTPS プロトコルで実行される場合は、「HTTPS が有効」チェックボックスをオンにします。
  6. PDF サービスマネージャーを追加」ボタンをクリックしてプロセスを完了します。

ローカルサービスマネージャー:サービスマネージャーを編集、有効化、無効化および確認できます。ローカルサービスマネージャーを追加または削除することはできません。また、ローカルサービスマネージャーのホスト名を変更することもできません。 

リモートサービスマネージャーを使用すると、サービスマネージャーの追加、編集、削除、有効化、無効化および確認が可能です。  

PDF サービスマネージャーの操作

「PDF サービスマネージャー」セクションには、使用可能な PDF サービスマネージャーがすべて表示されます。

上の図にある各アクションボタンの説明は次のとおりです。


ボタン

ボタンの説明

アクション

編集

既存のサービスマネージャーの設定をユーザーが編集できるようにします。

確認

サービスマネージャーの現在の接続ステータスをユーザーが確認できるようにします。

削除

PDF サービスをユーザーが削除できるようにします。 

注意:すべてのサービスマネージャーを確認ボタンは、表示されているすべての PDF サービスマネージャーを確認するために使用されます。

PDF サービスマネージャーの設定

PDF サービスマネージャーを設定するには、<cf_install_root>/<CF Instance>/jetty/webapps/PDFgServlet/WEB-INF/ にある設定ファイル(web.xml)を使用します。使用可能な設定は次のとおりです。

  • minService = プロセスプールで実行されるサービスの最小数。デフォルト値は 1 です。
  • maxService = プロセスプールで実行可能なサービスの最大数。デフォルト値は 2 です。PDF 変換は CPU に負荷がかかる操作なので、システムのプロセッサー数に基づいて、この値を適切に設定する必要があります。この値をマシンの CPU 数以下にすることをお勧めします。
  • idlePDFGServiceTimeout = プロセスプールのサービスのアイドルタイムアウト。タイムアウト後にサービスは削除されます。デフォルト値は 2 分です。サービスの作成および初期化は負荷のかかる操作です。また、サービスでは変換のためにメモリを消費します。変換の頻度と負荷に基づいて、このパラメーターを調整する必要があります。
  • waitingQueueSize = サービスマネージャーのキューで待機可能な PDF 変換リクエスト数。デフォルト値は 10 です。使用可能なサービスが変換プロセスに取り掛かると、予定されている変換リクエストがキューで待機します。特定の時点におけるサービスマネージャーへの負荷に基づいて、キューサイズを設定する必要があります。
  • waitingQueueTimeout= サービスマネージャーのキューで待機する PDF タスクのタイムアウト(秒)。デフォルト値は 60 秒です。この値は、次のパラメーターを考慮して調整する必要があります。
    • PDF の平均的な生成時間。
    • サーバーで設定されているサービスマネージャーの総数。複数のサービスマネージャーがサーバーで設定されている場合は、waitingQTimeout の値を高く設定すると、タスクを処理できるアイドル状態のサービスが他のサービスマネージャーにある場合でも、変換タスクの不要な待機時間が生じる可能性があります。
  • maxPDFConversionForService = 各サービスで許可されている PDF 変換の最大数。デフォルト値は 1000 です。指定された数の PDF 変換がサービスによって実行されると、サービスが再起動されます。注意:アプリケーションで生成する PDF のサイズに基づいて、この値を調整する必要があります。サイズの大きい PDF の場合は、サイズの小さい PDF の場合よりも速くサービスのメモリの使用量が増加します。そのため、maxPDFConversionForService の値は低く設定する必要があります。
  • startScanPort = サービスで使用するスキャン開始ポート。デフォルト値は 1600 です。
  • endScanPort = サービスで使用するスキャン終了ポート。デフォルト値は 1800 です。
  • enableLogging = デフォルトでは、PDF サービスマネージャーのロギングは無効です。ロギングを有効にするには、このフラグを true に設定します。このオプションはデバッグにのみ使用してください。

ロギングの監査ログの詳細について

PDF サービスマネージャーのロギングは、サービスマネージャーに関連する問題を追跡するために使用されます。ロギングでは、サービスおよび変換リクエストのライフサイクルに関する詳細を含むログが生成されます。また、ロギングを使用して PDF 変換リクエストを追跡できます。


注意:本番環境で長時間ロギングを使用することはできません。長時間使用すると、生成されるログのサイズが大きくなり、パフォーマンスに影響が生じます。

以降の節では、PDF 生成プロセスに対して加えられた機能拡張について説明します。
PDFG サービスのログは、<cf_install_root>/cfusion/jetty/webapps/PDFgServlet/ にあります。

Flex 統合ページ

このページを使用すると、どの Flex 統合機能を有効にし、どの IP アドレスでデータサービス操作を実行するかを指定できます。Adobe LiveCycle Data Services ES サポートを有効にした場合に IP アドレスを指定しないと、ローカルコンピューター上のプロセスのみが ColdFusion の LiveCycle Data Services ES サーバーに接続できます。

オプション

説明

[Flash Remoting サポートの有効化]

この ColdFusion サーバーに接続して ColdFusion コンポーネント(CFC)のメソッドを呼び出すために、Flash クライアントを有効にするかどうかを指定します。

リモート LiveCycle Data Management アクセスの有効化

この ColdFusion サーバーに接続して CFC のメソッドを呼び出すために、LiveCycle Data Services ES サーバーを有効にするかどうかを指定します。これらのメソッドでは、Flex アプリケーションで使用される結果セットでレコードを入力、同期、取得またはカウントできます。このオプションは、LiveCycle Data Services ES をリモートで実行している場合にのみ有効にします。

サーバー ID

Flex Data Management サポートを有効にする ColdFusion サーバーを指定します。

SSL による RMI を Data Management 用に有効化

ColdFusion と Flex との間の通信を暗号化するために、SSL(Secure Sockets Layer)を有効にします。

LiveCycle Data Service が動作している IP アドレスの選択

どの LiveCycle Data Services ES サーバーが ColdFusion の LiveCycle Data Services ES サポートに接続できるかを指定します。使用できる IP アドレスのリストを指定しなかった場合は、ローカルコンピューター上のプロセスのみが ColdFusion の LiveCycle Data Services ES サポートに接続できます。

SSL を使用するには、キーストアファイルを作成します。キーストアは自己署名証明書です(認証機関が署名した証明書は不要ですが、そのような証明書を使用する場合は、以下の手順で示す Flex の設定は不要です)。キーストア内の情報は暗号化され、指定したパスワードを使用しないとアクセスできません。キーストアを作成するには、Java keytool ユーティリティを使用します。このユーティリティは Java Runtime Environment(JRE)に付属しています。

SSL の有効化

  1. キーストアを作成します。

  2. Flex を設定します。

  3. ColdFusion Administrator で SSL を有効化します。

キーストアの作成

 SSL サーバー(ColdFusion)キーストアファイルを作成するには、keytool ユーティリティを使用します。コマンドはほぼ次のようになります。
keytool -genkey -v -alias FlexAssembler -dname "cn=FlexAssembler" -keystore cf.keystore -keypass mypassword -storepass mypassword

次の表で、keytool ユーティリティのパラメーターを説明します。

パラメータ

説明

-alias

キーストア項目の名前。常にその名前で参照する限りは、任意の名前が使用できます。

-dname

識別名。サーバーの一般名(cn)を含みます。

-keystore

キーストアファイルの場所。

-keypass

秘密キー用のパスワード。

-storepass

キーストア用のパスワード。暗号化された storepass が ColdFusion 設定ファイルに記録されます。

-rfc

printable encoding 形式で証明書を作成します。

-file

キーストアファイルの名前。

-v

詳細な証明書情報を出力します。

JVM が信頼する証明書を判断するときに使用するファイルの中に、作成した証明書を格納します。証明書を格納するファイル(通常の名前は cacerts)は JRE の lib/security フォルダーにあります。

Flex の設定

  1. キーストアを証明書に書き出すには、keytool ユーティリティを使用します。コマンドはほぼ次のようになります。

    keytool -export -v -alias FlexAssembler -keystore cf.keystore -rfc -file cf.cer
  2. サーバーの JRE cacerts ファイルに証明書を読み込むには、keytool ユーティリティを使用します。コマンドはほぼ次のようになります。

    keytool -import -v -alias FlexAssembler -file cf.cer -keystore C:\fds2\UninstallerData\jre\lib\security\cacerts

ColdFusion Administrator での SSL の有効化

  1. データとサービス/Flex 統合を選択し、「キーストアの絶対パス」ボックスでキーストアファイルを指定します。

  2. 「キーストアパスワード」ボックスでキーストアのパスワードを指定します。

  3. 「SSL による RMI を Data Management 用に有効化」を選択し、「変更の送信」をクリックします。

無効なキーストアファイルやパスワードを指定した場合、SSL は有効にならず、LiveCycle Data Management サポートは無効になります。