ਤੁਸੀਂ QGIS ਵਿੱਚ ਲੇਅਰ ਖੋਲ੍ਹਦੇ ਹੋ ਅਤੇ ਉਹ ਰੈਂਡਰ ਹੁੰਦੀ ਹੈ। ਉਸੇ VPN ਉੱਤੇ ਇੱਕ ਸਹਿਕਰਮੀ ਨੂੰ ਉਸੇ ਲੇਅਰ ਲਈ ਗਲਤੀ ਮਿਲਦੀ ਹੈ। ਕੋਈ ਸਿੱਟਾ ਕੱਢਦਾ ਹੈ ਕਿ VPN ਖਰਾਬ ਹੈ, ਅਤੇ ਅਗਲਾ ਘੰਟਾ ਕੋਈ ਡੇਟਾਬੇਸ ਹਿਲਾਉਣ ਜਾਂ ਅਜਿਹਾ ਪੋਰਟ ਖੋਲ੍ਹਣ ਵਿੱਚ ਲੱਗਦਾ ਹੈ ਜਿਸਨੂੰ ਕਦੇ ਇਹਨਾਂ ਦੋਹਾਂ ਦੀ ਲੋੜ ਹੀ ਨਹੀਂ ਸੀ। ਡੈਸਕਟਾਪ ਤੋਂ ਜਾਣ ਵਾਲੀ ਬੇਨਤੀ ਅਤੇ GeoServer ਜੋ ਕੁਐਰੀ PostGIS ਨਾਲ ਕਰਦਾ ਹੈ, ਉਹ ਵੱਖਰੀਆਂ ਮਸ਼ੀਨਾਂ ਤੋਂ, ਵੱਖਰੇ ਨੈੱਟਵਰਕ ਨਾਮ-ਥਾਂਵਾਂ ਵਿੱਚ, ਵੱਖਰੇ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਨਾਲ ਨਿਕਲਦੇ ਹਨ। ਇਹਨਾਂ ਦੋ ਰਾਹਾਂ ਨੂੰ ਵੱਖ ਕਰਨਾ ਹੀ ਨਿਦਾਨ ਦਾ ਵੱਡਾ ਹਿੱਸਾ ਹੈ।

ਦੋ ਕਨੈਕਸ਼ਨ, ਦੋ ਸਰੋਤ

QGIS  ->  client's permitted path (often the VPN)  ->  GeoServer listener
GeoServer -> server's permitted path  ->  PostGIS listener

ਦੂਜਾ ਤੀਰ ਪਹਿਲੇ ਕੰਪਿਊਟਰ ਦੀ ਸੁਰੰਗ ਵਿਰਾਸਤ ਵਿੱਚ ਨਹੀਂ ਲੈਂਦਾ। ਕੰਟੇਨਰ ਵਿੱਚ ਚੱਲਦਾ GeoServer ਕੰਟੇਨਰ ਦਾ ਨੈੱਟਵਰਕ ਸਟੈਕ ਰੱਖਦਾ ਹੈ, ਹੋਸਟ ਦਾ ਨਹੀਂ, ਅਤੇ ਬ੍ਰਿਜ ਨੈੱਟਵਰਕ ਉੱਤੇ ਕੰਟੇਨਰ ਅਜਿਹੇ ਡੇਟਾਬੇਸ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ ਜਿੱਥੇ ਹੋਸਟ ਨਹੀਂ ਪਹੁੰਚਦਾ, ਜਾਂ ਉਲਟਾ। ਇਸ ਲਈ ਉਹੀ ਵਰਤੋਂਕਾਰ ਇੱਕ ਹੀ ਸੈਸ਼ਨ ਵਿੱਚ ਸਫਲ ਵੀ ਹੋ ਸਕਦਾ ਹੈ ਅਤੇ ਅਸਫਲ ਵੀ, ਇਸ ਗੱਲ ਉੱਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਜਵਾਬ ਕੈਸ਼ ਤੋਂ ਆਇਆ ਜਾਂ ਤਾਜ਼ਾ ਕੁਐਰੀ ਤੋਂ।

What you testedWhat it proves
Portal page or GetCapabilitiesHTTP reachability to GeoServer only
A tile served from cachenothing about the database
GetMap for an uncached layera datastore query had to happen

ਉਹ ਕਦਮ ਲੱਭੋ ਜੋ ਅਸਲ ਵਿੱਚ ਫੇਲ੍ਹ ਹੋਇਆ

