| Flex 2 開発ガイド > データアクセスと相互接続性 > Data Management Service の設定 > 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
|
|
paging
|
このエレメントはオプションです。デフォルト値は |
session-timeout
|
(オプション) |
throttle-inbound
|
|
throttle-outbound
|
|
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-items を false に設定します。
...
<destination id="contact">
<properties>
...
<cache-items>false</cache-items>
...
</properties>
</destination>
...
cache-items を false に設定した場合は、この宛先を使用するときに、ページングや遅延関連付けをサポートするためのメソッドを 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