Throttling

    • Offizieller Beitrag

    Ja, wäre eine Möglichkeit, aber ich habe mir vorgestellt, daß ich da nicht so exotisches Problem habe :(

    Das Problem ist, dass sich die Frage ohne Programmiererwissen gar nicht beantworten lässt.


    Die Größe von 2243 ist nur "fiktiv", d.h. Programme müssen das unterstützen. Ich weiß nicht, ob Exchange das unterstützt.


    Und dann kommt noch hinzu, dass AD selbst das abhängig macht, ob das ein linkes Attribute ist, oder nicht. Und der Inhalt selbst spielt auch eine Rolle, denn zu der maximalen Anzahl Einträge, kommt noch eine maximale Größe der Summe aller Einträge.


    Hier kannst Du zum Beispiel nachlesen, dass ein Not Linked Multi Value Attribute max. 1300 Einträge haben kann - Technet.


    Zitat

    Multivalue attributes that are not linked can store a maximum of 1,300 entries. This limit is based on the size and type of the values that are stored.


    Und dann sage ich mal ganz spontan, dass Deine Zahl von 1257 da ganz gut reinpasst.


    Du kannst ja zum Spaß das Feld mal nur mit "a.de" usw. füllen, als mit ganz kurzen Domänen-Namen und damit prüfen, ob Du eventuell noch ein paar mehr Einträge reinbekommst.

  • Hallo Robert,


    sorry, so tief in AD bin ich nicht drin, da bin ich eher ein Newbee und taste mich vorsichtig ran :)


    Da ich in die AddressSpaces nicht nur die Domäne, sondern auch Platzhalter ( Subdomänen ) und Kosten eintrage, kommen da ein paar Byte zusammen.


    Wenn ich pro Connector von 1200 so formulierten Einträgen ausgehe, teile ich das jetzt auf 5 Connectoren ( ab 1200 ab in den Nächsten ) auf. Wenn das klappt, langt da für mich, den Mut zur Lücke gehabt zu haben ;)


    Ich werde berichten.

    All män sit hier and luck in se sun and no män wörks, sis give it not..

  • Ich habe das nun so wie oben beschrieben gemacht. Das hat nun auch prima funktioniert.
    Das Einladen per Script ist bedingt durch die Iterationen und das Loging etwas lahm, aber läuft sauber durch.

    All män sit hier and luck in se sun and no män wörks, sis give it not..

  • Hi Pirat11, ich habe gerade für einen Kunden die selbe Herausforderung und bin ebenfalls auf den Fehler gestoßen.


    Folgendes habe ich versucht:


    # Variablen
    $Pfad_zur_CSV_Datei = "C:\Verwaltungsscripte\Adresses2.csv"
    $Name_des_anzupassenden_send_connectors = "DOI-Mails"



    ## MAIN
    write-host "Starte import..." -NoNewLine -Foregroundcolor GREEN
    $Liste = Import-CSV $Pfad_zur_CSV_Datei | foreach {$_.Domains}
    write-host "Done"
    if (-not $liste ) {write-warning "Die Tabelle ist leer, evtl falsche Überschrift" }
    write-host "Prüfe den sendConnector ..." -NoNewLine -Foregroundcolor GREEN
    get-sendconnector -Identity $Name_des_anzupassenden_send_connectors
    write-host "Done"
    write-host "Setze den neuen AddressSpace im sendConnector ..." -NoNewLine -Foregroundcolor GREEN
    Set-SendConnector -Identity $Name_des_anzupassenden_send_connectors -AddressSpace $Liste
    write-host "Done"


    Hast Du schon eine Lösung mit dem Import nach Alphabet?


    LG Nils

  • Hallo Nils,


    ich habe das wie oben kurz angerissen für mich gelöst.
    Ich habe n ( in meinem Fall 5 ) Sendeconnectoren angelegt.
    Ich teile nun die CSV Datei auf diese Connectoren auf.
    ------------------------------------------------------------------------
    [int]$Filling = 1200 # Anzahl der Einträge pro SendeConnector
    [int]$i = 0 # Datensatzzähler
    [int]$count = 0 # Paketzähler ( 1200 +/- pro Paket bzw. Sendeconnector)
    $SC1 = 0 # wurde der Sendeconnector gelöscht ? 0 = nein, 1 = ja
    $SC2 = 0 # wurde der Sendeconnector gelöscht ? 0 = nein, 1 = ja
    $SC3 = 0 # wurde der Sendeconnector gelöscht ? 0 = nein, 1 = ja
    $SC4 = 0 # wurde der Sendeconnector gelöscht ? 0 = nein, 1 = ja
    $SC5 = 0 # wurde der Sendeconnector gelöscht ? 0 = nein, 1 = ja


    #Import der DOI Liste
    if ( $Failcount -ne 1 )
    {
    $DOIDom = Get-Content G:\Programme\DOI\Daten\DOI.txt ( die zu importierende CSV Datei )
    if ($DOIDom.count -gt 6000) # Es können nur 6000 Domänen auf 5 Sendeconnectoren aufgeteilt werden
    {
    $DOIDom.count | out-file $DomCount
    $FailCount = 1
    $ErrCode = "ToBig"
    $2Big = "Die Anzahl der Domänen überschreitet die Kapazität der verfügbaren Sendeconnectoren ( 5 a 1200 Domänen ) "
    }



    if ( $Failcount -ne 1 )
    {
    # Leeren der Sendelisten
    # for ($s=1; $s -le 5; $s++) {set-sendconnector SendeconnectorName-$s -AddressSpaces SMTP:*.Dummy$s".Dummy;5"}
    foreach($DOI in $DOIDom)
    {
    $i++ # Zähler der Datensätze
    if ($i -eq 1) {continue} # die 1. Zeile der Downloaddatei überspringen ( Kommentar )
    if ($i -eq $DOIDom.count) {continue} # letzte Zeile ausblenden da Kommentar
    if ($DOI -like ".*") {continue} # wenn der DomainName einen führenden Punkt hat, überspringen
    if ($DOI -Notlike ".*") { $DOI = "."+$DOI } # wenn der DomainName keinen führenden Punkt hat, einen Punkt setzen

    if ($i -lt $Filling + 1) {$count = 1} # bis 1200
    if ($i -lt ($Filling *2) -AND $i -gt $Filling ) {$count = 2} # von 1201 bis 2400
    if ($i -lt ($Filling *3) -AND $i -gt ($Filling *2)){$count = 3} # von 2401 bis 3600
    if ($i -lt ($Filling *4) -AND $i -gt ($Filling *3)){$count = 4} # von 3601 bis 4800
    if ($i -lt ($Filling *5) -AND $i -gt ($Filling *4)){$count = 5} # von 4801 bis 6000
    # Initialisieren der Sendelisten
    if ($count -eq 1 -AND $SC1 -ne 1)
    {
    set-sendconnector SendeconnectorName-$count -AddressSpaces SMTP:*.Dummy$count".Dummy;5" # Dummyeintrag setzen
    $SC1 = 1
    }
    if ($count -eq 2 -AND $SC2 -ne 1)
    {
    set-sendconnector SendeconnectorName-$count -AddressSpaces SMTP:*.Dummy$count".Dummy;5"
    $SC2 = 1
    }
    if ($count -eq 3 -AND $SC3 -ne 1)
    {
    set-sendconnector SendeconnectorName-$count -AddressSpaces SMTP:*.Dummy$count".Dummy;5"
    $SC3 = 1
    }
    if ($count -eq 4 -AND $SC4 -ne 1)
    {
    set-sendconnector SendeconnectorName-$count -AddressSpaces SMTP:*.Dummy$count".Dummy;5"
    $SC4 = 1
    }
    if ($count -eq 5 -AND $SC5 -ne 1)
    {
    set-sendconnector SendeconnectorName-$count -AddressSpaces SMTP:*.Dummy$count".Dummy;5"
    $SC5 = 1
    }
    Write-Host $i" "SendeconnectorName-$count $DOI
    $ConnectorConfiguration = Get-SendConnector SendeconnectorName-$count
    $ConnectorConfiguration.AddressSpaces += "smtp:*$DOI;5"
    Set-SendConnector SendeconnectorName-$count -AddressSpaces $ConnectorConfiguration.AddressSpaces
    }



    # Es ist zu einem Fehler gekommen
    if ( $FailCount -eq 1)
    {
    switch -wildcard ($ErrCode)
    {
    "Down*" { Send-MailMessage -SMTPServer MailServer -encoding ([System.Text.Encoding]::UTF8) -BodyAsHtml -to "AnWen@Domaene.de" -from "Mir@Domaene.de" -Subject "DOI-Download fails" -body $Fail }
    "ToBig*" { Send-MailMessage -SMTPServer MailServer -encoding ([System.Text.Encoding]::UTF8) -BodyAsHtml -to "AnWen@Domaene.de" -from "Mir@Domaene.de" -Subject "DOI-zuviele Domänen" -body $2Big }
    }
    }
    }


    ---------------------------------------------------------------------------------------------------------------------------------------------


    Soweit der Hauptblock. Geht bestimmt auch noch smarter, aber für mich ist das so OK.


    VG
    Volker

    All män sit hier and luck in se sun and no män wörks, sis give it not..

  • achehm, das $FailCount wird auch bei mir durch eine vorgeschaltete Downloadroutine ( der aktuellen CSV Datei ) bei Fehler auf 1 gesetzt.

    All män sit hier and luck in se sun and no män wörks, sis give it not..

  • Hallo Norbert,


    welcher Fehlerfall soll denn auftreten, daß sich Deine Überlegung bewahrheitet ?
    Mir ist im Moment keiner bekannt der dieses verhalten befeuern würde.


    VG
    Volker

    All män sit hier and luck in se sun and no män wörks, sis give it not..

  • Hallo Norbert,


    sorry, aber das ist nun aber echt konstruiert ;)
    Warum sollen den Connectoren die produktiv sind auf deaktiviert gehen ?


    VG
    Volker

    All män sit hier and luck in se sun and no män wörks, sis give it not..