Questions & Answers

osswald
I'm new here

Mongo DB austauschen

Hallo zusammen,

unser Kunde mรถchte aus Performance und juristischen Grรผnden nicht die MongoDB des CaaS innerhalb des Clusters nutzen, sondern stattdessen eine eigene dedizierte MongoDB auรŸerhalb der Cloud anbinden.

Wie groรŸ ist der Aufwand dafรผr? Ist das รผberhaupt vorgesehen?

Vielen Dank schon mal fรผr Eure Antworten Smiley Happy

0 Kudos
15 Replies

Hallo Tanja,

ich denke, dass wir aktuell zuerst zwei andere Issues mit der Verbindung haben. Aber erstmal eine gute Nachricht: Vom Pod der RestAPI komme ich mit Curl ganz generell auf den MongoDB Service.

/ $ curl -i 5b4cbd6e-0ac1-41fb-903a-c8e5af8ffeec-0.659dc287bad647f9b4fe17c4e4c38dcc.databases.appdomain.cloud:30494

HTTP/1.0 200 OK

Connection: close

Content-Type: text/plain

Content-Length: 84

It looks like you are trying to access MongoDB over HTTP on the native driver port.

Allerdings habe ich festgestellt dass wir eine Exception bekommen, wenn ein GET kommt. Dann versucht der DefaulServerMonitor auf die Adresse des Arbiters zu verbinden und bekommt eine UnkownHostException (siehe Logfile im Anhang). Mich wundert auch, wie die Adresse des Arbiters zustande kommt.

Der zweite Punkt betrifft den Connection String. Ihr baut diesen ja wie folgt zusammen:

mongo-uri: mongodb://%CAAS_REPO_USER%:%CAAS_REPO_PASSWORD%@%CAAS_REPO_SERVER%/?authSource=admin&%CAAS_REPO_ADDITIONS%

Was wir aber benรถtigen wรคre:

mongo-uri: mongodb://%CAAS_REPO_USER%:%CAAS_REPO_PASSWORD%@%CAAS_REPO_SERVER%/ibmclouddb?authSource=admin&%CAAS_REPO_ADDITIONS%

Kann man das umstellen?

Viele GrรผรŸe

Uli

0 Kudos

Hallo Uli,

wie sieht denn Eure values.yml jetzt aus, also konkret die Werte fรผr caasRepoServer und caasRepoAdditions?

Soll mit "ibmclouddb" die Authentication Database benannt werden?

Frohe Ostern!

Tanja

0 Kudos

Hallo Tanja,

hier die Werte fรผr die beiden Keys sind aktuell wie folgt:

caasRepoServer  = 5b4cbd6e-0ac1-41fb-903a-c8e5af8ffeec-0.659dc287bad647f9b4fe17c4e4c38dcc.databases.appdomain.cloud:30494

caasRepoAdditions = replicaSet=replset\&ssl=true\&authSource=admin\&readPreference=secondaryPreferred\&serverSelectionTimeoutMS=5000

Ich habe /ibmclouddb erstmal weggelassen, da ich es nicht ganz verstehe. IBM nennt folgenden Connection String:

mongodb://<USER>:<PASSWORD>@5b4cbd6e-0ac1-41fb-903a-c8e5af8ffeec-0.659dc287bad647f9b4fe17c4e4c38dcc.databases.appdomain.cloud:30494,5b4cbd6e-0ac1-41fb-903a-c8e5af8ffeec-1.659dc287bad647f9b4fe17c4e4c38dcc.databases.appdomain.cloud:30494/ibmclouddb?authSource=admin&replicaSet=replset

Aber die authSource wird mit admin angegeben und das Funktioniert auch. Eine DB mit Namen ibmclouddb kann ich auch nicht finden wenn ich show dbs mache:

replset:PRIMARY> show dbs

admin      0.000GB

examples  0.000GB

local      0.006GB

myMongoDb  0.000GB

Also daher denke ich, dass es klappen sollte. Im Logfile kann man auch sehen, dass die Verbindung aufgebaut wird.

Kann unser Problem eher mit der Monitoring-Exception zusammenhรคngen die man in den Logs sieht? Ansonsten erhalte ich mit einem GET-Request ein 403 (siehe Log im Anhang).

Viele GrรผรŸe

Uli

0 Kudos

Hallo Uli,

meinem Verstรคndnis nach gibt es also zwei Probleme:

1. der Monitor-Thread meldet Fehler:

     a) ursprรผnglich einen SSL-Fehler (vg. Post von Marcel am 09.04.), welcher aber jetzt nicht mehr auftritt (?)

     b) jetzt den Fehler, dass der DNS-Name des Arbiters nicht aufgelรถst werden kann.

2. ein 403-Status bei GET

Zu 1.

Der Monitor-Thread wird vom Treiber gestartet - evtl. gibt es ein Kompatibilitรคtproblem. Gibt es seitens IBM eine Empfehlung, welcher Java-Treiber zu verwenden ist?

Was passiert, wenn Du den Connection-String genauso angibst, wie von IBM genannt - es sollte mรถglich sein, den Wert in caasRepoServer anzugeben.

zu 2.

Kannst Du auf MongoDB-Seite Logs sehen, die mehr Infos zu dem 403 auf GET zu bekommen? Existiert der User, den Du angibst, dort รผberhaupt? Und existiert die "caas_admin"-DB fรผr die API Keys?

Viele GrรผรŸe,

Tanja

Nachtrag:

Ich habe gerade noch diesen Post hier gefunden: [JAVA-3103] Do not monitor the arbiters - MongoDB

Das hรถrt sich dann fรผr mich so an, als ob man den Fehler des Monitor-Thread ignorieren kann - zumal er auch nur als INFO geloggt wird.

0 Kudos

Hallo Tanja,

vielen Dank fรผr den Hinweis! Das Bootstrap war nicht korrekt. Jetzt geht es, lag tatsรคchlich am API Key.

Viele GrรผรŸe

Uli

0 Kudos

Hallo Uli,

das ist schรถn zu hรถren! Wenn das Thema nun erledigt ist, wรคre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere Community-Teilnehmer diese auf den ersten Blick finden. Gerne kannst Du natรผrlich auch noch nรคhere Details zur Lรถsung teilen, falls diese fรผr die Allgemeinheit (und uns natรผrlich :-)) interessant sein kรถnnten.

Viele GrรผรŸe,

Tanja

0 Kudos

Type a product name