게시판 본문 ASP, ASP.NET, IIS & Script - Read Only
동시접속자가 많을 경우 XMLDOM 검색 처리 방법 문의 |
---|
작성자: Tanhi
작성일시: 2011-04-24 17:33,
조회수: 5,609
|
안녕하세요.
클라이언트에서 서버로 검색어를 입력호출하면 서버에 저장되어 있는 xml화일을 검색해서 검색결과를 클라이언트에서 xml결과 화일로 받는 것에 있어서, 최초 1명이 검색어를 호출하면 XMLDOM이 5메가 바이트의 xml화일로 부터 검색하기 위해 5MB의 xml화일을 서버의 메모리에 로드하는데, 검색하는 사람이 늘어날 수록 서버의 메모리가 계속 증가하는 문제를 해결하고 싶은데요. 아래는 메모리가 계속 증가하는 소스입니다. ServerXMLhttp로 해결할 수 있다는 얘기도 있는데 어떻게 해야 하는지 도움을 부탁드립니다. ) Set xmlExtractDOM = Server.CreateObject("Microsoft.XMLDOM") xmlExtractDOM.async = false Set ExtractRootTag = xmlExtractDOM.createElement("TET") xmlExtractDOM.documentElement = ExtractRootTag Set root = xmlExtractDOM.documentElement Set Inxml = Server.CreateObject("Microsoft.XMLDOM") Inxml.async = false Inxml.load(Request) searchkey = Inxml.documentElement.childNodes(0).text page = Inxml.documentElement.childNodes(1).text 'searchkey = Inxml.documentElement.firstChild.nodeValue 'searchkey = "10" 'page = request("page") If page="" Then page = 1 argRow = 40 'page size If searchkey <> "" Then sFilter = "/TET/Page/Structure/Line/Word" sFilter = sFilter & "[contains(translate(Text, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '" & LCase(searchkey) & "' )]" Set ExtractSearchLineTagArray = xmlRawDoc.documentElement.selectNodes(sFilter) TotalResultnum = ExtractSearchLineTagArray.length TotalPagenum = Int(TotalResultnum / argRow) If TotalResultnum mod argRow > 0 then TotalPagenum = TotalPagenum + 1 end If StartItem = (page - 1) * argRow EndItem = (page ) * argRow - 1 If EndItem > TotalResultnum - 1 Then EndItem = TotalResultnum - 1 End If Set StepNode = xmlExtractDOM.createElement("Step") Set idxNumber = xmlExtractDOM.createAttribute("idx") idxNumber.Value = page Set totalIdxNumber = xmlExtractDOM.createAttribute("totalIdx") totalIdxNumber.Value = TotalPagenum StepNode.Attributes.setNamedItem idxNumber StepNode.Attributes.setNamedItem totalIdxNumber root.appendChild StepNode pagePrevNumber = 0 for pNo = StartItem to EndItem Set ExtractSearchLineTag = ExtractSearchLineTagArray.item(pNo) 'For Each ExtractSearchLineTag In ExtractSearchLineTagArray Set ExtractPageNode = ExtractSearchLineTag.parentNode.parentNode.parentNode pageNumber = CInt(ExtractPageNode.attributes.item(0).text) pageHeight = CInt(ExtractPageNode.attributes.item(1).text) pageWidth = CInt(ExtractPageNode.attributes.item(2).text) If pageNumber <> pagePrevNumber Then ' Create Tag pagePrevNumber = pageNumber Set PgNode = xmlExtractDOM.createElement("Page") Set nodeNumber = xmlExtractDOM.createAttribute("number") nodeNumber.Value = pageNumber Set nodeHeight = xmlExtractDOM.createAttribute("height") nodeHeight.Value = pageHeight Set nodeWidth = xmlExtractDOM.createAttribute("width") nodeWidth.Value = pageWidth PgNode.Attributes.setNamedItem nodeNumber PgNode.Attributes.setNamedItem nodeHeight PgNode.Attributes.setNamedItem nodeWidth StepNode.appendChild PgNode Set StructNode = xmlExtractDOM.createElement("Structure") StepNode.lastChild.appendChild StructNode Set newStructNode = StepNode.lastChild.lastChild End If Set LineNode = xmlExtractDOM.createElement("Line") LineNode.appendChild ExtractSearchLineTag newStructNode.appendChild LineNode Next End If response.write(xmlExtractDOM.xml) 'response.write totalresultnum %> |
IP 주소: 175.104.4.36
|
전체 2,095 건의 게시물,
84 페이지로 구성된
ASP, ASP.NET, IIS & Script 게시판의
1 페이지입니다.
게시물 | ||||
---|---|---|---|---|
2,208 | 2011-05-25 | 12,673 | ||
2,207 | 2011-05-27 | 5,859 | ||
2,206 |
이석환 |
2011-05-20 | 124 | |
2,205 | 2011-05-23 | 5,706 | ||
2,204 |
이석환 |
2011-05-17 | 130 | |
2,203 | 2011-05-17 | 5,499 | ||
2,202 |
동영상 탑재 사이트 구축 [1] |
2011-05-12 | 5,364 | |
2,201 | 2011-05-12 | 5,303 | ||
2011-04-24 | 5,609 | |||
2,199 | 2011-04-25 | 5,189 | ||
2,197 |
김종식 |
2011-03-30 | 228 | |
2,196 | 2011-03-31 | 5,289 | ||
2,195 |
gosuzzang |
2011-03-23 | 290 | |
2,194 | 2011-03-24 | 5,735 | ||
2,193 |
이석환 |
2011-03-23 | 253 | |
2,192 | 2011-03-24 | 5,651 | ||
2,191 |
이석환 |
2011-03-18 | 345 | |
2,190 | 2011-03-19 | 5,997 | ||
2,189 | 2011-03-21 | 5,303 | ||
2,188 |
이석환 |
2011-03-21 | 258 | |
2,187 | 2011-03-21 | 5,764 | ||
2,186 |
질문 |
2011-03-18 | 311 | |
2,185 | 2011-03-18 | 7,687 | ||
2,184 |
이석환 |
2011-03-11 | 345 | |
2,183 | 2011-03-14 | 8,742 |