Skocz do zawartości

Błąd przy aktualizacji

Polecane posty

W pierwszym przypadku w zdiagnozowaniu problemu pomogą logi z programu, znajdujące się w %localAppData%\InsERT\InsLauncherLogs - proszę sprawdzić, czy są tam jakieś świeże wpisy.

W drugim przypadku mamy do czynienia z innym błędem - program nie znajduje wszystkich pakietów z binariami, które potrzebne są do uruchomienia. Listę tych pakietów może pan sprawdzić w programie serwisowym. Proszę zaznaczyć podmiot, którego dotyczy ten błąd, a potem kliknąć w menu Podmiot -> Szczegóły. Znajdzie pan tam tabelkę z wymaganymi pakietami. Aby udało się uruchomić ten podmiot, wszystkie pakiety z tej listy muszą być obecne w bazie InsERT_Launcher lub na dysku lokalnym w katalogu, w którym zainstalowano nexo. Żeby sprawdzić, jakie pakiety znajdują się w bazie InsERT_Launcher, proszę w programie serwisowym kliknąć w menu Widok->Pokaż bazy->Nexo oraz InsERT_Launcher lub Wszystkie. Baza InsERT_Launcher powinna pojawić się na liście wszystkich baz. Proszę ją zaznaczyć i wybrać w menu Podmiot -> Binaria. Może pan sprawdzić, czy są tam wszystkie binaria wymagane do uruchomienia podmiotu. 

Link to postu

Witam ponownie

PIERWSZY PRZYPADEK:

Oto wpis z ostatniego logu z programu:

<?xml version="1.0" encoding="UTF-8"?>

