.osm file is not loading remote server

Hi, I deployed ors war file to remote server but i am getting following error from remote console.
Where can i put the .osm file in remote server?

2022-02-03 09:38:45,240 INFO [ors.Application] - Starting Application v6.6.1 on ip-xx-xx-xx-xx with PID 25876 (/opt/tomcat/apache-tomcat-8.5.75/webapps/ors/WEB-INF/classes started by root in /opt/tomcat/apache-tomcat-8.5.75/webapps/manager/META-INF)
2022-02-03 09:38:45,245 DEBUG [ors.Application] - Running with Spring Boot v2.3.5.RELEASE, Spring v5.2.10.RELEASE
2022-02-03 09:38:45,246 INFO [ors.Application] - No active profile set, falling back to default profiles: default
2022-02-03 09:38:51,171 INFO [ors.Application] - Started Application in 6.997 seconds (JVM running for 59341.823)
2022-02-03 09:38:51,304 INFO [routing.RoutingProfileManager] - Total - 126.68 MB, Free - 33.80 MB, Max: 235.88 MB, Used - 92.88 MB
2022-02-03 09:38:51,304 INFO [routing.RoutingProfileManager] -
2022-02-03 09:38:51,342 INFO [routing.RoutingProfileManager] - ====> Initializing profiles from ‘openrouteservice/src/main/files/syria-latest.osm.pbf’ (10 threads) …
2022-02-03 09:38:51,344 INFO [routing.RoutingProfileManager] -
2022-02-03 09:38:51,348 INFO [routing.RoutingProfileManager] -
2022-02-03 09:38:51,369 INFO [routing.RoutingProfile] - [1] Profiles: ‘driving-car’, location: ‘graphs/car’.
2022-02-03 09:38:51,621 ERROR [routing.RoutingProfileManager] - java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Your specified OSM file does not exist:/opt/tomcat/apache-tomcat-8.5.75/webapps/manager/META-INF/openrouteservice/src/main/files/syria-latest.osm.pbf
2022-02-03 09:38:51,621 ERROR [routing.RoutingProfileManager] - Failed to initialize RoutingProfileManager instance.
java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Your specified OSM file does not exist:/opt/tomcat/apache-tomcat-8.5.75/webapps/manager/META-INF/openrouteservice/src/main/files/syria-latest.osm.pbf
at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?]
at java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[?:?]
at org.heigit.ors.routing.RoutingProfileManager.initialize(RoutingProfileManager.java:178) ~[classes/:6.6.1]
at org.heigit.ors.routing.RoutingProfileManager.getInstance(RoutingProfileManager.java:72) ~[classes/:6.6.1]
at org.heigit.ors.routing.RoutingProfileManager.isInitComplete(RoutingProfileManager.java:668) ~[classes/:6.6.1]
at org.heigit.ors.servlet.listeners.ORSKafkaConsumerInitContextListener.lambda$contextInitialized$0(ORSKafkaConsumerInitContextListener.java:47) ~[classes/:6.6.1]
at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.lang.IllegalStateException: Your specified OSM file does not exist:/opt/tomcat/apache-tomcat-8.5.75/webapps/manager/META-INF/openrouteservice/src/main/files/syria-latest.osm.pbf
at com.graphhopper.reader.osm.OSMReader.readGraph(OSMReader.java:171) ~[graphhopper-reader-osm-v0.13.18.jar:?]
at com.graphhopper.GraphHopper.importData(GraphHopper.java:735) ~[graphhopper-core-v0.13.18.jar:?]
at com.graphhopper.GraphHopper.readData(GraphHopper.java:714) ~[graphhopper-core-v0.13.18.jar:?]
at com.graphhopper.GraphHopper.process(GraphHopper.java:701) ~[graphhopper-core-v0.13.18.jar:?]
at com.graphhopper.GraphHopper.importOrLoad(GraphHopper.java:680) ~[graphhopper-core-v0.13.18.jar:?]
at org.heigit.ors.routing.graphhopper.extensions.ORSGraphHopper.importOrLoad(ORSGraphHopper.java:155) ~[classes/:6.6.1]
at org.heigit.ors.routing.RoutingProfile.initGraphHopper(RoutingProfile.java:189) ~[classes/:6.6.1]
at org.heigit.ors.routing.RoutingProfile.(RoutingProfile.java:133) ~[classes/:6.6.1]
at org.heigit.ors.routing.RoutingProfileLoader.call(RoutingProfileLoader.java:35) ~[classes/:6.6.1]
at org.heigit.ors.routing.RoutingProfileLoader.call(RoutingProfileLoader.java:21) ~[classes/:6.6.1]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
… 1 more
2022-02-03 09:38:51,624 INFO [routing.RoutingProfileManager] - ====> Recycling garbage…
2022-02-03 09:38:51,625 INFO [routing.RoutingProfileManager] - Before: Total - 126.68 MB, Free - 34.69 MB, Max: 235.88 MB, Used - 91.99 MB
2022-02-03 09:38:51,856 INFO [routing.RoutingProfileManager] - After: Total - 126.68 MB, Free - 75.42 MB, Max: 235.88 MB, Used - 51.26 MB
2022-02-03 09:38:51,857 INFO [routing.RoutingProfileManager] - ========================================================================
2022-02-03 09:38:51,857 INFO [routing.RoutingProfileManager] - ====> Memory usage by profiles:
2022-02-03 09:38:51,857 INFO [routing.RoutingProfileManager] - Total: 0 B (0.0%)
2022-02-03 09:38:51,857 INFO [routing.RoutingProfileManager] - ========================================================================

