Radomił Ząbik 306 Napisano 15 Lutego 2017 Udostępnij Napisano 15 Lutego 2017 w Nietypowy błąd przy aktualizacji asortymentu Robię masową aktualizację jednego zapisu w asortymencie i co jakiś czas, Sfera wywala mi takim błędem: Cytat System.Data.Entity.Core.EntityException: The underlying provider failed on Open. ---> System.Data.SqlClient.SqlException: Wystąpił błąd związany z siecią lub wystąpieniem podczas ustanawiania połączenia z serwerem programu SQL Server. Nie można odnaleźć serwera lub jest on niedostępny. Sprawdź, czy nazwa wystąpienia jest poprawna i czy konfiguracja serwera programu SQL Server zezwala na połączenia zdalne. (provider: TCP Provider, error: 0 - TCP Provider: ) ---> System.ComponentModel.Win32Exception: Połączenie nie zostało nawiązane, ponieważ w sieci istnieje duplikat nazwy. Jeśli przyłączasz się do domeny, przejdź do apletu System w Panelu sterowania, aby zmienić nazwę komputera, i spróbuj ponownie. Jeśli przyłączasz się do grupy roboczej, wybierz inną nazwę grupy Póki co skrypt puściłem na bazie developerskiej, która jest na Expresie. Błąd wywala raczej w losowych pozycjach. Zauważyłem także spowolnienia w przetwarzaniu i myślę, że to wynika właśnie ze zbyt długiego oczekiwania. Jeśli chodzi o wiersz kodu, to dzieje się to też w różnych miejscach - pobranie jednostki, wczytanie asortymentu do edycji, zapisanie asortymentu. Link to postu
Jarek KοIaѕa 2 Napisano 20 Lutego 2017 Udostępnij Napisano 20 Lutego 2017 w Nietypowy błąd przy aktualizacji asortymentu Kierowałbym się sugestiami zawartymi w komunikacie. Błąd jest faktycznie nietypowy, bo występuje tylko czasami i do tego sugeruje duplikat nazwy sieciowej. Może w innych przypadkach jest tez inny powód? Np. przekroczenie czasu oczekiwania. Link to postu
Radomił Ząbik 306 Napisano 21 Lutego 2017 Autor Udostępnij Napisano 21 Lutego 2017 w Nietypowy błąd przy aktualizacji asortymentu We wszystkich przypadkach był ten sam błąd. Ale postanowiłem puścić skrypt na bazie produkcyjnej, po wykonaniu kopii, przeszedł bez problemu. Wygląda na to, że był on chyba spowodowany jakimiś ograniczeniami "Express Edition" - developerską właśnie mam na takim, a główną, na pełnym 2014. Link to postu
Radomił Ząbik 306 Napisano 22 Stycznia 2018 Autor Udostępnij Napisano 22 Stycznia 2018 w Nietypowy błąd przy aktualizacji asortymentu Aby nie dodawać nowego tematu, dopnę do tego. Zauważyłem, że tak raz w tygodniu, podczas zapisywania WZ, Sfera wysypuje mi się z takim błędem. Jakiś pomysł, czy da radę go jakoś uniknąć? Te same dane, ponownie wysłane, najczęściej przechodzą przy drugiej próbie. Zastanawiam się, czy to nie jest kwestia, że aplikacja Sfery chodzi zbyt długo bez błędu InsERT.Mox.Work.UnitOfWorkChangesAcceptedException: W trakcie akceptowania zmian wystąpiły błędy. ---> System.Data.SqlClient.SqlException: Upłynął limit Timeout. Limit upłynął przed ukończeniem operacji lub serwer nie odpowiada. ---> System.ComponentModel.Win32Exception: Upłynął limit czasu operacji oczekiwania --- Koniec śladu stosu wyjątków wewnętrznych --- w System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) w System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) w System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) w System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) w System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) w System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest) w System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) w System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) w System.Data.SqlClient.SqlCommand.ExecuteNonQuery() w LockStoredProcedures.Wrappers.ExecuteReleaseLock(SqlConnection conn, String resourceId, Guid sessionId) w InsERT.Mox.Locking.SqlServer.SqlApplicationLock.<>c__DisplayClass9.<Dispose>b__8(SqlConnection conn) w InsERT.Mox.Locking.SqlServer.SqlApplicationLock.ManageConnection(Action`1 action) w InsERT.Mox.Locking.SqlServer.SqlApplicationLock.Dispose(Boolean disposing) w InsERT.Mox.Locking.SqlServer.SqlApplicationLock.System.IDisposable.Dispose() w InsERT.Mox.Locking.SqlServer.SqlApplicationLock.Release() w InsERT.Moria.Dokumenty.Logistyka.KoordynatorBazowy.ZwolnijWszystkieBlokady() w InsERT.Moria.Dokumenty.Logistyka.DokumentPart.ChangesAccepted(IBusinessObject businessObject, ChangesAcceptedEventArgs args) w InsERT.Moria.Dokumenty.Logistyka.WydanieZewnetrzneBO.ChangesAccepted(ChangesAcceptedEventArgs args) w InsERT.Moria.Dokumenty.Logistyka.WydanieZewnetrzneBO.ChangesAcceptedCore(ChangesAcceptedEventArgs args) w InsERT.Mox.BusinessObjects.BusinessObject`3.<>c__DisplayClass2c.<HandleSavedChangesNotification>b__2a() w InsERT.Mox.Aop.RuntimeWeavedJoinpoint.Proceed() w InsERT.Mox.Aop.Weaver.RuntimeWeave(RuntimeWeavedJoinpoint joinpoint, Action coreOperation) w InsERT.Mox.BusinessObjects.BusinessObject`3.HandleSavedChangesNotification(Object sender, ChangesAcceptedEventArgs args) w InsERT.Mox.Work.UnitOfWork.SaveChanges3(Boolean changesWereSaved) --- Koniec śladu stosu wyjątków wewnętrznych --- w InsERT.Mox.Work.UnitOfWork.SaveChanges3(Boolean changesWereSaved) w InsERT.Mox.Work.UnitOfWork.SaveChanges() w InsERT.Mox.BusinessObjects.BusinessObject`3.Zapisz() w SynchronousSocketListener.StartListening() w f:\SferaDEV\Sfera\Sfera\Program.cs:wiersz 1068 Link to postu
Paweł Kubacki 192 Napisano 23 Stycznia 2018 Udostępnij Napisano 23 Stycznia 2018 w Nietypowy błąd przy aktualizacji asortymentu Raz taki błąd udało mi się uzyskać, gdy w trakcie zapisu dokumentu wyciągnąłem kabel sieciowy. Czy Pana rozwiązanie sferyczne uruchamiane jest na tym samym komputerze, na którym zainstalowany jest SQL? Link to postu
Radomił Ząbik 306 Napisano 23 Stycznia 2018 Autor Udostępnij Napisano 23 Stycznia 2018 w Nietypowy błąd przy aktualizacji asortymentu Tak, jest na serwerze SQL, więc kabel odpada. Link to postu
Radomił Ząbik 306 Napisano 29 Stycznia 2018 Autor Udostępnij Napisano 29 Stycznia 2018 w Nietypowy błąd przy aktualizacji asortymentu Jeszcze dodam, że w ostatnim tygodniu, błąd występuje co drugi dzień i tylko na procesie wystawiania WZ, niezależnie od ilości pozycji czy klienta. Dziennie wystawiamy do 100 WZ przez Sferę, więc problem nie dotyczy aż tak dużej ilości dokumentów. Link to postu
Paweł Kubacki 192 Napisano 29 Stycznia 2018 Udostępnij Napisano 29 Stycznia 2018 w Nietypowy błąd przy aktualizacji asortymentu Postaramy się zdiagnozować ten problem. Proszę mi jeszcze powiedzieć czy jest coś specyficznego w tych dokumentach? Czy są to nowe dokumenty, czy edycja istniejących? Czy wystawiane są na podstawie jakiś innych dokumentów? Ile osób pracuje jednocześnie na tej bazie danych? Czy program napisany w Sferze wykonuje się w trakcie pracy firmy, czy po jej zakończeniu? Link to postu
Radomił Ząbik 306 Napisano 30 Stycznia 2018 Autor Udostępnij Napisano 30 Stycznia 2018 w Nietypowy błąd przy aktualizacji asortymentu 8 godzin temu, Paweł Kubacki napisał: Proszę mi jeszcze powiedzieć czy jest coś specyficznego w tych dokumentach? Dokumenty WZ, z wskazaniem konkretnych partii i ilości - umieszczam też kod Sfery, odpowiedzialny, za tworzenie WZ. 8 godzin temu, Paweł Kubacki napisał: Czy są to nowe dokumenty, czy edycja istniejących? Tak, są to dokumenty nowe. Co ciekawe, nawet jak powstanie ten błąd, to ponowne wysłanie po chwili, nie zwraca już tego problemu i dokument się wystawia. 8 godzin temu, Paweł Kubacki napisał: Czy wystawiane są na podstawie jakiś innych dokumentów? Tak, wskazywane są zamówienia źródłowe, więcej szczegółów w kodzie Sfery widoczne. 8 godzin temu, Paweł Kubacki napisał: Ile osób pracuje jednocześnie na tej bazie danych? Obecnie mamy 42 licencje na Subiekt/Gestor + Gratyfikant i Rewizor, ale pierwsze dwa powiedzmy, że robią obciążenie. Do tego dochodzi serwer usług oraz aplikacja Sfery. Aplikacja Sfery, jest jedno-wątkowo, na jednej licencji i ona jest jednowątkowa. Dodatkowo, na tym serwerze, jest jeszcze baza drugiego podmiotu, ale tam użytkowana jest tylko aplikacja Sfery + sporadyczne wejścia na program. Posiadamy SQL 2014 SP2 Standard Runtime, wraz z 50 licencjami klienckimi, ale CALe, to chyba z tego co pamiętam, to głównie papierek. 8 godzin temu, Paweł Kubacki napisał: Czy program napisany w Sferze wykonuje się w trakcie pracy firmy, czy po jej zakończeniu? Program pracuje 24/7 - nasłuchuje w oczekiwaniu na zadania, które otrzymuje z mojego głównego systemu, jest powiedzmy, że łącznikiem. Takich zadań jest około 500 dziennie, począwszy od tworzenia asortymentu, poprzez wystawianie dokumentów, czy zatwierdzanie urlopu. Kod odpowiedzialny, za tworzenie WZ: // TWORZENIE WZ DLA WYBRANYCH POZYCJI ZK ------------------------------------------------------------------------------- if(results.function=="addWZ") { Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - dodawanie WZki do wybranych pozycji."); // przygotowanie danych IAsortymenty asortyment = sfera.PodajObiektTypu<IAsortymenty>(); IJednostkiMiar jednostkiMiary = sfera.PodajObiektTypu<IJednostkiMiar>(); IPodmioty podmioty = sfera.PodajObiektTypu<IPodmioty>(); IUzytkownicy uzytkownicy = sfera.PodajObiektTypu<IUzytkownicy>(); IStatusyDokumentowDaneDomyslne statusyDD = sfera.PodajObiektTypu<IStatusyDokumentow>().DaneDomyslne; Konfiguracja konfWz = sfera.PodajObiektTypu<IKonfiguracje>().DaneDomyslne.WydanieZewnetrzne; string stock; stock = results.stock; Magazyn mag = sfera.PodajObiektTypu<IMagazyny>().Dane.Wszystkie().Where(m => m.Symbol == stock).FirstOrDefault(); IWydaniaZewnetrzne dokumentWydania = sfera.PodajObiektTypu<IWydaniaZewnetrzne>(); IZamowieniaOdKlientow zamowienia = sfera.PodajObiektTypu<IZamowieniaOdKlientow>(); // pobranie danych jakiegokolwiek ZK, aby ustawić parametry int docid; docid = results.docid; var zk = zamowienia.Dane.Wszystkie().Where(p => p.Id == docid).FirstOrDefault(); // znalezienie zamówienia //Console.WriteLine(results.pos); using (IWydanieZewnetrzne wz = dokumentWydania.Utworz(konfWz)) { ParametryGrupowaniaPodstawowe parametryGrupowania = new ParametryGrupowaniaPodstawowe(); parametryGrupowania.MetodaGrupowaniaPozycji = MetodaGrupowaniaPozycji.BezKonsolidacji; parametryGrupowania.MetodaWyliczeniaCen = MetodaWyliczeniaCen.PrzepisanieZDokumentuGlownego; parametryGrupowania.MiejsceDostawy = zk.MiejsceDostawy; parametryGrupowania.MiejsceDostawyTyp = MiejsceDostawyTyp.Nabywca; parametryGrupowania.NabywcaSprzedawca = zk.NabywcaSprzedawcaWybrany; //parametryGrupowania.OdbiorcaDostawca = zk.NabywcaSprzedawcaWybrany; wz.Dane.Magazyn = mag; wz.Dane.Uwagi = results.comment; wz.Dane.StatusDokumentu = statusyDD.Rozchod_WydanyTowar; IDokumentZRozbiciem dok = (IDokumentZRozbiciem)wz; //IDokumentZRozbiciem dok = (IDokumentZRozbiciem)wz; // wypełnienie pozycji foreach(var posadd in results.pos) { int posdocid; int posid; decimal posq; int posbatch; string comment; posdocid = posadd.docid; posid = posadd.id; posq = posadd.quantity; posbatch = posadd.batch; comment = posadd.comment; Console.WriteLine("Pobieranie pozycji: "+posid+" z ZK "+posdocid); var zamowienie = zamowienia.Dane.Wszystkie().Where(p => p.Id == posdocid).FirstOrDefault(); // znalezienie zamówienia //wz.Dane.StatusDokumentu = statusyDD.Rozchod_Odlozony; // ustawienie odłożonego statusu dokumentu var poz = wz.WypelnijNaPodstawieZK(zamowienie.Pozycje.Where(p => p.Id == posid),zamowienie,parametryGrupowania).Single(); // dodanie pozycji z ZK Console.WriteLine("Dodanie pozycji: "+posid+", "+poz.AsortymentAktualny.Nazwa); poz.Opis = comment; // poz.PozycjeRealizowane.Where(p => p.TypDokumentuRealizowanego == 3).Single().PozycjaRealizowanaId poz.Ilosc = 0; // ustawiamy na 0, wyjdzie z rozbicia //wz.Dane.StatusDokumentu = statusyDD.Rozchod_WydanyTowar; // przywrócenie statusu powodującego rezerwacje //wz.Przelicz(); /* var r = dok.RozpocznijRozbicie(poz) as IRozbiciePozycjiRozchodowe; var countZero = r.Pozycje.Where(p => p.Ilosc > 0).Count(); for(int i=1;i<=countZero;i++) { r.Pozycje.Where(p => p.Ilosc > 0).FirstOrDefault().Ilosc = 0; } // bardzo brunde roziwązanie, ale działa Console.WriteLine("Wprowadzenie partii: "+posbatch+" w ilości "+posq); r.Pozycje.Where(p => p.PartiaZrodlowa.Id == posbatch).FirstOrDefault().Ilosc = posq; Console.WriteLine("Partia wprowadzona: "+posbatch); r.ZakonczRozbicie(); */ var r = dok.RozpocznijRozbicie(poz) as IRozbiciePozycjiRozchodowe; Console.WriteLine("Wprowadzenie partii: " + posbatch + " w ilości " + posq); r.Pozycje.Where(p => p.PartiaZrodlowa.Id == posbatch).Single().Ilosc = posq; foreach (var pozr in r.Pozycje.Where(p => p.PartiaZrodlowa.Id != posbatch && p.Ilosc > 0m)) pozr.Ilosc = 0m; Console.WriteLine("Partia wprowadzona: " + posbatch); r.ZakonczRozbicie(); Console.WriteLine("Ilość na pozycji: " + poz.Ilosc); wz.Przelicz(); } // poprawka na nabywcę if(wz.Dane.NabywcaSprzedawca==null) { wz.Dane.NabywcaSprzedawca = wz.Dane.Podmiot; wz.Dane.RolaInnegoPodmiotu = (byte)RolaInnegoPodmiotu.InnyNabywca; } // dopisanie transportu, jeśli jest decimal transport; transport = results.transport; if(transport!=0) { Asortyment a = asortyment.Dane.Wszystkie().Where(t => t.Symbol == "U Transport").First(); var poz = wz.Pozycje.Dodaj(a, 1m, a.JednostkaSprzedazy); poz.Cena.NettoPoRabacie = transport; } // ustawienie daty if(results.date!=null && results.date!="") { string dateString = results.date+" 07:00:00,000"; DateTime wzDate = DateTime.ParseExact(dateString,"yyyy-MM-dd HH:mm:ss,fff",System.Globalization.CultureInfo.InvariantCulture); wz.Dane.DataWydaniaWystawienia = wzDate; wz.Dane.DataWprowadzenia = wzDate; Console.WriteLine("Data wystawienia: " + wzDate); } // osoba wystawiająca string sign = results.sign; wz.Dane.WystawilaOsoba = uzytkownicy.Dane.Wszystkie().Where(p => p.Sygnatura == sign).FirstOrDefault().Osoba; // if(wz.Zapisz()) { // odpowiedz Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - dodano WZkę: "+wz.Dane.NumerWewnetrzny.PelnaSygnatura); response = "{ \"number\":\""+wz.Dane.NumerWewnetrzny.PelnaSygnatura+"\", \"id\":\""+wz.Dane.Id+"\" }"; // eksportowanie do PDF Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - eskportowanie pliku PDF: "+wz.Dane.NumerWewnetrzny.PelnaSygnatura); IWydruki manager = sfera.PodajObiektTypu<IWydruki>(); using (IWydruk wydruk = manager.Utworz(TypWzorcaWydruku.WydanieZewnetrzne)) { wydruk.ObiektDoWydruku = wz.Dane; var wzorzec = wydruk.ParametryDrukowania.DostepneWzorce.Where(p => p.Id == 100057).FirstOrDefault(); wydruk.ParametryDrukowania.WybranyWzorzec = wzorzec; wydruk.ParametryDrukowania.NazwaDokumentuUzytkownika = "wz" +wz.Dane.Id; wydruk.ParametryDrukowania.SciezkaEksportu = @"N:\"; wydruk.Eksport(); } } else { Globals.errors = ""; wz.WypiszBledy(); Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - błąd przy dodawaniu WZki: "+Globals.errors ); response = "{ \"error\":\""+Globals.errors+"\" }"; } } } Link to postu
Paweł Kubacki 192 Napisano 31 Stycznia 2018 Udostępnij Napisano 31 Stycznia 2018 w Nietypowy błąd przy aktualizacji asortymentu Dziękuje za wszystkie przekazane informacje. Będziemy analizować ten przypadek. Link to postu
Radomił Ząbik 306 Napisano 14 Lutego 2018 Autor Udostępnij Napisano 14 Lutego 2018 w Nietypowy błąd przy aktualizacji asortymentu Czy to może być powiązane - księgowość, zgłasza, że takie komunikaty mają od czasu do czasu. Link to postu
Paweł Kubacki 192 Napisano 14 Lutego 2018 Udostępnij Napisano 14 Lutego 2018 w Nietypowy błąd przy aktualizacji asortymentu Nie sądzę, aby oba problemy były ze sobą powiązane. Jednak aby stwierdzić to na pewno musiałbym widzieć to, co kryje się pod "Pokaż szczegóły". Ten poprzedni problem, który Pan zgłaszał, jest przez nas analizowany. Link to postu
Paweł Kubacki 192 Napisano 22 Lutego 2018 Udostępnij Napisano 22 Lutego 2018 w Nietypowy błąd przy aktualizacji asortymentu Dnia 22.01.2018 o 13:24, Radomił Ząbik napisał: Zauważyłem, że tak raz w tygodniu, podczas zapisywania WZ, Sfera wysypuje mi się z takim błędem. Jakiś pomysł, czy da radę go jakoś uniknąć? Te same dane, ponownie wysłane, najczęściej przechodzą przy drugiej próbie. Dzięki przekazanym przez Pana informacjom udało nam się zdiagnozować przyczynę tego problemu. Poprawka znajdzie się w wersji 20.0.0. 1 Link to postu
Radomił Ząbik 306 Napisano 26 Lutego 2018 Autor Udostępnij Napisano 26 Lutego 2018 w Nietypowy błąd przy aktualizacji asortymentu SUPER! A czy mógłby on mieć wpływ na nie powiązanie do końca realizacji pozycji z ZK? Mieliśmy już 3 sytuacje, że wystawione WZ, nie zakończyło nam ZK. Co ciekawe, w powiązanych w ZK dokumentach, WZ widniało. Tak jakby zostało na tablicy IlosciDoRealizacji. Link to postu
Paweł Kubacki 192 Napisano 28 Lutego 2018 Udostępnij Napisano 28 Lutego 2018 w Nietypowy błąd przy aktualizacji asortymentu Nie, te dwa problemy nie są ze sobą powiązane. Jednak efekt niezakończonego ZK udało się nam też zaobserwować, więc będziemy go analizować. Jak będzie coś więcej wiadomo, to dam znać. Link to postu
Paweł Kubacki 192 Napisano 28 Lutego 2018 Udostępnij Napisano 28 Lutego 2018 w Nietypowy błąd przy aktualizacji asortymentu Jakie statusy miały ustawione te ZK (jeszcze przed wystawieniem WZ), które nie zostały zakończone? Mamy pewne podejrzenie, że może to mieć znaczenie i chcielibyśmy to potwierdzić. Link to postu
Paweł Kubacki 192 Napisano 1 Marca 2018 Udostępnij Napisano 1 Marca 2018 w Nietypowy błąd przy aktualizacji asortymentu Odpowiedź na to pytanie oraz rozwiązanie tego problemu znajduje się w wątku https://forum.insert.com.pl/index.php?/topic/2220-błąd-relizowania-zk-po-wystawieniu-wz/&do=findComment&comment=7614 Link to postu
Radomił Ząbik 306 Napisano 25 Czerwca 2018 Autor Udostępnij Napisano 25 Czerwca 2018 w Nietypowy błąd przy aktualizacji asortymentu Dnia 22.02.2018 o 08:27, Paweł Kubacki napisał: Dzięki przekazanym przez Pana informacjom udało nam się zdiagnozować przyczynę tego problemu. Poprawka znajdzie się w wersji 20.0.0. Działa, dziękuje! Link to postu
Polecane posty