ఒకే పేరు కింద రెండవ కనెక్షన్ ఇప్పటికే ప్రారంభమైన తర్వాత డిస్కనెక్ట్ రికార్డ్ వస్తుంది, మరియు ఆ వినియోగదారు కొత్త వరుసను నవీకరించే హ్యాండ్లర్ తప్పు సెషన్ను మూసివేస్తుంది. పొరపాటు సమయ ముద్రల పోలికలో లేదు. పేరు మరియు పూర్తి సెకను ఒక సెషన్ను గుర్తిస్తాయనే ఊహలో పొరపాటు ఉంది. హుక్ ఈవెంట్లు కనెక్షన్లను వివరిస్తాయి, కనెక్షన్కు దానికి మాత్రమే చెందిన కీ అవసరం.

డిస్కనెక్ట్ వేరియబుల్స్ నిజంగా ఏమి అర్థం చేస్తాయో దానితో ప్రారంభించండి. అప్పుడే గుర్తింపుదారు ఎంపిక అర్థవంతంగా ఉంటుంది.

డిస్కనెక్ట్ హుక్ నిజంగా ఏమి మోసుకొస్తుంది

Community OpenVPN 2.6 లో, హుక్ సూచన time_unix ను క్లయింట్ కనెక్ట్ అయిన క్షణంగా నిర్వచిస్తుంది; ఇది కనెక్ట్ హుక్ నడిచే ముందు సెట్ చేయబడుతుంది, తర్వాత డిస్కనెక్ట్ హుక్ ప్రేరేపించబడినప్పుడు తిరిగి నిర్వచించబడదు. time_duration ఆ సెషన్ పొడవును సెకన్లలో ఇస్తుంది, కాబట్టి ముగింపు సుమారుగా కనెక్షన్ సమయం ప్లస్ వ్యవధి. రెండూ పూర్ణ సెకన్లు, మరియు ఏదీ మీ డేటాబేస్ ఈవెంట్ను ప్రాసెస్ చేసిన క్షణం కాదు. ఈ మూడు సమయాలను వేరుగా ఉంచడమే పరస్పర సంబంధం పరీక్ష సమయంలో మాత్రమే సరిగ్గా కనిపించకుండా నిజంగా నిలబడేలా చేస్తుంది.

ఈ గణితం రాయదగినది, ఎందుకంటే హుక్ తానే అందించే ఏకైక ముగింపు సమయం ఇదే. ప్రాసెసింగ్ ఆలస్యం మరియు హోస్ట్ల మధ్య గడియార భేదాలు ఇంకా దాని వెలుపలే ఉన్నాయి.

స్పష్టమైన జత ఎందుకు ప్రత్యేకమైనది కాదు

పేరును కనెక్షన్ సమయంతో జత చేయడం శోధనను కుదిస్తుంది, ఇప్పటికీ సెషన్ను గుర్తించదు. క్లయింట్ అదే సెకనులో తిరిగి కనెక్ట్ కావచ్చు, కాబట్టి రెండు సెషన్లు రెండు విలువలను పంచుకోవచ్చు. రెండు డీమన్ ఇన్స్టాన్సులు, లేదా అదే కాన్ఫిగరేషన్ను ఉంచుకునే సర్వర్ మార్పిడి, ఆ జతను వేర్వేరు ప్రక్రియల నుండి ఉత్పత్తి చేయవచ్చు. టన్నెల్ చిరునామాలు కూడా అదే కారణంతో పునర్వినియోగించబడతాయి, ఇది వాటిని సెషన్ లక్షణాలుగా చేస్తుంది, సెషన్ గుర్తింపుదారులుగా కాదు.

వైఫల్య విధానం నిశ్శబ్దం. మొదటి సెషన్ కోసం ఆలస్యంగా వచ్చిన డిస్కనెక్ట్ కొత్త వరుసతో సరిపోలి, రెండవ సెషన్ ఇంకా ఉపయోగిస్తున్న కేటాయింపును ముగిస్తుంది, కాబట్టి వినియోగదారు తాను చేయని కారణంగా యాదృచ్ఛిక యాక్సెస్ నష్టాన్ని అనుభవిస్తాడు. తర్వాత సరిగ్గా కనిపించే వరుసల సంఖ్య సమస్యను గుర్తించడం కష్టతరం చేస్తుంది.