<Exception> <Type>System.InvalidOperationException</Type> <Time>2017-07-21 13:10:41</Time><Description>The transaction associated with the current connection has completed but has not been disposed. The transaction must be disposed before the connection can be used to execute SQL statements.</Description> <Method>System.Runtime.Remoting.Messaging.IMessage EndInvokeHelper(System.Runtime.Remoting.Messaging.Message, Boolean)</Method> <HelpLink/> <StackTrace> Server stack trace: at System.Data.SqlClient.TdsParser.TdsExecuteRPC(SqlCommand cmd, _SqlRPC[] rpcArray, Int32 timeout, Boolean inSchema, SqlNotificationRequest notificationRequest, TdsParserStateObject stateObj, Boolean isCommandProc, Boolean sync, TaskCompletionSource`1 completion, Int32 startRpc, Int32 startParam) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at (Object ) at InsERT.Mox.Launcher.SqlDatabase.UploadPackage(SqlConnection connection, Package package, Boolean replace, IProgressValues progress) at InsERT.Mox.Launcher.SqlDatabase.UploadPackage(Package package, Boolean replace, IProgressValues progress) at InsERT.Mox.Launcher.Workflow.Steps.SelectDatabasesStep.OnExecute(SelectDatabasesStepExecution state) at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs) at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink) Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase) at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData) at System.Action`1.EndInvoke(IAsyncResult result) at InsERT.Mox.Launcher.Workflow.LaunchStepBase`1.<>c__DisplayClass3.UCo=.DCs=(IAsyncResult arForWorker) at System.Runtime.Remoting.Messaging.AsyncResult.SyncProcessMessage(IMessage msg) at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink) at System.Runtime.Remoting.Proxies.AgileAsyncWorkerItem.ThreadPoolCallBack(Object o) at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()</StackTrace>

</Exception>

Link to postu

Program serwisowy to narzędzie dołączone do systemu nexo, które pozwala na przeprowadzanie na podmiotach operacji takich jak archiwizacja, dearchiwizacja, podłączanie rozwiązań własnych i wiele innych. Najłatwiej go znaleźć, klikając w menu Start i wyszukując "program serwisowy". 

O ile jestem w stanie stwierdzić na podstawie wklejonego przez pana logu, podczas aktualizacji programu wystąpił nieoczekiwany błąd serwera SQL w trakcie ładowania binariów nowej wersji. W normalnej sytuacji powinno być tak: przy aktualizacji binaria nowej wersji ładowane są z komputera, na którym zainstalowano wersję, do bazy InsERT_Launcher, która służy jako źródło binariów dla wszystkich stacji roboczych. U pana podczas tej operacji wystąpił błąd, więc nie wszystkie binaria zostały załadowane i z tego powodu na żadnej stacji roboczej nie można uruchomić programu w nowej wersji. 

Pierwsza sprawa: błąd pochodzi z SQL Servera i trudno mi powiedzieć dokładnie, co jest jego przyczyną. Istnieje możliwość, że był to przejściowy kłopot z połączeniem.

Druga sprawa: brakujące binaria. Powinny zostać załadowane z tej stacji roboczej, na której zainstalowano aktualizację. Jeżeli nie byłoby problemów z połączeniem, to przy kolejnej próbie uruchomienia jakiegoś podmiotu w nowej wersji program powinien sam je zaczytać. Jeśli to się nie uda, to można je załadować ręcznie w programie serwisowym. 
W tym celu należy wybrać w menu Widok->Pokaż bazy->Nexo oraz InsERT_Launcher lub Wszystkie. Na liście podmiotów pojawi się baza InsERT_Launcher. Proszę kliknąć na niej prawym przyciskiem myszy i wybrać w menu Binaria. Pokaże się okienko z wszystkimi binariami w tej bazie, a w menu będzie opcja "Wyślij z tego komputera na serwer". Pakiety z binariami, które chce pan wysłać, będą prawdopodobnie w folderze Program Files (c:\Program Files (x86)\InsERT\nexo\Packages lub jakoś podobnie), ewentualnie w %localAppData%\Insert\Packages lub w %programData%\Insert\Packages. Na wszelki wypadek przed wysłaniem ich na serwer proszę usunąć z serwera binaria nowej wersji, które mogą tam już być (być może podczas tej nieudanej próby załadowania wysłały się niekompletne lub uszkodzone pakiety). Jeżeli by się okazało, że w wymienionych przeze mnie folderach nie ma plików nowej wersji, to zalecam ponowną instalację nexo. Może pan też pójść na skróty i od razu zrobić reinstalację, ale proszę mieć na uwadze, że nie usunie to uszkodzonych pakietów z bazy InsERT_Launcher (o ile jakieś tam są). 

 

Link to postu

Witam ponownie

Szanowna Pani - główny problem jest w tym, że aktualizacji do wersji kolejnej (16.02) nie mogę przeprowadzić na żadnej stacji.

I powyższe dwa błędy tego dotyczą:

1) pierwszy błąd - na głównej stacji - aktualizacja się robi i po jakimś czasie się zacina

2) drugi błąd - na stacji użytkownika

Oto aktualne binaria:

binaria.JPG.7ac30bef12899a7ac15da009095c015e.JPG

Wersję 13 użytkujemy, a chcemy przejśc do wersji 16, której nie da się zaktualizować na żadnej stacji

 

Pozdrawiam

Link to postu

Proszę usunąć pakiet "Nexo" w wersji 16.0.2 (z okna z binariami, po prostu zaznaczyć i wybrać "Usuń z serwera"). Następnie proszę załadować binaria z wersji 16 w sposób, który opisałam wcześniej, albo odinstalować nexo i zainstalować ponownie (w wersji 16.0.2). Musimy najpierw się upewnić, że binaria są w porządku. Jeśli dalej będzie problem z uruchomieniem programu, to będziemy szukać innej przyczyny. 

 

Link to postu

Tego typu błąd występuje w sytuacji, gdy operacja na serwerze SQL zostanie przerwana w wyniku jakiegoś innego błędu. Często jest nim przekroczenie dozwolonego czasu operacji i przypuszczam, że tak jest w tym wypadku. Czy ten błąd występuje od razu czy dopiero po kilku minutach od rozpoczęcia przesyłania? Jeśli to drugie, to pewnie mamy do czynienia z przekroczeniem czasu (timeoutem).  

Timeouty mogą mieć wiele różnych przyczyn i niestety ja nie jestem w stanie tego zdiagnozować. Mogę na pewno powiedzieć, że akurat w tym przypadku timeout nie jest spowodowany błędem w programie, ale wynika raczej z konfiguracji środowiska, w którym działa program. Być może jest to objaw problemów z wydajnością SQL Servera (np. z brakiem pamięci) lub z połączeniem sieciowym. Jeśli do tej pory próbował pan przesyłać pakiety z innej maszyny niż ta, na której jest serwer, to proszę spróbować przesłać je z maszyny z serwerem. Poza tym zostaje tylko szukać przyczyny błędu po stronie serwera. 

Link to postu
  • 2 tygodnie później...

W takim razie czy mogę prosić o jakąś dokładniejszą podpowiedź? Co należy zrobić z tym serwerem?

 

Sprawa u mnie wygląda tak, że fizycznie nie mam dostępu do serwera, na którym jest Subiekt - bo jesteśmy dużą firmą i serwerami zarządza inny.

W jaki sposób mam prosić osoby z IT o pomoc? Jak opisać im ten błąd i dać wskazówki do tego co muszą wykonać, żeby program zadziałał?

Link to postu
×
×
  • Dodaj nową pozycję...