アクセシビリティ
アドビ
サインイン プライバシー マイアカウント

Flex リリースノート

Flex Data Services 2 リリースノート (2.0.1 アップデート)

Adobe® Flex™ Data Services 2 へようこそ。Flex Data Services 2 は、Flex の次世代プレゼンテーションサーバーです。Flex Data Services 2 では、現在の Flex 1.5 の機能に、データ管理サービスやエンタープライズメッセージングサポートなど、多数の新機能が追加されています。

このページは、次の項で構成されています。

関連トピック :

新機能

ここでは、Flex Data Services 2 の主な新機能と変更点を説明します。新機能、サンプル、および例の詳細については、Flex デベロッパーセンターを参照してください。

  • データの同期 - クライアント/サーバー間で、高性能で堅牢なデータ同期エンジンを使用することで、リッチクライアントのデータ同期処理が簡素化され、エラーの可能性が低減されました。
  • メッセージングのパブリッシュおよびサブスクライブ - 従来のシッククライアントアプリケーション同様の信頼性、スケーラビリティ、サービス品質を確保しつつ、リアルタイムにメッセージトピックをパブリッシュおよびサブスクライブできます。これにより、物流管理や在庫管理、株取引といった高度な基幹業務用アプリケーションにも対応できます。
  • データのページ処理 - 効率の良い内蔵ページ処理エンジンを利用して、大規模なレコードセットに容易に対応できます。
  • データのプッシュ配信 - データを多数くの同時接続ユーザーに向けてポーリングせずにプッシュ配信できます。これにより、株価監視や資源利用状況監視、生産オートメーションといった、基幹情報が秒刻みで変化するようなアプリケーションに対応できます。
  • インコンテキストコラボレーション - コンテキスト内で情報を複数ユーザーが同時に共有できるアプリケーションを作成できます。これにより、"協同ブラウジング" などの新しいアプリケーション概念が実現され、ユーザー同士がリアルタイムで同じ情報を見たり協同で作業したりできるようになります。

2.0.1. アップデート

Flex Data Services 2.0.1 アップデートにより、Mercury QuickTest Professional 9.1 (QTP) および Flex 2.0.1 アプリケーションに対する Adobe Flex オートメーションの使用がサポートされます。

メモ : Flex オートメーションを使用するには、次の製品をインストールしておく必要があります。

  • Mercury QuickTest Professional 9.1
  • Flex Builder 2.0.1 および Flex Data Services 2.0.1
  • Microsoft Internet Explorer バージョン 6 以降
  • Flash Player ActiveX コントロール、バージョン 9.0.28.0 以降

互換性に関する注意事項

Flex Data Services 2 は Flex 1.5 のメジャーアップグレードなので、Flex 1.5 アプリケーションは Flex 2 でコンパイルする前に移行しておく必要があります。詳細については、『既存の Flex アプリケーションの Flex 2 への移行』を参照してください。

既知の問題

160813 - ネストされたコレクションのページングは、遅延ロードを使用しないと機能しません。遅延ロードを使用していない場合は、ネストされたコレクション全体がクライアントに送信されます。

168162 - データコレクションオブジェクトの ID 列の更新は、禁止されていませんが、サポートもされていません。その結果、アセンブラでは処理できそうにないことを示すメッセージが表示されます。

170877 - ネストされたコレクションの直下に子を作成した場合、その親に対して revert を呼び出しても、作成した子がコミット時に insert をサーバーにサブミットしないようにすることはできません。子の出力先を指すデータサービスインスタンスを別に作成し、それに対して revert を呼び出す必要があります。

172819 - ページングが有効になっているデータ指定済みコレクションを変更する場合、ポーリングが使用されていると、クライアントは、変更に関するサーバーからの通知を受信するより前に、コレクションに含まれている変更済みアイテムのページ要求の結果を受信する可能性があります。この場合、次回のポーリングでプッシュされた更新が受信されるまで、コレクションには新旧の結果が混在して表示されます。

173464 - 一部のクラスでは、flash.utils.IExternalizable インターフェイスを使用して、カスタム直列化や特定のデータ型をサポートしています。Flex Data Services 2 には、Flex 専用のこのような型に対応する Java 実装があります。出力先の要求により、ArrayCollection、ObjectProxy、ManagedObjectProxy のいずれかの型を、RMI などのテクノロジを使用するリモートエンドポイントに送信する必要がある場合、リモートエンドポイントのソースパスにこれらの Java 実装が必要になります。これを実現するには、flex-messaging.jar をリモートエンドのソースパスに追加します。

173605 - WebService は、dateTime 値が UTC 時間のオフセットか 'Z' マーカーかに関係なく、一律に UTC として扱います。UTC dateTime ではない値が適切に処理されるようにするには、dateTime 値を文字列として送受信するよう Web サービスを変更し、クライアントまたはサーバーでそれを解析して、必要に応じて UTC ではない日付に変換する必要があります。

174538 - DataService.release() メソッドを呼び出すと、すべての管理対象コレクションが、解放されるだけでなく、クリアもされます。管理対象コレクションをクリアしないで解放するには、DataService.releaseCollection() メソッドを呼び出してください。

174823 - アイテムをネストされた関連付けから削除しないまま削除すると問題が発生します。

175519 - クライアントから削除したアイテムが、そのクライアントによって管理されている別なアイテムにより参照されている場合、Flex Data Management Services は、該当する参照をクリアするため、参照先アイテムの変更を自動的にキューに格納します。その後、削除したばかりのアイテムの変更を元に戻そうとすると、アイテムは再び追加されますが、参照は自動的には復元されません。関連する DataServices が使用する dataStore 上のすべての変更を復元すると、クリアされた参照を含むすべての変更がすべて復元されますが、復元先は deletedItem になります。

155283 - log4j または commons-logging を統合インストールと併用するには、次の手順に従います。

  1. "/WEB-INF/jrun-web.xml" ファイルに次の内容を追加します。
  2. <?xml version="1.0" encoding="ISO-8859-1"?> 
    <!DOCTYPE jrun-web-app PUBLIC "-//Macromedia, Inc.//DTD jrun-web 1.0//EN" 
    "http://www.macromedia.com/dtd/jrun-web.dtd"> 
       
    <!-- ============================================================= --> 
    <!-- This XML file contains web application elements that are --> 
    <!-- specific to the JRun Application Server --> 
    <!-- ============================================================= --> 
       
    <jrun-web-app> 
    <load-system-classes-first>false</load-system-classes-first> 
    </jrun-web-app>

    これにより、"/WEB-INF/classes/commons-logging.properties" ファイルが
    最初に取得されます。

  3. log4j.jar および commons-logging.jar をアプリケーションの "/WEB-INF/lib" ディレクトリに追加します。
    "/WEB-INF/flex/jars" ディレクトリから commons-logging.jar にアクセスできます。

    これにより、JRE は log4j ライブラリと commons ライブラリを "/WEB-INF/lib" からロードします。
  4. "/WEB-INF/classes/commons-logging.properties" を設定に追加します。使用するログ実装を選択します。アプリケーションで log4j を直接使用し、commons-logging を介さない場合は、Flex Data Services 2 のログ実装を選択します (Jdk14Logger など)。
  5. org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl 
    #org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog 
    org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger 
    #org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger

log4j または commons-logging と、有効化された JRun Axis Web サービスを併用するには、次の手順に従います。

  1. 上記の手順 1 を行います。
  2. log4j と commons-logging.jar の両方を jrun4/servers/lib にコピーします。
  3. 上記の手順 3 を行います。

85034 - TextArea の行終端は UNIX 形式です。したがって、Windows 形式の復帰改行 (\r\n) を指定すると、改行が 1 行余計に挿入されます。テキストを UNIX 形式の行終端に変換するには、String.replace() と正規表現を使用します。次に例を示します。

    private static const windowsCRLF:RegExp = /\r\n/gm; 
    
    ... 
    
    myTextString = myTextString.replace(windowsCRLF, "\n"); 
    

