Mobile Link 同期 (ダイレクトローハンドリングを含む) では、データソースは、更新されないユニークなプライマリキーを必要とします。スプレッドシートやテキストファイルなどの非リレーショナルデータソースの場合、これは、1 つのカラムに、ローを識別するユニークで不変の値が含まれている必要があることを意味します。
Mobile Link 統合データベースを使用してトランザクションをコミットすることはできません。一方、ダイレクトローハンドリングデータソースを使用してトランザクションをコミットすることは可能です。トランザクション管理を設定する場合は、次のヒントを参考にしてください。
アップロードは Mobile Link によってコミットされる前にコミットする
Mobile Link は、アップロードを適用するとき、end_upload イベントの最後で変更をコミットします。保持するすべてのアップロード変更は、end_upload スクリプトが終了する前にコミットしてください。これを実行しなかった場合、エラーや失敗が発生したときに、アプリケーションはアップロードが適用されたとみなしていても
Mobile Link はデータを適用していない状態になり、その結果、データが喪失する可能性があります。
冗長なアップロードを処理する
アップロードされたローをアプリケーションがコミットしてから Mobile Link サーバーがコミットするまでにエラーや失敗が発生すると、Mobile Link サーバーとデータソースの一貫性が失われる場合があります。この問題を解決するには、冗長なアップロードを許可し、冗長なアップロードが適切に適用されるようにするための論理を用意します。特に、アプリケーションがアップロードをもう一度送信する場合は、アップロードが再度適用されないようにしてください。
エラーを処理するには、上記のように、適切なトランザクション管理を使用します。また、ローを処理する Java コードおよび .NET コードでは、発生するすべての例外を Mobile Link サーバーに送信してください。Mobile Link
サーバーまたはアプリケーションが変更をコミットする前にエラーが発生した場合、Mobile Link は、トランザクションをロールバックし、アプリケーションとの一貫性がある状態を維持します。