Асинхронная загрузка данных
Файл первоначальных данных может достигать больших размеров и его обработка сервером может занять продолжительное время. Чтобы избежать проблем связанных с ошибкой таймаута сервера и необходимости разбивать файл на несколько более мелких частей, следует использовать режим асинхронной загрузки. (только для версий сервера 2.21 и выше)
Для этого следует использовать команду -uda (upload data asynchronously)
- Отправляем файл на сервер - сервер сохраняет полученный файл, ставит его в очередь на обработку и возвращает идентификатор, по которому можно узнать статус задачи в будущем.
D:\BitMobileServer\utils.exe -uda -host http://localhost/bitmobile -sp myPass12 -sn superagent d:\superagent\data.xml
f40f4f44-a587-4ca9-a276-f86e4daf4620 - Получаем статус с помощью команды -ats (async task status).
D:\BitMobileServer\utils.exe -ats -host http://localhost/bitmobile -sp myPass12 -sn superagent -atid f40f4f44-a587-4ca9-a276-f86e4daf4620
2200 completed.. - Еще раз через какое-то время.
D:\BitMobileServer\utils.exe -ats -host http://localhost/bitmobile -sp myPass12 -sn superagent -atid f40f4f44-a587-4ca9-a276-f86e4daf4620
ok
Не следует давать серверу новую задачу на асинхронную загрузку данных, не дождавшись завершения предыдущей. Загрузка выполняется в транзакции и вторая операция может завершится с ошибкой таймаута по причине блокировки таблиц базы данных.
Асинхронная загрузка метаданных
Для версий сервера 2.37 и выше доступна асинхронная загрузка файла метаданных. Для этого следует использовать команду -dma (deploy metadata asynchronously), пример:
- Отправляем файл на сервер - сервер сохраняет полученный файл, ставит его в очередь на обработку и возвращает статус "accepted".
D:\BitMobileServer\utils.exe -dma -host http://localhost/bitmobile -sp myPass12 -sn superagent d:\superagent\metadata.xml
accepted - Статус процесса можно наблюдать, просматривая лог файл admin.txt
12/10/2014 4:58:13 PM: Start building solution
12/10/2014 4:58:18 PM: DB scripts ok
12/10/2014 4:58:55 PM: Database ok
12/10/2014 5:03:45 PM: Provision ok
12/10/2014 5:04:00 PM: Sync patch ok
12/10/2014 5:04:53 PM: Admin ok
12/10/2014 5:05:22 PM: Clustered keys patch ok
12/10/2014 5:06:17 PM: Non clustered keys patch ok
12/10/2014 5:06:17 PM: Default NEWID values on tabular sections ok
12/10/2014 5:06:17 PM: initial data load ok
12/10/2014 5:06:17 PM: sqlite ok
12/10/2014 5:06:18 PM: Code generation ok
12/10/2014 5:06:18 PM: Client dll ok
12/10/2014 5:06:18 PM: Server dll ok
12/10/2014 5:06:28 PM: Resources ok
12/10/2014 5:06:28 PM: Solution has been successfully built
Обновление решения
При выгрузке метаданных сервер создает базу данных с нуля. Если база уже существовала - она удаляется. Это накладывает определенные сложности при внесении изменений в решение. Для устранения данной проблемы существуют специальные режимы выгрузки метаданных, при которых не происходит пересоздания базы данных.
Фильтры
Для изменений фильтров, накладываемых на данные при синхронизации мобильного агента, следует использовать команду -dmf (deploy metadata filters), пример:
- D:\BitMobileServer\utils.exe -dmf -host http://localhost/bitmobile -sp myPass12 -sn superagent d:\superagent\metadata.xml
Existing filters will be removed. Do you want to proceed ?
ok - После данной операции мобильным агентам необходимо провести первичную синхронизацию.