De externe host heeft de bestaande octopusverbinding met geweld gesloten. De externe host heeft een bestaande verbinding met geweld beëindigd

Beschrijving van de fout

server_addr=tcp://<имясервера>:1562 descr=Netwerktoegangsfout tot de server (Windows Sockets - 10054(0x00002746). De externe host heeft de bestaande verbinding met geweld gesloten.) line=1031 file=.\src\DataExchangeTcpClientImpl.cpp

Hoe om te gaan met dit probleem

Stel het technologische logboek in en parseer de logboeken ervan.
Meest veelvoorkomende redenen Er zijn crashes van het 1C:Enterprise-servergedeelte.
U kunt er ook voor zorgen door te kijken of er dumps worden gemaakt (kijk naar het pad logcfg.xml, als de dumpinstellingen er niet zijn, dan in de map %USERPROFILE%\Local Settings\Application Data\1C\1Cv81\Dumps , bijvoorbeeld C:\ Documenten en instellingen\<Имя пользователя>\Lokale instellingen\Applicatiegegevens\1C\1Cv81\dumps. Platformcrashes kunnen meestal optreden als gevolg van verzoeken met niet-standaard parameters. Stuur dumps naar de e-mail voor technische ondersteuning van 1C: [e-mailadres beveiligd].
1. Meestal kwam ik een probleem tegen bij de documentaanmeldingsselecties, de zoekopdrachten waren vergelijkbaar met deze:

SELECTEER TOEGESTAAN TOP 35 R.Datum_Tijd A1,
R.Nummer A2,
R.Fld9608 A3,
R.Fld9613 A4,
R.Fld9606 A5,
R.Fld9610 A6,
R.Fld9611 A7,
R.Fld9607 A8,
R.Fld9612 A9,
R.Fld9615 A10,
R.Fld9614 A11,
R.Fld9609 A12,
R.Fld9605 A13,
R.Document A14,
R.Gemarkeerd A15,
R.Geplaatst op A16,CAST(R.Fld9608 AS REF(Referentie9)).Beschrijving
A17,CAST(R.Fld9606 AS REF(Referentie52)). Beschrijving A18,CAST(R.Fld9611
AS REF(Referentie93)). Beschrijving A19, GEVAL WANNEER R.Fld9609 REFS
Referentie53 THEN CAST(R.Fld9609 AS REF(Referentie53)).Beschrijving WHEN
R.Fld9609 REFS Referentie150 DAN CAST(R.Fld9609 AS
REF(Referentie150)).Beschrijving WHEN R.Fld9609 REFS Referentie63 THEN
CAST(R.Fld9609 AS REF(Referentie63)).Beschrijving WANNEER R.Fld9609 REFS
Referentie114 THEN CAST(R.Fld9609 AS REF(Referentie114)).Beschrijving END
A20,CAST(R.Fld9605 AS REF(Referentie79)).Beschrijving A21
VAN DocumentJournal9604 R WAAR
((R.Fld9605=79:b63e000bcd6ad80811da7cf12c684266)) EN
(R.Date_Time > DATETIME(2006,12,31,12,0,0) OF (R.Date_Time =
DATETIME(2006,12,31,12,0,0) AND (R.Document >=
343:b654000bcd6ad80811dba49c7aabe269)))
BESTEL PER A1 ASC, A14 ASC’

2. Een voorbeeld van een TJ-logboek dat de reden laat zien voor servercrashes bij het bijwerken van een zoekopdracht in volledige tekst
11:40.9690-0,EXCP,1,process=rphost,p:procesnaam=<база данных>,t:clientID=3, t:applicationName=BackgroundJob,t:connectID=27,Usr=DefUser,DumpFile=C:\Program Files (x86)\1cv81\dumps\rphost_8.1.13.41_7d4e2366_20090609021136_10236.mdmp,Context=’
GeneralModule.Module met reguliere taken: 46: Full-TextSearch.UpdateIndex(False, True);’

De uiteindelijke oplossing in dit voorbeeld zou zijn om het achtergrondproces in de problematische database uit te schakelen. Wacht op de release en update van het nieuwe platform.
Zie mijn blog voor meer informatie over platformcrashes.
3. Voorbeeld van TC voor cyclische herstart van processen. Om deze gebeurtenis op de 1C:Enterprise-servercomputer te analyseren, moet u een vermelding in het technologische gebeurtenislogboek van PROC inschakelen (bijvoorbeeld logcfg.xml-bestand).
Wanneer een proces wordt afgesloten, wordt er een PROC-gebeurtenis gegenereerd met de eigenschap Txt=Process Become Disable.
Wanneer een proces wordt beëindigd, wordt een PROC-gebeurtenis uitgegeven met de eigenschap Txt=Proces beëindigd. Alle clients zijn met een fout geëindigd. Als gebruikerscrashes op tijd samenvallen met de uitvoer van deze gebeurtenis, is de oorzaak een gedwongen afsluiting van de werkstroom, hetzij door de beheerder (via de clusterconsole), hetzij als gevolg van een automatische herstart.
4. Zorg ervoor dat de oorzaak wel/niet de acties van de beheerder in de console zijn

—————————-

Hieronder ziet u een versie van de oplossing van een collega.

Iedereen geïnteresseerd bij het oplossen van problemen met platformcrashes met fouten:

10051, 10053, 10054, 10064

Zoals uit de debriefing van platformcrashes bleek, van bovenaf de aangegeven fouten:

— De meeste crashes worden veroorzaakt door het werk van achtergrondbanen, zoals verwacht in dit onderwerp.

- Niet met grip schijfruimte

— Beschikbaarheid groot nummer onvoltooide transacties in het 1C-logboek

— Voordat u het technologische logboek parseert, analyseert u de achtergrondtaken die in de configuratie worden gebruikt en schakelt u de taken uit die u niet nodig hebt voor uw werk of configuratie (het is triviaal, het analyseren van 14 GB afval kan als tijdverdrijf worden beschouwd als u niets beters te doen heeft. . :))))

