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

Deze fout met code 10054, van kritieke aard, treedt op bij gebruikers op het moment van opname. Meestal te vinden in oudere versies van 1C 8.2.

Schermafbeelding van fout 10054:

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

  • er komt een ongeldig verzoek binnen;
  • incorrecte data;
  • een vraag die een grote selectie vereist waaraan hij niet kan voldoen;
  • speciaal geval: het documentnummer was groter dan de lengte gespecificeerd in de teller;
  • controleer het werk 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 een kopie van de database gemaakt (door middel van 1C of DBMS).

Als het opnieuw opstarten van de server het probleem oplost, ga dan door met monitoren. Voeg een script toe om de service 's nachts na kantooruren opnieuw te starten.

Als de herstart cyclisch is, controleer dan of je automatische herstart hebt geconfigureerd in de clustereigenschappen:

Er wordt getest en gecorrigeerd met herberekening van totalen en herindexering van tabellen.

Het vorige exemplaar van de database waarin het probleem is geconstateerd wordt aan de orde gesteld, de verschillen worden gecontroleerd, wellicht leidt dit tot de oorzaak.

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

Wat is er te vinden in het proces:


Als de belasting van de server bijna 100% is, overweeg dan om de databaseserver en de 1C-server te scheiden, dit vertraagt ​​​​meestal, maar stabiliseert het werk (in 8.3 is er een gedeeld geheugenmechanisme dat de interactie van de server versnelt en).

  • Voeg indien mogelijk geheugen toe aan de server.
  • Een mogelijke oplossing zou zijn om de server te vervangen door een 64-bits, maar controleer eerst de prestaties van je vrienden, waar deze zich bevinden.
  • Dezelfde controle op 32 bit kan geen kwaad om de fout in de gegevens of een specifieke server te begrijpen.
  • Lossen met laden kan manifestatie elimineren.
  • Overweeg als laatste redmiddel om gegevens over te zetten via gegevensconversie of gegevens in een werkkopie te laden (lange procedure)

Controleer Windows-logboeken op systeemfouten:

  • in netwerkgebruik
  • apparatuur
  • toepassingen
  • herstart routers, switches (zelden, maar er zijn problemen)

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

Foutbeschrijving

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

Hoe om te gaan met dit probleem?

Stel het technologische logboek in en parseer de logboeken.
De meest voorkomende oorzaken zijn crashes van het servergedeelte van 1C:Enterprise.
U kunt ook controleren of er dumps worden gemaakt (kijk naar het pad logcfg.xml, als er geen dumpinstelling in staat, dan in de map %USERPROFILE%\Local Settings\Application Data\1C\1Cv81\Dumps, bijvoorbeeld C :\ Documenten en instellingen\<Имя пользователя>\Local Settings\Applicatiegegevens\1C\1Cv81\dumps. Platformcrashes kunnen meestal optreden als gevolg van verzoeken met niet-standaard parameters. Stuur dumps naar 1C technische ondersteuning e-mail: [e-mail beveiligd]
1. Meestal kwam ik een probleem tegen in het journaal van documenten in de selectieverzoeken die vergelijkbaar waren met dit:

SELECTEER TOEGESTAAN TOP 35 R.Date_Time A1,
R.Nummer A2,
R.Fld9608A3,
R.Fld9613 A4,
R.Fld9606A5,
R.Fld9610 A6,
R.Fld9611A7,
R.Fld9607 A8,
R.Fld9612 A9,
R.Fld9615 A10,
R.Fld9614 A11,
R.Fld9609A12,
R.Fld9605 A13,
R.Document A14,
R. Gemarkeerd A15,
R.Geplaatst A16,CAST(R.Fld9608 AS REF(Referentie9)).Beschrijving:
A17,CAST(R.Fld9606 AS REF(Referentie52)).Beschrijving A18,CAST(R.Fld9611
ALS REF (Referentie93)). Beschrijving A19, CASE WHEN R.Fld9609 REFS:
Referentie53 THEN CAST(R.Fld9609 AS REF(Referentie53)).Beschrijving WANNEER:
R.Fld9609 REFS Referentie150 DAN GEGOTEN (R.Fld9609 AS)
REF(Referentie150)).Beschrijving WHEN R.Fld9609 REFS Referentie63 THEN
CAST(R.Fld9609 AS REF(Referentie63)). Beschrijving WHEN 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)))
BESTELLEN DOOR A1 ASC, A14 ASC’

