OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
From: Charles Gamble (Charles.GambleSINGULARITY.CO.UK)
Date: Thu Oct 04 2001 - 03:35:57 CDT

  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

    Steve,

    I'm afraid I have to disagree with your point that Tim Ewald's analysis
    is completely unsubstantiated. When I run the test which I previously
    mentioned we are getting a significant performance decrease.
    Please let me know when you have run this test with the code I
    sent you.
    If anyone wants this code, then just send me a direct email.
    Note, the test only consists of 4 objects and a client app which call
    each other. The methods don't do any work and have no parameters.
    The objects are set to NoTx, RequiresTx, SupportsTx, SupportsTx
    There is a huge drop in perf between NT and Win2000.

    Charles.

    -----Original Message-----
    From: Steve Swartz [mailto:steveswMICROSOFT.COM]
    Sent: 03 October 2001 19:03
    To: DCOMDISCUSS.MICROSOFT.COM
    Subject: Re: FW: COM+ and Free Threading

    It may be that you're running into the old "it's hard and/or impossible
    to truly turn off all services and make components run in the caller's
    context" problem. To see if that's so, store the following VBS into a
    file named noctx.vbs and then run the command "noctx.vbs ALL
    <APPLICATION NAME>" on the library application containing object3 and
    object4. This eliminates some services you might not even know about ;).
    Often this is what people are seeing when they say "there's context
    overhead in Windows 2000". They're comparing within-context calls in
    NT/MTS to cross-context calls in W2K/COM+.

    So far as I know, Tim Ewald's analysis is completely unsubstantiated. I
    have never seen evidence of even appreciable degradation of performance
    between NT/MTS and W2K/COM+ due to cross-context call performance, let
    alone the substantial degradation that you're seeing.

    <%

    Dim objArgs
    Set objArgs = WScript.Arguments

    SetApplicationProperty objArgs(1), "Base Application Partition",
    "Activation", 0 SetApplicationProperty objArgs(1), "Base Application
    Partition", "AccessChecksLevel", 0

    SetComponentProperty objArgs(0), objArgs(1), "Base Application
    Partition", "COMTIIntrinsics", 0 SetComponentProperty objArgs(0),
    objArgs(1), "Base Application Partition", "IISIntrinsics", 0
    SetComponentProperty objArgs(0), objArgs(1), "Base Application
    Partition", "JustInTimeActivation", 0 SetComponentProperty objArgs(0),
    objArgs(1), "Base Application Partition",
    "ComponentAccessChecksEnabled", 0 SetComponentProperty objArgs(0),
    objArgs(1), "Base Application Partition", "Synchronization", 0
    SetComponentProperty objArgs(0), objArgs(1), "Base Application
    Partition", "Transaction", 0 SetComponentProperty objArgs(0),
    objArgs(1), "Base Application Partition", "EventTrackingEnabled", 0
    SetComponentProperty objArgs(0), objArgs(1), "Base Application
    Partition", "MustRunInClientContext", 1

    '***********************************************************************
    *******
    ' Modifies a property value on an application
    '***********************************************************************
    *******
    Sub SetApplicationProperty (ApplicationName, PartitionName,
    PropertyName, PropertyValue)

            Set cat = CreateObject("COMAdmin.COMAdminCatalog.1")

            'cat.CurrentPartition = PartitionName
            Set collApps = cat.GetCollection("Applications")

            collApps.Populate

            numApps = collApps.Count
            For i = numApps - 1 To 0 Step -1
                If collApps.Item(i).Value("Name") = ApplicationName Then
                    collApps.Item(i).Value(PropertyName) = PropertyValue
                End If
            Next

            collApps.SaveChanges

            Set collApps = Nothing
            Set cat = Nothing

    End Sub

    '***********************************************************************
    *******
    ' Set a component property
    '***********************************************************************
    *******
    Sub SetComponentProperty (ComponentID, ApplicationName, PartitionName,
    PropertyName, PropertyValue)

            Set cat = CreateObject("COMAdmin.COMAdminCatalog.1")

            'cat.CurrentPartition = PartitionName
            Set collApps = cat.GetCollection("Applications")

            collApps.Populate

            numApps = collApps.Count
            For i = numApps - 1 To 0 Step -1
                If collApps.Item(i).Value("Name") = ApplicationName Then

                            Set collComponents =
    collApps.GetCollection("Components", collApps.Item(i).Key)
                            collComponents.Populate

                            numComponents = collComponents.Count

                            For j = numComponents - 1 To 0 Step -1

                                'If collComponents.Item(j).Value("CLSID") =
    ComponentID Then

    collComponents.Item(j).Value(PropertyName) = PropertyValue
                                    'End If

                            Next

                            collComponents.SaveChanges

                End If
            Next

            collApps.SaveChanges

            Set collComponents = Nothing
            Set collApps = Nothing
            Set cat = Nothing

    End Sub

    %>

    ----------------------------------------------------------------
    Users Guide http://discuss.microsoft.com/archives/mailfaq.asp
    contains important info. Save time, search the archives at
    http://discuss.microsoft.com/archives/index.html .
    To unsubscribe, mailto:DCOM-signoff-requestDISCUSS.MICROSOFT.COM

    ----------------------------------------------------------------
    Users Guide http://discuss.microsoft.com/archives/mailfaq.asp
    contains important info. Save time, search the archives at
    http://discuss.microsoft.com/archives/index.html .
    To unsubscribe, mailto:DCOM-signoff-requestDISCUSS.MICROSOFT.COM