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

JDBC Java Discussion :

Connexion à Oracle : si base non joignable, arrêt du programme impossible


Sujet :

JDBC Java

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Points : 213
    Points
    213
    Par défaut Connexion à Oracle : si base non joignable, arrêt du programme impossible
    bonsoir

    je développe en ce moment un programme d'envois de sms qui stocke des informations sur une base oracle.
    le programme utilise JAVAEXE qui le transforme en service et lui ajoute un icône dans la barre des tâches widowsienne.

    le problème est que au démarrage, une tentative de connexion à oracle est effectuée, et si la base est inaccessible (elle est sur un ordinateur distant, accédé via un VPN pour les tests) il est impossible de fermer le programme : un appel à "SMS2 -deleteService" à partir du gestionnaire de l' icône n'a aucun effet, le programme ne plante pas mais ne s' arrête pas.
    Pour bien comprendre le passage au dessus il est préférable de connaître javaexe, je sais...

    à tout hasard, voici le code de création de la connexion.
    Y-a-t'il un moyen de mieux faire les choses?

    (taskinit est appelée automatiquement lors de la création de l'icône au démarrage du programme)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public static void taskInit() {
     
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    try {
                        launcher.setSmstrend(new Gestion_Smstrend());
                        launcher.setOracle(new Gestion_oracle());
                        launcher.setSqlite(new Gestion_sqlite());
                        launcher.setProprietes(new Gestion_proprietes());
                        launcher.getProprietes().charge();
                        if (launcher.getOracle().cnx_create(launcher.getProprietes().getConnexion_oracle())) {
                            flag_changement_connexion = true;
                            flag_connexion = true;
                        }
                    } catch (Exception ex) {
                    }
                }
            });
     
        }
    , où getConnexionOracle() renvoie la chaîne de caractères chargée depuis le fichier de configuration.

    le code précédent appelle celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    public boolean cnx_create(String chaine) {
     
            boolean correct = true;
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
            } catch (ClassNotFoundException e1) {
                System.out.println("Erreur dans la methode : actionPerformed (btn test)");
                e1.printStackTrace();
                correct = false;
            }
            try {
                System.out.println("chaîne de connexion : " + chaine);
                connexion = DriverManager.getConnection(chaine);
            } catch (SQLException ex) {
                System.out.println("Erreur dans Gestion_oracle.cnx_create ");
                // ex.printStackTrace();
                correct = false;
            }
     
            return correct;
        }
    merci, vous pouvez éventuellement me dire si il n'est pas possible d'accélérer le traitement, ça m'évitera de chercher pour rien!

    merci
    olivier

  2. #2
    Nouveau membre du Club

    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 29
    Points
    29
    Par défaut
    "SMS2.exe -deleteService" doit être appelé en mode admin : soit depuis la taskbar, soit depuis le service lui-même (qui est déjà en mode admin) après réception d'un message de la taskbar

Discussions similaires

  1. [AC-2003] Connexion à ORACLE [B]"Argument non valide" [/B]
    Par yjeanpie dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 15/02/2013, 16h45
  2. Connexion a une base de données sql server distante impossible
    Par fabi19022 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 15/04/2010, 17h37
  3. Réponses: 4
    Dernier message: 25/11/2005, 19h58
  4. la connexion d'ORACLE à un système non Oracle
    Par ismailsalam dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 18/08/2005, 03h00
  5. connexion a plusieurs bases de données oracle
    Par tarik75 dans le forum JDBC
    Réponses: 1
    Dernier message: 06/07/2005, 13h33

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