Welcome to Forums Sign in | Join | Help | Forums
in Search


COMException 0x80010105 when retrieving participant event data

Last post 05-02-2008 10:36 AM by Garrett Keating. 2 replies.
Page 1 of 1 (3 items)
Sort Posts: Previous Next
  • 05-02-2008 7:23 AM

    • Garrett Keating
    • Top 150 Contributor
    • User Since: 2006
    • Posts 63
    • Organization: U.S. Naval Academy Alumni Association
    • Products:  Blackbaud NetCommunity, The Financial Edge, The Information Edge, The Raiser's Edge

    COMException 0x80010105 when retrieving participant event data

     

    We have been having a growing problem with a custom events registration form that we use. This is a sporadic problem, happens about 1 in every 5 page loads

     

    Here is the error…

    System.Runtime.InteropServices.COMException (0x80010105): The server threw an exception. (Exception from HRESULT: 0x80010105 (RPC_E_SERVERFAULT)) at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) at System.Runtime.InteropServices.CustomMarshalers.EnumeratorViewOfEnumVariant.MoveNext() at USNAWebservices.MasterService.getParticipantEvents(Int32 REID)

     

    And here is my code

    <WebMethod()> _

    Public Function getParticipantEvents(ByVal REID As Integer) As ParticipantData

            Dim RE7 As REAPI = initAPI()

            Dim oEventParticipants As Blackbaud.PIA.RE7.BBREAPI.CRecord

            oEventParticipants = New Blackbaud.PIA.RE7.BBREAPI.CRecord

            Dim oParticipant As Blackbaud.PIA.RE7.BBREAPI.CParticipant

            Try

                If RE7 Is Nothing Then

                    RE7 = initAPI()

                End If

                If Not RE7 Is Nothing Then

                    Dim i As Integer

                    Dim oData As New ParticipantData

                    With oEventParticipants

                        .Init(RE7.SessionContext)

                        .Load(REID)

                        Dim oParticipantInfo As New ArrayList

                        For Each oParticipant In .Participants

                            If CType(oParticipant.EventObject.Fields(ESpecialEventFields.SPECIAL_EVENT_fld_START_DATE), Date) > Date.Today Then

                                Dim results As New ParticipantInfo

                                results = getParticipantEventsInfo(oParticipant.Fields(EParticipantsFields.Participants_fld_ID))

                                oParticipantInfo.Add(results)

                            End If

                        Next

                        oData.Data = CType(oParticipantInfo.ToArray(GetType(ParticipantInfo)), ParticipantInfo())

                    End With

                    Return oData

                Else

                    SendNotif("Unable to getParticipantEvents:  API failed to initialize.")

                End If

            Catch ex As Exception

                SendError("ERROR: webservices: getParticipantEvents " & Now(), "Garrett.Keating@usna.com", ex.ToString, True)

            Finally

                oEventParticipants.CloseDown()

            End Try

        End Function

     

    I found this article (BB330194) in the KB that says I should check to see if re7 is nothing and then re-init. That’s doesn’t seem to help.

    The above code is designed to check the logged in constits future events and then pass that back to the custom part so it can pre-populate info if they have already signed up for the current event

    This code resides in a webservice

     any suggestions would be greatly appreciated!


     


    Garrett Keating
    Senior Web Developer
    U.S. Naval Academy Alumni Association and Foundation
    www.usna.com
    customizingNetCommunity.com
    Filed under: ,
  • 05-02-2008 9:07 AM In reply to

    • Thomas DeMille
    • Not Ranked
    • User Since: 2004
    • Posts 6
    • Organization: Blackbaud, Inc.
    • Products:  Blackbaud NetCommunity, The Education Edge, The Financial Edge, The Raiser's Edge

    Re: COMException 0x80010105 when retrieving participant event data

    Does oParticipant (Blackbaud.PIA.RE7.BBREAPI.CParticipant) have a closedown method?  If so experiment with calling it inside the loop.  In general, any object with a .closedown you must make sure you call closedown.

     you could also try using this on any object cleanup..

    if not myobject is nothing then

    System.Runtime.InteropServices.ReleaseComObject (my object)

    Set  myobject = nothing

    endif

  • 05-02-2008 10:36 AM In reply to

    • Garrett Keating
    • Top 150 Contributor
    • User Since: 2006
    • Posts 63
    • Organization: U.S. Naval Academy Alumni Association
    • Products:  Blackbaud NetCommunity, The Financial Edge, The Information Edge, The Raiser's Edge

    Re: COMException 0x80010105 when retrieving participant event data

     this looks like it did the trick

    i wasn't using the releaseCOMObject and i thnk that was the culprit....

    dsSupport also recommended the same thing

     

    thanks for the help!!!!

     

    Garrett Keating
    Senior Web Developer
    U.S. Naval Academy Alumni Association and Foundation
    www.usna.com
    customizingNetCommunity.com
Page 1 of 1 (3 items)