xml positng and receiving code ?

Discussion in 'ASP General' started by Subrato, Apr 19, 2007.

  1. Subrato

    Subrato Guest

    Hi,
    I am very new to xml and I have this piece of code which I took off
    a website. The situation is that on of the website, user files up a
    form and it is submitted. On submission, the page should do a xml post
    to my site. On receiving the xml on my end, I take that data and
    insert it into sql server table. I dont know whats missing . Here is
    the piece of code I use for my testing.

    'Sending

    <%
    RequestorFirstName = "Tony"
    RequestorLastName = "Topper"
    RequestorEmail = ""
    RequestorAddress1 = "Top Address"
    RequestorAddress2 = "High Lane"
    RequestorCity = "New Haven"
    RequestorState = "Connecitcut"
    RequestorCountry = "USA"
    RequestorZip = "06511"
    RequestorContactFlag = "Yes"
    RequestorInterestedBoat = "Laser,Nomad"
    RequestorOwnership = "No"
    RequestorActivities = "Saltwater Fishing, General Fitness"
    RequestorBoatList = "Air Boats,Fish and Ski,Multi-Hull
    Cruisers,Electric Boats"
    RequestorPurchaseTimeLine = "As soon as possible"

    Set xmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
    xmlHttp.open "GET", "http://someserver:9099/example.xml", false
    xmlHttp.send()
    xmlDoc=xmlHttp.responseText
    firstname = RequestorFirstName
    lastname = RequestorLastName
    xmlDoc = replace(xmlDoc,"[FirstName]",firstname)
    xmlDoc = replace(xmlDoc,"[LastName]",lastname)
    xmlDoc = replace(xmlDoc,"[Line1]",RequestorAddress1)
    xmlDoc = replace(xmlDoc,"[Line2]",RequestorAddress2)
    xmlDoc = replace(xmlDoc,"[City]",RequestorCity)
    xmlDoc = replace(xmlDoc,"[StateProvinceCode]",RequestorState)
    xmlDoc = replace(xmlDoc,"[PostalCode]",RequestorZip)
    xmlDoc =
    replace(xmlDoc,"[date]",FormatDateTime(date(),vbshortdate))
    xmlDoc = replace(xmlDoc, "[ContactFlag]", RequestorContactFlag)
    xmlDoc = replace(xmlDoc, "[InterestedInKnownBoat]",
    RequestorInterestedBoat)
    xmlDoc = replace(xmlDoc, "[Ownership]", RequestorOwnership)
    xmlDoc = replace(xmlDoc, "[Activities]", RequestorActivities)
    xmlDoc = replace(xmlDoc, "[BoatList]", RequestorBoatList)
    xmlDoc = replace(xmlDoc, "[PurchaseTimeline]",
    RequestorPurchaseTimeLine)

    Set xml = Server.CreateObject("Microsoft.XMLHTTP")

    ' Notice the two changes in the next two lines:
    xml.Open "POST", "http://someserver:9099/xmlimport.asp", False
    xml.setRequestHeader "Content-Type", "application/x-www-form-
    urlencoded"
    xml.Send xmlDoc

    'Response.Write( xml.responseText)
    pos = ""
    pos=InStr( xml.responseText,"<OrderRejectionMessage></
    OrderRejectionMessage>")

    'check rejection if error send email
    if pos <> "" then
    verror = "success"
    else
    verror = "error"
    end if
    Response.Write(verror)
    %>

    On receiving end

    Set objXMLDOM = Server.CreateObject("MSXML2.DOMDocument")
    objXMLDOM.setProperty "ServerHTTPRequest", True
    objXMLDOM.async = False
    Check = objXMLDOM.load(Request)
    Response.Write(Check & "11111")
    objXMLDOM.Save("http://someotherserver:9099/xml/xmldoc.xml")

    'This just writes out the posted xml, but we could process it
    here
    Response.Write objXMLDOM



    Set objLst = objXMLDOM.getElementsByTagName("*")

    For i = 0 to (objLst.length) -1
    if objLst.item(i).nodeName = "FirstName" then
    RequestorFirstName = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "LastName" then
    RequestorLastName = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "Email" then
    RequestorEmail = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "Line1" then
    RequestorAddress1 = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "Line2" then
    RequestorAddress2 = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "City" then
    RequestorCity = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "StateProvinceCode" then
    RequestorState = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "Country" then
    RequestorCountry = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "PostalCode" then
    RequestorZip = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "ContactFlag" then
    RequestorContactFlag = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "InterestedInKnownBoat" then
    RequestorInterestedBoat = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "Ownership" then
    RequestorOwnership = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "Activities" then
    RequestorActivities = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "BoatList" then
    RequestorBoatList = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "PurchaseTimeline" then
    RequestorPurchaseTimeLine = objLst.item(i).text
    End if
    if objLst.item(i).nodeName = "date" then
    RequestorDate = objLst.item(i).text
    End if
    Next
    %>

    I am unable to understand whats wrong or missing in this piece of code
     
    Subrato, Apr 19, 2007
    #1
    1. Advertising

  2. "Subrato" <> wrote in message
    news:...
    > Hi,
    > I am very new to xml and I have this piece of code which I took off
    > a website. The situation is that on of the website, user files up a
    > form and it is submitted. On submission, the page should do a xml post
    > to my site. On receiving the xml on my end, I take that data and
    > insert it into sql server table. I dont know whats missing . Here is
    > the piece of code I use for my testing.
    >


    Comments in line

    > 'Sending
    >
    > <%
    > RequestorFirstName = "Tony"
    > RequestorLastName = "Topper"
    > RequestorEmail = ""
    > RequestorAddress1 = "Top Address"
    > RequestorAddress2 = "High Lane"
    > RequestorCity = "New Haven"
    > RequestorState = "Connecitcut"
    > RequestorCountry = "USA"
    > RequestorZip = "06511"
    > RequestorContactFlag = "Yes"
    > RequestorInterestedBoat = "Laser,Nomad"
    > RequestorOwnership = "No"
    > RequestorActivities = "Saltwater Fishing, General Fitness"
    > RequestorBoatList = "Air Boats,Fish and Ski,Multi-Hull
    > Cruisers,Electric Boats"
    > RequestorPurchaseTimeLine = "As soon as possible"
    >
    > Set xmlHttp = Server.CreateObject("Microsoft.XMLHTTP")


    Don't use the XMLHTTP in ASP, its not thread safe, use
    MSXML2.ServerXMLHTTP.3.0 instead.

    > xmlHttp.open "GET", "http://someserver:9099/example.xml", false
    > xmlHttp.send()
    > xmlDoc=xmlHttp.responseText


    I doubt the above roundtrip to your server is necessary just use:-

    Set xmlDoc = Server.CreateObject("MSXML2.DOMDocument.3.0")
    xmlDoc.LoadXML "<root />"

    If it is necessary for some other reason than to get the placemarks you are
    using (which I'll correct below) then make sure the file is valid XML and
    use:-

    Set xmlDoc = xmlHttp.ResponseXML

    > firstname = RequestorFirstName
    > lastname = RequestorLastName


    Why??

    > xmlDoc = replace(xmlDoc,"[FirstName]",firstname)


    You should not attempt to create XML using a string. If you use the above
    technique and the string being inserted happens to contain a < or & or some
    other character of special meaning to XML the document will be corrupt.

    Instead you should use a DOMDocument (as created above) to build your XML.
    I use the following standard function to make building XML easier:-

    Function AddElem(roParent, rsName, rvntValue)
    Set AddElem = roParent.ownerDocument.createElement(rsName)
    roParent.appendChild AddElem
    If Not IsNull(rvntValue) AddElem.Text = rvntValue
    End Function

    With this function present the code above becomes:-

    AddElem xmlDoc.documentElement, "FirstName", RequestorFirstName

    > xmlDoc = replace(xmlDoc,"[LastName]",lastname)


    AddElem xmlDoc.documentElement, "FirstName", RequestorLastName

    > xmlDoc = replace(xmlDoc,"[Line1]",RequestorAddress1)


    and so on...

    > xmlDoc = replace(xmlDoc,"[Line2]",RequestorAddress2)
    > xmlDoc = replace(xmlDoc,"[City]",RequestorCity)
    > xmlDoc = replace(xmlDoc,"[StateProvinceCode]",RequestorState)
    > xmlDoc = replace(xmlDoc,"[PostalCode]",RequestorZip)
    > xmlDoc =
    > replace(xmlDoc,"[date]",FormatDateTime(date(),vbshortdate))
    > xmlDoc = replace(xmlDoc, "[ContactFlag]", RequestorContactFlag)
    > xmlDoc = replace(xmlDoc, "[InterestedInKnownBoat]",
    > RequestorInterestedBoat)
    > xmlDoc = replace(xmlDoc, "[Ownership]", RequestorOwnership)
    > xmlDoc = replace(xmlDoc, "[Activities]", RequestorActivities)
    > xmlDoc = replace(xmlDoc, "[BoatList]", RequestorBoatList)
    > xmlDoc = replace(xmlDoc, "[PurchaseTimeline]",
    > RequestorPurchaseTimeLine)
    >
    > Set xml = Server.CreateObject("Microsoft.XMLHTTP")


    Set xmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")

    >
    > ' Notice the two changes in the next two lines:
    > xml.Open "POST", "http://someserver:9099/xmlimport.asp", False
    > xml.setRequestHeader "Content-Type", "application/x-www-form-
    > urlencoded"


    Don't use the above header you're sending XML. Use:-

    xml.setRequestHeader "Content-Type", "test/xml; CharSet=UTF-8"

    OR don't bother with the header at all.

    > xml.Send xmlDoc
    >
    > 'Response.Write( xml.responseText)
    > pos = ""
    > pos=InStr( xml.responseText,"<OrderRejectionMessage></
    > OrderRejectionMessage>")
    >
    > 'check rejection if error send email
    > if pos <> "" then
    > verror = "success"
    > else
    > verror = "error"
    > end if
    > Response.Write(verror)
    > %>
    >
    > On receiving end
    >
    > Set objXMLDOM = Server.CreateObject("MSXML2.DOMDocument")
    > objXMLDOM.setProperty "ServerHTTPRequest", True


    The ServerHTTPRequest property is not necessary. You are not making a
    request; the content has already arrived and is in the Request object.

    > objXMLDOM.async = False
    > Check = objXMLDOM.load(Request)


    This is ok.

    > Response.Write(Check & "11111")


    Whats the "11111" about?

    > objXMLDOM.Save("http://someotherserver:9099/xml/xmldoc.xml")


    You cannot save to a URL. Is this yet another server to which the XML
    should be passed to?
    If so you should use the ServerXMLHTTP object to post the XML as you've done
    form the origin.

    BTW, don't use parentheses in method or procedure calls that aren't
    returning any value.

    >
    > 'This just writes out the posted xml, but we could process it
    > here
    > Response.Write objXMLDOM
    >
    >
    >
    > Set objLst = objXMLDOM.getElementsByTagName("*")
    >
    > For i = 0 to (objLst.length) -1
    > if objLst.item(i).nodeName = "FirstName" then
    > RequestorFirstName = objLst.item(i).text
    > End if


    I prefer to use another function to retrieve the text value of a path:-

    Function GetNodeText(roContext, rsPath)
    Dim oNode

    Set oNode = roContext.SelectSingleNode(rsPath)

    If Not oNode Is Nothing Then
    GetNodeText = oNode.Text
    Else
    GetNodeText = Null
    End If
    End Function

    Now you can use the following code to retrieve the values:-

    Dim oRoot : Set oRoot = objXMLDOM.documentElement

    RequestorFirstName = GetNodeText(oRoot, "FirstName")

    > if objLst.item(i).nodeName = "LastName" then
    > RequestorLastName = objLst.item(i).text
    > End if


    RequestorFirstName = GetNodeText(oRoot, "LastName")

    > if objLst.item(i).nodeName = "Email" then
    > RequestorEmail = objLst.item(i).text
    > End if


    and so on..

    > if objLst.item(i).nodeName = "Line1" then
    > RequestorAddress1 = objLst.item(i).text
    > End if
    > if objLst.item(i).nodeName = "Line2" then
    > RequestorAddress2 = objLst.item(i).text
    > End if
    > if objLst.item(i).nodeName = "City" then
    > RequestorCity = objLst.item(i).text
    > End if
    > if objLst.item(i).nodeName = "StateProvinceCode" then
    > RequestorState = objLst.item(i).text
    > End if
    > if objLst.item(i).nodeName = "Country" then
    > RequestorCountry = objLst.item(i).text
    > End if
    > if objLst.item(i).nodeName = "PostalCode" then
    > RequestorZip = objLst.item(i).text
    > End if
    > if objLst.item(i).nodeName = "ContactFlag" then
    > RequestorContactFlag = objLst.item(i).text
    > End if
    > if objLst.item(i).nodeName = "InterestedInKnownBoat" then
    > RequestorInterestedBoat = objLst.item(i).text
    > End if
    > if objLst.item(i).nodeName = "Ownership" then
    > RequestorOwnership = objLst.item(i).text
    > End if
    > if objLst.item(i).nodeName = "Activities" then
    > RequestorActivities = objLst.item(i).text
    > End if
    > if objLst.item(i).nodeName = "BoatList" then
    > RequestorBoatList = objLst.item(i).text
    > End if
    > if objLst.item(i).nodeName = "PurchaseTimeline" then
    > RequestorPurchaseTimeLine = objLst.item(i).text
    > End if
    > if objLst.item(i).nodeName = "date" then
    > RequestorDate = objLst.item(i).text
    > End if
    > Next
    > %>
    >
    > I am unable to understand whats wrong or missing in this piece of code
    >


    Since you are using SQL Server consider passing the XML String to SQL Server
    as parameter and using the OPENXML clause to retrieve the values from it.

    One other note is on the date format used in the XML. I use dd-mmm-yyyy
    (where mmm is the abbrevieated month name) which is parseable unambiguously
    by VBScript, JScript and SQL Server.

    Anthony.
     
    Anthony Jones, Apr 19, 2007
    #2
    1. Advertising

  3. Subrato

    Vanessa Guest

    hi Anthony,

    > Don't use the XMLHTTP in ASP, its not thread safe, use
    > MSXML2.ServerXMLHTTP.3.0 instead.


    What do you mean by "XMLHTTP is not thread safe"? Actually I've been having
    problem with XMLHTTP as it will freeze up the server (!!!) all the time. I've
    been looking online to find an alternative method, so
    MSXML2.ServerXMLHTTP.3.0 will be safe to use and won't lock up the server?
    Please advise as I have searched for so long but with no luck...

    Vanessa


    "Anthony Jones" wrote:

    >
    > "Subrato" <> wrote in message
    > news:...
    > > Hi,
    > > I am very new to xml and I have this piece of code which I took off
    > > a website. The situation is that on of the website, user files up a
    > > form and it is submitted. On submission, the page should do a xml post
    > > to my site. On receiving the xml on my end, I take that data and
    > > insert it into sql server table. I dont know whats missing . Here is
    > > the piece of code I use for my testing.
    > >

    >
    > Comments in line
    >
    > > 'Sending
    > >
    > > <%
    > > RequestorFirstName = "Tony"
    > > RequestorLastName = "Topper"
    > > RequestorEmail = ""
    > > RequestorAddress1 = "Top Address"
    > > RequestorAddress2 = "High Lane"
    > > RequestorCity = "New Haven"
    > > RequestorState = "Connecitcut"
    > > RequestorCountry = "USA"
    > > RequestorZip = "06511"
    > > RequestorContactFlag = "Yes"
    > > RequestorInterestedBoat = "Laser,Nomad"
    > > RequestorOwnership = "No"
    > > RequestorActivities = "Saltwater Fishing, General Fitness"
    > > RequestorBoatList = "Air Boats,Fish and Ski,Multi-Hull
    > > Cruisers,Electric Boats"
    > > RequestorPurchaseTimeLine = "As soon as possible"
    > >
    > > Set xmlHttp = Server.CreateObject("Microsoft.XMLHTTP")

    >
    > Don't use the XMLHTTP in ASP, its not thread safe, use
    > MSXML2.ServerXMLHTTP.3.0 instead.
    >
    > > xmlHttp.open "GET", "http://someserver:9099/example.xml", false
    > > xmlHttp.send()
    > > xmlDoc=xmlHttp.responseText

    >
    > I doubt the above roundtrip to your server is necessary just use:-
    >
    > Set xmlDoc = Server.CreateObject("MSXML2.DOMDocument.3.0")
    > xmlDoc.LoadXML "<root />"
    >
    > If it is necessary for some other reason than to get the placemarks you are
    > using (which I'll correct below) then make sure the file is valid XML and
    > use:-
    >
    > Set xmlDoc = xmlHttp.ResponseXML
    >
    > > firstname = RequestorFirstName
    > > lastname = RequestorLastName

    >
    > Why??
    >
    > > xmlDoc = replace(xmlDoc,"[FirstName]",firstname)

    >
    > You should not attempt to create XML using a string. If you use the above
    > technique and the string being inserted happens to contain a < or & or some
    > other character of special meaning to XML the document will be corrupt.
    >
    > Instead you should use a DOMDocument (as created above) to build your XML.
    > I use the following standard function to make building XML easier:-
    >
    > Function AddElem(roParent, rsName, rvntValue)
    > Set AddElem = roParent.ownerDocument.createElement(rsName)
    > roParent.appendChild AddElem
    > If Not IsNull(rvntValue) AddElem.Text = rvntValue
    > End Function
    >
    > With this function present the code above becomes:-
    >
    > AddElem xmlDoc.documentElement, "FirstName", RequestorFirstName
    >
    > > xmlDoc = replace(xmlDoc,"[LastName]",lastname)

    >
    > AddElem xmlDoc.documentElement, "FirstName", RequestorLastName
    >
    > > xmlDoc = replace(xmlDoc,"[Line1]",RequestorAddress1)

    >
    > and so on...
    >
    > > xmlDoc = replace(xmlDoc,"[Line2]",RequestorAddress2)
    > > xmlDoc = replace(xmlDoc,"[City]",RequestorCity)
    > > xmlDoc = replace(xmlDoc,"[StateProvinceCode]",RequestorState)
    > > xmlDoc = replace(xmlDoc,"[PostalCode]",RequestorZip)
    > > xmlDoc =
    > > replace(xmlDoc,"[date]",FormatDateTime(date(),vbshortdate))
    > > xmlDoc = replace(xmlDoc, "[ContactFlag]", RequestorContactFlag)
    > > xmlDoc = replace(xmlDoc, "[InterestedInKnownBoat]",
    > > RequestorInterestedBoat)
    > > xmlDoc = replace(xmlDoc, "[Ownership]", RequestorOwnership)
    > > xmlDoc = replace(xmlDoc, "[Activities]", RequestorActivities)
    > > xmlDoc = replace(xmlDoc, "[BoatList]", RequestorBoatList)
    > > xmlDoc = replace(xmlDoc, "[PurchaseTimeline]",
    > > RequestorPurchaseTimeLine)
    > >
    > > Set xml = Server.CreateObject("Microsoft.XMLHTTP")

    >
    > Set xmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
    >
    > >
    > > ' Notice the two changes in the next two lines:
    > > xml.Open "POST", "http://someserver:9099/xmlimport.asp", False
    > > xml.setRequestHeader "Content-Type", "application/x-www-form-
    > > urlencoded"

    >
    > Don't use the above header you're sending XML. Use:-
    >
    > xml.setRequestHeader "Content-Type", "test/xml; CharSet=UTF-8"
    >
    > OR don't bother with the header at all.
    >
    > > xml.Send xmlDoc
    > >
    > > 'Response.Write( xml.responseText)
    > > pos = ""
    > > pos=InStr( xml.responseText,"<OrderRejectionMessage></
    > > OrderRejectionMessage>")
    > >
    > > 'check rejection if error send email
    > > if pos <> "" then
    > > verror = "success"
    > > else
    > > verror = "error"
    > > end if
    > > Response.Write(verror)
    > > %>
    > >
    > > On receiving end
    > >
    > > Set objXMLDOM = Server.CreateObject("MSXML2.DOMDocument")
    > > objXMLDOM.setProperty "ServerHTTPRequest", True

    >
    > The ServerHTTPRequest property is not necessary. You are not making a
    > request; the content has already arrived and is in the Request object.
    >
    > > objXMLDOM.async = False
    > > Check = objXMLDOM.load(Request)

    >
    > This is ok.
    >
    > > Response.Write(Check & "11111")

    >
    > Whats the "11111" about?
    >
    > > objXMLDOM.Save("http://someotherserver:9099/xml/xmldoc.xml")

    >
    > You cannot save to a URL. Is this yet another server to which the XML
    > should be passed to?
    > If so you should use the ServerXMLHTTP object to post the XML as you've done
    > form the origin.
    >
    > BTW, don't use parentheses in method or procedure calls that aren't
    > returning any value.
    >
    > >
    > > 'This just writes out the posted xml, but we could process it
    > > here
    > > Response.Write objXMLDOM
    > >
    > >
    > >
    > > Set objLst = objXMLDOM.getElementsByTagName("*")
    > >
    > > For i = 0 to (objLst.length) -1
    > > if objLst.item(i).nodeName = "FirstName" then
    > > RequestorFirstName = objLst.item(i).text
    > > End if

    >
    > I prefer to use another function to retrieve the text value of a path:-
    >
    > Function GetNodeText(roContext, rsPath)
    > Dim oNode
    >
    > Set oNode = roContext.SelectSingleNode(rsPath)
    >
    > If Not oNode Is Nothing Then
    > GetNodeText = oNode.Text
    > Else
    > GetNodeText = Null
    > End If
    > End Function
    >
    > Now you can use the following code to retrieve the values:-
    >
    > Dim oRoot : Set oRoot = objXMLDOM.documentElement
    >
    > RequestorFirstName = GetNodeText(oRoot, "FirstName")
    >
    > > if objLst.item(i).nodeName = "LastName" then
    > > RequestorLastName = objLst.item(i).text
    > > End if

    >
    > RequestorFirstName = GetNodeText(oRoot, "LastName")
    >
    > > if objLst.item(i).nodeName = "Email" then
    > > RequestorEmail = objLst.item(i).text
    > > End if

    >
    > and so on..
    >
    > > if objLst.item(i).nodeName = "Line1" then
    > > RequestorAddress1 = objLst.item(i).text
    > > End if
    > > if objLst.item(i).nodeName = "Line2" then
    > > RequestorAddress2 = objLst.item(i).text
    > > End if
    > > if objLst.item(i).nodeName = "City" then
    > > RequestorCity = objLst.item(i).text
    > > End if
    > > if objLst.item(i).nodeName = "StateProvinceCode" then
    > > RequestorState = objLst.item(i).text
    > > End if
    > > if objLst.item(i).nodeName = "Country" then
    > > RequestorCountry = objLst.item(i).text
    > > End if
    > > if objLst.item(i).nodeName = "PostalCode" then
    > > RequestorZip = objLst.item(i).text
    > > End if
    > > if objLst.item(i).nodeName = "ContactFlag" then
    > > RequestorContactFlag = objLst.item(i).text
    > > End if
    > > if objLst.item(i).nodeName = "InterestedInKnownBoat" then
    > > RequestorInterestedBoat = objLst.item(i).text
    > > End if
    > > if objLst.item(i).nodeName = "Ownership" then
    > > RequestorOwnership = objLst.item(i).text
    > > End if
    > > if objLst.item(i).nodeName = "Activities" then
    > > RequestorActivities = objLst.item(i).text
    > > End if
    > > if objLst.item(i).nodeName = "BoatList" then
    > > RequestorBoatList = objLst.item(i).text
    > > End if
    > > if objLst.item(i).nodeName = "PurchaseTimeline" then
    > > RequestorPurchaseTimeLine = objLst.item(i).text
    > > End if
    > > if objLst.item(i).nodeName = "date" then
    > > RequestorDate = objLst.item(i).text
    > > End if
    > > Next
    > > %>
    > >
    > > I am unable to understand whats wrong or missing in this piece of code
    > >

    >
    > Since you are using SQL Server consider passing the XML String to SQL Server
    > as parameter and using the OPENXML clause to retrieve the values from it.
    >
    > One other note is on the date format used in the XML. I use dd-mmm-yyyy
    > (where mmm is the abbrevieated month name) which is parseable unambiguously
    > by VBScript, JScript and SQL Server.
    >
    > Anthony.
    >
    >
    >
     
    Vanessa, Jul 12, 2007
    #3
  4. "Vanessa" <> wrote in message
    news:...
    > hi Anthony,
    >
    > > Don't use the XMLHTTP in ASP, its not thread safe, use
    > > MSXML2.ServerXMLHTTP.3.0 instead.

    >
    > What do you mean by "XMLHTTP is not thread safe"?


    XMLHTTP uses the same WinInet http stack that Internet explorer uses. This
    stack is designed to be used by client applications running in a the context
    of a user. It supports the managment of a cache which is stored in the
    users Document And Settings folder and uses settings stored in the users
    Registry Hive.

    ServerXMLHTTP uses the WinHTTP stack which is a lighter API designed to
    support server side applications. It does not use any User centric
    resources.

    WinInet when used in anger by multiple threads at the same time can have
    unexpected behaviour. At least some of the functions in the WinInet API
    will manipulate process wide resources without using synchronisation objects
    that can protect it from multiple threads trying to maniputlate the same
    resource at the same time.

    WinHTTP is threadsafe in that it minimizes the process wide resources it
    needs and if it does need to manipulate such resource then it will
    synchronize them.


    >Actually I've been having
    > problem with XMLHTTP as it will freeze up the server (!!!) all the time.

    I've
    > been looking online to find an alternative method, so
    > MSXML2.ServerXMLHTTP.3.0 will be safe to use and won't lock up the server?
    > Please advise as I have searched for so long but with no luck...
    >


    I noticed you've posted this question as a separate thread. I'll answer
    that there.

    --
    Anthony Jones - MVP ASP/ASP.NET
     
    Anthony Jones, Jul 12, 2007
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Simon Harvey

    Urgent Problem receiving XML

    Simon Harvey, Aug 24, 2004, in forum: ASP .Net
    Replies:
    2
    Views:
    299
    Joerg Jooss
    Aug 24, 2004
  2. =?Utf-8?B?RGFubnk=?=

    Receiving xml problem

    =?Utf-8?B?RGFubnk=?=, Dec 12, 2005, in forum: ASP .Net
    Replies:
    5
    Views:
    556
    =?Utf-8?B?RGFubnk=?=
    Dec 13, 2005
  3. Replies:
    8
    Views:
    8,105
  4. Frank Reiff

    receiving an XML POST via CGI

    Frank Reiff, Dec 7, 2007, in forum: Ruby
    Replies:
    1
    Views:
    119
    Frank Reiff
    Dec 7, 2007
  5. Replies:
    4
    Views:
    126
    Dave Angel
    Oct 18, 2013
Loading...

Share This Page