Kā pareizi pieteikt HoP sistēmas problēmu?

20-05-2021 13:15 (Atjaunots 04-08-2023)
  • 1 Atbildes
  • 3 vērtējumi
  • 2211 Skatījumi

Ja, lietojot HoP, lietotājs ir saskāries ar problēmu, ko nevarat atrisināt pašu spēkiem, tad palīdzību ir iespējams pieteikt savam Horizon atbalsta pakalpojumu sniedzējam.

 

Problēmas risināšanas ātrumu ir iespējams palielināt pieteikumā pievienojot izstrādātājiem nepieciešamo informāciju. Tā tiek ietaupīts laiks informācijas pieprasīšanai un ātrāk ir iespējams ķerties pie risinājuma meklēšanas.

 

Jebkuram pieteikumam ir svarīgi pievienot scenāriju, pēc kura problēmu var atkārtot. Noteikti ir vērts pievienot ekrānattēlu, kurš ir uztaisīts tajā brīdī, kad ir notikusi kļūda. Tomēr ne vienmēr ar to ir pietiekami, tāpēc šajā rakstā aprakstīta informācija, kas izstrādātājiem būs nepieciešama darbam ar problēmu dažādos scenārijos, kā arī metodes šīs informācijas savākšanai.

 

Atbalsta fails - ja problēma rodas veicot kādas darbības sistēmā

 

HoP platformā ir izveidots links, uz kura nospiežot, tiek savākta lielākā daļa izstrādātājam interesējošā informācija. To sauc par "atbalsta failu" vai par "feedback failu". To iegūst, spiežot uz uzraksta "ja konstatē kļūdu"  lapas apakšējā labajā stūrī:

 

Ievavalde_0-1691129316993.png

 

image2021-3-15_13-25-32.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NB! Ir svarīgi šo atbalsta failu izveidot uzreiz pēc tam, kad ir notikusi kļūda (vai šo kļūdu ir izdevies vēlreiz atkārtot). Šajā failā nebūs informācijas no iepriekšējām ielogošanās reizēm.

 

Kā izveidot HoP atbalsta failu? VIDEO

 

FTG mikroservisa logfaili - ja ar Atbalsta failu nepietiek


Reizēm ar atbalsta failā iekļauto informāciju nepietiek un ir nepieciešami arī FTG mikroservisa logfaili.

 

Lai noskaidrotu, kurā direktorijā uz diska meklēt šos logfailus, ir jāskatās FTG mikroservisa appsettings.json failā, kura direktorija ir norādīta parametrā "LogFileDirectory".

 

Izstrādātājam interesēs visi šie faili: 

 

  • Logs_ftg.txt
  • LogsDataIntegration_ftg.txt
  • LogsError_ftg.txt
  • LogsSlowQuery_ftg.txt
  • LogsUserActivity_ftg.txt

 

Pievienojot failus pieteikumā, jānorāda darbinieka lietotājvārds un laiks, cikos šī kļūda tika novērota (der arī aptuvens laiks).

 

Ja problēma rodas ielogojoties vai obligātās paroles maiņas laikā


Ja problēma iestājusies pirms lietotājs ir pilnībā ielogojies sistēmā, tad atbalsta failu lietotājs izveidot nevarēs. Šajos gadījumos pieteikumam jāpievieno šo mikroservisu logfaili:

 

  • Auth
  • Database
  • FTG
  • Gateway
  • Licence
  • Menu
  • Webrouter

 

Katram no šiem mikroservisiem ir vairāki faili ar logiem. Standarta logfailu atrašanās vieta ir C:\Program Files\Visma\HoP\Logs, bet to var arī noskaidrot jebkura mikroservisa appsettings.json failā, parametrā "LogFileDirectory". Jāpievieno visi šie faili:

 

  • Logs_<microservice_name>.txt
  • LogsDataIntegration_<microservice_name>.txt
  • LogsError_<microservice_name>.txt
  • LogsSlowQuery_<microservice_name>.txt
  • LogsUserActivity_<microservice_name>.txt

 