2. Een voorbeeld van een TJ-logboek met de oorzaak van servercrashes bij het bijwerken van zoeken in volledige tekst
11:40.9690-0,EXCP,1,process=rphost,p:processName=<база данных>,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.RegularAssignmentModule: 46: FullTextSearch.UpdateIndex (False, True);'

De uiteindelijke oplossing in dit voorbeeld zou zijn om het achtergrondproces in de probleembasis uit te schakelen. Wacht op een nieuwe release van het platform en update.
Zie mijn blog voor meer informatie over platformcrashes.
3. Voorbeeld van TJ voor cyclische herstart van processen. Om deze gebeurtenis op de computer van de 1C:Enterprise-server te analyseren, moet u opname inschakelen in het PROC-gebeurtenislogboek van het proces (voorbeeld van het bestand logcfg.xml).
Wanneer een proces wordt afgesloten, wordt een PROC-gebeurtenis uitgezonden met de eigenschap Txt=Proces wordt uitgeschakeld.
Wanneer een proces wordt beëindigd, wordt een PROC-gebeurtenis verzonden met de eigenschap Txt=Process beëindigd. Alle clients eindigden met een fout. Als gebruikerscrashes samenvallen met de uitvoer van deze gebeurtenis, is de reden dat het werkproces werd gedwongen te stoppen door de beheerder (via de clusterconsole) of vanwege een automatische herstart.
4. Zorg ervoor dat de oorzaak wel/niet ligt in de acties van de beheerder in de console

—————————-

Hieronder de oplossing van een collega.

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

10051, 10053, 10054, 10064

Zoals blijkt uit de debriefing van platformcrashes, met de bovenstaande fouten:

- De meeste crashes worden precies veroorzaakt door het werk van achtergrondbanen, zoals gesuggereerd in het onderwerp.

- Gebrek aan schijfruimte

- De aanwezigheid van een groot aantal onvolledige transacties in het 1C journaal

- Voordat u het technologische logboek analyseert, analyseert u de achtergrondtaken die in de configuratie worden gebruikt en schakelt u de taken uit die u niet nodig hebt om te werken, de configuratie (het is afgezaagd, het analyseren van 14 GB afval kan als een tijdverdrijf worden beschouwd als u niets te doen heeft ... :))))

— Analyseer en breng correcties aan op de achtergrondtaken die u hebt toegevoegd, zorg ervoor dat ze worden aangevuld met een normale afsluitcode (geen fouten en geen gesloten transacties)

- Introduceer codefragmenten in de algoritmen van achtergrondtaken die beschermen, met geweld, het geheugen dat tijdens hun werk wordt gebruikt (je moet niet hopen dat 1C het gebruikte geheugen aan het einde vrijgeeft)

- Analyseer en HERSTEL FUNCTIONELE PROBLEMEN in typische achtergrondconfiguratietaken

- Voer routinematige procedures uit met de database, via het menu-item Administratie-Testing en correctie, niet vergeten nodig, comprimeer de database

- Analyseer de hoeveelheid ruimte die wordt gebruikt door de SQL-server, het is waarschijnlijk dat de server gewoon niet genoeg geheugen heeft

- Controleer uw Active Directory-instellingenbeleid

- En comprimeer/wis het SQL-transactielogboek ook als volgt (voor SQL 2000):

Optie 1:DBCC SHRINKFILE(pubs_log, 2)
(Als de gewenste maat niet wordt bereikt, probeer dan optie 2) Optie 2:BACK-UP LOG-pubs MET ALLEEN TRUNCATE_
DBCC SHRINKFILE(pubs_log,2)

Waar pub_log de naam van uw database is

