ich habe auf meinem postgres einen Planet-Import mit osmosis vom 3. April und würde jetz gerne das aktuelle Changeset draufschieben. Leider steige ich nicht ganz durch, wie osmosis die Daten genau haben will. Versucht habe ich unter anderem
Du hast Change-File und Changeset-File verwechselt. Das ist was anderes.
Normalerweise haben die den Suffix .osc und stammen von planet.openstreetmap.org. Der Suffix ist nicht zwingend (Namen sind hier Schall und Rauch) aber er macht mich schon stutzig.
In der DB sind die OSM Daten stand 3. April, importiert mit Osmosis. Diese Daten hätte ich nun gerne auf dem neusten Stand und wöchentlich aktualisiert.
Ich bin nach dieser Anleitung vorgegangen. Allerdings steigt er dann beim Abschnitt “Catching Up” mit
Mai 15, 2012 8:52:09 AM org.openstreetmap.osmosis.core.Osmosis run
Information: Osmosis Version 0.40.1
Mai 15, 2012 8:52:09 AM org.openstreetmap.osmosis.core.Osmosis run
Information: Preparing pipeline.
Mai 15, 2012 8:52:09 AM org.openstreetmap.osmosis.core.Osmosis run
Information: Launching pipeline execution.
Mai 15, 2012 8:52:09 AM org.openstreetmap.osmosis.core.Osmosis run
Information: Pipeline executing, waiting for completion.
Mai 15, 2012 8:52:30 AM org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
Schwerwiegend: Thread for task 1-rri failed
org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to read the state from the server.
at org.openstreetmap.osmosis.replication.common.ServerStateReader.getServerState(ServerStateReader.java:105)
at org.openstreetmap.osmosis.replication.common.ServerStateReader.getServerState(ServerStateReader.java:46)
at org.openstreetmap.osmosis.replication.v0_6.BaseReplicationDownloader.runImpl(BaseReplicationDownloader.java:2
67)
at org.openstreetmap.osmosis.replication.v0_6.BaseReplicationDownloader.run(BaseReplicationDownloader.java:349)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:75)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:337)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180).
aus. Auf welchen Server versucht er da zuzugreifen? Den aus der configuration.txt?
diese “Anleitung” ist mMn nicht zu gebrauchen. Es handelt sich um “Tertiär-Literatur”, in der der Autor unvollständig, unter Benutzung knapper Zitate, darauf hinweist, dass es ihm nach vielen Versuchen irgendwie gelungen ist. Netter Versuch.
Erste Quelle sollte die Original-Doku des Osmosis-Autors (1) und das OSM-Wiki (2) sein, wobei ich zugeben muss, dass ich (1) erst dann richtig verstanden habe, nachdem das Zeug bei mir lief.
Ansonsten fehlen in deiner Anfrage alle relevanten Informationen: Inhalt von configuration.txt und alle Befehle, die du eingegeben hast und die komplette Fehlermeldung.
Im Prinzip bist du auf dem richtigen Weg - wesentlich besser als bei der Original-Anfrage
PS C:\Daten\Tools\osmosis-0.40.1\bin> .\osmosis --rri workingDirectory="C:\Daten\OSM\Changesets\Daily" --sc --wpc host="
localhost" user="x" database="osm" password="y"
Mai 15, 2012 11:48:11 AM org.openstreetmap.osmosis.core.Osmosis run
Information: Osmosis Version 0.40.1
Mai 15, 2012 11:48:11 AM org.openstreetmap.osmosis.core.Osmosis run
Information: Preparing pipeline.
Mai 15, 2012 11:48:11 AM org.openstreetmap.osmosis.core.Osmosis run
Information: Launching pipeline execution.
Mai 15, 2012 11:48:11 AM org.openstreetmap.osmosis.core.Osmosis run
Information: Pipeline executing, waiting for completion.
Mai 15, 2012 11:48:33 AM org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
Schwerwiegend: Thread for task 1-rri failed
org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to read the state from the server.
at org.openstreetmap.osmosis.replication.common.ServerStateReader.getServerState(ServerStateReader.java:105)
at org.openstreetmap.osmosis.replication.common.ServerStateReader.getServerState(ServerStateReader.java:46)
at org.openstreetmap.osmosis.replication.v0_6.BaseReplicationDownloader.runImpl(BaseReplicationDownloader.java:2
67)
at org.openstreetmap.osmosis.replication.v0_6.BaseReplicationDownloader.run(BaseReplicationDownloader.java:349)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:75)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:337)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:388)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:483)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:213)
at sun.net.www.http.HttpClient.New(HttpClient.java:300)
at sun.net.www.http.HttpClient.New(HttpClient.java:316)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:992)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:928)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:846)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1296)
at org.openstreetmap.osmosis.replication.common.ServerStateReader.getServerState(ServerStateReader.java:91)
... 4 more
Mai 15, 2012 11:48:33 AM org.openstreetmap.osmosis.core.Osmosis main
Schwerwiegend: Execution aborted.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: One or more tasks failed.
at org.openstreetmap.osmosis.core.pipeline.common.Pipeline.waitForCompletion(Pipeline.java:146)
at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:92)
at org.openstreetmap.osmosis.core.Osmosis.main(Osmosis.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
Habe schon in den Quelltext geguckt, die Methode getServerState() scheint auf den Server aus der configuration.txt unter baseUrl angegebenen Adresse zuzugreifen zu wollen. Was er aber scheinbar auf Grund eines Timeouts nicht schafft.
damit holt er sich die Daten in kleineren Häppchen. Wenn es dann funktioniert, kannst du die Werte anpassen.
Gruss
Walter
p.s. Welchen Bereich des Planets willst du denn aktuell halten? Diese Methode lohnt sich eigentlich erst ab Germany aufwärts. Bei kleineren Bereichen und/oder grossen Intervallen ist ein Neu-Import einfacher.
Es haperte scheinbar an einer Proxy-Einstellung, jetz steigt er zumindest nicht mehr aus. Habe es mal mit meiner vorherigen config probier und jetz mit deiner:
Mai 15, 2012 2:52:22 PM org.openstreetmap.osmosis.core.Osmosis run
Information: Osmosis Version 0.40.1
Mai 15, 2012 2:52:23 PM org.openstreetmap.osmosis.core.Osmosis run
Information: Preparing pipeline.
Mai 15, 2012 2:52:23 PM org.openstreetmap.osmosis.core.Osmosis run
Information: Launching pipeline execution.
Mai 15, 2012 2:52:23 PM org.openstreetmap.osmosis.core.Osmosis run
Information: Pipeline executing, waiting for completion.
Mai 15, 2012 2:52:23 PM org.springframework.jdbc.core.JdbcTemplate extractReturnedResults
Information: Added default SqlReturnResultSet parameter named #result-set-1
Mai 15, 2012 2:52:23 PM org.openstreetmap.osmosis.core.Osmosis run
Information: Pipeline complete.
Mai 15, 2012 2:52:23 PM org.openstreetmap.osmosis.core.Osmosis run
Information: Total execution time: 889 milliseconds.
PS C:\Daten\Tools\osmosis-0.40.1\bin>
Er ackert kurz durch, aber passieren tut nicht wirklich etwas, außer das er mir die state.txt überschreibt und diese anschließend so aussieht:
#Tue May 15 14:55:52 CEST 2012
sequenceNumber=1268792
timestamp=2012-04-01T08\:07\:02Z
Ich würde gerne die gesamte Erde etwa wöchentlich aktuell halten.
Etwas komisch. Da muss ich leider passen. Ich hab aber das Gefühl, dass er sich aufgrund des State-Files nur wenige Daten besorgt. Da muss du noch etwas rumdrehen.
Das wäre dann ein riesiger Update; besser erscheint es mir, auf kleiner Intervalle umzustellen und die Sache permanent laufen zu lassen.
Aber erst mal überhaupt hinkriegen.
Gruss
walter
p.s. mit welchen Schema hast du denn den Planet importiert? Simple, Snapshot oder osm2pgsql?
Mit der State von hier scheint es jetzt zu laufen. Zumindest ein paar minutes haben nach dieser Anleitung geklappt, jetz versuche ich alles auf den neusten Stand zu bringen.
Truncate hätte nicht viel bewirkt, da sie ja bereits leer war. Aber Mittlerweile scheint es ja zu klappen, das Update läuft nun seit ner Stunde. Mal sehen wann er fertig ist.