Rydych chi’n agor yr haen yn QGIS ac mae’n rendro. Mae cydweithiwr ar yr un VPN yn cael gwall ar gyfer yr un haen. Mae rhywun yn casglu bod y VPN wedi torri, ac mae’r awr nesaf yn mynd ar symud cronfa ddata neu ar agor porth nad oedd angen y naill na’r llall arno erioed. Mae’r cais o’r bwrdd gwaith a’r ymholiad y mae GeoServer yn ei wneud i PostGIS yn gadael o wahanol beiriannau, mewn gwahanol ofodau enwau rhwydwaith, o dan wahanol gyfrifon. Gwahanu’r ddau lwybr hynny yw’r rhan fwyaf o’r diagnosis.

Dau gysylltiad, dau darddiad

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

Nid yw’r ail saeth yn etifeddu twnnel y cyfrifiadur cyntaf. Mae gan GeoServer mewn cynhwysydd stac rhwydwaith y cynhwysydd, nid un y gwesteiwr, a gall cynhwysydd ar rwydwaith pont gyraedd cronfa ddata na all y gwesteiwr ei chyrraedd, neu’r gwrthwyneb. Felly gall yr un defnyddiwr lwyddo a methu o fewn un sesiwn, yn dibynnu a ddaeth yr ateb o’r storfa neu o ymholiad ffres.

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

Dod o hyd i’r cam a fethodd mewn gwirionedd

Mae gwrthodiad ar lefel gwasanaeth, cais delwedd nad yw’n cyrraedd ei storfa ddata, a phroblem caniatâd mewn un haen yn edrych yr un fath mewn tab porwr ac yn hollol wahanol yng nghofnod y gweinydd. Gofynnwch am y gweithrediad penodol, yna darllenwch ddigwyddiad GeoServer ei hun ar gyfer yr un stamp amser.

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"

Mae 200 o’r ail gais gyda delwedd credadwy yn profi bod y storfa ddata wedi ateb. Mae 200 gyda dogfen eithriad gwasanaeth yn profi na wnaeth, ac mae testun yr eithriad fel arfer yn enwi’r storfa yn hytrach na’r cleient.

Darllen y storfa ddata o ochr y gweinydd

Mae’r cyfeirlyfr PostGIS GeoServer yn rhestru’r hyn y mae ar y storfa ei angen: gwesteiwr, porth, cronfa ddata a chyfrifon. Mae hyn i gyd yn disgrifio’r cysylltiad y mae GeoServer yn ei agor. Nid oes dim o hyn yn disgrifio mewngofnodi gan y cleient bwrdd gwaith. Darllenwch y pedwar maes hynny fel datganiad am gyd-destun rhwydwaith y gweinydd, ac mae’r dosbarth cyfan o docynnau «mae’n gweithio gyda nhw» yn dod yn hydrin.

Dyna pam y mae localhost mewn storfa ddata mor gyffredin o gamgymeriad. Mae’n golygu cyd-destun rhwydwaith proses GeoServer ei hun. Os yw GeoServer yn rhedeg yn Docker tra bod PostGIS yn rhedeg ar y gwesteiwr, localhost yn pwyntio tu mewn i’r cynhwysydd ac yn dod o hyd i ddim, ac nid oes unrhyw faint o ffurfweddu VPN yn newid hynny.

Ar y gweinydd, gwiriwch y llwybr, y gwrandawr a’r polisi dilysu yn y drefn honno. Mae dilysu sy’n seiliedig ar westai PostgreSQL yn cyfateb y cyfeiriad ffynhonnell y mae’n ei weld, y gall porth ei gyfieithu, felly anaml y mae ychwanegu pwll VPN cleient at y ffeil HBA yn trwsio cysylltiad ar ochr y gweinydd. Profwch fel y byddai’r gweinydd yn ei wneud: yr un gwesteiwr, yr un porth, yr un defnyddiwr. Os yw’r prawf hwnnw’n llwyddo tra bod GeoServer yn dal i fethu, y gwahaniaeth yw cyd-destun y broses yn hytrach na’r gronfa ddata.

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

Mae pyrlau a storfa yn cadw cyflwr ar draws newidiadau

Mae pyrlau cysylltiadau’r storfa ddata yn cadw socedi ar agor. Nid yw twnnel a ddaeth i fyny awr ar ôl creu’r pwll o reidrwydd yn rhoi llwybr newydd i’r pwll, a gall cysylltiad segur eistedd ar lwybr marw nes bod dilysiad neu derfyn amser yn dod i ben. Gwiriwch osodiadau dilysu’r storfa sydd wedi’i gosod yn lle tybio adferiad, ac osgowch y demtasiwn i ailgychwyn y gwasanaeth cyfan cyn i chi wybod pa haen a fethodd.

Mae storfa teils yn creu delwedd drych o’r broblem honno: gallant wasanaethu map sy’n edrych yn gywir ymhell ar ôl i’r cysylltiad cronfa ddata dorri. Mae clirio’r storfa i «weld a yw’n helpu» yn dinistrio’r un darn o dystiolaeth a fyddai wedi dweud wrthych pa lwybr oedd yn fyw.

Trosglwyddo gyda’r ddau darddiad wedi’u henwi

Mae’r disgrifiad sy’n cael trwsio cyflym yn enwi dau beth: y cais cleient a gyrhaeddodd GeoServer, a’r gweithrediad cefn na allai GeoServer ei gwblhau. Gyda’r ddau, gall y perchennog cywir drwsio’r llwybr a fethodd. Gyda’r cyntaf yn unig, y trwsio naturiol yw datgelu’r gronfa ddata’n gyhoeddus, sy’n datrys y tocyn trwy greu problem waeth.

Nodwch yr haen, y cod ymateb, yr eithriad ar ochr y gweinydd a’r cynhwysydd neu’r gwesteiwr a’i cynhyrchodd. Mae’n bedair llinell, ac mae’n dileu’r amwysedd yn gyfan gwbl.

Erthyglau cysylltiedig