2015-04-13 12 views
5

Gelöst!Unit-Tests können nicht in Bluemix Build & Deploy Pipeline ausgeführt werden, da die Server keine Verbindung zu ClearDB herstellen können. MySQL

Sieht aus wie der Pipelineservice in Bluemix aktualisiert wurde, die Verbindung zu ClearDB funktioniert jetzt wunderbar! Danke an alle, die diese Veränderung vorangetrieben haben! :)

-

ich den Code leite im Bluemix bauen & Deploy-Pipeline, nicht innerhalb der Liberty Profil App-Server (die Anwendung arbeitet dort in Ordnung), liegt das Problem auf der BUILD-Stufe der Pipeline (MVN saubere Installation), während meine Unit-Tests laufen, hier ist die Fehlermeldung

Bau neuer Hibernate Session 2015.04.11 15.04.49 [main] eRROR ohutil.JDBCExceptionReporter - Kommunikationsverbindungsfehler

Das letzte erfolgreich an den Server gesendete Paket war 0 Millisekunden vor. Der Treiber hat keine Pakete vom Server erhalten.

Die Unit Test-Klassen können keine Verbindung zur Datenbank herstellen.

Mein Code hat nichts besonderes, Sie können jede Standard-JDBC-Verbindung in einer JUnit-Testklasse erstellen und versuchen, eine Verbindung mit der Datenbank herzustellen, aber wenn Sie diese Verbindungsbeschränkung leicht bestätigen möchten, können Sie hier testen dies ohne Java-Code:

  • eine App Liberty-Profil erstellen mit einigen Starter-Code
  • die "ClearDB MySQL" Service, um es erstellen und binden
  • In der App Übersichtsseite, erweitern sie die ClearDB Box durch klicken auf "Show Credentials" und kopieren Sie den Hostnamen (zB us-cdbr-test-west-07.cleardb.net).
  • hinzufügen GIT, zurück zum App Übersicht, klicken Sie auf Code bearbeiten, klicken Sie auf „Build & Deploy“, klicken Sie auf das Symbol Konfiguration der „BUILD Stage“, wählen Sie „Configure Stage“ und fügen Sie den folgenden Code die Kommandobox:

Code

REMOTEHOST=us-cdbr-test-west-07.cleardb.net 
REMOTEPORT=3306 
TIMEOUT=1 

if nc -w $TIMEOUT -z $REMOTEHOST $REMOTEPORT; then 
    echo "I was able to connect to ${REMOTEHOST}:${REMOTEPORT}" 
else 
    echo "Connection to ${REMOTEHOST}:${REMOTEPORT} failed; exit code from netcat was $?" 
fi 
  • die BUILD Bühne starten und prüfen, ob diese Meldung erscheint:
[86d18f86-4ade-4e02-8282-171dc9757272] $ /bin/bash /tmp/hudson5506792757013948518.sh 
Connection to us-cdbr-test-west-07.cleardb.net:3306 failed; exit code from netcat was 1 

Bitte lassen Sie wissen, ob es einen Weg gibt ist die Pipeline zu konfigurieren, damit es mit ClearDB kommunizieren kann.

+6

Heutzutage sind die Build- und Deploy-Server für ausgehende Verbindungen zu Port 80 und 443 begrenzt. Wir untersuchen derzeit, ob wir diese Beschränkung für diese Build-Server lockern und dennoch die erforderliche Sicherheitskonformität beibehalten können.Wir erkennen, dass dies eine große Einschränkung ist, die angegangen werden muss. Danke für deinen Fehlerbericht. Brian K. Martin IBM Bluemix Entwicklung –

+0

Können wir den Maschinen erlauben, mindestens mit den DB Services zu kommunizieren, die an die Pipeline der APP gebunden sind? Oder vielleicht alle ausgehenden Anfragen auf Port 3306? - Irgendeine Idee, wenn solche Änderung eingeführt werden könnte? – theMarceloR

+0

Sie sollten Ihr "gelöstes" Update als Antwort hinzufügen und akzeptieren. – jpapejr

Antwort

1

Es wurde ein Update für den Pipeline-Dienst in Bluemix durchgeführt, der diesen Fehler behoben hat. Verbindungen zum "ClearDB" -Dienst sollten jetzt funktionieren.