Új hozzászólás Aktív témák
-
leslie23
tag
Sziasztok!
Segítséget, vagy magyarázatot szeretnék kérni tőletek a következő probléma kapcsán, StackOverflow relevánsnak tűnő kérdéseit már átnyálaztam, de nem találtam számomra választ. Van egy WinForms alkalmazás, amivel SQL queryket szeretnék végrehajtani (kb. 70-80 darabot, egyenként 5-15 másodperc az execution time) a lekérdezések eredményeit pedig Excel-állományokba menteni. Nem parallel async végrehajtás működik, viszont kicsit tempósítandó a dolgokat átírtam Parallel.Foreach segítségével, a szimultán szálakat 15 darabban maximalizálom. Az SqlConnection using blokkban van, ennek ellenére az alábbi hibaüzenetet kapom: "The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached."
Ha a connection stringbe belefoglalom a Connection Timeout = 0 paramétert, akkor megintcsak lefut szépen a cucc. Próbáltam szintén a connection stringben állítani a Max Pool Size-et de nem volt hatása. Sajnos nem értem, hogy pontosan mi történik, ha jól értem a using végén a kapcsolat zárásra kerül és bekerül a connection poolba. Viszont ezután miért történik timeout, mikor a következő szálon ismét szükség lenne a connectionre?
Illetve ha Timeout van, miért nem tud új kapcsolatot létrehozni?Köszönöm, ha valaki rá tud világítani mi itt a kulcs.
És egyből egy másik kérdésem is lenne; a Excelt az Interop liben keresztül kezelem. Neten azt találtam, hogy maga a COM Interop nem thread safe, feltételezem ez az oka annak, hogy parallel futásnál időnként COM error, application busy üzenetet kapok (5 futásból egyszer). Alternatív megoldásként felmerült, hogy a parallel végrehajtásnál csak egy DataSetben tárolnám a lekérdezések eredményeit, majd ezt követően egy külön műveletben sorosan generálnám le az Excel-riportokat. A kérdésem, hogy mennyire célszerű nagy mennyiségű adatot (pl. 80 query, egyenként 30-40 mező és 10-12 ezer rekord) memóriában tárolni míg elér a folyamat az Exceles lépésig?
Vagy mi lehet itt best practice szerintetek?
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Luck Dragon: Asszociációs játék. :)
- Apple asztali gépek
- Kerékpárosok, bringások ide!
- Azonnali fáradt gőzös kérdések órája
- VR topik (Oculus Rift, stb.)
- Milyen légkondit a lakásba?
- Milyen CPU léghűtést vegyek?
- 5.1, 7.1 és gamer fejhallgatók
- általános iskolai rendszergazda
- exHWSW - Értünk mindenhez IS
- További aktív témák...
- Asus H110-PLUS/ i3 6100/ ingyen foxpost/ garancia
- Üzletből, garanciával,HP OMEN Gaming AMD Ryzen 7 7840HS/24GB RAM/1TBSSD/RTX4070 GPU/16,1"(2560x1440)
- Apple iPhone 11 Pro 256GB 100% Akku. Megkímélt, Kártyafüggetlen, Tartozékaival. 1 Év Garanciával!
- Dell Latitude E7470. Olcsó üzleti kategóriás laptop! Új akkumulátor!
- JBL Live Flex 3 - Prémium Bluetooth Zajszűrős Fülhallgató - Kék
- Telefon felvásárlás!! Samsung Galaxy S25, Samsung Galaxy S25 Plus, Samsung Galaxy S25 Ultra
- LÉZEREZÉS! külföldi billentyűzet magyarra kb. 20-30p alatt!
- 155 - Lenovo LOQ (15IRH8) - Intel Core i5-13505H, RTX 4060
- Panasonic CF-20 ütésálló, ipari notebook & tablet számlával, garanciával
- BESZÁMÍTÁS! Asrock B450M R5 5600X 16GB DDR4 512GB SSD RX 6700 10GB Zalman T4 PLUS A-Data 750W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Illetve ha Timeout van, miért nem tud új kapcsolatot létrehozni?
Vagy mi lehet itt best practice szerintetek?