192217 - 管理コレクションのアイテムをコミット操作なしに挿入し、削除すると、それ以降の更新をコミットしたときにサーバーサイド例外 (トランザクション完了中のエラー : java.lang.NullPointerException) が生じる場合があります。これを回避するには、新しいアイテムを削除する代わりに、dataService.revertChanges() を呼び出してすべての変更を取り消します。

192253 - 親および複数の子が同じトランザクションで挿入されたときに、子の ID の一部がサーバーで生成された値に更新されない場合があります。回避策として、次の操作があります。

  • 親を挿入してコミットし、子を挿入してコミットする。
  • すべてを同じトランザクションで挿入し、結果のイベント後に親を再設定する。

192420 - 競合ハンドラが割り当てられていない場合、サーバー競合は、FDS が更新をコミットするときにアプリケーション内に残っています。競合するデータに対して編集されている場合、[未解決の競合があります。] というダイアログボックスが表示されます。

バグ No. なし - Flex Data Services サンプルは、展開済みの Web アプリケーション構造で実行する必要があります。圧縮された WAR ファイルから実行することはできません。

バグ No. なし - Flash Player とデバッグ - Flex アプリケーションをデバッグを有効にしてコンパイルし、fdb を実行すると、2 分後に [接続できませんでした。セッションタイムアウトです。] というエラーメッセージが表示されます。この場合は、Flash Player のコンテンツデバッガバージョンを実行していることを確認してください。

この現象が発生する可能性があるのは、スタンダード版 Flash Player のバージョン 9.0.16.0 以降を Adobe ダウンロードサイトからインストールし、その後で Flex Data Services 2 に付属の Flash Player をインストールした場合、または Flash Player を Flex Data Services 2 からインストールし、その後で Adobe のダウンロードサイトから Flash Player をスタンダード版 Flash Player 9.0.16.0 以降に更新した場合です。

この問題を解消する方法については、http://www.adobe.com/go/758bf58b を参照してください。

バグ No. なし - secure-amf チャネルを Internet Explorer と HTTPS と併用している場合、Flex は応答を受信しません。これについては、Internet Explorer と no-cache HTTP ヘッダーを受信する HTTPS 要求とに問題があることがわかっています。Flex Data Services 2 エンドポイントが応答で no-cache ヘッダーを送信しないようにするには、次の設定を secure-amf channel-definition セクションに指定します。

    <add-no-cache-headers>false</add-no-cache-headers>
    

Flex 自動テストの既知の問題

