కనెక్షన్ స్ట్రింగ్, JDBC URL లేదా tnsnames.ora ఎంట్రీ VPN ను ఎంచుకునే స్థలం కోసం డెవలపర్లు ఇంకా వెతుకుతున్నారు. అలాంటి స్థలం లేదు. వర్చువల్ అడాప్టర్ను నమోదు చేసే ఆపరేటింగ్ సిస్టమ్ లేదా విక్రేత క్లయింట్ సొరంగాన్ని ఏర్పాటు చేస్తుంది, మరియు దాని పైన ఉన్న ప్రతి డేటాబేస్ లైబ్రరీ దాని నుండి వచ్చే సాకెట్ పొరను ఉపయోగిస్తుంది. కనెక్షన్ స్ట్రింగ్ హోస్ట్, పోర్ట్ మరియు ఆధారాన్ని పేర్కొంటుంది, మరియు అంతే మొత్తం పదకోశం.

అపోహ: కనెక్షన్ స్ట్రింగ్ సొరంగాన్ని ఎంచుకోగలదు

డ్రైవర్ హోస్ట్ మరియు పోర్ట్కు TCP సాకెట్ను తెరుస్తుంది. సొరంగాన్ని పైకి లేపడానికి API లేదు, సొరంగ ప్రొఫైల్ కోసం ఫీల్డ్ లేదు, VPN గేట్వేకు ప్రామాణీకరించే మార్గం లేదు.

అందుకే మార్గం ఉన్నప్పుడు సాధనాలు ఒకేలా ప్రవర్తిస్తాయి. SSMS, DBeaver, Eclipse Data Tools మరియు సాధారణ sqlcmd అన్నీ సర్వర్ లోకల్ నెట్వర్క్లో ఉన్నట్లుగా పనిచేస్తాయి, ఎందుకంటే సాకెట్ దృష్టికోణంలో అది అక్కడే ఉంది. వర్చువల్ అడాప్టర్ డేటాబేస్ సబ్నెట్ను చేరుకోగలిగేలా చేసింది, మరియు డ్రైవర్కు అది ఎలా జరిగిందో ఎప్పటికీ తెలియదు.

కనెక్షన్ స్ట్రింగ్ తెగిపోయిన సొరంగాన్ని ఎందుకు సరిచేయలేదో కూడా ఇది వివరిస్తుంది. లింక్ చనిపోయినప్పుడు, డ్రైవర్ సమయం ముగిసిందని లేదా సాధారణ నెట్వర్క్ లోపం అని నివేదిస్తుంది, మరియు దానిని క్వెరీ సమస్యగా భావించే అప్లికేషన్ కోడ్ శాశ్వతంగా తప్పు పొరను పునరావృతం చేస్తుంది.

డ్రైవర్ అమలు కాకముందే సొరంగాన్ని పైకి లేపండి

ప్రొవైడర్ లేదా నెట్వర్క్ బృందం సూచనలను అనుసరిస్తూ ఆపరేటింగ్ సిస్టమ్ స్థాయిలో VPNకు కనెక్ట్ అవ్వండి, ఆ తర్వాతే సాధనాన్ని తెరవండి. ఆచరణలో దీని అర్థం డ్రైవర్ హోస్ట్ పేరును పరిష్కరించకముందే డేటాబేస్ సబ్నెట్కు మార్గం ఉంటుంది.

సొరంగ పర్యవేక్షణను అప్లికేషన్ వెలుపల ఉంచండి. లింక్ను స్వయంగా పైకి లేపడానికి ప్రయత్నించే PHP లేదా Java సేవ ఒక ప్రొవైడర్ ప్రవర్తనను వ్యాపార కోడ్లో రాస్తుంది, మరియు ప్రతి వైఫల్య మార్పిడి అప్లికేషన్ విడుదల అవుతుంది. సొరంగాన్ని కలిగి ఉండి, పర్యవేక్షించి, మళ్లీ ప్రారంభించే పర్యవేక్షకుడు క్వెరీ మార్గం నుండి వేరైన విషయం.

డ్రైవర్ను నిందించే ముందు మార్గాన్ని తనిఖీ చేయండి: హోస్ట్ పరిష్కరించబడకపోతే లేదా షెల్ నుండి పోర్ట్ సమాధానం ఇవ్వకపోతే, ఏ కనెక్షన్ స్ట్రింగ్ దానిని మార్చదు.

అపోహ: Windows ప్రామాణీకరణ వైఫల్యం అంటే మార్గం విరిగింది

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

runas /noprofile /netonly /user:CORP\dbreader "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe"