స్థిరమైన గుర్తింపు ఎక్కడి నుండి వస్తుంది

నిర్వహణ ఇంటర్ఫేస్ ప్రతి క్లయింట్కు క్లయింట్-ఇన్స్టాన్స్ గుర్తింపుదారును కేటాయిస్తుంది, ఆ గుర్తింపుదారు దానిని జారీ చేసిన డీమన్ ఇన్స్టాన్స్కు మాత్రమే పరిమితం. పని చేయగల బాహ్య కీ స్థిరమైన సర్వర్ గుర్తింపుదారు, డీమన్ ప్రారంభమైనప్పుడు మారే యుగం, మరియు ఆ క్లయింట్ ID ను కలుపుతుంది. యుగం ముఖ్యం ఎందుకంటే గుర్తింపుదారులు ప్రక్రియతో పాటు తిరిగి ప్రారంభమవుతాయి, మరియు బేర్ ప్రాసెస్ ID తర్వాత సంబంధం లేని దాని ద్వారా పునర్వినియోగించబడవచ్చు.

చైల్డ్ కనెక్ట్ స్క్రిప్ట్ లోపల సెట్ చేసిన వాతావరణ చరాలు పేరెంట్ డీమన్ యొక్క తర్వాతి డిస్కనెక్ట్ స్క్రిప్ట్కు ప్రయాణించవు, ఎందుకంటే ఆ స్క్రిప్ట్లు తమ స్వంత వాతావరణాలతో వేర్వేరు ప్రక్రియలుగా నడుస్తాయి. కాబట్టి కనెక్షన్ సమయంలో UUID ఉత్పత్తి చేయడం సగం పరిష్కారం. డిస్కనెక్ట్ వైపు అదే UUID ను పేర్కొనగలగాలి, అంటే గుర్తింపు రెండు ఈవెంట్లు చేరుకోగల చోట ఉండాలి.

ఉపసంహరణను షరతులతో కూడినదిగా మరియు ఐడెంపోటెంట్గా చేయండి

సెషన్ యజమాని ప్రకారం ఉపసంహరించండి, వినియోగదారు ప్రకారం కాదు. పేరుకు ప్రస్తుతం చెందిన ఏదైనా కేటాయింపును తొలగించే హ్యాండ్లర్ చివరికి తప్పుదాన్ని తొలగిస్తుంది, మరియు ఏకైక రక్షణ తొలగించబడుతున్న రికార్డ్ ఈ ఈవెంట్ వివరించే రికార్డ్ అని తనిఖీ చేయడం.

నిర్వహణ ఇంటర్ఫేస్ ఒక సమయంలో ఒక కనెక్ట్ చేయబడిన నిర్వహణ క్లయింట్ను మాత్రమే అంగీకరిస్తుంది, కాబట్టి అదే సాకెట్ కోసం పోటీపడే రెండవ పర్యవేక్షకుడిని జోడించడం కంటే ఇప్పటికే దాన్ని కలిగి ఉన్నవారితో సమన్వయం చేయండి.

పునరావృత ఈవెంట్లను ఫలితాన్ని రెండుసార్లు మార్చకుండా నిర్వహించండి, మరియు జతకాని ఈవెంట్లను విసిరేయడం కంటే సమన్వయం కోసం ఉంచండి. డిస్కనెక్ట్ కాల్బ్యాక్కు నమోదిత జీవిత చక్ర షరతులు ఉన్నాయి మరియు క్రాష్ లేదా కఠిన ఆపివేయడం తర్వాత అది ఎప్పటికీ రాకపోవచ్చు, కాబట్టి డిజైన్కు ముగింపు ఈవెంట్ లేని సెషన్ను సూచించే మార్గం అవసరం.

అసౌకర్య సందర్భాలను ఉద్దేశపూర్వకంగా పరీక్షించండి: ఒక సెకనులో రెండు పునఃకనెక్షన్లు, రెండు డీమన్ ఇన్స్టాన్సులు, ప్రాసెసింగ్ విఫలమైన కనెక్షన్, మరియు సెషన్ మధ్యలో డీమన్ పునఃప్రారంభం. నాలుగింటినీ తట్టుకునే కీ మాత్రమే నమ్మదగిన కీ.

సంబంధిత వ్యాసాలు