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

MS SQL Server Discussion :

Err.TCP 10048 avec OleDB, Protocole TCP seul, VB6


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Par défaut Err.TCP 10048 avec OleDB, Protocole TCP seul, VB6
    Bonjour,

    Je rencontre actuellement un souci avec une appli. se connectant sur un serveur SQL 2005 sp2 en mode TCP (RAS en mode canaux nommés).

    Cette appli alimente une base sql chez des clients depuis des données fichiers et ma société ne contrôle pas forcément les protocoles acceptés par le serveur du client, d'ou : je n'ai pas le choix,je dois passer en TCP seul .

    L'application ouvre deux connexions OleDB et ne les ferme qu'a la fin de tous les traitements. Tout accès à la base passant par un des deux objets connexion (le fait qu'il y en ait deux est du à l'age du code et n'en utiliser qu'un seul ne résoud pas mon problème [en plus de m'en causer d'autres, donc une chose à la fois ].

    Grosso modo, un traitement se décompose de la manière suivante :
    [pseudocode]
    • Ouverture du/des fichier(s) en entrée
    • Ouverture d'une/des tables(s) en entrée (recordset client en général)
    • Ouverture d'une/des table(s) en sortie (recordsets curseur client ou serveur)
    • Pour chaque enreg. lu dans un fichier
    • Recherche de valeur dans x tables liés (alimentées dans des traitements précédents)
    • Ecriture dans la/les table(s) en sortie
  2. Fermeture des tables & des fichiers
  3. [/pseudocode]
    les recherches et insertions se font parfois via des commandes préparées créées au début de chaque traitement.

    En mode TCP, une erreur 10048 du provider TCP (TCP Provider: Une seule utilisation de chaque adresse de socket (protocole/adresse réseau/port) est habituellement autorisée.) se produit rapidement.
    Des connections TCP sont ouvertes & fermées sans arrêt durant le traitement (jamais plus de 4/5 et en plus des deux qui sont clairement liées aux connexions Ole ouvertes au début et qui ne disparaissent qu'a la fermeture des connexions Ole) mais Windows conservant par défaut une connection TCP pendant 2mn, la limite (par défaut aussi) des 5000 connections temporaires est atteinte et là, c'est le drame.

    Pour l'instant, j'arrive à passer en modifiant la base de registre du poste client pour passer le nombre de connexions TCP temporaires au max. (le volume de données à transférer pouvant varier de quelques Mo à quelques centaines, impossible de prévoir au plus juste) et en faisant descendre le délai de rétention de ces connexions TCP temporaires à 30s.

    Mais ça ne convient pas vraiment.
    Je soupconne (et je suis en train de chercher/vérifier) l'utilisation des commandes préparées d'être à l'origine de ces connexions courtes mais pourquoi car les c'est toujours les mêmes 2 connexion Ole qui sont utilisées ?

    Donc, pour finir, mes questions sont :
    Pourquoi toutes ces connexions TCP alors que j'utilise toujours le même objet connexion OleDB quelque soit l'ordre SQL et qu'il y a des traitements durant lesquels AUCUNE connexion TCP supplémentaire (en plus des 2 "normales") n'est créée (je vais vérifier qu'il n'y a pas de commandes préparées dans ces traitements) ?
    Et si c'est un fonctionnement normal du provider ADO, Y a-t-il moyen de le forcer (via une propriété sur la connexion ou autre) à limiter le nombre de connexions TCP ou à détruire ces connexions ou du moins dire à l'OS de le faire plus rapidement sans modifier la base de registre ?

    Merci d'avance,

    Infos :
    OS Serveur : 2000, 2003 (pas testé avec XP)
    OS Client : XP (pas testé avec d'autres OS)
    SGBD : SQL Serveur 2005 SP2
    Langage : VB6 sp6
    Client BD : ADO 2.8
    & Client Natif SQL Server (SQLNCLI)

  • #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Par défaut
    un p'tit up

  • + Répondre à la discussion
    ActualitésF.A.Q SQL-SERVERTUTORIELS SQL-SERVERSOURCES SQL-SERVERLIVRES SQL-SERVER

    Discussions similaires

    1. [Réseaux] TCP/IP avec Routeur
      Par fantomasmusic dans le forum Entrée/Sortie
      Réponses: 5
      Dernier message: 17/10/2005, 12h52
    2. [Protocole TCP] Utilitaire pour Tracer une session
      Par =JBO= dans le forum Développement
      Réponses: 3
      Dernier message: 04/06/2005, 19h28
    3. raw socket et protocole TCP/IP
      Par robertmouac dans le forum Développement
      Réponses: 3
      Dernier message: 09/03/2005, 23h09
    4. erreur tcp/ip avec jdbc
      Par champion dans le forum PostgreSQL
      Réponses: 1
      Dernier message: 03/04/2004, 14h32
    5. Ping sous protocole TCP (et non UDP)
      Par ovdz dans le forum Développement
      Réponses: 2
      Dernier message: 19/06/2003, 14h10

    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