Pregunta

Tenemos un sistema en el que vamos a agregar programáticamente elementos a una lista de SharePoint.

Nos preocupa la consistencia de la información.

¿Escribir en una lista es una operación todo o nada? ¿Existe el peligro de que solo la mitad de los campos se completen? ¿Ayudaría colocar la operación en un alcance de transacción?

¿Fue útil?

Solución

Antes de pensar profundamente, mis primeros pensamientos, ¿no habría ningún problema realmente a menos que estuvieras escribiendo mucho (> 10 elementos por segundo?) Y haciendo muchas lecturas (> 50 por segundo?) En cuyo caso yo '' Supongo que rara vez obtendrá un número preciso de filas en la lista, o es posible que no devuelva todas las filas actuales correctamente.

Sin embargo, dudo seriamente que se pierda los campos en una operación de escritura masiva, a menos que no haya desinfectado los datos y tuviera errores, en cuyo caso estoy pensando que toda la operación de escritura de la fila sería omitida, pero yo '' No estoy completamente seguro.

Escribir programáticamente en una lista es algo que no doy un segundo (aunque tengo mucha confianza en cómo SP escribe en SQL), a menos que el escenario parezca que evolucionará a algo parecido a un sistema OLTP.

Otros consejos

Le sugiero que use SQL Profiler y vea lo que se actualiza cuando modifica un elemento en su lista. Si tiene múltiples actualizaciones, entonces existe la posibilidad de que si algo ocurre a la mitad del proceso (por ejemplo, falla del hardware), sus datos podrían estar en un estado inconsistente.

Cuando las personas se preocupan por las actualizaciones de la base de datos transaccional, están hablando de la capacidad del sistema para sobrevivir una falla que ocurre durante una serie de operaciones conectadas en la base de datos. Si realmente necesita este nivel de integridad, mi intuición es que una lista de SharePoint no es el enfoque correcto, y debe usar SQL Server directamente para almacenar los datos. Aún podría exponer esos datos en SharePoint a través de BCS además.

Estoy de acuerdo en que los problemas son probablemente raros, pero cuando necesita una garantía, entonces necesita usar transacciones de base de datos para permitir la reversión de un estado consistente si se producen problemas, por improbables.

Licenciado bajo: CC-BY-SA con atribución
scroll top