Papildu tam ir arī jānorāda, ar kādu lietotāju un ap cikiem šī problēma tika novērota.

 

Ja problēma rodas instalācijas laikā - atjaunojot versiju

 

Šis darbs ir jāveic lietotājam ar administratora tiesībām. 

 

Instalācijas laikā tiek izveidoti vairāki logfaili, kuros ir detalizēta informācija par instalācijas gaitu. Šie logfaili atrodas tā lietotāja "temporary" jeb pagaidu failu mapē, kurš palaidis instalāciju. Konkrētā mapes atrašanās vieta var variēt, tā ir norādīta vides mainīgajā (environment variable) %tmp%.

 

Lai nokļūtu šajā mapē, var atvērt, piemēram, Windows Explorer, adreses joslā ierakstīt %tmp% un nospiest Enter:

 

image2021-4-22_13-59-14.png

 

 

 

 

 

 

 

 

 

 

Ja atvērtā mape ir tukša, tad jāpaiet vienu mapi augstāk:

 

image2021-4-22_14-0-53.png

 

 

 

 

 

 

 

 

 

 

 

Failu nosaukumi sākas ar Visma_HOP_ un tad seko datumlaiks, kad ir notikusi instalācija. Instalācijas laikā tiek izveidots viens vai vairāki  t.s. "galvenie" logfaili un viens logfails katram mikroservisam, kas ticis instalēts, atjaunināts vai noinstalēts. Galvenajam failam aiz datumlaika seko faila paplašinājums .log, bet mikroservisa logfailam pirms paplašinājuma vēl ir kārtas numurs un mikroservisa nosaukums. Pēc kārtas numuriem var ātri saprast secību, kādā ir instalējušies mikroservisi. 

 

Parasti instalācijas logfailu izpēti sākam ar galveno failu un tad, ja nepieciešama detalizētāka informācija par kāda mikroservisa instalēšanas gaitu, skatāmies konkrētā mikroservisa instalācijas logfailā.

 

 

 

 

 

 

Komentāri
Andrejs_R
CONTRIBUTOR ***
autors Andrejs_R

Labdien!

 

Bieži saskaramies ar problēmu, ka startējot HoP (mūsu gadījumā - Tuna versija 2021.07.12) ir paziņojums - "Automātiskā autentificēšanās nav iespējama! Mēģiniet autentificēties, ievadot lietotājvārdu un paroli."

 

Šī problēma notiek pati par sevi - no rītiem. Nekādas izmaiņas uz serveriem veiktas līdz tam netiek, tas notiek randomā.

 

Logs_auth.txt LOG failā rakstīts:

"{ "date": "2022-08-25 09:38:44.265", "ip": "", "threadid": "4", "level": "Warn", "user": "", "sessionid": "", "request": "", "microservice": "", "message": "Failed to refresh audience cache. Will retry within next 10 seconds. Error message: No connection could be made because the target machine actively refused it. (localhost:9003)", "exception": "H2OMicroService.Audiences.Exceptions.AudienceCacheRefreshException: No connection could be made because the target machine actively refused it. (localhost:9003)\r\n ---> System.Net.WebException: No connection could be made because the target machine actively refused it. (localhost:9003)\r\n ---> System.Net.WebException: No connection could be made because the target machine actively refused it. (localhost:9003)\r\n ---> System.Net.WebException: No connection could be made because the target machine actively refused it. (localhost:9003)\r\n ---> System.Net.Http.HttpRequestException: No connection could be made because the target machine actively refused it. (localhost:9003)\r\n ---> System.Net.Sockets.SocketException (10061): No connection could be made because the target machine actively refused it.\r\n at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)\r\n at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)\r\n at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|283_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)\r\n at System.Net.Http.HttpConnectionPool.DefaultConnectAsync(SocketsHttpConnectionContext context, CancellationToken cancellationToken)\r\n at System.Net.Http.ConnectHelper.ConnectAsync(Func`3 callback, DnsEndPoint endPoint, HttpRequestMessage requestMessage, CancellationToken cancellationToken)\r\n --- End of inner exception stack trace ---\r\n at System.Net.Http.ConnectHelper.ConnectAsync(Func`3 callback, DnsEndPoint endPoint, HttpRequestMessage requestMessage, CancellationToken cancellationToken)\r\n at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)\r\n at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)\r\n at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)\r\n at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)\r\n at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)\r\n at System.Net.Http.HttpClient.SendAsyncCore(HttpRequestMessage request, HttpCompletionOption completionOption, Boolean async, Boolean emitTelemetryStartStop, CancellationToken cancellationToken)\r\n at System.Net.HttpWebRequest.SendRequest(Boolean async)\r\n at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)\r\n --- End of inner exception stack trace ---\r\n at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)\r\n at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result)\r\n at System.Net.WebClient.GetWebResponseTaskAsync(WebRequest request)\r\n at System.Net.WebClient.DownloadBitsAsync(WebRequest request, Stream writeStream, AsyncOperation asyncOp, Action`3 completionDelegate)\r\n at H2OMicroService.Components.WebClient.WrappedWebClient.DownloadStringTaskAsync(String address)\r\n at H2OMicroService.Components.WebClient.H2OWebClient.DownloadStringTaskAsync(String address)\r\n --- End of inner exception stack trace ---\r\n at H2OMicroService.Components.WebClient.H2OWebClient.DownloadStringTaskAsync(String address)\r\n at H2OMicroService.Components.WebClient.H2OWebClientFactory.GetSecureAsync[T](String baseUrl, String url, H2OConnectionProperties connectionProperties)\r\n --- End of inner exception stack trace ---\r\n at H2OMicroService.Components.WebClient.H2OWebClientFactory.GetSecureAsync[T](String baseUrl, String url, H2OConnectionProperties connectionProperties)\r\n at H2OMicroService.MicroserviceLocations.Services.H2OMicroserviceLocationService.GetSecureAsync[T](String microserviceName, String url, H2OConnectionProperties connectionProperties)\r\n at H2OMicroService.Audiences.Repositories.H2OAudienceRepository.GetClientIds()\r\n at H2OMicroService.Audiences.Services.H2OAudienceService.GetClientIds()\r\n at H2OMicroService.Audiences.H2OAudienceCache.Refresh(Boolean force)\r\n --- End of inner exception stack trace ---\r\n at H2OMicroService.Audiences.H2OAudienceCache.Refresh(Boolean force)\r\n at H2OMicroService.Audiences.Services.H2OAudienceCacheRefreshBackgroundService.ExecuteAsync(CancellationToken stoppingToken) at H2OMicroService.Audiences.H2OAudienceCache.Refresh(Boolean force)\r\n at H2OMicroService.Audiences.Services.H2OAudienceCacheRefreshBackgroundService.ExecuteAsync(CancellationToken stoppingToken)\r\n", "stacktrace": "WebClient.OnDownloadStringCompleted => <>c__DisplayClass191_0.<DownloadStringTaskAsync>b__0 => WebClient.HandleCompletion" }"

 

Problēma ir tajā, ka servera HoP restarts - nepalīdz. Ir jāstopē visi H2O* servisi un tad jāstartē. Tas rada problēmas biznesam un lieku stresu IT.

 

Lūdzu rast risinājumu.

 

2022-08-25 08_56_07-Visma HoP.png

Izceltā tēma

Saņem jaunumus par šo ziņu savā e-pastā!

Pieseko šai ziņai klikšķinot uz trim punktiem augšējā labajā šī raksta stūrī un izvēlies Abonēt. Tu vari izvēleties par kādu saturu saņem ziņas e-pastā!

Sīkāk par abonēšanas iespējām