Optie 3:
sp_detach_db - koppel de basis los met deze procedure, en sp_attach_db - maak opnieuw verbinding. Het transactielogboek wordt gewist.
(Zie MSDN Q256650 (voor SQL 7.0) en Q272318 (voor SQL 2000) voor meer details.)

Optie 4: (Voor 7.0)
DBCC SHRINKFILE (bestandsnaam, doelgrootte)
DBCC SHRINKDATABASE(databasenaam; doelpercentage)
BACK-UPLOGBOEK database naam ALLEEN MET TRUNCATE_

Als na deze operaties het vallen doorgaat, blijf dan de aanbevelingen volgen:

- Probeer wijzigingen aan te brengen in de HOSTS-bestanden van het besturingssysteem (waarschijnlijk is het voldoende om de associatie alleen te registreren in bestanden op een / twee machines, waar crashes het vaakst voorkomen)

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

- Of omgekeerd, installeer ze op dezelfde machine (als er voldoende bronnen zijn) Er zijn gevallen waarin het de overdracht van servers naar één server was die hielp (Naar mijn mening is het zeer twijfelachtig en meer gerelateerd aan de reden voor beginnen met werken, dit is de compressie van transactielogboeken)

- Controleer de reactietijd van de server (hoogstwaarschijnlijk zal alles binnen het normale bereik vallen, en zeldzame dalingen in de servicetijd kunnen de werking van de bedrijfsserver niet zo veel beïnvloeden)

- Controleer de werking van routers op het netwerk (zelden, maar het gebeurt dat het hun herconfiguratie is die het aantal drops beïnvloedt)

- Controleer op hardwareconflicten op het netwerk (dit is de vraag waarom het wenselijk is om apparatuur van dezelfde leverancier op het netwerk te hebben. Wie wil kan in de technische documentatie van 3COM bijvoorbeeld nagaan of er een netwerkkaart detecteert dat het communiceert met een vergelijkbare netwerkkaart, dan kan het worden overgeschakeld naar een productievere modus, vanwege de overgang naar een geoptimaliseerd algoritme voor het verwerken van netwerkpakketten, getest op persoonlijke ervaring, een prestatiesprong tot 50%)

- Controleer signaalniveaus bij consumenten / eindcomputers (mogelijk afgezaagd, laag signaalniveau, constant herhaalde verzoeken om blokkering, vertraging van de netwerkservicewachtrij en daarom uiteindelijk het ontvangen van een bericht dat de eindserver de verbinding heeft verbroken wanneer het aantal pogingen de time-out overschrijdt. als je dit probleem wilt begrijpen, raadpleeg dan het Ethernet / CSMA CD / CSMA-protocol. Het aantal pogingen om een ​​pakket te verzenden met dit protocol is niet oneindig ...))) En de buffer in de kaarten is ook niet onbeperkt.)

- Geheugen toevoegen aan servers

- Verplaats sommige/alle gebruikers naar de terminalmodus (dwz geef aan wat VEEL gebruikers definiëren als THIN CLIENT 1C). Als zo'n server zou ik Citrix Metaframe of Terminal Server MS aanraden

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 platformcrashes zeer zeldzaam zullen worden, waardoor de technologische hiaten in het database-onderhoud, die nog steeds VEREIST zijn, zullen worden gedicht. denk niet dat die aanbevelingen die hierboven zijn aangegeven Panacea voor alle problemen.

Ze zullen veel, maar niet alle problemen oplossen.

En je bent gelukkig, als je zulke problemen niet hebt, zal degene die ze heeft mij begrijpen.

———————————

Onderzoek de rollen van de "Gebruiker" als ze zich in de typische configuratie bevinden natuurlijk, en in het bijzonder, nadat je hebt berekend probleem document met , moet u de problematische rol vinden (wie klaagt).
Vervolgens kijken we voor de rol van de gebruiker naar de radar van het document, als er geen aanvullende instellingen (puur) zijn, klik er dan met de rechtermuisknop op - zoek naar links naar het object en bekijk achtereenvolgens de radar voor de rol van "Gebruiker" voor elk object.

