Recomendações integridade de dados em comunicação com o web service

Pessoal, boa tarde.

Fiz um processo de envio de dados do smartphone para um web service que grava em um banco de dados SQL Server.

E estou tendo problemas com a integridade, por exemplo apesar de eu tratar exceções e etc e tentar tratar internamente no banco de dados do aparelho parece que algumas vezes ocorrem falhas que também não consigo simular, mas ocorreram com alguns usuários de ir apenas metade dos dados ou coisa do tipo. Já coloquei Log para todos os lados, tratei as exceções e mesmo assim não consigo identificar onde está ocorrendo o erro.

Eu estou fazendo assim, eu tenho um método de exportação dinâmico que ele é chamado pela persistência e faz a exportação de acordo com a particularidade de cada classe.

Então eu faço consultas no banco de dados e com o cursor eu envio registro a registro ao web service, que está programado para receber uma linha de cada vez.
Caso ocorra exceções eu tenho um flag nas tabelas onde eu gravo na exceção se aquele registro não foi enviado e estorno todos os que tem ligações com ele.

Gostaria de saber se isso é viável… já que ando tendo esse tipo de problema.

Pensei em mudar tudo para gerar xml dos dados a serem enviados ou json e enviar o arquivo para o mesmo ser processado e interpretado no web service. Pois pelo menos assim eu garantiria que os dados foram exportados, caso dê algum erro no processo eu manteria o arquivo dentro do aparelho e caso ele completasse com sucesso o envio eu apagaria o arquivo na memória.

O que é recomendado para garantir esse tipo de integridade? Alguém tem uma dica ou orientação para me passar…

Obrigado desde já.

Tenta a segunda opção, parece bem melhor que a primeira de enviar linha por linha.