2012-02-11 16 views
1

問題で複数のレコードをするRemoteObject:以下の問題は、二つの異なる場合に発生します。..Flexは、同じ情報のデータベース

ケース1:クライアントはすなわち、いくつかの情報を保存するためのRemoteObjectを要求すると...呼び出しがありますJavaのSAVE_INFOメソッドに対して行われます。要求が失敗した場合、つまりFaultHandlerに戻った場合(情報をarrayCollectionに保存します)。 その後、arrayCollectionの各項目に対してSAVE_INFOをもう一度呼び出します(arrayCollectionに10個の項目がある場合は、同じメソッドを10回呼び出します)。私はそれが愚かだと知っていますが、オーバーロードメソッドを記述するjavaを制御できません。 DBに同じ情報のレコードが複数あることがあります。 arraycollectionをループして呼び出しを行うときや、通常の1回の呼び出しでこれが起こるかどうかはわかりません。私たちは再現するパターンを見つけることができませんでした。 JavaのLOGレベルは本番環境ではエラーレベルです。すべての呼び出しを監視するために本番環境でINFOに設定することはできません。この複数回保存されたレコードがarrayCollectionまたは通常のレコードであるかどうかはわかりません。

Flex3のRemoteObjectのは、 - > 6.1 WAS、LCDS 3.0、Java1.5 - > Webサービス - > Javaの(休止状態) - > Oracle 10gの

ケース2:アプリケーションが開いたままにされとユーザーの葉翌日の朝に情報を提出すると、その情報のDBに重複レコードが表示されます。 (ここではarrayCollectionはありません。単純なストレート・ワン・コール)

Flex3 RemoteObject - > OC4J Blazeds Java1.5(JDBC) - > Oracle 10g。

最近テスターズのケース2アプリケーションをテストしているユーザーの1人がこのパターンを見つけました。ケース1の場合も考えられるようになり始めています。ユーザーは昼食/休憩のために出発して、戻ってからarrayCollectionを再送信します。ランチ中にJavaがクライアントのセッションを殺した可能性があり、同時に10を再送信した後に.. Javaが10回複製セッションを作成した可能性があります...再び私が仮定していることは完全に間違っている可能性があります。

フレックスremoteObject amfバッチ・コールがエラーを引き起こしているか、Javaセッションの重複がエラーを引き起こしているか、oracleがそれを行っているかどうかわかりません。私は問題がどこにあるかもしれないという手がかりや考えがありません。

助けてください???

答えて

0

私はあなたが接続が死んでいると仮定して正しいと思いますが、それはあなたのコレクションが重複していることが原因であるかもしれません。クイックテストは、重複を許可しないようにarrayCollectionコードを書き直し、それが修正されているかどうかを確認することです。

奇妙なことに、これは、同じクライアントからの複数のセッションで、サービスに複数の接続が行われている場合に問題になる可能性があります。これは一般に、リモートホストがセッションCookieを無効にするためです。 Blazeでクライアント接続を正しく管理するには、セッションCookieを有効にする必要があります。

この場合、クライアントが作成した同時接続数を制限するコードを記述する必要があります。これは、たとえばJSPページで行うことができます。これをテストするには、接続カウントでテーブルに余分なフィールドを格納するコードを書くことができます。そうすれば、重複したデータが同じセッションから来ているかどうかを確認できます。

これが役に立ちます。

関連する問題