2015-04-13 1 views
5

RESOLU!Impossible d'exécuter des tests unitaires dans Bluemix Build & Deploy Pipeline car les serveurs ne peuvent pas se connecter à ClearDB MySQL

On dirait que le service de pipeline dans Bluemix a été mis à jour, la connexion à ClearDB fonctionne à merveille maintenant! Merci à celui qui a poussé ce changement! :)

-

Je courais le code dans la construction Bluemix & pipeline Déployer, pas à l'intérieur du serveur d'applications de profil Liberty (l'application fonctionne il bien), le problème est sur la scène BUILD du pipe-line (installer mvn clean) lors de l'exécution de mes tests unitaires, voici le message d'erreur

nouvelle construction SessionFactory Hibernate 11/04/2015 15:04:49 [principale] erreur ohutil.JDBCExceptionReporter - lien Communications échec

Le dernier paquet envoyé avec succès au serveur était 0 millisecondes . Le pilote n'a reçu aucun paquet du serveur.

Les classes de test d'unité ne peuvent pas se connecter à la base de données.

Mon code n'a rien de spécial, vous pouvez créer n'importe quelle connexion JDBC standard dans une classe JUnit Test et essayer d'établir une connexion avec le db, mais si vous voulez confirmer facilement cette limitation de connectivité, voici comment vous pouvez tester ceci sans code Java:

  • Créer une application profil de Liberty avec un certain code de démarrage
  • Créer et lier le service « ClearDB MySQL » à ce
  • Dans la page Présentation de l'application, développez la zone ClearDB en cliquant sur "Afficher Informations d'identification" et copier le nom d'hôte (par exemple, us-cdbr-test-west-07.cleardb.net).
  • Ajouter GIT, retour à l'App Vue d'ensemble, cliquez sur EDIT CODE, Cliquez sur « Build & Déployer », cliquez sur l'icône de configuration de la « CONSTRUIRE Stage », sélectionnez « Configurer étape » et ajoutez le code suivant à la boîte de commande :

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 
  • Démarrer la scène BUILD et vérifier si ce message apparaît:
[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 

S'il vous plaît faire savoir s'il y a un moyen de configurer le pipeline afin qu'il puisse communiquer avec ClearDB.

+6

Aujourd'hui, les serveurs de build et de déploiement sont limités sur les connexions sortantes vers les ports 80 et 443. Nous étudions actuellement si nous pouvons desserrer cette restriction sur ces serveurs de build tout en maintenant la conformité de sécurité requise.Nous reconnaissons que c'est une grande limite qui doit être résolue. Merci pour votre rapport de bug. Brian K. Martin Développement IBM Bluemix –

+0

Pouvons-nous permettre aux machines de communiquer au moins avec les services DB qui sont liés au pipeline de l'APP? Ou peut-être toutes les demandes sortantes sur le port 3306? - Une idée quand un tel changement pourrait être introduit? – theMarceloR

+0

Vous devriez ajouter votre mise à jour "résolue" comme réponse et l'accepter. – jpapejr

Répondre

1

Il y a eu une mise à jour du service de pipeline dans Bluemix, qui a corrigé ce bogue. Les connexions au service "ClearDB" devraient maintenant fonctionner.