Data Management Service 宛先の設定

Data Management Service 宛先の設定の要素は、すべての Data Management Service 宛先に対する全般的なものや、宛先で使用される特定のデータアダプタによって決まるものがあります。このセクションでは、Data Management Service 宛先の全般的な設定について説明します。

サブトピック

メッセージチャネルの参照
ネットワークエレメントの設定
トランザクションの使用
データアイテムの一意の識別
データアイテムのキャッシュ
データの自動同期

メッセージチャネルの参照

メッセージは、メッセージチャネルを経由して宛先に、または宛先から、伝達されます。宛先では 1 つまたは複数のメッセージチャネルを参照します。メッセージチャネルは "services-config.xml" ファイルで定義します。宛先では、参照されたチャネルのうち、使用可能な最初のチャネルが使用されます。チャネルに到達できない場合は、次に使用可能なチャネルが宛先で使用されます。デフォルトのメッセージチャネルを設定することもできます。この場合は、宛先でチャネルを参照する必要はありません。

次の例は、宛先のチャネル参照を示しています。samples-rtmp チャネルが最初に列挙されているので、宛先ではそのチャネルの使用を最初に試みます。

...
    <destination id="contact">
...        
        <channels>
            <channel ref="samples-rtmp"/>
            <channel ref="samples-amf-polling"/>
        </channels>
...
    </destination>
...

メッセージチャネルの詳細については、メッセージチャネルの設定を参照してください。

ネットワークエレメントの設定

宛先定義の properties セクションには、クライアントとサーバー間のメッセージング動作を定義するための network セクションがあります。次の例は、宛先定義の network セクションを示しています。

...
    <destination id="contact">
        <properties>
...
                <network>
                    <session-timeout>20</session-timeout>
                    <paging enabled="true" pageSize="10"/>
                    <throttle-inbound policy="ERROR" max-frequency="500"/>
                    <throttle-outbound policy="REPLACE" max-frequency="500"/>
                    <!--<cluster ref="default-cluster"/>-->
                </network>
    ...
        </properties>
    </destination>
...

Data Management Service 宛先定義では次のネットワーク関連エレメントを使用します。

エレメント

説明

cluster

cluster エレメントの ref 属性は、ソフトウェアクラスタの名前を参照します。この名前は "services-config.xml" ファイルの clusters セクションで設定します。クラスタの詳細については、ソフトウェアクラスタ化の使用を参照してください。

paging

paging エレメントの enabled 属性は、データページングを宛先で有効にするかどうかを指定します。ページングを有効にした場合、pageSize は、クライアントサイドの DataService.fill() メソッドが呼び出されたときにクライアントに送信されるレコード数を示します。

このエレメントはオプションです。デフォルト値は false です。

session-timeout

(オプション) session-timeout エレメントは、サブスクライバがサブスクライブ解除されるまでのアイドル時間を分数で指定します。値を 0 に設定した場合、サブスクライバでは自動的にサブスクライブ解除が強制されることがなくなります。デフォルト値は 20 です。

throttle-inbound

throttle-inbound エレメントの max-frequency 属性は、サーバーが受信できる毎秒のメッセージ数を制御します。policy 属性は、メッセージの上限に達したときに実行する動作を指定します。policy 属性には、次の値を設定できます。

  • ERROR は、上限に達したときにエラーを返すことを指定します。
  • IGNORE は、上限に達したときにエラーを返さないことを指定します。
throttle-outbound

throttle-outbound エレメントの max-frequency 属性は、サーバーが送信できる毎秒のメッセージ数を制御します。policy 属性は、メッセージの上限に達したときに実行する動作を指定します。policy 属性には、次の値を設定できます。

  • ERROR は、上限に達したときにエラーを返すことを指定します。
  • IGNORE は、上限に達したときにエラーを返さないことを指定します。
  • REPLACE は、上限に達したときに前のメッセージを置き換えることを指定します。

トランザクションの使用

Flex のデフォルトでは、クライアントで確定した処理は単一の J2EE 分散トランザクションにカプセル化されます。クライアントのデータ変更はすべて 1 単位として処理されます。ある値を変更できない場合、他のすべての値の変更はロールバックされます。分散トランザクションは、J2EE (Java 2 Enterprise Edition) サーバーで JTA (J2EE Transaction) がサポートされている限り、サポートされます。

次の例では、ボールド体のテキストの部分で use-transactions プロパティをデフォルト値の true に設定しています。

...
    <destination id="contact">
            <properties>
                <use-transactions>true</use-transactions>
        </properties>
    </destination>
...

データアイテムの一意の識別

Data Management Service 宛先には 1 つまたは複数の identity エレメントがあります。このエレメントを使用することで、データのコレクション内のアイテムを一意に識別することを保証するためにデータプロパティを使用することを指定できます。

次の例では、identity プロパティをボールド体のテキストで示しています。

...
    <destination id="contact">
        <properties>
...
        <metadata>
            <identity property="name"/>
        </metadata>
    </properties>
    </destination>
...

identity エレメントはオプションで type 属性を受け取ります。この属性は、指定した identity プロパティの Java クラスです。この属性は、identity の型が ActionScript の型と 1 対 1 に対応していない可能性がある場合に使用する必要があります。よくある問題として、ActionScript の Number がその値によって long または integer のいずれかに変換されることがあります。次の例のコードは、type 属性を指定した identity エレメントです。

<identity property="id" type="java.lang.Long">

よくある間違いとして、次の例のように、すべてのプロパティに対して 1 つの identity エレメントを使用しようとする事例があります。

<metadata>
    <!-- Don't do this. -->
    <identity property="firstName,lastname"/>
</metadata>

そうではなく、次の例のように、複数のフィールド identity に対して複数の identity エレメントを指定できます。

<metadata>
    <identity property="firstName"/>
    <identity property="lastName"/>
</metadata>

データアイテムのキャッシュ

Data Management Service のデフォルトでは、fill() および getItem() 呼び出しから返されたアイテムがキャッシュされ、キャッシュされたアイテムを使用して、ページングの実装や、遅延関連付けの実装時におけるオブジェクトグラフの構築が行われます。これにより、すべてのアクティブなクライアントについて、それらの管理された状態の完全なコピーが各サーバーのメモリに維持されます。このメモリキャッシュを無効にするには、次の例のように、cache-itemsfalse に設定します。

...
    <destination id="contact">
        <properties>
...
            <cache-items>false</cache-items>
...
    </properties>
    </destination>
...

cache-itemsfalse に設定した場合は、この宛先を使用するときに、ページングや遅延関連付けをサポートするためのメソッドを get-method エレメントで指定する必要があります。

データの自動同期

auto-sync-enabled エレメントは、宛先を使用しているクライアントのクライアントサイドの DataService.autoSyncEnabled プロパティについて、そのデフォルト値を制御します。このエレメントのデフォルト値は true です。

次の例は、auto-sync-enabled エレメントを示しています。

...
    <destination id="contact">
        <properties>
...
            <auto-sync-enabled>false</auto-sync-enabled>
...
    </properties>
    </destination>
...

Flex 2.01