Þú opnar lagið í QGIS og það teiknast. Kollegi á sama VPN fær villu fyrir sama lag. Einhver ályktar að VPN-ið sé bilað, og næsta klukkustund fer í að flytja gagnagrunn eða opna port sem þurfti hvorki né. Beiðnin frá skjáborðinu og fyrirspurnin sem GeoServer sendir PostGIS fara frá mismunandi vélum, í mismunandi nafnrýmum netsins, með mismunandi auðkennum. Að aðskilja þessar tvær slóðir er stærsti hluti greiningarinnar.

Tvær tengingar, tveir upprunar

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

Önnur örin erfir ekki göng fyrstu tölvunnar. GeoServer í gám hefur netstafla gámsins, ekki hýsilsins, og gámur á brúaðu neti getur náð í gagnagrunn sem hýsillinn nær ekki í, eða öfugt. Þannig getur sami notandi tekist og mistekist í sömu lotu, eftir því hvort svarið kom úr skyndiminninu eða úr nýrri fyrirspurn.

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

Finndu skrefið sem raunverulega mistókst

Höfnun á þjónustustigi, myndbeiðni sem nær ekki í gagnageymsluna sína og heimildavandamál í einu lagi líta eins út í vafraflipa og allt öðruvísi í þjónsloggnum. Biddu um tiltekna aðgerð og lestu síðan eigin atburð GeoServer fyrir sama tímastimpil.

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 frá seinni beiðninni með sennilega mynd sannar að gagnageymslan svaraði. 200 með þjónustuundantekningarskjali sannar að hún gerði það ekki, og texti undantekningarinnar nefnir yfirleitt geymsluna frekar en biðlarann.

Lestu gagnageymsluna frá hlið netþjónsins

Í PostGIS-viðmiðun GeoServer er listuð upp það sem geymslan þarf: hýsill, port, gagnagrunnur og auðkenni. Allt þetta lýsir tengingunni sem GeoServer opnar. Ekkert af því lýsir innskráningu frá skjáborðsbiðlaranum. Lestu þessi fjögur svæði sem fullyrðingu um netumhverfi netþjónsins, og allur flokkur miða þar sem „þetta virkar hjá þeim“ verður viðráðanlegur.

Þess vegna er localhost í gagnageymslu svo algeng mistök. Það þýðir eigið netumhverfi GeoServer-ferlisins. Ef GeoServer keyrir í Docker á meðan PostGIS keyrir á hýslinum, localhost vísar inn í gáminn og finnur ekkert, og engin VPN-stilling breytir því.

Á netþjóninum skaltu athuga slóðina, hlustandann og auðkenningarstefnuna í þeirri röð. Hýsilbundin auðkenning PostgreSQL ber saman upprunaaðsetrið sem hún sér, sem gátt getur þýtt, svo að bæta biðlara-VPN-laugarhóp við HBA-skrána lagar sjaldan tengingu á þjónshlið. Prófaðu eins og netþjónninn myndi gera: sami hýsill, sama port, sami notandi. Ef sú prófun heppnast á meðan GeoServer mistekst enn, er munurinn í ferlisumhverfinu en ekki í gagnagrunninum.

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

Laugarhópar og skyndiminni halda stöðu yfir breytingar

Tengingarlaugarhópar gagnageymslunnar halda sokkum opnum. Göng sem komu upp klukkustund eftir að laugarhópurinn var búinn til gefa laugarhópnum ekki endilega nýja slóð, og óvirk tenging getur setið á dauðri leið þar til staðfesting eða tímanámskemmd lýkur henni. Athugaðu staðfestingarstillingar uppsettu geymslunnar í stað þess að gera ráð fyrir bata, og forðastu freistnina að endurræsa alla þjónustuna áður en þú veist hvaða lag mistókst.

Flísaskyndiminni skapa spegilmynd þess vandamáls: þau geta borið fram rétt útlitandi kort löngu eftir að gagnagrunnstengingin raufnaði. Að tæma skyndiminnið til að „sjá hvort það hjálpi“ eyðileggur eina sönnunargagnið sem hefði sagt þér hvaða slóð var lifandi.

Afhenda með báða upprunana nefnda

Lýsingin sem fær skjóta lagfæringu nefnir tvo hluti: biðlarabeiðnina sem náði í GeoServer, og bakendaðgerðina sem GeoServer gat ekki klárað. Með báðum getur rétti eigandinn gert við slóðina sem mistókst. Með aðeins hinni fyrri er eðlilega lagfæringin að gera gagnagrunninn opinberan, sem leysir miðann með því að skapa verra vandamál.

Skráðu lagið, svarkóðann, undantekninguna á þjónshlið og gáminn eða hýsilinn sem framleiddi hana. Það eru fjórar línur, og þær fjarlægja tvíræðnina að fullu.

Tengdir greinar