Hoge gebruikersintensiteit verwarren met een protocolaanval in sommige Windows-gevallen.
>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 stel deze in op 00000000
Het is logisch om te doen voor Windows 2003 SP1 (http://msdn.microsoft.com/ru-ru/library/ms189083.aspx

1C-server en database op dezelfde machine waarop Debian Squeeze draait.

Oplossing: Stel de kernelparameter tcp_syncookies in op 0.

[e-mail beveiligd]:~# echo "net.ipv4.tcp_syncookies = 0" >> /etc/sysctl.conf && sysctl -p
(auteur Vadim Ivakhin)

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

In 98% van de gevallen is deze fout te wijten aan het opnieuw opstarten van de workflow. Er kunnen verschillende redenen zijn waarom het opnieuw wordt opgestart, maar de meest voorkomende is een banale geplande herstart. Vanwege de groei van workflowbestanden rphost en de daaropvolgende scherpe vertraging van het werk na deze groei, proberen beheerders het probleem op te lossen door werkprocessen opnieuw op te starten, en worden ze onmiddellijk geconfronteerd met een andere - het loskoppelen van werkende gebruikers. Het creëren van een extra workflow doet niets. in tegenstelling tot de officiële documentatie van het overschakelen van een dikke client naar een ander werkproces gebeurt niet. Bovendien is er een verhoogde belasting van de processor - het is noodzakelijk om de contextwisseling af te handelen. Overigens beveelt 1C zelf één workflow aan voor 50-100 gebruikers.

1) om het geheugen dat wordt ingenomen door de 1C-workflow vrij te maken, gebruikt u automatische herstart van workflows. Het wordt aanbevolen om de werkprocessen eenmaal per dag opnieuw te starten (elke 86400 seconden). Tegelijkertijd wordt eerst de workflow uitgeschakeld (nieuwe verbindingen ermee zijn onmogelijk, oude blijven werken) en wordt er een nieuwe gelanceerd. Wanneer vervolgens alle verbindingen met het oude proces zijn gesloten, wordt het proces beëindigd. Let er tegelijkertijd op dat het aftellen van diezelfde 86400 begint vanaf het moment dat de dienst begint Serveragent 1C Enterprise. Die. het is wenselijk om het 's nachts te starten.

2) gebruik niet meer dan één werkproces als u maximaal 100 gebruikers heeft. Met meer werkprocessen wordt CPU-tijd besteed aan het schakelen tussen contexten.

3) gebruikt geheugen wissen. De snelle groei van het bezette geheugen door het rphost-proces is meestal de oorzaak van een onzorgvuldig geschreven configuratie, vaak doen programmeurs niet de moeite om het bezette geheugen op te ruimen, vooral onder waardetabellen, opsommingen en arrays. Dit is vooral duidelijk wanneer het gebeurt in achtergrondbanen. Daarom is het bij het analyseren van het probleem van een geheugenlek noodzakelijk om ermee te beginnen, bijvoorbeeld door ze een tijdje uit te schakelen in de eigenschappen van de infobase.

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

U moet aandacht besteden aan de genoemde gevallen van de fout "De externe host heeft de verbinding met geweld verbroken" vanwege: hoog gebruik van netwerkapparatuur. Wanneer de responstijd van de server toeneemt tot 150-300 ms of meer, wordt de verbinding verbroken door een time-out. Dit gebeurde bijvoorbeeld wanneer meerdere gebruikers tegelijkertijd de router, waarop ook de 1C-server is aangesloten, laden door grote bestanden te kopiëren. Beheerders moeten zich bewust zijn van de mogelijkheid van deze situatie en aandacht besteden aan de snelheid van de schakelstructuur bij het kopen van routers.

Tot slot zal ik hieraan toevoegen dat het installeren en configureren van een server een verantwoordelijke zaak is, kennis en ervaring vereist, het is beter om het aan professionals toe te vertrouwen. Onze specialisten voeren een turnkey-installatie van de server uit, zie de sectie voor meer details.