この項では、Flex を使用した自動化されたテスト機能の既知の問題について説明します。

  • 別のオブジェクトの MouseOver により、あるオブジェクトが見えるように変化する場合、QTP スクリプトに手動で "MouseMove" を追加する必要があります。この問題は、FlexStore サンプルアプリケーションでのテストを記録するときに発生します。この問題を回避するには、次の手順を実行します。
    1. FlexStore アプリケーションを開き、テストの記録を開始します。
    2. MouseOver イベントを送出すると表示される Nokia 6010 製品に対する [カートに追加] ボタンをクリックします。
    3. 記録を停止します。
    4. エキスパートビューでスクリプトを編集し、スクリプト内の click イベントの前に次のコードを追加します。
      <browser>.FlexApplication("flexstore_swf").FlexPanel("Browse").FlexCanvas("products").FlexCanvas("Nokia 6010").MouseMove
  • ビットマップチェックポイントは、Accordion コントロールに対しては機能しません。
  • コンポーネントに対してビットマップチェックポイントを使用するときは、そのコンポーネントが選択されていないこと、およびそのコンポーネントがフォーカスを取得していない (コンポーネントが青い四角形で囲まれていない) ことを確認する必要があります。
  • TextArea コントロールまたは TextInput コントロールを使用するアクションの記録中に ContextMenu コントロールの使用を記録すると、テストの再生時にハングします。
  • QTP 9.1 SDK では、スマート ID はまだサポートされていません。
  • SWFLoader コンポーネントを使用して複数の SWF ファイルを読み込むテストで、アプリケーションと長時間やり取りすると、Internet Explorer が断続的にクラッシュします。
  • 場合によっては、複数の同じアイテムがあるリストコントロールがあると、QTP によって正しくないアイテムが再生および選択されます。これは、リスト内の複数のアイテムの値が同じ場合に発生します ("Oranges"、"Apples"、"Bananas"、"Apples" など)。再生中に 2 つ目の "Apples" を選択すると、QTP によって最初のアイテムが選択されます。この場合は、automationIndex を使用して、選択するアイテムを判別する必要があります。
  • null 値のチェックポイントを作成すると、再生中にまだ null 値がある場合はエラーが生じることがあります。
  • キーボードのみを使用したコントロールとのやり取りを記録すると、MenuBar コントロールの操作が再生されません。
  • エフェクトまたはトゥイーンをトリガするユーザーアクション (アイテムが表示範囲より多い ComboBox コントロールの開閉など) の後に追加されるチェックポイントが失敗することがあります。この問題を回避するには、エフェクトまたはトゥイーンが完了するまでの一時停止を、手動で再生スクリプト内に追加する必要がある場合があります。
  • TextArea コントロール、TextInput コントロールなどのテキストベースのコンポーネントについて、キーボードを使用するカットおよびペーストが再生されません。
  • 自動カスタムコンポーネントを開発するには、Flex 自動テストインストーラを実行する必要があります。

Flex Data Services 2 以降の修正されたバグ

  • 145911 Flex を UNIX/Linux に圧縮された WAR ファイルとして展開すると、NullPointerException で失敗します。
  • 168730 サブスクライブしていないクライアントから送信されたポーリングメッセージを MessageService で処理する必要があります。
  • 168789 AMF ポーリングの使用中、DataService がサブスクリプションの損失を認識しません。
  • 176635 AbstractAssembler 実装の使用中、JavaAdapter が作成された DataMessage ID の更新を処理しません。
  • 178170 FlexHibernateSessionContext により、スレッドセーフでない方法でセッションが保持されます。
  • 178426 DataServiceTransaction.updateItem() を複数回呼び出しても効果がありません。
  • 178807 コンパイル時にコンテキストルートが定義されていないとエラーになります。
  • 181914 Managed.getProperty で "未定義の" 遅延ロードプロパティという匿名オブジェクトの場合に対応する必要があります。
  • 182521 HibernateAssembler が使用され、クライアントによって新しいレコードが挿入されるときに、レコードは挿入されるが、新しく作成されるレコード ID がクライアントに正しく設定されません。
  • 183858 DotNet Web サービスに対して、正しくない SOAP 要求が Flex によって生成されます。
  • 183862 配列にのみアイテムがあるノードの使用中に、正しくない SOAP 要求が Flex によって生成されます。
  • 184550 クライアントに古いデータがあると、AMF ポーリングにより競合が発生します。ChannelSet クラスが currentChannel プロパティをサポートするようになりました。この currentChannel が PollingChannel である場合、これを使用して "enablePolling"、"disablePolling"、および "poll" の各メソッドを操作し、ポーリングプロセスをより精密に制御できます。
  • 184631 Web サービス結果に複数の参照デコードの問題が発生します。
  • 185774 FDS から HTTPS 経由で mxml を要求すると、コンテンツが混在していることを示すセキュリティ警告が Internet Explorer によって表示されます。Web 層での HTML ラッパー設定には、secure-alternate-content-include および secure-alternate-content-page という 2 つの追加引数があります。これらについての説明は flex-webtier-config.xml にあります。
  • 187391 新しく追加されたアイテムに対して、DataService がメンバーシップを正しく検出しません。
  • 189126 WebService WSDL ロードハンドラが、getOperation を使用して操作を作成する必要があります。
  • 191045 ID を正しく出力するために AC_OETags.js を更新します。