Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
同期時の通信エラーが原因でダウンロードが失敗したときに、変更をロールバックしないで部分ダウンロードを保持するかどうかを制御します。
public void setKeepPartialDownload(Boolean v)
v 部分的なダウンロードを保持する場合は true、部分的なダウンロードをロールバックする場合は false。
Ultra Light では、通信エラーが原因で失敗したダウンロードを再開することができます。Ultra Light は、ダウンロードを受信しながら処理します。ダウンロードが中断した場合は、部分的なダウンロードトランザクションがデータベース内に残るため、次の同期中に再開できます。
Ultra Light で部分的なダウンロードを保存する必要があることを示すには、Connection.syncParms.setKeepPartialDownload(true) を指定します。指定しないと、エラーが発生した場合にダウンロードがロールバックされます。
部分的なダウンロードが保持された場合、connection.synchronize() の終了時に、出力フィールド connection.SyncResult.getPartialDownloadRetained() が true に設定されます。getPartialDownloadRetained() が設定されている場合は、ダウンロードを再開できます。再開するには、true に設定された connection.syncParms.setResumePartialDownload(boolean) を使用して connection.synchronize() を呼び出します。別の通信エラーの発生に備えて、KeepPartialDownload を true に設定する必要があります。ダウンロードが省略された場合は、アップロードは行われません。
再開したダウンロードで受信するダウンロードは、最初にダウンロードを開始したときと同じものです。最新のデータが必要な場合は、再開された特別なダウンロードが完了した直後に、もう一度ダウンロードを行うことができます。
ダウンロードを再開する場合、SyncParms フィールドの多くは関係ありません。たとえば、PublicationMask フィールドは使用されません。受信するパブリケーションは、最初のダウンロード時に要求したものです。設定する必要があるフィールドは、setResumePartialDownload(boolean) と setUserName(String) だけです。setKeepPartialDownload(boolean) フィールドを必要に応じて設定すると、正常に機能します。
部分的なダウンロードが存在するが、このダウンロードが必要ではなくなった場合は、Connection.rollbackPartialDownload() を呼び出して、失敗したダウンロードトランザクションをロールバックできます。また、同期をもう一度実行したときに ResumePartialDownload を指定しなかった場合は、部分的なダウンロードがロールバックされてから、次の同期が開始されます。
詳細については、同期の障害処理の方法を参照してください。