हमारे पास कई उच्च उपयोग उत्पादन वेब अनुप्रयोग हैं जो बैकएंड पर FGDB पर चलते हैं। FGDB रातोंरात मिटा दिया जाता है और नए डेटा के साथ फिर से बनाया जाता है। हमारे पास एक .NET कंसोल ऐप है जो मैंने लिखा था जो AGSSOM पर आधारित है जो अपडेट प्रक्रिया को चलाने के दौरान सेवाओं को रोकता है। AGSSOM की जाँच करें, यह बहुत चालाक है। यहां कुछ C # का उपयोग मैं वर्तमान FGDB का बैकअप बनाने से पहले करता हूं ताकि मैं इसे उड़ा दूं:
// 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);
}
}
}
यह FGDB को कॉपी करने के लिए सिर्फ Directory.CreateDirectory और FileInfo.CopyTo का उपयोग करता है - विंडोज FGDB को सिर्फ एक अन्य फ़ोल्डर के रूप में देखता है। चमार की तरह काम करता है। फिर, अद्यतन प्रक्रिया पूरी होने के बाद, हम AGSSOM- आधारित एप्लिकेशन का उपयोग करके फिर से सेवाएं शुरू करते हैं।