Синхронизация Zumero не может получить все данныеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Синхронизация Zumero не может получить все данные

Сообщение Anonymous »

Я столкнулся со странной проблемой с приложением Android, которое синхронизируется с удаленным сервером.
Чтобы отследить эту проблему, я создал простое приложение, которое выполняет только синхронизацию. Моя функция синхронизации останавливается из-за следующей ошибки (первые две строки — это информация из обратного вызова Zumero, следующее — полное исключение):
Total size: 1626397 bytes
Transferred : 1626392 bytes

Error 300 (sglib)[ZSS 3.3.0.4342 + Android SQLite (libe_sqlite3.so)3.31.13.31.13.31.13.31.1]: Java Exception during network call: java.net.ProtocolException: unexpected end of stream
at com.android.okhttp.internal.http.Http1xStream$FixedLengthSource.read(Http1xStream.java:398)
at com.android.okhttp.okio.RealBufferedSource$1.read(RealBufferedSource.java:372)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:248)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:288)
at java.io.BufferedInputStream.read(BufferedInputStream.java:347)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
at com.zumero.internal.ZumeroUtils.DoNetworkCall(ZumeroUtils.java:167)

src/core/client/zum_http__android_jni.c:214
src/core/client/zum_http__android_jni.c:290
src/core/client/zum_sync.c:7398
src/core/client/zum_sync.c:11963
src/core/client/zum_sync.c:13063
src/core/client/zum_sync.c:13527

Общий размер никогда не бывает одинаковым при каждом вызове, но это может быть связано с некоторой разницей в заголовке. Но передача останавливается за несколько байт до окончания (иногда за несколько байт, иногда больше); иногда передача завершается правильно (скажем, одна синхронизация из десяти/пятнадцати), но я не вижу очевидной корреляции между общим размером и правильным завершением. После этого последующие синхронизации могут завершиться неудачно или не завершиться неудачей даже с небольшими пакетами (например, последние три синхронизации, сделанные пока я пишу этот пост, завершились неудачей с общим размером 1111 байт и переданным размером 1110 байт).
Сервер Zumero — 3.2.1.4172, работает на IIS 8.5.9600.16384 на Windows Server 2012R2; Клиент Zumero — та же версия. Приложение представляет собой пустое приложение для Android, скомпилированное на VS2022.
Конечно, я попробую на одном из наших внутренних серверов, чтобы увидеть, сохраняется ли проблема, и, возможно, предоставить конкретный тестовый пример (я не могу поделиться данными своих клиентов. ..), а также создание того же приложения в Android Studio, хотя это всего лишь тест, перенос всего приложения в Android Studio невозможен.
Это фрагмент кода, который вызывает функцию синхронизации; наличие функции обратного вызова не влияет на результаты, она просто записывает в две первые строки общий/переданный размер пакета.
private string syncAsync()
{
try
{
ZumeroClient.Sync(_dbFile, "", "http://***.***.***.***:1045", REMOTE_SCHEMA, SYNC_SCHEMA, "user", "password", SyncCallback);

return "OK";
}
catch (ZumeroException zEx)
{
return zEx.ToString();
}
catch(Exception genEx)
{
return genEx.ToString();
}
}



Подробнее здесь: https://stackoverflow.com/questions/786 ... l-the-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»