— Analyseer en corrigeer de achtergrondtaken die u hebt toegevoegd, zorg ervoor dat ze worden voltooid met een normale voltooiingscode (geen fouten of gesloten transacties)

— Voeg codefragmenten toe aan de achtergrondtaakalgoritmen die bugs veroorzaken met geweld, geheugen gebruikt tijdens hun werking (je moet niet hopen dat 1C het gebruikte geheugen na voltooiing zal scheiden)

- Analyseer en CORRECTEER PRESTATIEPROBLEMEN van typische achtergrondconfiguratietaken

— Voer regelgevingsprocedures uit met de database, vergeet dit niet via het menu-item Administratie-Tests en Correctie Nodig, voer databasecompressie uit

— Analyseer de hoeveelheid gebruikte ruimte SQL-server, is het waarschijnlijk dat de server eenvoudigweg niet genoeg geheugen heeft

— Controleer uw beleidsinstellingen Actieve map

- En ook het logboek comprimeren/wissen SQL-transacties met ongeveer de volgende code (voor SQL 2000):

Optie 1:DBCC SHRINKFILE(pubs_log, 2)
(Als juiste maat niet bereikt probeer optie 2) Optie 2:BACKUP LOG pubs MET TRUNCATE_ONLY
DBCC SHRINKFILE(pubs_log,2)

Waarbij pub_log de naam van uw database is

Optie 3:
sp_detach_db - we zullen de database loskoppelen met deze procedure, en sp_attach_db - we zullen hem opnieuw verbinden. Hiermee wordt het transactielogboek gewist.
(Zie MSDN-onderwerpen Q256650 (voor SQL 7.0) en Q272318 (voor SQL 2000) voor meer informatie.)

