Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
napoveda_iskam_4:instalace:instalaceklienta [2012/10/31 17:20] – [Jak poznám, jestli mám SqlLocalDB nainstalován?] dubpetrnapoveda_iskam_4:instalace:instalaceklienta [2026/01/28 13:10] (aktuální) dubpetr
Řádek 1: Řádek 1:
-[[Externí odkaz]] 
 ====== Instalace klientské aplikace ====== ====== Instalace klientské aplikace ======
-Tato část obsahuje popis nastavení koordinátora distribuovaných transakcí systému Windows a popis nastavení brány firewall.+Na této stránce naleznete vše potřebné pro instalaci klienta ISKAM4 na pracovní stanici. 
  
 ===== Scénář ===== ===== Scénář =====
Řádek 9: Řádek 9:
 ===== Postup ===== ===== Postup =====
  
-Instalaci klientské aplikace provedete nejlépe instalátorem, který je k dispozici na [[http://www.aps-brno.cz/is/ISKAM4/ISKAM4.zip]]. Z uvedeného archívu je potřeba spustit setup.exekterý se postará i o instalaci prerekvizit uvedených níže. Dále je potřeba povolit koordinátor distribuovaných transakcí, viz níže v tomto textu. Při prvním spuštění je potřeba zadat název serveru a název systémové databáze (popř. lze zkopírovat INI soubor z jiného počítače). Uživatelský účet, který bude ISKAM spouštět, musí mít plná práva k adresáři, ve kterém je ISKAM nainstalován. +ISKAM vyžaduje pro svůj běh OS Windows v libovolné verzi aktuálně podporované firmou Microsoft (Windows XP tedy nejsou podporovány a ISKAM na nich nemusí fungovat vůbec nebo správně.) Pokud na stanicích kontrolujete podpisy kódu, tak my od května 2023 podepisujeme EXE a DLL soubory ISKAMu pomocí certifikátu, který je vystaven prostřednictvím interní certifikační autority ApS Brno. [[https://www.aps-brno.cz/is/ISKAM4/ApSBrnoCA.cer|Kořenový certifikát certifikační autority]] si můžete nahrát mezi důvěryhodné kořenové certifikační autority. 
-===== Scénář ===== + 
-Pro správný běh klientské části aplikace, je třeba nastavit v operačním koordinátora distribuovaných transakcí a umožnit mu komunikaci se serverem tznvytvořit odpovídající pravidla v bráně firewall. Postup nastavení je popsán pro operační systém Microsoft Windows 7. Ve starších verzích operačního systému je postup obdobný. +==== Základní instalace ISKAMu ==== 
-===== Postup ===== + 
-==== Koordinátor distribuovaných transakcí (MSDTC) ==== +Instalaci provedete instalátorem z [[https://www.aps-brno.cz/is/ISKAM4/ISKAM4.msi]].  
-   - Přes nabídku //Start// otevřeme //Ovládací panely// + 
-   - Zde se přes volbu //Nástroje pro správu// dostaneme k sekci //Služba komponent// +==== Instalace pokladny v restauraci nebo menze ==== 
-   - Otevře se nám dialog //Služba komponent//, ve kterém se proklikáme stromem //Služba komponent->Počítače->Tento počítač->Služba DTC// k //Místnímu koordinátoru DTC// + 
-   - Přes pravý klik myší na //Místní koordinátor DTC// se dostaneme do dialogu //Vlastnosti//kde vybereme záložku //Zabezpečení// +Pro provoz výdeje stravy nebo restauračního provozu je potřebné doinstalovat podporu lokální databázekterá je popsána níže na této stráńce 
-   - Zde je třeba nastavit všechny volby tak, jak ukazuje obrázek níže: {{ :napoveda_iskam_4:jadro:msdtc.png?200 |}} + 
-==== Brána firewall ==== +==== První spuštění ==== 
-Pokud používáte integrovanou bránu firewall systému Windows, měl by se ISKaM4 i prvním spuštění postarat o vytvoření odpovídajících pravidel (je potřeba mít ISKaM4 spuštěný s administrátorskými právy). Pokud by se tak nestalo, nebo pokud používáte jinou bránu firewallje třeba nastavit následující tři příchozí pravidla (inbound rules): + 
-   - Název: //DTC RPC//, Program=//%SystemRoot%\system32\svchost.exe//, Povoleno: //Ano//, Akce: //Povolit//, Vzdálená adresa: //"IP adresa serveru"//, Profil: //Vše//, Protokol: //TCP//, Místní port: //RPC//, Vzdálený port: //Jakýkoli// +Při prvním spuštění je potřeba zadat název serveru a název systémové databáze (popř. lze zkopírovat INI soubor z jiného počítače). Uživatelský účet, který bude ISKAM spouštět, musí mít plná práva k adresáři, ve kterém je ISKAM nainstalován. Po prvním přihlášení z daného terminálu je potřeba terminál zařadit do Struktury organizace - bez tohoto kroku nebude mít uživatel povoleny žádné dialogyNejsnazší způsob pro zařazení terminálu je, když se na terminálu ihlásí uživatel s oprávněním Jádro/Nastavení/Struktura organizace a ISKAM se po přihlášení zeptákam chcete terminál zařadit. 
-   - Název: //DTC RPC-EPMAP//, Program=//%SystemRoot%\system32\svchost.exe//, Povoleno: //Ano//, Akce: //Povolit//, Vzdálená adresa: //"IP adresa serveru"//, Profil: //Vše//, Protokol//TCP//, Místní port//RPC-EPMap//, Vzdálený port: //Jakýkoli//  + 
-   - Název: //DTC MSDTC TCP-In//, Program=//%SystemRoot%\system32\msdtc.exe//, Povoleno: //Ano//, Akce: //Povolit//, Vzdálená adresa: //"IP adresa serveru"//, Profil: //Vše//, Protokol: //TCP//, Místní port: //Jakýkoli//, Vzdálený port: //Jakýkoli// +==== Instalace specifického hardware ==== 
 + 
 +K některým terminálůISKaMu je ipojen specifický hardware, který vyžaduje své ovladače a svá nastavení. Pokud tedy takový HW používáte, nezapomeňte nainstalovat vše potřebné pro jeho funkčnost
 + 
 +Bližší informace o dalším specifickém HW najdete u popisu nastavení [[napoveda_iskam_4:instalace:nastaveniterminalu|terminálu]].
  
  
 ===== Scénář ===== ===== Scénář =====
-Nainstaloval jsem ISKAM a nejde spustit, popř. po spuštění spadneCo s tím?+Instalace ISKAM pro výdej stravy nebo restaurační provoz.
  
 ===== Postup ===== ===== Postup =====
  
-Instalátor ISKAMu by měl při instalaci provést vše potřebné, ale pokud ISKAM nefunguje, je potřeba ověřit, popř. doinstalovat jednak .NET Framework 4.03 Client Profile a jednak SQL Server 2012 v edici LocalDB.+Nejprve je potřeba provést základní instalaci ISKAM a poté doinstalovat jednak .NET Framework 4.03 Client Profile (to by měl doinstalovat instalátor) také SQL Server v edici LocalDB a SQL Native Client 11. Po instalaci obou komponent je vhodné provést restart počítače, ačkoliv instalátory si o něj většinou neříkají.
  
-==== .NET Framework 4.03 ==== 
  
-Aktualizace .NET Framework 4.03 je potřebná proto, aby se ISKAM (nebo obecně aplikace pro .NET Framework 4.0) uměla připojit na LocalDB (viz níže). Instalaci provedete nejlépe tak, že si stáhnete instalátor z webu společnosti Microsoft [[http://www.microsoft.com/cs-cz/download/details.aspx?id=29053]]. Pokud používáte Windows 7, tak můžete místo 4.03 nainstalovat i .NET Framework 4.5, lze očekávat, že jej v brzké době budete potřebovat i pro jiné aplikace, nicméně ISKAM4 bude prozadím psán ve verzi 4.0, protože 4.5 nefunguje pod Windows XP.+==== SQL Server 2017 LocalDB ====
  
-==== SQL Server 2012 LocalDB ====+SQL Server 2017 je databázový server od společnosti Microsoft a ISKAM4 jej využívá pro ukládání off-line dat na pracovní stanici. Microsoft pro tyto účely speciálně vyvinul edici nazvanou LocalDB, která poskytuje plnou podporu jazyka SQL, ale přitom takto nainstalovaný SQL server není přístupný z jiného počítače a není tak náchylný k napadení, jako byla edice Express používaná v předchozích verzích SQL serveru ke stejnému účelu. Instalátor je k dispozici zdarma na [[https://go.microsoft.com/fwlink/?LinkID=853017]] - vyberte Download Media, zatrhněte LocalDB a zvolte Download. Stažený soubor pak stačí spustit a nainstalovat tak SQL Server 2017 LocalDB. 
 + 
 +Pozn.: ISKAMu nezáleží na konkrétní verzi SQL Server LocalDB, lze použít jakoukoliv. Verze 2019 však má známý bug (stav k 28.1.2021) v instalátoru a samostatná instalaci LocalDB selže. Je nutné nainstalovat celý Express + LocalDB a pak Express odinstalovat, což je dost proti smyslu existence LocalDB. Proto doporučujeme použít verzi 2017. 
 + 
 +==== MS OLE DB Driver ==== 
 + 
 +Při použití novější verze LocalDB, než 2017 (může být na počítači např. kvůli jinému používanému SW), je nutné před prvním spuštěním ISKAMu se zapnutým parametrem LocalDB provést instalaci [[https://docs.microsoft.com/cs-cz/sql/connect/oledb/download-oledb-driver-for-sql-server?view=sql-server-ver15|MS OLE DB Driveru]]. Jinak nebude fungovat přilinkovaný server a tedy ani výdej stravy v ISKAMu.  
 + 
 +==== SQL Native Client 11 ==== 
 + 
 +SQL NC 11 je dynamická knihovna, která obsahuje ovladače pro komunikaci LocalDB se vzdáleným serverem a umožňuje tak synchronizaci dat. Bohužel jako taková není součástí LocalDB. Pro instalace ISKaM4 s LocalDB je třeba tuto knihovnu doinstalovat (ke stažení ze stránek Microsoftu viz níže). 
 + 
 +x86: http://go.microsoft.com/fwlink/?LinkID=239647&clcid=0x409 
 + 
 +x64: https://www.microsoft.com/en-US/download/details.aspx?id=50402 
 + 
 +==== .NET Framework 4.5 ==== 
 + 
 +Aktualizace .NET Framework 4.5 je potřebná proto, aby se ISKAM (nebo obecně aplikace pro .NET Framework 4.0) uměla připojit na LocalDB (viz výše). Instalaci provedete nejlépe tak, že si stáhnete instalátor z webu společnosti Microsoft [[https://msdn.microsoft.com/cs-cz/library/5a4x27ek(v=vs.110).aspx]]. 
  
-SQL Server 2012 je nejnovější verze databázového serveru od společnosti Microsoft a ISKAM4 jej využívá pro ukládání off-line dat na pracovní stanici. Microsoft pro tyto účely speciálně vyvinul edici nazvanou LocalDB, která poskytuje plnou podporu jazyka SQL, ale přitom takto nainstalovaný SQL server není přístupný z jiného počítače a není tak náchylný k napadení, jako byla edice Express používaná v předchozích verzích SQL serveru ke stejnému účelu. Instalátor je k dispozici zdarma na [[http://www.microsoft.com/en-us/download/details.aspx?id=29062]] - vyberte si podle Vašeho systému buď 32 nebo 64 bitovou verzi označenou jako SqlLocalDB. 
  
 ===== Další tipy a triky ===== ===== Další tipy a triky =====
 +
 +=== Jak ověřím, že je sever dostupný ===
 +
 +Pokud Vám ISKAM napíše, že nelze navázat spojení s serverem, tak příčinou může být špatně nastavený firewall, špatně zadané přihlašovací údaje, nebo dočasný problém s konektivitou. Pro ověření síťové dostupnosti lze použít několik nástrojů:
 +
 +''telnet <název nebo IP adresa serveru> 1433'' - pokusí se navázat spojení na zadaný server a port. 1433 je výchozí port pro SQL server. Pokud se spojení naváže, tak uvidíte v podstatě jen černou obrazovku, kterou můžete zavřít. 
 +
 +''Test-NetConnection <název nebo IP adresa serveru> -Port 1433'' - powershellový příkaz, který udělá podobný test, jako telnet.
 +
 +<code>
 +Write-Host "=== Test dostupnosti MS SQL Serveru ===" -ForegroundColor Cyan
 +
 +$server = Read-Host "Zadej název serveru (např. SERVER nebo SERVER\INSTANCE)"
 +
 +$connectionString = "Server=$server;Database=master;User Id=test;Password=test;Connect Timeout=5;"
 +
 +$conn = New-Object System.Data.SqlClient.SqlConnection $connectionString
 +
 +try {
 +    $con = $conn.Open()
 +    Write-Host "Připojeno – uživatel test/test existuje." -ForegroundColor Yellow
 +    $cmd = $conn.CreateCommand()
 +    $cmd.CommandText = "SELECT ORIGINAL_LOGIN() AS original_login, SUSER_SNAME() AS suser_sname, @@SERVERNAME AS servername;"
 +    $r = $cmd.ExecuteReader()
 +    while ($r.Read()) {
 +        "original_login=$($r['original_login']) | suser_sname=$($r['suser_sname']) | servername=$($r['servername'])"
 +    }
 +    $r.Close()
 +}
 +catch {
 +    Write-Host "Výsledek:" -ForegroundColor Cyan
 +    Write-Host $_.Exception.Message -ForegroundColor White
 +}
 +finally {
 +    $conn.Close()
 +}
 +
 +Write-Host "`nHotovo."
 +
 +</code>
 +
 +Když spustíte tento powershell script, tak se zeptá na název serveru. Pokud váš SQL server neběží na výchozím portu, tak je potřeba zadat ve tvaru ''<název nebo ip adresa serveru>,<port>''. Script se pokusí o reálné přihlášení k databázi a vypíše důvody neúspěchu. Očekávaným "pozitivním" výsledkem je, že se login nezdaří, protože na serveru nebude účet "test", pod kterým to script zkouší.
 +
  
 === Jak poznám, jestli mám SqlLocalDB nainstalován? === === Jak poznám, jestli mám SqlLocalDB nainstalován? ===
  
-příkazového řádku zkuste spustit ''sqllocaldb i''. Tento příkaz by měl vypsat všechny "instance" LocalDB na Vašem počítači, minimálně by tam měla být tzv. výchozí instance pojmenovaná v11. Tj. příkaz by měl po spuštění vypsat ''v11''. Pokud místo toho operační systém zahlásí, že soubor sqllocaldb nebyl nalezen, tak instalace neproběhla korektně.+Administrátoři mají v systému přístupný test - [[iskam><clsISKAMURL><M>Jadro</M><D>TestLocalDB</D><V /></clsISKAMURL>|Test připojení lokální databáze]]. 
 + 
 +Další možností je z příkazového řádku spustit ''sqllocaldb i''. Tento příkaz by měl vypsat všechny "instance" LocalDB na Vašem počítači, minimálně by tam měla být tzv. výchozí instance pojmenovaná MSSQLLocalDB. Tj. příkaz by měl po spuštění vypsat ''MSSQLLocalDB''. Pokud místo toho operační systém zahlásí, že soubor sqllocaldb nebyl nalezen, tak instalace neproběhla korektně. 
 + 
 +=== Co dělat, pokud se lokální databáze nespustí? === 
 +Může to způsobit, pokud je počet bajtů disku na sektor větší než 4kB (4096B), typicky u M.2 disků apod. Lze to zjistit tak, že spustím příkazový řádek ve Windows s právy administrátora a zavolám příkaz //fsutil fsinfo sectorinfo C:// (je třeba změnit C: na písmeno disku, kde je lokální DB nainstalována). Pokud bude pro parametr //PhysicalBytesPerSectorForAtomicity// nebo //PhysicalBytesPerSectorForPerformance// hodnota vyšší než 4096B, bude třeba upravit registry, buď přímo spuštěním skriptu pod oprávněním administrátora v PowerShellu níže, popř. ručně, hodnoty dle skriptu. 
 + 
 +//New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" -Name "ForcedPhysicalSectorSizeInBytes" -PropertyType MultiString -Force -Value "* 4095"// 
 + 
 +=== Co dělat, když si ISKAM nevytvoří databázové soubory ve složce data, popř. hlásí, že se nepodařilo přihlásit? === 
 + 
 +SqlLocalDB běží pod právy aktuálně přihlášeného uživatele Windows. Ten musí mít přístup do složky Data, aby si soubory mohl vytvořit a pokud už existují, tak aby se mohl přihlásit. Pokud jste měnil SID počítače (např. pomocí utility NewSID), popř. došlo k nějaké jiné akci, která může mít za následek změnu SID uživatele, tak SqlLocalDB nebude chtít povolit přihlášení uživatele. V takovém případě je nutné instalaci "opravit" následujícími dvěma řádky (ideálně po restartu počítače bez předchozího spuštění ISKAMu): 
 + 
 +<code> 
 +sqllocaldb delete ISKAM 
 +sqllocaldb create ISKAM 
 +</code> 
 +Samotné soubory s databází (ve složce Data v ISKAMu) mohou zůstat, není nutné je také mazat. 
 + 
 +=== Jak poznám, jestli mám nainstalován .NET Framework 4.5? ===
  
-=== Jak poznámjestli mám nainstalován .NET Framework 4.0.3? ===+Bohužel nám není známože by tato informace byla uživatelsky přístupná
  
-Bohužel nám není známo, že by tato informace byla uživatelsky ístupná. Je to schováno v registrech na této cestě ''HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client''.+=== Na určitých terminálech vypadávají i tisku písmena ===
  
 +Jde o chybu v .NET Framework 4.5.2, postup opravy je na [[napoveda_iskam_4:jadro:chybejicipismenavtisku|samostatné stránce]].
  
 ~~DISCUSSION~~ ~~DISCUSSION~~