0

J2ME(LWUIT)を使用してモバイル アプリケーションを開発しました。サーバー側で更新が完了したという応答をサーバーから受信した後、モバイル RMS の値を更新する必要があります。サーバーにヒットした後、応答を受信する前にモバイルアプリケーションが閉じられ、サーバー側の値が更新されますが、モバイルRMS値はまだ更新されていません.

4

2 に答える 2

1

赤いボタンは通常、アプリケーションを即座に強制終了し、それを修正する機会を実際に残しません。実際にデータをそこにコミットするために、サーバーへのコールバックが必要になる可能性があります。

于 2012-06-14T12:59:33.953 に答える
0

@arunまあ、あなたができることはです。

1) サーバーで変更を更新します。

2) RMS にプッシュするデータを、uniqueID とともに MIDlet に送信します。一意の ID は、すべてのトランザクションを一意に識別します。

3) この時点で、サーバーは、MIDlet がデータを受信したかどうかにかかわらず、MIDlet からの確認を待ち続けます (20 秒間待機するとします)。

4) MIDlet がデータを受信すると、それをメモリに保存し、受信した uniqueID とともに確認をサーバーにすぐに送信します (そして、..25 秒間待機します)。MIDlet には、サーバーが特定の一意の ID を持つデータを送信した回数も格納されます。したがって、カウントは最初は 0 で、サーバーが同じ一意の ID を持つデータを送信するたびに増分されます。

5) サーバーが 20 秒以内に確認を受信した場合、サーバーは何もしません。25 秒が経過すると、MIDlet はデータを RMS に書き込みます。あなたの仕事は完了です!

5.1) サーバーが確認を受信しない場合、同じ一意の ID を持つデータを (21 秒で) 再度送信します。MIDlet は一意の ID を認識し、サーバーが同じデータを送信した回数を追跡するカウンターをインクリメントします。再度確認を送信し、25 秒間待機します。

さて...このプロセスは延々と続く可能性があります。

あなたがしなければならないことは... このプロセスでいつ終了を呼び出すかを決定することです。

6) 最終的に、サーバーが確認を受信しない場合、サーバーは変更をロールバックし、MIDlet に「一意の ID などのデータをロールバックします」というメッセージを送信します。

7) midlet がその一意の ID のデータをコミットしていない場合、その一意の ID に関連付けられたメッセージと変更も無視します。すでにコミットされている場合は、その一意の ID のデータをロールバックするだけです。ロールバックの要求が同じ一意の ID に対して繰り返される場合は、無視して、変更がロールバックされたというメッセージをサーバーに送信します。

8) 注: RMS への変更がロールバックされたことを示すメッセージをサーバーに送信する必要があります。そうしないと、サーバーは変更をロールバックするメッセージを送信し続けます。

はい、これは非常に複雑です。本をチェックしてください。コミュニケーション ネットワークまたは著者 Behrouz Forouzan による同様のもの。彼はこのファブについて説明します。

于 2012-06-20T10:54:49.637 に答える