Optie 4: (voor 7.0)
DBCC SHRINKFILE(bestandsnaam, doelgrootte)
DBCC SHRINKDATABASE (databasenaam, doelpercentage)
BACK-UPLOGBOEK database naam MET TRUNCATE_ONLY

Als de valpartijen na deze operaties aanhouden, volg dan de aanbevelingen:

- Probeer wijzigingen aan te brengen HOST-bestanden besturingssysteem(Hoogstwaarschijnlijk zal het voldoende zijn om de associatie alleen te registreren in bestanden op een of twee machines waar crashes het vaakst voorkomen)

— Probeer de 1C enterprise- en SQL-servers te scheiden als u ze op dezelfde machine hebt staan.

- Of, integendeel, installeer ze op één machine (als je over voldoende middelen beschikt). Er zijn gevallen waarin het verplaatsen van servers naar één server hielp (naar mijn mening is het zeer twijfelachtig en meer gerelateerd aan de reden om met het werk te beginnen, dit is compressie van transactielogboeken)

— Controleer de responstijd van de server (hoogstwaarschijnlijk zal alles binnen de normale limieten blijven en zeldzame fouten in de servicetijd kunnen niet zo'n sterke impact hebben op de werking van de bedrijfsserver)

— Controleer de werking van routers op het netwerk (zelden, maar het komt voor dat het hun herconfiguratie is die het aantal crashes beïnvloedt)

— Controleer op apparatuurconflicten op het netwerk (dit hangt samen met de vraag waarom het raadzaam is om apparatuur van één leverancier op het netwerk te hebben. Wie dat wil, kan bijvoorbeeld in de technische documentatie van 3COM controleren of er staat: of een netwerkkaart detecteert dat deze communiceert met een soortgelijke kaart netwerk kaart, dan kan het naar een productievere modus worden geschakeld door over te schakelen naar een geoptimaliseerd verwerkingsalgoritme netwerkpakketten, getest persoonlijke ervaring prestatiesprong tot 50%)

— Controleer de signaalniveaus van consumenten/eindcomputers (kan triviaal zijn, laag niveau signalen, voortdurend herhaalde verzoeken om blokken, vertraging in de wachtrij voor service in het netwerk en daardoor uiteindelijk een bericht ontvangen dat de eindserver de verbinding heeft verbroken wanneer het aantal pogingen de wachttijd overschrijdt voordat het signaal arriveert. Als je het wilt begrijpen deze kwestie zie Ethernet/CSMA CD/CSMA-bedieningsprotocol. Aantal pogingen om een ​​pakket te verzenden per dit protocol niet oneindig...))) En de buffer in kaarten is ook niet oneindig.)

— Voeg geheugen toe aan de servers

— Breng enkele/alle gebruikers over naar de terminalmodus (d.w.z. geef wat VEEL gebruikers definiëren als THIN CLIENT 1C). Voor zo'n server zou ik Citrix Metaframe of Terminal Server MS aanbevelen

Wanneer u deze aanbevelingen opvolgt, met uitzondering van het analyseren van problemen met hardware, zal de stabiliteit van het werk hoogstwaarschijnlijk zo sterk toenemen dat crashes van het platform zeer zeldzaam zullen worden, waardoor de technologische hiaten voor database-onderhoud zullen worden gedicht, die nog steeds MOET worden opgelost. gevolgd en denk niet dat de hierboven genoemde aanbevelingen een wondermiddel voor alle problemen zijn.

Ze zullen veel, maar niet alle, problemen oplossen.

En je bent blij als je zulke problemen niet hebt; iedereen die ze heeft, zal mij begrijpen.

———————————

Onderzoek de rollen 'Gebruiker', als die er zijn typische configuratie natuurlijk, en vooral nadat je hebt berekend probleem document gebruikt, moet u de problematische rol vinden (wie klaagt).
Kijk vervolgens voor de rol Gebruiker naar de radar van het document, indien aanvullende instellingen nee (puur), dus klik met de rechtermuisknop erop - zoek naar koppelingen naar een object en bekijk achtereenvolgens de radar voor de rol "Gebruiker" voor elk object.

