ਡਿਵੈਲਪਰ ਅਜੇ ਵੀ ਉਹ ਥਾਂ ਲੱਭਦੇ ਹਨ ਜਿੱਥੇ ਕੋਈ ਕਨੈਕਸ਼ਨ ਸਟਰਿੰਗ, 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 ਵਧਾ ਕੇ ਕਤਾਰਾਂ ਬੈਚ ਕਰੋ, ਤਾਂ ਆਉਣ-ਜਾਣ ਦੀ ਗਿਣਤੀ ਘਟਦੀ ਹੈ। ਰੁਕਾਵਟ ਬਦਲੀਆਂ ਦੀ ਗਿਣਤੀ ਹੈ, ਲਿੰਕ ਦੀ ਨਾਮਮਾਤਰ ਗਤੀ ਨਹੀਂ, ਇਸ ਲਈ ਥ੍ਰੂਪੁੱਟ ਮਾਪਣਾ ਤੁਹਾਨੂੰ ਭਰਮਾ ਦੇਵੇਗਾ ਪਰ ਆਉਣ-ਜਾਣ ਮਾਪਣਾ ਨਹੀਂ। ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਅਸਲ ਵਿੱਚ ਜੋ ਸਭ ਤੋਂ ਵੱਡਾ ਨਤੀਜਾ ਸੈੱਟ ਖਿੱਚਦੇ ਹਨ ਉਸ ਨਾਲ ਟੈਸਟ ਕਰੋ, ਤੁਰੰਤ ਮੁੜ ਆਉਣ ਵਾਲੀ ਇੱਕ-ਕਤਾਰ ਕਵੈਰੀ ਨਾਲ ਨਹੀਂ। ਜੇ ਸਮਾਂ ਸੀਮਾ ਖਿਸਕਦੀ ਹੈ ਪਰ ਗਾਇਬ ਨਹੀਂ ਹੁੰਦੀ, ਤਾਂ ਕਮਾਂਡ ਦੀ ਸਮਾਂ ਸੀਮਾ ਅਤੇ fetch size ਇਕੱਠੇ ਵਧਾਓ ਅਤੇ ਮੁੜ ਮਾਪੋ।

ਇਹੀ ਗਣਿਤ ਬੋਲਣ ਵਾਲੇ ORM ਅਤੇ ਹਰ ਉਸ ਕਲਾਇੰਟ ਉੱਤੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ ਜੋ ਪ੍ਰਤੀ ਕਤਾਰ ਇੱਕ ਬਿਆਨ ਭੇਜਦਾ ਹੈ। ਜੇ ਕਵੈਰੀ ਯੋਜਨਾ ਠੀਕ ਹੈ ਅਤੇ ਤਬਾਦਲਾ ਛੋਟਾ ਹੈ, ਤਾਂ ਡੇਟਾਬੇਸ ਟਿਊਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਨੈੱਟਵਰਕ ਬਦਲੀਆਂ ਗਿਣੋ।

ਪੋਰਟ, ਇੰਸਟੈਂਸ ਅਤੇ ਸਥਾਨਕ ਫਿਲਟਰ ਜਾਂਚੋ

ਨਾਮਿਤ ਇੰਸਟੈਂਸ ਗਤੀਸ਼ੀਲ ਪੋਰਟ ਉੱਤੇ ਸੁਣਦਾ ਹੈ, ਇਸ ਲਈ 1433 ਮੰਨਣ ਦੀ ਥਾਂ ਪੋਰਟ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ। ਡਿਫਾਲਟ ਇੰਸਟੈਂਸ ਉੱਤੇ ਮੁੱਲ ਇੰਸਟੈਂਸ ਦੀ SuperSocketNetLib ਕੁੰਜੀ ਹੇਠਲੇ TcpPort ਰਜਿਸਟਰੀ ਮੁੱਲ ਤੋਂ ਪੜ੍ਹਿਆ ਜਾ ਸਕਦਾ ਹੈ। Oracle ਲਈ, ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ tnsnames.ora ਦਾ ਹੋਸਟ ਹੱਲ ਹੁੰਦਾ ਹੈ, ਪਤਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ ਅਤੇ listener ਪੋਰਟ ਦੀ ਆਗਿਆ ਹੈ; 1521 ਆਮ ਡਿਫਾਲਟ ਹੈ, ਗਾਰੰਟੀ ਨਹੀਂ।

ਫਿਰ ਟਨਲ ਦੀ ਆਪਣੀ ਪਹੁੰਚ ਸੂਚੀ ਅਤੇ ਅਖੀਰ ਵਿੱਚ ਸਥਾਨਕ ਐਂਟੀਵਾਇਰਸ ਜਾਂ ਹੋਸਟ ਫਾਇਰਵਾਲ ਹਟਾਓ ਜੋ ਕਲਾਇੰਟ ਅਤੇ ਸਰਵਰ ਇੱਕੋ ਮਸ਼ੀਨ ਹੋਣ ਤੇ ਵੀ ਕਨੈਕਸ਼ਨ ਰੋਕਦਾ ਹੈ। ਸੰਰਚਨਾ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਫੇਲ੍ਹ ਹੋਣ ਵਾਲਾ ਪੜਾਅ ਦਰਜ ਕਰੋ, ਕਿਉਂਕਿ ਨਾਮ ਹੱਲ ਕਰਨਾ, TCP ਪਹੁੰਚ ਅਤੇ TLS ਜਾਂ ਲੌਗਇਨ ਹਰ ਇੱਕ ਵੱਖਰੇ ਸੁਨੇਹੇ ਨਾਲ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ।

ਪੜਾਅ ਟਿਕਟ ਵਿੱਚ ਲਿਖੋ। ਨਹੀਂ ਤਾਂ ਅਗਲਾ ਵਿਅਕਤੀ ਉਹੀ ਕਨੈਕਸ਼ਨ-ਸਟਰਿੰਗ ਖੋਜ ਦੁਹਰਾਏਗਾ ਜਿਸ ਨਾਲ ਸਭ ਕੁਝ ਸ਼ੁਰੂ ਹੋਇਆ ਸੀ।

ਸੰਬੰਧਿਤ ਲੇਖ