Heart-Profit ERP
May 18, 2024, 04:59:15 pm *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Login Register  
Pages: [1]
  Print  
Author Topic: Disconnect inaktieve Sessies  (Read 774 times)
0 Members and 1 Guest are viewing this topic.
Wouter Rijnbende
Administrator
Partner
*****
Offline Offline

Posts: 5360


View Profile WWW
« on: August 05, 2019, 01:11:21 pm »

De Advantage Data Architect biedt vanuit de Menuoptie 'Tools' een Remote Server Info tool die ons allerlei informatie toont m.b.t. de Advantage Data Dictionary. Het helpt ons te bepalen welke Gebruikers er verbonden zijn met een bepaalde Data Dictionary, en we kunnen achterhalen welke Tabellen geopend zijn, c.q. welke Recordlocks er op een tabel zitten. Echt overzichtelijk is het niet om te bepalen wie wat gelockt houdt, maar, dat is een tweede.

Middels dit topic beschrijven we hoe u (als Systeembeheerder) een connection met een Data Dictionary kunt clearen.

Laten we als eerste heel duidelijk zijn: zoiets dient in principe nooit te worden uitgevoerd, tenzij u hier 100% zeker van bent, en er géén andere mogelijkheden zijn. Het disconnecten van een sessie met de Data Dictionary kan het betreffende proces onherstelbaar verstoren. We mogen dit dus nimmer gebruiken als middel om 'een gebruiker uit Profit te halen', nee, voor zoiets moeten we zijn Sessie maar overnemen, en Profit formeel afsluiten.

Case:
Onlangs hebben we één situatie meegemaakt waarbij een sessie wel degelijk gecleared moest worden. Een gebruiker had een Profit sessie open staan, welke sessie op een niet-nette manier werd afgesloten. De Gebruiker startte Profit opnieuw op, doch, met als gevolg dat een van de records waarmee hij bezig was, nog stééds geallokkeerd was, en wel door hemzelf! Op de ADS Server bleek deze Gebruiker twéé Sessies te hebben. 1 van de foutgelopen Profitsessie, en 1 van zijn nieuwe Profitsessie.

Op het moment dat de 1e Sessie operationeel was, werden er vanuit Profit opdrachten aan ADS verstrekt om Records te locken. Aangezien de Sessie niet netjes is afgesloten, zijn er formeel nooit opdrachten naar de ADS Server verzonden om die records weer vrij te geven. Voor zover bekend cleart ADS zelf zo'n 'niet aktieve Sessie', maar, dit kan wel even duren. Hoe lang precies is niet bekend, maar, mogelijk lost het probleem zich vanzelf op door de Gebruiker zich te laten afmelden van het Netwerk, zijn computer uit te laten zetten, en deze bijv. een kwartier uit te laten staan, alvorens weer opnieuw in te loggen.
Nb: Overigens lijkt het voor de hand liggend dat een tijd voor een dergelijke auto-disconnect instelbaar zou moeten zijn, hier is nu verder niet naar gezocht.

Stel dat de Gebruiker meteen opnieuw Profit opstart (lees: verbind met de ADS Data Dictionary) dan lijkt het erop dat ADS zelf niet meer kan bepalen dat een connection gecleared moet worden. Zou ze immers een 'ping' doen naar het werkstation, dan zal ADS konstateren dat er weer een verbinding is, en weet ze niet of er op dat werkstation nu wel of geen taak meer draait. Ondertussen heeft de 1e niet-netjes-afgesloten-sessie nog wel records gelockt, wat ervoor dat zorgen dat geen enkele gebruiker nog bij bepaalde data kan komen. Betreft zo'n lock een parameter bestand waarin bijv. Ordernummers worden opgehoogd, dan kan zoiets er toe leiden dat het hele bedrijf niet verder kan.

Mocht zoiets voorkomen, dan is het advies om Heart te bellen. Heart kan de betreffende connection voor u vrijmaken, waarna u weer verder kunt. Mocht zoiets buiten kantooruren optreden, dan zult u toch zelf aktie moeten ondernemen, en derhalve dit topic.

Uitgangspunt is dat we weten:

a. om welke ADS Data Dictionary het gaat
b. om welke User het gaat

