Groups > Microsoft > Microsoft Metadirectory Services > Re: IIFP hitting 2GB and MA stopping




IIFP hitting 2GB and MA stopping

IIFP hitting 2GB and MA stopping
Fri, 4 Apr 2008 02:02:13 -0700
HI,

I'm running IIFP SP2 (v3.2.559.0) to replicate some accounts (about 38,000) 
from a W2K AD to two W2K3 ADs (around 2,000 to one and the rest to another). 
There are around 25 additions to the number of acconts per day and very few 
changes (passwords are not sync'd).
I've scheduled the import MA to run every 30 seconds or so and to trigger 
exports if required.
All has been running well for several months, but now it appears that the 
process is hitting 2GB (peaking around 800MB physical and 1.2GB virtual 
according to MIIS Service Monitor) and the MA runs are returning 
'stopped-out-of-memory' errors. Once it occurs it happens for every MA import 
until the MIIS service is restarted, and then everything is stable for a few 
hours or so.
Once the error has stopped the MA, the MIIS service memory usage goes back 
down until the MA runs again 30 seconds later and the same error is returned. 
Any of the MAs can trigger the error and there seems to be no pattern - it 
even occurs when there is nothing to replicate.

IIFP is running on a dedicated quad processor box with 4GB RAM.
The database is running on a separate server.

Shouldn't MIIS handle this memory limit?
And is there a way of reducing how much memory MIIS uses?
-- 
Post Reply
Re: IIFP hitting 2GB and MA stopping
Fri, 04 Apr 2008 16:49:01 +020
Dave C wrote:
> HI,
> 
> I'm running IIFP SP2 (v3.2.559.0) to replicate some accounts (about 38,000)

> from a W2K AD to two W2K3 ADs (around 2,000 to one and the rest to
another). 
> There are around 25 additions to the number of acconts per day and very few

> changes (passwords are not sync'd).
> I've scheduled the import MA to run every 30 seconds or so and to trigger 
> exports if required.
> All has been running well for several months, but now it appears that the 
> process is hitting 2GB (peaking around 800MB physical and 1.2GB virtual 
> according to MIIS Service Monitor) and the MA runs are returning 
> 'stopped-out-of-memory' errors. Once it occurs it happens for every MA
import 
> until the MIIS service is restarted, and then everything is stable for a
few 
> hours or so.
> Once the error has stopped the MA, the MIIS service memory usage goes back

> down until the MA runs again 30 seconds later and the same error is
returned. 
> Any of the MAs can trigger the error and there seems to be no pattern - it

> even occurs when there is nothing to replicate.
> 
> IIFP is running on a dedicated quad processor box with 4GB RAM.
> The database is running on a separate server.
> 
> Shouldn't MIIS handle this memory limit?
> And is there a way of reducing how much memory MIIS uses?



Are You using any custom MA or MV provisining extensions? Any extensible 
MA by any chance?  It looks more  like problem with memory leak caused 
by custom code than ILM itself. Is this ILM up to date?


If You will eliminate memory leak in your code You should try to contact 
MS support ...

-- 
Tomasz Onyszko
http://www.w2k.pl/ - (PL)
Post Reply
Re: IIFP hitting 2GB and MA stopping
Mon, 7 Apr 2008 08:26:00 -0700
Thomasz,
Thanks for responding.
I am using a custom MV extension. It's a very simple one that just changes 
the user's UPN and sets a complex password. It did leave some objects 
uncleared but I have corrected this.
So far the system has been running for six hours without any problems.
I'll let you know if it remains stable.

Regards,
Dave
-- 
Dave C.


"Tomasz Onyszko" wrote:

> Dave C wrote:
> > HI,
> > 
> > I'm running IIFP SP2 (v3.2.559.0) to replicate some accounts (about
38,000) 
> > from a W2K AD to two W2K3 ADs (around 2,000 to one and the rest to
another). 
> > There are around 25 additions to the number of acconts per day and
very few 
> > changes (passwords are not sync'd).
> > I've scheduled the import MA to run every 30 seconds or so and to
trigger 
> > exports if required.
> > All has been running well for several months, but now it appears that
the 
> > process is hitting 2GB (peaking around 800MB physical and 1.2GB
virtual 
> > according to MIIS Service Monitor) and the MA runs are returning 
> > 'stopped-out-of-memory' errors. Once it occurs it happens for every MA
import 
> > until the MIIS service is restarted, and then everything is stable for
a few 
> > hours or so.
> > Once the error has stopped the MA, the MIIS service memory usage goes
back 
> > down until the MA runs again 30 seconds later and the same error is
returned. 
> > Any of the MAs can trigger the error and there seems to be no pattern
- it 
> > even occurs when there is nothing to replicate.
> > 
> > IIFP is running on a dedicated quad processor box with 4GB RAM.
> > The database is running on a separate server.
> > 
> > Shouldn't MIIS handle this memory limit?
> > And is there a way of reducing how much memory MIIS uses?
> 
> 
> 
> Are You using any custom MA or MV provisining extensions? Any extensible 
> MA by any chance?  It looks more  like problem with memory leak caused 
> by custom code than ILM itself. Is this ILM up to date?
> 
> 
> If You will eliminate memory leak in your code You should try to contact 
> MS support ...
> 
> -- 
> Tomasz Onyszko
> http://www.w2k.pl/ - (PL)
> http://blogs.dirteam.com/blogs/tomek/ - (EN)
Post Reply
Re: IIFP hitting 2GB and MA stopping
Mon, 7 Apr 2008 08:34:02 -0700
I spoke too soon!
As soon as I clicked on Post for the last message MIIS reported out of memory!
Here is my simple MV Extension code - could it be the source of a memory leak?



Imports Microsoft.MetadirectoryServices

Public Class MVExtensionObject
    Implements IMVSynchronization

    Public Sub Initialize() Implements IMvSynchronization.Initialize
        ' TODO: Add initialization code here
    End Sub

    Public Sub Terminate() Implements IMvSynchronization.Terminate
        ' TODO: Add termination code here
    End Sub

    Public Sub Provision(ByVal mventry As MVEntry) Implements 
IMVSynchronization.Provision

        Dim ManagementAgentCAP As ConnectedMA  ' Management agent object
        Dim ManagementAgentOLDCOM As ConnectedMA  ' Management agent object
        Dim Connectors As Integer           ' Management agent connectors
        Dim DN As ReferenceValue            ' Distinguished name attribute
        Dim RDN As String                   ' Relative distinguished name 
strings
        Dim csentry As CSEntry              ' Connector space entry object
        Dim MyConnector As CSEntry              ' Connector space entry object
        Dim OriginalDN As String            ' Original DN
        Dim ExceptionMessage As String
        'Define new containers
        Dim ContainerIT As String =
"OU=SysTest,DC=test,DC=new,DC=com"
        Dim ContainerUAT As String =
"OU=UserTest,DC=test,DC=new,DC=com"
        Dim ContainerPROD As String = "OU=Prod,DC=prod,DC=new,DC=com"


        ' Determine the state of the metaverse object.   
        If mventry.ObjectType.Equals("person") Then

            ' Get the objects original OU
            ManagementAgentOLDCOM = mventry.ConnectedMAs("OLDCOM MA")
            csentry = ManagementAgentOLDCOM.Connectors.ByIndex(0)
            OriginalDN = csentry.DN.ToString().ToUpper

            RDN = "CN=" & mventry("cn").Value
            If InStr(OriginalDN, "OU=IT") Then
                ' Get the NEWCOM TEST management agent connectors.
                ManagementAgentNEWCOM = mventry.ConnectedMAs("NEWCOM TEST
MA")
                DN = 
ManagementAgentNEWCOM.EscapeDNComponent(RDN).Concat(ContainerIT)
            Else
                If InStr(OriginalDN, "OU=UAT") Then
                    ' Get the NEWCOM TEST management agent connectors.
                    ManagementAgentNEWCOM = mventry.ConnectedMAs("NEWCOM 
TEST MA")
                    DN = 
ManagementAgentNEWCOM.EscapeDNComponent(RDN).Concat(ContainerUAT)
                Else
                    If InStr(OriginalDN, "OU=PROD") Then
                        ' Get the NEWCOM PROD management agent connectors.
                        ManagementAgentNEWCOM =
mventry.ConnectedMAs("NEWCOM 
PROD MA")
                        DN = 
ManagementAgentNEWCOM.EscapeDNComponent(RDN).Concat(ContainerPROD)
                    Else
                        EventLog.WriteEntry("MVExtension",
"Provisioning 
Error: " & OriginalDN & " not in IT, UAT or PROD!",
EventLogEntryType.Error)
                        ExceptionMessage = "Provisioning Error: Object not

in IT, UAT or PROD"
                        ManagementAgentNEWCOM = Nothing
                        ManagementAgentOLDCOM = Nothing
                        DN = Nothing
                        csentry = Nothing
                        MyConnector = Nothing
                        Throw New UnexpectedDataException(ExceptionMessage)
                    End If
                End If
            End If

            Connectors = ManagementAgentNEWCOM.Connectors.Count

            ' If there are no connectors, create the connector, set the 
distinguished
            ' name attribute, and then add the new connector to the 
collection.      
            If 0 = Connectors Then
                csentry = 
ManagementAgentNEWCOM.Connectors.StartNewConnector("user")
                csentry.DN = DN
                SetInitialValues(csentry, mventry)
                csentry.CommitNewConnector()

            ElseIf 1 = Connectors Then
                ' If a connector exists, get the existing connector and 
assign the new 
                ' distinguished name value. If the original attribute value 
is the same
                ' as the new distinguished name, then the original attribute 
value 
                ' remains the same.
                MyConnector = ManagementAgentNEWCOM.Connectors.ByIndex(0)
                MyConnector.DN = DN

                ' Throw an exception if more than one connector exists.
            Else
                ExceptionMessage = "Multiple Connectors on Management
Agent"
                ManagementAgentNEWCOM = Nothing
                ManagementAgentOLDCOM = Nothing
                DN = Nothing
                csentry = Nothing
                MyConnector = Nothing
                Throw New UnexpectedDataException(ExceptionMessage)
            End If
        End If
        ManagementAgentNEWCOM = Nothing
        ManagementAgentOLDCOM = Nothing
        DN = Nothing
        csentry = Nothing
        MyConnector = Nothing
 
    End Sub
    ' Set Values on a NEW provisioned CS Entry
    Private Sub SetInitialValues( _
    ByRef csentry As CSEntry, _
    ByVal mventry As MVEntry)

       
csentry("unicodepwd").Values.Add("NotTheRealComplexPassword"
)

    End Sub
    Public Function ShouldDeleteFromMV(ByVal csentry As CSEntry, ByVal 
mventry As MVEntry) As Boolean Implements 
IMVSynchronization.ShouldDeleteFromMV
        ' TODO: Add MV deletion code here
        Throw New EntryPointNotImplementedException
    End Function
End Class

-- 
Dave C.


"Dave C" wrote:

> Thomasz,
> Thanks for responding.
> I am using a custom MV extension. It's a very simple one that just changes

> the user's UPN and sets a complex password. It did leave some objects 
> uncleared but I have corrected this.
> So far the system has been running for six hours without any problems.
> I'll let you know if it remains stable.
> 
> Regards,
> Dave
> -- 
> Dave C.
> 
> 
> "Tomasz Onyszko" wrote:
> 
> > Dave C wrote:
> > > HI,
> > > 
> > > I'm running IIFP SP2 (v3.2.559.0) to replicate some accounts
(about 38,000) 
> > > from a W2K AD to two W2K3 ADs (around 2,000 to one and the rest
to another). 
> > > There are around 25 additions to the number of acconts per day
and very few 
> > > changes (passwords are not sync'd).
> > > I've scheduled the import MA to run every 30 seconds or so and to
trigger 
> > > exports if required.
> > > All has been running well for several months, but now it appears
that the 
> > > process is hitting 2GB (peaking around 800MB physical and 1.2GB
virtual 
> > > according to MIIS Service Monitor) and the MA runs are returning

> > > 'stopped-out-of-memory' errors. Once it occurs it happens for
every MA import 
> > > until the MIIS service is restarted, and then everything is
stable for a few 
> > > hours or so.
> > > Once the error has stopped the MA, the MIIS service memory usage
goes back 
> > > down until the MA runs again 30 seconds later and the same error
is returned. 
> > > Any of the MAs can trigger the error and there seems to be no
pattern - it 
> > > even occurs when there is nothing to replicate.
> > > 
> > > IIFP is running on a dedicated quad processor box with 4GB RAM.
> > > The database is running on a separate server.
> > > 
> > > Shouldn't MIIS handle this memory limit?
> > > And is there a way of reducing how much memory MIIS uses?
> > 
> > 
> > 
> > Are You using any custom MA or MV provisining extensions? Any
extensible 
> > MA by any chance?  It looks more  like problem with memory leak caused

> > by custom code than ILM itself. Is this ILM up to date?
> > 
> > 
> > If You will eliminate memory leak in your code You should try to
contact 
> > MS support ...
> > 
> > -- 
> > Tomasz Onyszko
> > http://www.w2k.pl/ - (PL)
> > http://blogs.dirteam.com/blogs/tomek/ - (EN)
Post Reply
about | contact