In sommige Windows-gevallen wordt een hoge gebruikersintensiteit verward met een protocolaanval.
>Voer regedit.exe uit, voeg een nieuwe DWORD-waarde met de naam SynAttackProtect toe aan de registersleutel HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ en geef deze de waarde 00000000
Het is zinvol om dit te doen voor Windows 2003 SP1 (http://msdn.microsoft.com/ru-ru/library/ms189083.aspx

1C-server en database op één machine eronder Debian-beheer Knijpen.

Tijdelijke oplossing: stel de kernelparameter tcp_syncookies in op 0.

root@machine:~# echo "net.ipv4.tcp_syncookies = 0" >> /etc/sysctl.conf && sysctl -p
(auteur Vadim Ivakhin)

Een vrij veel voorkomende fout bij het gebruik van 1C 8.2 in client-servermodus is dat de externe host de bestaande verbinding met geweld heeft beëindigd. In de regel gelden bewindvoerders van cliënten uit het bedrijfsleven, d.w.z. waar 20 of meer werkplekken worden geëxploiteerd.

In 98% van de gevallen houdt deze fout verband met het opnieuw starten van de workflow. Er kunnen verschillende redenen zijn waarom het opnieuw opstart, maar de meest voorkomende is een banale herstart volgens een schema. Vanwege de groei van het werkstroombestand rphost en de daaropvolgende scherpe vertraging van het werk die op deze groei volgt, proberen beheerders het probleem op te lossen door werkprocessen opnieuw op te starten, en worden ze onmiddellijk geconfronteerd met een ander probleem: het loskoppelen van werkende gebruikers. Een extra workflow aanmaken levert niets op omdat... in tegenstelling tot officiële documentatie het overschakelen van de dikke client naar een andere workflow gebeurt niet. Bovendien is er een verhoogde belasting van de processor - het is noodzakelijk om met contextwisseling om te gaan. Overigens adviseert 1C zelf één workflow voor 50-100 gebruikers.

1) gebruik om geheugen vrij te maken dat wordt ingenomen door de 1C-workflow automatische herstart werkprocessen. Het wordt aanbevolen om de workflows eenmaal per dag (elke 86.400 seconden) opnieuw te starten. In dit geval wordt het werkproces eerst uitgeschakeld (nieuwe verbindingen zijn niet mogelijk, oude blijven werken) en wordt een nieuwe gelanceerd. Wanneer vervolgens alle verbindingen met het oude proces zijn gesloten, wordt het proces beëindigd. Houd er tegelijkertijd rekening mee dat het aftellen van dezelfde 86400 begint vanaf het moment dat de service begint Serveragent 1C Enterprise. Die. Het is raadzaam om er 's nachts mee te beginnen.

2) gebruik niet meer dan één werkproces, als u maximaal 100 gebruikers heeft. Bij meer werkprocessen besteden CPU-tijd aan het schakelen tussen de context.

3) gebruikt geheugen wissen. De snelle groei van het geheugen dat door het rphost-proces wordt ingenomen, is meestal te wijten aan een onzorgvuldig geschreven configuratie; programmeurs nemen vaak niet de moeite om het bezette geheugen op te ruimen, vooral niet onder tabellen met waarden, opsommingen en arrays. Dit is vooral duidelijk als het binnen gebeurt achtergrond banen. Daarom moet u bij het analyseren van het probleem van geheugenlekken ermee beginnen, bijvoorbeeld door ze uit te schakelen in eigenschappen informatiebasis al enige tijd.

4) gebruik aparte servers voor SQL en 1C. Zoals u weet, is er nooit teveel geheugen voor SQL.

