Wir haben mehrere produktionsstarke Produktionswebanwendungen, die auf REA im Backend ausgeführt werden. Die FGDBs werden ausgelöscht und jede Nacht mit neuen Daten neu erstellt. Wir haben eine .NET-Konsolen-App, die ich geschrieben habe und die auf AGSSOM basiert und die Dienste stoppt, während der Aktualisierungsprozess ausgeführt wird. Schauen Sie sich AGSSOM an, es ist ziemlich schick. Hier sind einige der C #, die ich verwende, um ein Backup der aktuellen REA zu erstellen, bevor ich sie wegblase:
// Only archive it FGDB already exists, if this is first run, then nothing to archive
if (Directory.Exists(String.Concat(c.fgdbDir, @"\", kvp.Key[0], ".gdb")))
{
c.msg = String.Concat(Environment.NewLine, "Archiving data for ", kvp.Key[0], " - ",
DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt"));
Messaging.Log(c.msg, c.lw);
// Create the FGDB folder in archive dir if not already there
if (!Directory.Exists(String.Concat(c.fgdbArchiveDir, @"\", kvp.Key[0], ".gdb")))
{
Directory.CreateDirectory(String.Concat(c.fgdbArchiveDir, @"\", kvp.Key[0], ".gdb"));
// Now copy from clips to archive
foreach (FileInfo fi in source.GetFiles())
{
fi.CopyTo(System.IO.Path.Combine(target.ToString(), fi.Name), true);
}
}
}
Es werden nur Directory.CreateDirectory und FileInfo.CopyTo verwendet, um die FGDB zu kopieren - Windows sieht die FGDB nur als einen anderen Ordner. Funktioniert wie ein Champion. Nach Abschluss des Aktualisierungsvorgangs starten wir die Dienste erneut mit der AGSSOM-basierten Anwendung.