XML 파일에 통계를 작성합니다. 데이터 수를 잃어버린 문제가 있습니까?
문제
안녕하세요 저는 해당 코드에 대한 속성 및 페이지 시청 수 코드를 보유하는 XML을 만들었습니다.
<?xml version="1.0" encoding="utf-8"?>
<data>
<nehnutelnost code="BSPO066P">35</nehnutelnost>
<nehnutelnost code="PMDM029P">4</nehnutelnost>
</data>
나는 이것으로 약점을 발견했다고 생각합니다. 오늘날 모든 카운터가 사라지고 모두 처음부터 시작했습니다.
이것은 XML 파일의 코드 존재를 확인하고 +1을 추가하거나 1으로 새 XML 태그를 작성하는 코드입니다.
int intSeenCount = 0;
XDocument xmlSeenCount = new XDocument();
xmlSeenCount = XDocument.Load(Server.MapPath(@"App_Data\lozjoCounts.xml"));
XElement xmlElement = xmlSeenCount.XPathSelectElement("data/nehnutelnost[@code = '" + strCisloZakazky + "']");
if (xmlElement == null)
{
xmlElement = (new XElement("nehnutelnost",
new XAttribute("code", strCisloZakazky),
++intSeenCount));
xmlSeenCount.Element("data").Add(xmlElement);
}
else
{
intSeenCount = (Convert.ToInt32(xmlElement.Value) + 1);
xmlElement.Value = intSeenCount.ToString();
}
xmlSeenCount.Save(Server.MapPath(@"App_Data\lozjoCounts.xml"));
내 질문은 다음과 같습니다.
다른 사람이 동시에 열린 페이지가있을 수 있고 파일이 방금 덮어 쓰거나 어떻게 든 데이터를 재설정했을 가능성이 있습니까?
페이지 방문자가 향후 재설정되지 않도록 번호를 유지하는 방법이 있습니까?
고맙습니다.
페로
해결책
동시성 문제가있는 것 같습니다.
당신은 할 수 있습니다 자물쇠 작문 작업이지만, 귀하는 귀하가 응용 프로그램에서 가능한 병목 현상을 생성하고 있음을 알고 있어야합니다.
제휴하지 않습니다 StackOverflow