U moet letten op de genoemde gevallen waarbij de fout “De externe host heeft de verbinding met geweld gesloten” verscheen als gevolg van hoge benutting netwerk uitrusting . Wanneer de responstijd van de server toeneemt tot 150-300 ms of meer, wordt de verbinding verbroken vanwege een time-out. Dit gebeurde bijvoorbeeld toen meerdere gebruikers tegelijkertijd de router laadden waarmee de 1C-server was verbonden door bestanden te kopiëren grote maten. Beheerders moeten rekening houden met de mogelijkheid van deze situatie en bij de aanschaf van routers letten op de snelheid van de schakelinfrastructuur.

Tot slot wil ik hieraan toevoegen dat het installeren en configureren van een server een verantwoordelijke zaak is die kennis en ervaring vereist, het is beter om dit aan professionals toe te vertrouwen; Onze specialisten installeren de server turnkey; voor meer details, zie hoofdstuk.

Deze fout met code 10054, van cruciaal belang, verschijnt voor gebruikers op het moment van opname. Meestal te vinden in oudere releases van 1C 8.2.

Schermafbeelding van fout 10054:

Over het algemeen geeft het verschijnen van deze fout aan dat er een onverwachte actie plaatsvindt voor de 1C-serverontwikkelaar:

  • er komt een onjuist verzoek binnen;
  • incorrecte data;
  • een zoekopdracht die een grote steekproef oproept waaraan deze niet kan voldoen;
  • speciaal geval: het documentnummer was groter dan de lengte gespecificeerd in de teller;
  • controleer de werking met uitgeschakelde antivirussen of firewalls

Correctie:

Het bestaat uit het zoveel mogelijk lokaliseren van het probleem:

  • het type document bepalen,
  • het register waarmee de fout optreedt,
  • gebruiker,
  • computer.

Vervolgens wordt er een kopie van de database gemaakt (met behulp van 1C of DBMS).

Als het opnieuw opstarten van de server het probleem oplost, ga dan door met monitoren. Voeg 's nachts tijdens niet-werkuren een herstartscript voor de service toe.

Als het opnieuw opstarten cyclisch is, controleer dan of u automatisch opnieuw opstarten hebt geconfigureerd in de clustereigenschappen:

Tests en correcties worden uitgevoerd met herberekening van de resultaten en herindexering van tabellen.

De vorige kopie van de database waarin het probleem is waargenomen wordt opgehaald, de verschillen worden gecontroleerd en wellicht leidt dit tot de oorzaak.

Als het probleem niet kan worden opgelost, is de volgende stap het configureren en analyseren van het proceslogboek.

Wat tijdens het proces duidelijk mag worden:


Als de belasting van de server op de rand van 100% staat, overweeg dan om de databaseserver en de 1C-server te scheiden. Dit vertraagt ​​meestal maar stabiliseert het werk (in 8.3 is er een mechanisme gedeelde herinnering, wat de serverinteractie versnelt en).

  • Voeg indien mogelijk geheugen toe aan de server.
  • Een mogelijke oplossing zou zijn om de server te vervangen door een 64-bit versie, maar controleer eerst de functionaliteit van je vrienden waar deze is geïnstalleerd.
  • Het zou geen kwaad om dezelfde controle op 32-bit uit te voeren om de fout in de gegevens of een specifieke server te begrijpen.
  • Lossen en laden kan de manifestatie elimineren.
  • Overweeg als laatste redmiddel om gegevens over te dragen via dataconversie of door gegevens toe te voegen aan een werkkopie (een langdurige procedure)

Controleer Windows-logboeken op systeemfouten:

  • bij netwerkbedrijf
  • apparatuur
  • toepassingen
  • herstart routers, switches (zelden, maar er zijn problemen mee)

Als het probleem niet binnen korte tijd is opgelost, heeft u mogelijk de hulp van gecertificeerde beheerders of 1C-experts nodig.