IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

ORA-29273: HTTP request failed [11gR2]


Sujet :

PL/SQL Oracle

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut ORA-29273: HTTP request failed
    Bonjour,

    Je n'arrive pas à faire fonctionner un petit programme que l'on trouve sur le NET afin d'additionner deux entiers à partir d'un appel web service (UTL_HTTP).

    Je suis développeur et pas DBA ainsi que les privilèges nécessaires mais j'aimerais comprendre ce qui ne fonctionne pas.

    Merci pour votre aide

    paolo


    PS : J'utilise Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production sur Sun Microsystems Inc. SunOS 5.10 Generic January 2005


    Voici le bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    declare
    l_number number;
    begin
     l_number := add_soap_numbers(1, 5);
     dbms_output.put_line(l_number);
    end;
    Voici l'erreur générée :
    anonymous block completed

    Debug4:Error when invoking the request : ORA-29273: HTTP request failed
    ORA-06512: at "SYS.UTL_HTTP", line 1130
    ORA-12541: TNS:no listener
    Debug5:Error when returning the value : ORA-30625: method dispatch on NULL SELF argument is disallowed

  2. #2
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    Je comprends pas ce add_soap_numbers
    c'est une fonction ?

    Parce que bon, additionner deux entiers, c'est aussi simple que 1 + 1 quoi, t'as pas besoin de fonction pour ca, ni de package particulier.
    L'addition est une opération de base de tout sgbd, et notament d'oracle.

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut ORA-29273: HTTP request failed
    Bonjour et merci pour ta réponse,

    Oui, oui, je sais select 1+1 from dual...

    Mais il s'agit d'un exemple que j'ai trouvé sur le NET (http://oracle-base.com/articles/10g/utl_dbws-10g.php) (voir aussi scripts en copie) que j'essaie de faire fonctionner car dans le cadre d'un projet de migration, je devrai accéder à des WS qui vont me retourner les data et que je devrai "parser"...

    Pour revenir à mon exemple de test, la fonction "add_soap_numbers()" et le package "pck_soap_api" compilent bien mais à l'exécution Oracle me retourne une erreur (voir ci-dessous)

    Encore merci pour votre réaction

    paolo



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    declare
    l_number number;
    begin
     l_number := add_soap_numbers(1, 5);
     dbms_output.put_line(l_number);
    end;

    anonymous block completed
    Debug4:Error when invoking the request : ORA-29273: HTTP request failed
    ORA-06512: at "SYS.UTL_HTTP", line 1130
    ORA-12541: TNS:no listener
    Debug5:Error when returning the value : ORA-30625: method dispatch on NULL SELF argument is disallowed
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Pour une base Oracle 11g vous devez donnez l'accès aux adresses utilisées par le package HTTP. voir sur le même site "Fine-Grained Access to Network Services in Oracle Database 11g Release 1"

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut ORA-29273: HTTP request failed
    Merci pour l'info

    Oui, notre DBA a bien donné les accès dans l'ACL

    "....Means that we have to set ACL for the HTTP connection you are using and I set it like this..."

    ACL PRINCIPAL PRIVILEGE IS_GRANT INVER
    ----------------------------------- ----------------------------------- --------------- --------------- -----
    /sys/acls/http_access.xml myUser resolve true false
    /sys/acls/http_access.xml myUser connect true false


    De plus j'ai exécuté un autre exemple d'appel WS http://www.experts-exchange.com/Data...rom-PLSQL.html

    Mais j'ai encore ce genre d'erreur:
    Error report -
    ORA-29273: HTTP request failed
    ORA-06512: at "SYS.UTL_HTTP", line 1130
    ORA-12541: TNS:no listener
    ORA-06512: at line 29
    29273. 00000 - "HTTP request failed"
    *Cause: The UTL_HTTP package failed to execute the HTTP request.
    *Action: Use get_detailed_sqlerrm to check the detailed error message.
    Fix the error and retry the HTTP request.

  6. #6
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Je viens de tester votre dernier exemple après avoir configurer les acls.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Response> status_code: "200"
    Response> reason_phrase: "OK"
    Response> http_version: "HTTP/1.1"
    Response from w3schools webservices:
    10 Celsius =  50 Fahrenheit
    J'ai du justement ajouter le proxy via utl_http.set_proxy

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut [11gR2] ORA-29273: HTTP request failed
    Merci mnitu,

    Je vois que vous avez fait fonctionner l'exemple mais je ne comprends pas ce que vous entendez par "J'ai du justement ajouter le proxy via utl_http.set_proxy". S'agit-il d'une commande que l'on doit ajouter dans la configuration de l'ACL ou alors directement dans le code PL/SQL invoquant le WS

    PS:Je n'ai pas les droits DBA pour paramétrer la config (chose que je dois demander)

  8. #8
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Pour aller sur l'internet je doit passer par un proxy server, je n'ai pas le droit d'y aller directement. Et cela est vrai aussi pour la base Oracle que j'utilise.
    Donc dans le script que vous avez indiqué j'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    utl_http.set_transfer_timeout(60);
    utl_http.set_proxy(proxy => 'XXX.XX.XX.X:8080');        
    l_http_request := utl_http.begin_request(url          => 'http://www.w3schools.com/webservices/tempconvert.asmx'
    ...
    où bien évidement 'XXX.XX.XX.X masque la vrai adresse que j'ai utilisé.

  9. #9
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut [11gR2] ORA-29273: HTTP request failed
    Merici mnitu pour les explications, maintenant je comprends mieux.

    Notre DBA vient de me donner les explications, il a bien configuré l'ACL pour les appels WS en iterne seulement pour l'institution mais pas pour l'Internet (voir message ci-dessous).

    Ce que je voulais c'était juste faire fonctionner un exemple d'appel WS en attendant que les développeurs Java déploient leur solution en DEV.

    Mais maintenant c'est beaucoup plus clair pour moi maintenant.

    Encore un grand merci pour votre aide

    12541, 00000, "TNS:no listener"
    // *Cause: The connection request could not be completed because the listener
    // is not running.
    // *Action: Ensure that the supplied destination address matches one of
    // the addresses used by the listener - compare the TNSNAMES.ORA entry with
    // the appropriate LISTENER.ORA file (or TNSNAV.ORA if the connection is to
    // go by way of an Interchange). Start the listener on the remote machine.

    So as you can see it's related to the fact that your code is trying to reach a DB (hoping it's a DB because you are more trying to reach a WEB URL … ) for which the listener is not running.
    What I think is that this problem is more related to the WEB URL given in your code which is not the good one, you should not use oracle-base.com -> I guess this was an example but you have to use a EC internal Web URL to connect to.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Avril 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Vous l'avez ajouteé à quel endroit le code du proxy ?



    Citation Envoyé par mnitu Voir le message
    Je viens de tester votre dernier exemple après avoir configurer les acls.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Response> status_code: "200"
    Response> reason_phrase: "OK"
    Response> http_version: "HTTP/1.1"
    Response from w3schools webservices:
    10 Celsius =  50 Fahrenheit
    J'ai du justement ajouter le proxy via utl_http.set_proxy

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. failed to open stream: HTTP request failed! / simple_dom_html
    Par alex8276 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 12/05/2015, 15h37
  2. Problème avec file_get_contents "HTTP request failed!"
    Par mikaelhervouet dans le forum Langage
    Réponses: 2
    Dernier message: 21/06/2012, 09h17
  3. failed to open stream: HTTP request failed
    Par Lorenzo77 dans le forum Langage
    Réponses: 4
    Dernier message: 09/06/2008, 23h01
  4. file() et HTTP request failed!
    Par Fluckysan dans le forum Langage
    Réponses: 2
    Dernier message: 06/04/2007, 09h18
  5. HTTP request failed
    Par claralavraie dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/05/2006, 11h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo