none
expiration du délais d'attente RRS feed

  • Question

  • Bonjour,

    un nouveau soucis se présente à moi.

    la machine sur laquelle je développe mon appli n'étant pas un foudre de guerre, je me retrouve avec une expiration du délais d'attente sur les requêtes un peu "lourdes".

    quel solution pourrait me permettre de résoudre ça ?

    en cherchant un peu, j'ai trouvé la commande ctx.CommandTimeout = 180; qui permet de rallonger le délais de traitement mais ça ne change rien (ou alors je ne fais pas ce qu'il faut).

    voila le code de mon fichier :

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using MMDiag3.Connexion_SQL;
    using System.Data.EntityClient;
    using MMDiag3.Modele;
    
    namespace MMDiag3.Salaries.Entrees_sorties
    {
        class RequeteEntreeSortie
        {
        List<string> codsociete = new List<string>();
        List<string> codetab = new List<string>();
        List<int> entreejanvier = new List<int>();
        List<int> sortiejanvier = new List<int>();
        List<int> entreefevrier = new List<int>();
        List<int> sortiefevrier = new List<int>();
        List<int> entreemars = new List<int>();
        List<int> sortiemars = new List<int>();
        List<int> entreeavril = new List<int>();
        List<int> sortieavril = new List<int>();
        List<int> entreemai = new List<int>();
        List<int> sortiemai = new List<int>();
        List<int> entreejuin = new List<int>();
        List<int> sortiejuin = new List<int>();
        List<int> entreejuillet = new List<int>();
        List<int> sortiejuillet = new List<int>();
        List<int> entreeaout = new List<int>();
        List<int> sortieaout = new List<int>();
        List<int> entreeseptembre = new List<int>();
        List<int> sortieseptembre = new List<int>();
        List<int> entreeoctobre = new List<int>();
        List<int> sortieoctobre = new List<int>();
        List<int> entreenovembre = new List<int>();
        List<int> sortienovembre = new List<int>();
        List<int> entreedecembre = new List<int>();
        List<int> sortiedécembre = new List<int>();
        List<int> totalentree = new List<int>(); 
        List<int> totalsortie = new List<int>();
    
            public void EntreeSortie(DateTime DateDebut, DateTime DateFin)
            {
    
                var ConnectSQL = new ConnexionSQL();
                var entityBuilder = ConnectSQL.InitCnx();
                using (var cnx = new EntityConnection(entityBuilder.ToString()))
                {
                    cnx.Open();
                    
                    using (var ctx = new Pegase3Entities(cnx))
                    {
                        
                        var Datedeb = DateDebut.Date;
                        var Datefin = DateFin.Date;
                        
                        var ResultatEntreeSortie = (from salaries in ctx.SALARIES
                                       join societe in ctx.SOCIETE on salaries.IDSOCIETE equals societe.IDSOCIETE
                                       join bulletins in ctx.BULLETINS on societe.IDSOCIETE equals bulletins.IDSOCIETE
                                       join etablissements in ctx.ETABLISSEMENTS on societe.IDSOCIETE equals etablissements.IDSOCIETE
                                       where bulletins.DATFINPAIE <= Datefin
                                       && bulletins.DATFINPAIE >= Datedeb
                                       && societe.DATDEBVALIDITE <= Datedeb
                                       && societe.DATFINVALIDITE >= Datedeb
                                      
    
                                       orderby societe.CODSOCIETE
                                       select new
                                       {
                                           societe.CODSOCIETE, etablissements.CODETAB,
                                            entreejanvier_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATENTREE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATENTREE.Value.Month == 01
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           
                                           sortiejanvier_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATSORTIE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATSORTIE.Value.Month == 01 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
    
                                           entreefevrier_ = (from entreesortie in ctx.ENTREESORTIES 
                                                            where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                            && entreesortie.CODETAB == etablissements.CODETAB
                                                            && entreesortie.DATENTREE.Value.Year == Datedeb.Year 
                                                            && entreesortie.DATENTREE.Value.Month == 02
                                                            select entreesortie.CODSALARIE).Distinct().Count(),
    
                                           sortiefevrier_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATSORTIE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATSORTIE.Value.Month == 02
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           entreemars_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATENTREE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATENTREE.Value.Month == 03 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           sortiemars_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATSORTIE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATSORTIE.Value.Month == 03 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           entreeavril_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATENTREE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATENTREE.Value.Month == 04 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           sortieavril_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATSORTIE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATSORTIE.Value.Month == 04 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           entreemai_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATENTREE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATENTREE.Value.Month == 05 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           sortiemai_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATSORTIE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATSORTIE.Value.Month == 05 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           entreejuin_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATENTREE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATENTREE.Value.Month == 06 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           sortiejuin_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATSORTIE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATSORTIE.Value.Month == 06 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           entreejuillet_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATENTREE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATENTREE.Value.Month == 07 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           sortiejuillet_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATSORTIE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATSORTIE.Value.Month == 07 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           entreeaout_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATENTREE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATENTREE.Value.Month == 08 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           sortieaout_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATSORTIE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATSORTIE.Value.Month == 08
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           entreeseptembre_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATENTREE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATENTREE.Value.Month == 09 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           sortieseptembre_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATSORTIE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATSORTIE.Value.Month == 09 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           entreeoctobre_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATENTREE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATENTREE.Value.Month == 10 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           sortieoctobre_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATSORTIE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATSORTIE.Value.Month == 10 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           entreenovembre_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATENTREE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATENTREE.Value.Month == 11 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           sortienovembre_ =(from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATSORTIE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATSORTIE.Value.Month == 11 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           entreedecembre_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATENTREE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATENTREE.Value.Month == 12 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                           sortiedécembre_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATSORTIE.Value.Year == Datedeb.Year 
                                                             && entreesortie.DATSORTIE.Value.Month == 12 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
                                            total_entree_ = (from entreesortie in ctx.ENTREESORTIES 
                                                             where entreesortie.IDSOCIETE == societe.IDSOCIETE 
                                                             && entreesortie.CODETAB == etablissements.CODETAB
                                                             && entreesortie.DATENTREE.Value.Year == Datedeb.Year 
                                                             select entreesortie.CODSALARIE).Distinct().Count(),
    
                                           total_sortie_ = (from entreesortie in ctx.ENTREESORTIES
                                                            where entreesortie.IDSOCIETE == societe.IDSOCIETE
                                                            && entreesortie.CODETAB == etablissements.CODETAB
                                                            && entreesortie.DATSORTIE.Value.Year == Datedeb.Year
                                                            select entreesortie.CODSALARIE).Distinct().Count()
    
                   
                                       }).Distinct();
    
                            foreach (var item in ResultatEntreeSortie)
                            {
                                ctx.CommandTimeout = 180;
                                codsociete.Add(item.CODSOCIETE.ToString());
                                codetab.Add(item.CODETAB.ToString());
                                entreejanvier.Add(item.entreejanvier_);
                                sortiejanvier.Add(item.sortiejanvier_);
                                entreefevrier.Add(item.entreefevrier_);
                                sortiefevrier.Add(item.sortiefevrier_);
                                entreemars.Add(item.entreemars_);
                                sortiemars.Add(item.sortiemars_);
                                entreeavril.Add(item.entreeavril_);
                                sortieavril.Add(item.sortieavril_);
                                entreemai.Add(item.entreemai_);
                                sortiemai.Add(item.sortiemai_);
                                entreejuin.Add(item.entreejuin_);
                                sortiejuin.Add(item.sortiejuin_);
                                entreejuillet.Add(item.entreejuillet_);
                                sortiejuillet.Add(item.sortiejuillet_);
                                entreeaout.Add(item.entreeaout_);
                                sortieaout.Add(item.sortieaout_);
                                entreeseptembre.Add(item.entreeseptembre_);
                                sortieseptembre.Add(item.sortieseptembre_);
                                entreeoctobre.Add(item.entreeoctobre_);
                                sortieoctobre.Add(item.sortieoctobre_);
                                entreenovembre.Add(item.entreenovembre_);
                                sortienovembre.Add(item.sortienovembre_);
                                entreedecembre.Add(item.entreedecembre_);
                                sortiedécembre.Add(item.sortiedécembre_);
                                totalentree.Add(item.total_entree_);
                                totalsortie.Add(item.total_sortie_);
    
                            }
                       
                    }
                }
            }
    
            public List<string> CodSociete { get { return codsociete; } set { codsociete = value; } }
            public List<string> CodEtab { get { return codetab; } set { codetab = value; } }
            public List<int> Entreejanvier { get { return entreejanvier; } set { entreejanvier = value; } }
            public List<int> Sortiejanvier { get { return sortiejanvier; } set { sortiejanvier = value; } }
            public List<int> Entreefevrier { get { return entreefevrier; } set { entreefevrier = value; } }
            public List<int> Sortiefevrier { get { return sortiefevrier; } set { sortiefevrier = value; } }
            public List<int> Entreemars { get { return entreemars; } set { entreemars = value; } }
            public List<int> Sortiemars { get { return sortiemars; } set { sortiemars = value; } }
            public List<int> Entreeavril { get { return entreeavril; } set { entreeavril = value; } }
            public List<int> Sortieavril { get { return sortieavril; } set { sortieavril = value; } }
            public List<int> Entreemai { get { return entreemai; } set { entreemai = value; } }
            public List<int> Sortiemai { get { return sortiemai; } set { sortiemai = value; } }
            public List<int> Entreejuin { get { return entreejuin; } set { entreejuin = value; } }
            public List<int> Sortiejuin { get { return sortiejuin; } set { sortiejuin = value; } }
            public List<int> Entreejuillet { get { return entreejuillet; } set { entreejuillet = value; } }
            public List<int> Sortiejuillet { get { return sortiejuillet; } set { sortiejuillet = value; } }
            public List<int> Entreeaout { get { return entreeaout; } set { entreeaout = value; } }
            public List<int> Sortieaout { get { return sortieaout; } set { sortieaout = value; } }
            public List<int> Entreeseptembre { get { return entreeseptembre; } set { entreeseptembre = value; } }
            public List<int> Sortieseptembre { get { return sortieseptembre; } set { sortieseptembre = value; } }
            public List<int> Entreeoctobre { get { return entreeoctobre; } set { entreeoctobre = value; } }
            public List<int> Sortieoctobre { get { return sortieoctobre; } set { sortieoctobre = value; } }
            public List<int> Entreenovembre { get { return entreenovembre; } set { entreenovembre = value; } }
            public List<int> Sortienovembre { get { return sortienovembre; } set { sortienovembre = value; } }
            public List<int> Entreedecembre { get { return entreedecembre; } set { entreedecembre = value; } }
            public List<int> Sortiedécembre { get { return sortiedécembre; } set { sortiedécembre = value; } }
            public List<int> TotalEntree { get { return totalentree; } set { totalentree = value; } }
            public List<int> TotalSortie { get { return totalsortie; } set { totalsortie = value; } }
    
        }
    }

    par avance merci !!

    ah ! je ne l'ai pas indiqué mais l'erreur se produit sur le Foreach !


    Lallemand Sébastien


    mardi 2 avril 2013 17:44

Toutes les réponses