I have a problem with OSM file too.

I download the osm file (and renamed osm_file.pbf) from Geofabrik. I do not understand i what folder I have to save it, so I save it in

C:\ORS\openrouteservice-master\docker\conf
C:\ORS\openrouteservice-master\docker\data
C:\ORS\openrouteservice-master\docker
C:\ORS\openrouteservice-master\openrouteservice\src\main\files
C:\ORS\openrouteservice-master\openrouteservice\src\main\resources

Anyway, when I run ORSTools in QGIS, it works only for heidelberg coordinates. For other countries, I get the error code 6010.

My docker-compose file is

version: ‘2.4’
services:
ors-app:
container_name: ors-app
ports:
- 8080:8080
- 9001:9001
image: openrouteservice/openrouteservice:latest
build:
context: …/
args:
ORS_CONFIG: ./openrouteservice/src/main/resources/ors-config-sample.json
OSM_FILE: ./openrouteservice/src/main/files/osm_file.pbf
user: “${ORS_UID:-0}:${ORS_GID:-0}”
volumes:
- ./graphs:/ors-core/data/graphs
- ./elevation_cache:/ors-core/data/elevation_cache
- ./logs/ors:/var/log/ors
- ./logs/tomcat:/usr/local/tomcat/logs
- ./conf:/ors-conf
# - ./your_osm.pbf:/ors-core/data/osm_file.pbf
environment:
- BUILD_GRAPHS=False # Forces the container to rebuild the graphs, e.g. when PBF is changed
- “JAVA_OPTS=-Djava.awt.headless=true -server -XX:TargetSurvivorRatio=75 -XX:SurvivorRatio=64 -XX:MaxTenuringThreshold=3 -XX:+UseG1GC -XX:+ScavengeBeforeFullGC -XX:ParallelGCThreads=4 -Xms1g -Xmx2g”
- “CATALINA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9001 -Dcom.sun.management.jmxremote.rmi.port=9001 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost”

I edited ors-config-sample as well

“sources”: [
“data/osm_file.pbf”
],

Thanks!!!

Hey,

I just stumbled over this, so let me try to give a quick answer at least to @MateuMT. I assume you’re working with the docker-compose approach and not building your own ORS from scratch, right? In this case, the only folder that’s relevant for you after downloading the ORS-Github-Repo is “docker”, which includes the docker-compose.yml.
First things first: After downloading and extracting, cd into the folder “docker” and run docker-compose up -d. This should download the ORS image from Dockerhub and set up ORS with the standard settings (i.e., using Heidelberg data and car profile; takes less than 5 minutes). Once this runs without errors, stop the container (to start from scratch, you can also remove it completely).

Now you can adapt your osm-file. For this, open the docker-compose.yml and change two things:
a) In line 21, remove the “#” (this line needs to point to your osm-file)
b) Change line 23 to “BUILD_GRAPHS=True”
In addition, put your osm-file as “your-osm.pbf” into the folder “docker”

Run “docker-compose up -d” once more inside the folder “docker”, and it should set up ORS and start building graphs.

Best

Many thanks. It seems it works now. I had a problem with RAM (in my former PC, only 4 GB). Now I have 16 GB so I can work with the roads of the whole Spain (although I read that using one profile I needed only 1 gb).

I modified docker-compose.yml to assign more memory
-Xms12g -Xmx14g

So when I do the docker-compose up, it builds the graphs and I can execute ORSTools QGIS plug-in.

Sometimes if I want to calculate a big matrix (5.000 x 5.000 points), I get the message “out of memory”. But no problem, I can calculate not so big matrix (1800 x 1800 points).

Many thanks. If results are right (I am sure they will be), I will do a donation

1 Like

Hey, thank you for sharing this method but it seems like the docker-compose.yml file of the latest version v8.0.0 has undergone some changes and the commented out line is not presnt. Instead it directly mounts the ORS application directory after running

  • ./ors-docker:/home/ors

How and where do I add a different OSM file for a different country for the latest docker compose file?