Het 'veilig' clearen van een connection (als we überhaupt over 'veilig clearen' kunnen spreken) doen we dan als volgt:

  • Zorg ervoor dat de betreffende Gebruiker al zijn openstaande Profitsessies afsluit, zodat we er 100% zeker van zijn dat we niet abusievelijk een live connection van hem gaan killen.
  • Start op zijn werkstation 'Taakbeheer' op, en kontroleer of er niet toevallig een proces 'Profit.exe' draait van die betreffende Gebruiker. Is dat toch het geval, beëindig dan dat proces.
  • Is het probleem daarmee niet opgelost, start dan de Advantage Data Architect op (uitgangspunt is dat de inloggegevens hiervoor bij U bekend zijn).
  • Start vanuit menu 'tools' de tool Remote Server Info op:
  • Connect met de juiste Advantage Data Dictionary
  • Aktiveer Tabblad 'Connected Users'
  • Sorteer het overzicht op bijv. Connectionname
  • We zijn nu op zoek naar een Connection die er in staat, maar die er niet in hóórt te staan. Zouden we kijken vóórdat de Gebruiker zijn nieuw opgestartte Profitsessie had afgesloten, dan zouden we de Connection kunnen herkennen door te konstateren dat er twee Connections zijn voor dezelfde Gebruiker op hetzelfde werkstation. Als we de Gebruiker zijn Profitsessie wél hebben laten afsluiten, en we zijn er 100% zeker van dat er nu op zijn werkstation géén Profitsessie meer daait, en we vinden hier tóch een Connection, dan zal dát de Connection zijn die we moeten clearen. De Remote Server Info tools toont ons een aantal gegevens die ons helpen bepalen dat we de juiste Connection te pakken hebben:
    a. de Connectionname, zijnde de Identifikatie van het werkstation waarop de Gebruiker is ingelogged
    b. 'OS Login' bevat de naam waarmee de Gebruiker op het Operating System is ingelogged
    c. 'Databaseuser' is het Id waarmee de Gebruiker in Profit is ingelogged.
    d. 'Networkaddress' toont ons het IP adres vanaf welke de Gebruiker is ingelogged.
    e. 'Aplication-Id' helpt ons om te bepalen of het een Profit sessie betreft of niet (i.g.v. een Profitsessie zal hier 'Profit.exe' of 'Profit8.exe' staan).
    Mocht er ook maar één van deze rubrieken niet overeenkomen met wat er verwachten, kies voor het zekere, en clear deze connection niet!
    Zie in bovenstaande schermprint ook het voorbeeld van de Connection PC335, die maar liefst 5 connections heeft. Hier hoeft dus helemaal niets fout te zijn, want, er zit maar 1 'Profit8.exe' sessie tussen. Toch heeft zo'n werkstation meerdere Connections. Dit kan alsnog gewoon legitiem zijn, bijvoorbeeld bij de gratie dat op dit werkstation andere tools draaien die gebruik maken van de Advantage Database. Denk daarbij bijvoorbeeld aan 'Registered Servers', 'Backup processen' e.d. Het mag duidelijk zijn wat er gebeurt als we zo'n Sessie abusievelijk killen... Dus, hoewel we het niet kunnen voorkomen, kill nooit een Sessie die niet afkomstig is van Profit!
    Nb: We hebben de lijst hierboven gesorteerd op Connectionname, omdat dit 'per werkstation' toont wie er is ingelogged. Vanzelfsprekend kunnen we ook op een van de andere kolommen sorteren, bijvoorbeeld de Inlognaam van de Gebruiker. Houdt er wel rekening mee dat een Gebruiker op meerdere werkstations ingelogd kan zijn. Alle kolommen moeten dus overeen komen met de gegevens die we hebben van de te clearen sessie.
  • Alleen als we dus 100% zeker zijn dat de (Profit) Connection die in dit overzicht staat onterecht is, kunnen we via een RightClick op deze Connection de betreffende Connection clearen:

    Daarbij hebben we de mogelijkheid om de Connection met het werkstation te clearen (PC362) òf de Connection van een specifieke Gebruiker op dat werkstation (PC362\robk) te clearen. Kies hier altijd voor de laatste optie, immers, voor u er erg in heeft betreft het werkstation een 'Terminal Server' en killt u de Connections van alle Gebruikers die met die Terminal Server verbonden zijn.

Als de Sessie gecleart is, kan de betreffende Gebruiker opnieuw Profit opstarten. De eerder op de ADS Server gelockte records zouden dan nu moeten zijn vrijgegeven. De Remote Server Info tool (en desgewenst de Advantage Data Architect) mogen nu worden afgesloten.
Logged

Heart-Profit company ID : HA
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1 RC2 | SMF © 2001-2005, Lewis Media Valid XHTML 1.0! Valid CSS!
Page created in 0.012 seconds with 20 queries.