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

Oracle Discussion :

Commit par un autre USER [11g]


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Novembre 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 37
    Par défaut Commit par un autre USER
    Bonjour tout le monde,

    S'il vous plait, y a t il un moyen pour faire commit d'une opération de USER_1 par un autre utilisateur USER_2

    Exemple :
    USER_1 fait une insertion dans la table table_1 sans commit ;
    USER_2 fait le commit pour la session du USER_1


    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Salut,

    Est-ce que tu pourrais détailler ton besoin?
    Je comprends ce que tu veux faire, mais à quoi ça sert que ce soit USER_2 qui COMMIT plutôt que USER_1?

    Dans la doc Oracle et sur les forums je n'ai trouvé aucune solution à ta question, tout le monde dit que c'est impossible.

  3. #3
    Membre Expert
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Par défaut
    Je ne suis pas un expert DBA mais cela va à l'encontre complète du fonctionnement d'un SGBD.
    - Comment garantir l'intégrité des données si un COMMIT "aveugle" peut être exécuté par un tiers qui se trouve en dehors de la transaction ?
    - Comment s'assurer que le traitement est terminé et complet si un COMMIT "'externe" intervient (INSERT/UPDATE/DELETE en cours) ?

  4. #4
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Novembre 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 37
    Par défaut
    bonjour Ikebukuro, merci pour votre reponse.

    Je suis en train de développer un batch C qui utilise des bibliothèques tiers BSCS.
    Vu mon code et adaptation, j'ai besoin d'ouvrir deux sessions :
    - Dans la première session je fait l'insertion dans la table
    - Dans la deuxième session je ferai le COMMIT de l'insertion effectué dans session 1

    j'ai déjà effectué des recherche, j'ai trouvé un démarche avec package dbms_xa mais je n'ai pas pu le comprendre

  5. #5
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Tu n'as pas répondu à ma question
    Tu me dis que peut-être ce que tu recherches est possible avec dbms_xa MAIS tu n'expliques pas POURQUOI il te faut deux sessions.

    "Vu mon code et adaptation, j'ai besoin d'ouvrir deux sessions " : pourquoi deux sessions? pourquoi cela ne peut-il pas être fait dans une seule session?

  6. #6
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Novembre 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 37
    Par défaut
    la solution standard BSCS est à chaque fichier reçue, je doit une session et la fermer à la fin du traitement de fichier.
    et vu les contraintes techniques (firewall, architecture serveur, release BSCS ... ), la connexion/reconnexion rend le performance catastrophique
    D'ou j'ai l'idée de faire une 2 sessions fixes (1 pour insertion -> enclenche la 2eme -> commit)

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par khlaifimed Voir le message
    bonjour Ikebukuro, merci pour votre reponse.

    Je suis en train de développer un batch C qui utilise des bibliothèques tiers BSCS.
    Vu mon code et adaptation, j'ai besoin d'ouvrir deux sessions :
    - Dans la première session je fait l'insertion dans la table
    - Dans la deuxième session je ferai le COMMIT de l'insertion effectué dans session 1

    j'ai déjà effectué des recherche, j'ai trouvé un démarche avec package dbms_xa mais je n'ai pas pu le comprendre
    Les transactions étant par définition et nature séquentielles on ne peut pas paralléliser leur exécution dans deux sessions différentes. La seule solution (très tordu et auquel je n'ai pas de code a donner sauf à modifier les bibliothèques système du niveau CLI) est de reprendre la main sur la session 1 par la session 2, autrement dit effectuer un écrasement logique... Bonne chance pour un tel codage !

    Entre nous je ne voit aucun intérêt de faire cela. Pire je pense que c'est d'une haute stupidité ! C'est pourquoi il serait intéressant que vous nous donniez enfin les explications fonctionnelles et non pas une vague description pseudo algorithmique.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  8. #8
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Novembre 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 37
    Par défaut
    bonjour Scriuiw ,
    les deux process seront en attente mutuelle pour i'insertion/ commit

  9. #9
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Je ne pense pas que ce que tu veuilles faire soit possible sous Oracle.

    En outre ta phrase "vu les contraintes techniques (firewall, architecture serveur, release BSCS ... ), la connexion/reconnexion rend le performance catastrophique" m'étonne car ce que tu veux faire dans une session (INSERT et COMMIT) n'a aucune raison de poser des problèmes techniques, c'est du SQL très basique.

  10. #10
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 216
    Par défaut
    C'est bizarre. Tu dis que tu as des problèmes de performances en te connectant /déconnectant à chaque transaction, et pour solutionner cela, tu envisages de faire encore plus de connexions/déconnexions ?

    Tu te connectes une fois, tu fais tes insert /update, et tu fais ton commit. A la fin tu te déconnectes, ou éventuellement tu ne te déconnectes pas si tu as un autre fichier à traiter ; où est le problème de performance ?

  11. #11
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Novembre 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 37
    Par défaut
    bonjour tbc92 et merci pour votre reponse

    le but est eviter la connexion/deconnexion , et comme j'ai dit que j'utilises des routines tiers et ces routines m'oblige de connect/disconnect
    alors j'ai adapté le code pour faire 2 sessions pertinentes:
    - dans la 1ere j'appèle les routines tiers pour l'insertion sans appeler celle de commit et clôture
    - dans la 2eme, je fait le commit de la 1ere session

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/02/2015, 19h00
  2. Réponses: 1
    Dernier message: 01/07/2014, 11h55
  3. Réponses: 12
    Dernier message: 27/12/2013, 11h41
  4. Réponses: 2
    Dernier message: 19/02/2009, 12h59
  5. Comment subsituer un chemin par un autre dans un réseau ?
    Par Baillard dans le forum Développement
    Réponses: 3
    Dernier message: 11/08/2002, 14h01

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