ਸੇਵਾ-ਪੱਧਰ ਦਾ ਇਨਕਾਰ, ਆਪਣੇ ਡੇਟਾ ਸਟੋਰ ਤੱਕ ਨਾ ਪਹੁੰਚਣ ਵਾਲੀ ਇਮੇਜ ਬੇਨਤੀ, ਅਤੇ ਇੱਕ ਲੇਅਰ ਵਿੱਚ ਇਜਾਜ਼ਤ ਦੀ ਸਮੱਸਿਆ ਬ੍ਰਾਊਜ਼ਰ ਟੈਬ ਵਿੱਚ ਇੱਕੋ ਜਿਹੀ ਦਿਸਦੀ ਹੈ ਅਤੇ ਸਰਵਰ ਲੌਗ ਵਿੱਚ ਬਿਲਕੁਲ ਵੱਖਰੀ। ਖ਼ਾਸ ਕਿਰਿਆ ਮੰਗੋ, ਫਿਰ ਉਸੇ ਸਮਾਂ-ਛਾਪ ਲਈ ਸਰਵਰ ਦੀ ਆਪਣੀ ਘਟਨਾ ਪੜ੍ਹੋ।

curl -s -o /dev/null -w '%{http_code}\n' \
  "https://gis.example.com/geoserver/wms?service=WMS&version=1.3.0&request=GetCapabilities"

curl -s -o /tmp/tile.png -w '%{http_code} %{size_download}\n' \
  "https://gis.example.com/geoserver/wms?service=WMS&version=1.3.0&request=GetMap&layers=corp:parcels&bbox=-13650000,4500000,-13600000,4550000&width=256&height=256&srs=EPSG:3857&format=image/png"

ਦੂਜੀ ਬੇਨਤੀ ਦਾ ਭਰੋਸੇਯੋਗ ਇਮੇਜ ਨਾਲ 200 ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਡੇਟਾ ਸਟੋਰ ਨੇ ਜਵਾਬ ਦਿੱਤਾ। ਸੇਵਾ-ਅਪਵਾਦ ਦਸਤਾਵੇਜ਼ ਨਾਲ 200 ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਨਹੀਂ ਦਿੱਤਾ, ਅਤੇ ਅਪਵਾਦ ਦਾ ਲਿਖਤ ਆਮ ਤੌਰ ਉੱਤੇ ਕਲਾਇੰਟ ਦੀ ਥਾਂ ਸਟੋਰ ਦਾ ਨਾਮ ਲੈਂਦਾ ਹੈ।

ਡੇਟਾ ਸਟੋਰ ਸਰਵਰ ਦੇ ਪਾਸਿਓਂ ਪੜ੍ਹੋ

GeoServer ਦਾ PostGIS ਹਵਾਲਾ ਸਟੋਰ ਨੂੰ ਕੀ ਚਾਹੀਦਾ ਹੈ ਸੂਚੀਬੱਧ ਕਰਦਾ ਹੈ: ਹੋਸਟ, ਪੋਰਟ, ਡੇਟਾਬੇਸ ਅਤੇ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ। ਇਹ ਸਭ ਉਸ ਕਨੈਕਸ਼ਨ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ ਜੋ GeoServer ਖੋਲ੍ਹਦਾ ਹੈ। ਇਸ ਵਿੱਚੋਂ ਕੁਝ ਵੀ ਡੈਸਕਟਾਪ ਕਲਾਇੰਟ ਤੋਂ ਲੌਗਇਨ ਦਾ ਵਰਣਨ ਨਹੀਂ ਕਰਦਾ। ਇਹਨਾਂ ਚਾਰ ਖੇਤਰਾਂ ਨੂੰ ਸਰਵਰ ਦੇ ਨੈੱਟਵਰਕ ਸੰਦਰਭ ਬਾਰੇ ਬਿਆਨ ਸਮਝੋ, ਅਤੇ «ਉਹਨਾਂ ਕੋਲ ਚੱਲਦਾ ਹੈ» ਟਿਕਟਾਂ ਦੀ ਪੂਰੀ ਸ਼੍ਰੇਣੀ ਹੱਲਯੋਗ ਹੋ ਜਾਂਦੀ ਹੈ।

ਇਸ ਲਈ localhost ਡੇਟਾ ਸਟੋਰ ਵਿੱਚ ਇੰਨੀ ਆਮ ਗਲਤੀ ਹੈ। ਇਸਦਾ ਅਰਥ GeoServer ਪ੍ਰਕਿਰਿਆ ਦਾ ਆਪਣਾ ਨੈੱਟਵਰਕ ਸੰਦਰਭ ਹੈ। ਜੇ GeoServer Docker ਵਿੱਚ ਚੱਲਦਾ ਹੈ ਜਦਕਿ PostGIS ਹੋਸਟ ਉੱਤੇ ਚੱਲਦਾ ਹੈ, localhost ਕੰਟੇਨਰ ਦੇ ਅੰਦਰ ਸੰਕੇਤ ਕਰਦਾ ਹੈ ਅਤੇ ਕੁਝ ਨਹੀਂ ਲੱਭਦਾ, ਅਤੇ ਕੋਈ ਵੀ VPN ਸੰਰਚਨਾ ਇਹ ਨਹੀਂ ਬਦਲਦੀ।

ਸਰਵਰ ਉੱਤੇ ਰਾਹ, ਸੁਣਨ ਵਾਲਾ ਅਤੇ ਪ੍ਰਮਾਣਿਕਤਾ ਨੀਤੀ ਇਸੇ ਕ੍ਰਮ ਵਿੱਚ ਜਾਂਚੋ। PostgreSQL ਦੀ ਹੋਸਟ-ਅਧਾਰਤ ਪ੍ਰਮਾਣਿਕਤਾ ਉਸੇ ਸਰੋਤ ਪਤੇ ਨਾਲ ਮਿਲਾਉਂਦੀ ਹੈ ਜੋ ਉਹ ਦੇਖਦੀ ਹੈ, ਜਿਸਨੂੰ ਗੇਟਵੇ ਅਨੁਵਾਦ ਕਰ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ HBA ਫਾਈਲ ਵਿੱਚ ਕਲਾਇੰਟ VPN ਪੂਲ ਜੋੜਨਾ ਸਰਵਰ-ਪਾਸੇ ਦਾ ਕਨੈਕਸ਼ਨ ਘੱਟ ਹੀ ਸੁਧਾਰਦਾ ਹੈ। ਉਵੇਂ ਜਾਂਚੋ ਜਿਵੇਂ ਸਰਵਰ ਕਰਦਾ: ਉਹੀ ਹੋਸਟ, ਉਹੀ ਪੋਰਟ, ਉਹੀ ਵਰਤੋਂਕਾਰ। ਜੇ ਉਹ ਜਾਂਚ ਸਫਲ ਹੋਵੇ ਅਤੇ GeoServer ਅਜੇ ਵੀ ਫੇਲ੍ਹ ਹੋਵੇ, ਤਾਂ ਫ਼ਰਕ ਡੇਟਾਬੇਸ ਵਿੱਚ ਨਹੀਂ ਬਲਕਿ ਪ੍ਰਕਿਰਿਆ ਦੇ ਸੰਦਰਭ ਵਿੱਚ ਹੈ।

ip route get 10.20.5.11
ss -tnp | grep 5432
psql "host=10.20.5.11 dbname=gis user=geoserver" -c 'select 1'

ਪੂਲ ਅਤੇ ਕੈਸ਼ ਬਦਲਾਵਾਂ ਦੌਰਾਨ ਹਾਲਤ ਰੱਖਦੇ ਹਨ

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

ਟਾਈਲ ਕੈਸ਼ ਇਸ ਸਮੱਸਿਆ ਦੀ ਸ਼ੀਸ਼ੇ ਵਾਲੀ ਤਸਵੀਰ ਬਣਾਉਂਦੇ ਹਨ: ਡੇਟਾਬੇਸ ਕਨੈਕਸ਼ਨ ਟੁੱਟਣ ਤੋਂ ਬਹੁਤ ਬਾਅਦ ਵੀ ਉਹ ਸਹੀ ਦਿਸਦਾ ਨਕਸ਼ਾ ਪਰੋਸ ਸਕਦੇ ਹਨ। ਕੈਸ਼ ਖਾਲੀ ਕਰਨਾ ਤਾਂ ਜੋ «ਵੇਖੀਏ ਮਦਦ ਕਰਦਾ ਹੈ ਕਿ ਨਹੀਂ» ਉਹ ਇੱਕੋ ਸਬੂਤ ਨਸ਼ਟ ਕਰਦਾ ਹੈ ਜੋ ਤੁਹਾਨੂੰ ਦੱਸਦਾ ਕਿ ਕਿਹੜਾ ਰਾਹ ਜੀਵਤ ਸੀ।

ਦੋਵੇਂ ਸਰੋਤਾਂ ਦੇ ਨਾਮ ਲੈ ਕੇ ਸੌਂਪੋ

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

ਲੇਅਰ, ਜਵਾਬ ਕੋਡ, ਸਰਵਰ-ਪਾਸੇ ਦਾ ਅਪਵਾਦ ਅਤੇ ਉਹ ਕੰਟੇਨਰ ਜਾਂ ਹੋਸਟ ਜਿਸਨੇ ਇਹ ਬਣਾਇਆ, ਨੋਟ ਕਰੋ। ਇਹ ਚਾਰ ਲਾਈਨਾਂ ਹਨ, ਅਤੇ ਇਹ ਅਸਪਸ਼ਟਤਾ ਪੂਰੀ ਤਰ੍ਹਾਂ ਦੂਰ ਕਰਦੀਆਂ ਹਨ।

ਸੰਬੰਧਿਤ ਲੇਖ