/netonly స్విచ్ ఆ ఆధారాలను రిమోట్ ప్రామాణీకరణకు మాత్రమే ఉంచుతుంది. కనెక్షన్ డైలాగ్ను నమ్మడం బదులు SELECT SUSER_SNAME() తో సర్వర్ నిజంగా ఏమి పొందిందో నిర్ధారించండి. సర్వర్ చిరునామా ఆధారాన్ని Windows Credential Manager లో నిల్వ చేయడం SSMSకు పనిచేస్తుంది కానీ మరో ఖాతా కింద నడిచే సేవకు ఎప్పుడూ కాదని నివేదించబడింది, కాబట్టి లాగిన్ మార్చే ముందు ప్రక్రియ ఏ గుర్తింపును ఉపయోగిస్తుందో తనిఖీ చేయండి.

ఆలస్యం సర్వర్ వైపు కర్సర్ను సమయం ముగియడంగా మారుస్తుంది

సర్వర్ వైపు కర్సర్ డేటాబేస్ను ఫలితాన్ని ఉంచి క్రమంగా తేవాలని కోరుతుంది, ఇది ఒక పెద్ద ఫలితాన్ని చాలా చిన్న రౌండ్ ట్రిప్పులుగా మారుస్తుంది. LAN లో అది చవక. పదుల మిల్లీసెకన్ల అదనపు ఆలస్యం ఉన్న సొరంగం ద్వారా అదే క్వెరీ ఎక్కువ డేటా పంపకుండానే కమాండ్ సమయ పరిమితిని దాటవచ్చు.

క్లయింట్ వైపు కర్సర్కు మారండి, లేదా fetch size పెంచి వరుసలను బ్యాచ్ చేయండి, రౌండ్ ట్రిప్పుల సంఖ్య తగ్గుతుంది. అడ్డంకి మార్పిడుల సంఖ్య, లింక్ నామమాత్ర వేగం కాదు, కాబట్టి throughput కొలవడం మిమ్మల్ని తప్పుదారి పట్టిస్తుంది, రౌండ్ ట్రిప్పులు కొలవడం పట్టించదు. మీ వినియోగదారులు నిజంగా లాగే అతిపెద్ద ఫలిత సెట్తో పరీక్షించండి, తక్షణమే తిరిగి వచ్చే ఒక-వరుస క్వెరీతో కాదు. సమయ పరిమితి కదులుతూ ఉండి మాయం కాకపోతే, కమాండ్ సమయ పరిమితిని మరియు fetch size ను కలిసి పెంచి మళ్లీ కొలవండి.

అదే గణితం మాట్లాడే ORMలకు మరియు ప్రతి వరుసకు ఒక ప్రకటన జారీ చేసే ఏ క్లయింట్కూ వర్తిస్తుంది. క్వెరీ ప్రణాళిక బాగుండి బదిలీ చిన్నదైతే, డేటాబేస్ను ట్యూన్ చేయకముందే నెట్వర్క్ మార్పిడులను లెక్కించండి.

పోర్ట్, ఇన్స్టాన్స్ మరియు స్థానిక ఫిల్టర్ను తనిఖీ చేయండి

పేరు పెట్టిన ఇన్స్టాన్స్ డైనమిక్ పోర్ట్పై వినిపిస్తుంది, కాబట్టి 1433 అని ఊహించకుండా పోర్ట్ను నిర్ధారించండి. డిఫాల్ట్ ఇన్స్టాన్స్లో విలువను ఇన్స్టాన్స్ యొక్క SuperSocketNetLib కీ కింద ఉన్న TcpPort రిజిస్ట్రీ విలువ నుండి చదవవచ్చు. Oracle కోసం, tnsnames.ora లోని హోస్ట్ పరిష్కరించబడుతుందా, చిరునామా సమాధానమిస్తుందా, listener పోర్ట్ అనుమతించబడిందా అని నిర్ధారించండి; 1521 సాధారణ డిఫాల్ట్, హామీ కాదు.

తర్వాత సొరంగం స్వంత యాక్సెస్ జాబితాను మరియు చివరగా క్లయింట్ మరియు సర్వర్ ఒకే మెషీన్ అయినా కనెక్షన్ను నిరోధించే స్థానిక యాంటీవైరస్ లేదా హోస్ట్ ఫైర్వాల్ను మినహాయించండి. కాన్ఫిగరేషన్ మార్చకముందే విఫలమయ్యే దశను నమోదు చేయండి, ఎందుకంటే పేరు పరిష్కారం, TCP చేరిక మరియు TLS లేదా లాగిన్ ప్రతిదీ వేరే సందేశంతో విఫలమవుతాయి.

దశను టికెట్లో రాయండి. లేకపోతే తదుపరి వ్యక్తి ఇదంతా ప్రారంభించిన అదే కనెక్షన్-స్ట్రింగ్ వెతుకుడును పునరావృతం చేస్తారు.

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