Přeskočit obsah

Parkoviště

Instalace na straně serveru

info

Tento krok dělá PMC automaticky. Je ale v případě problémů dobré vědět, jak konfigurace na straně serveru funguje.

Do databáze BI je třeba přidat následující záznam:

insert into parking_config (parking_id, gmtp_id, subject_id) values (1,22,1);
  • parking_id - v databázi PMC - tabulka parking, sloupec parking_id
  • gmtp_id - GMTP ID parkoviště, nachází se v databázi PMC - tabulka parking, sloupec gmtp_ident
  • subject_id - ID subjektu, ke kterému se pojí parkoviště. Možno najít v databázi PMC - tabulka parking, sloupec subject_id

Instalace na straně parkoviště

Instalace databázových patchů

info

Od verze kernelu 5.6 už není potřeba tyto patche aplikovat - jsou součástí základní instalace.

Nainstalovat tyto databázové patche.

  • e54-2022-04-08-pmcDataPump
  • e54-2022-08-30-pmcDataPumpII

Instalace datové pumpy

Datovou pumpu je možné nainstalovat ve dvou režimech

  • naplánovaná úloha - Ve Windows sevytvoří naplánovaná úloha, která pravidelně datovou pumpu spouští.
  • služba - Ve Windows se vytvoří služba s automatickým startem. Spouštění přenosů se řeší v rámci procesu.

Níže je popsán instalační proces pro obě možnosti.

Naplánovaná úloha (default)

V průběhu instalace není třeba nic měnit. Po dokončení instalace se v systému objeví nová naplánovaná úloha "GreenPro-ETL"

Služba

Instalace Windows 1

V průběhu instalace vybrat možnost "{#projectName} {#version} Installed as a service"

Dále už není třeba nic měnit. Po instalaci se vytvoří služba GreenPro etl

Instalace Windows 3

V adresáři, kam se aplikace nainstalovala je soubor winsw.xml, kde lze upravit konfiguraci služby, přidat flag, upravit parametr prostředí...

winsw.xml
<?xml version="1.0" encoding="UTF-8"?>
<service>
   <id>GreenPro etl</id>
   <name>GreenPro etl</name>
   <startmode>Automatic</startmode>
   <description>GreenPro etl</description>
   <executable>java</executable>
   <arguments>-Djavax.net.ssl.trustStore=.\cert\amq-client.ts -Djavax.net.ssl.trustStorePassword=supersecretpassword -jar ".\pmc-etl-sybase-1.0.1.jar" --spring.profiles.active=gclive</arguments>
   <log mode="roll-by-size">
  <sizeThreshold>10240</sizeThreshold>
  <keepFiles>100</keepFiles>
  </log>
   <logpath>%BASE%\log</logpath>
</service>

Po úpravě souboru je nutné službu restartovat.

Konfigurace ETL

Podle způsobu provozování jsou možné dva způsoby konfigurace.

info

Pokud byla pumpa nainstalována přes windows instalátor, není potřeba konfiguraci upravovat. Je ale dobré znát možnosti konfigurace.

Scheduled tasks

#store transfer data
pmc.etlsybase.store = true

#running export schedule
pmc.etlsybase.cron.expression = 2 0,20,40 * * * ?

# (1)!
pmc.etlsybase.cron.repeatedly = false

# (2)!
# DB sybase configuration
spring.datasource.driver-class-name=com.sybase.jdbc4.jdbc.SybDriver
spring.datasource.jdbc-url=jdbc:sybase:Tds:127.0.0.1:2638/greenpro16?SQLINITSTRING=SET TEMPORARY OPTION "connection_authentication"='Company=Green Center s.r.o.;Application=GPP;Signature=000fa55157edb8e14d818eb4fe3db41447146f1571g357e241b4abefe1e00a1075355440585290041de';

# (3)!
spring.datasource.username=pmcbi
spring.datasource.password=xxxx

spring.datasource.idle-timeout=180000
spring.datasource.connection-timeout=30000
spring.datasource.minimum-idle=5
spring.datasource.maximum-pool-size=5
spring.datasource.pool-name=EtlPool
spring.datasource.max-lifetime=1800000
spring.datasource.connection-test-query=SELECT 1

# SQL dialect for generating optimized queries

spring.jpa.hibernate.ddl-auto=none

spring.jpa.database=SYBASE

#spring.jpa.show-sql=true

spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true

# (4)!
# MQ setting
pmc.etlsybase.url = ssl://pmc.parkcloud.cz:61617
pmc.etlsybase.username = pos_broker
pmc.etlsybase.password = xxx

pmc.etlsybase.queuename = etldb
pmc.etlsybase.timeout = 120000
pmc.etlsybase.messageSize = 5000
pmc.etlsybase.batchSize = 30000
pmc.etlsybase.expirationTime = 120000

# (5)!
# export tables
pmc.etlsybase.table = Receipt,ReceiptItem,Station,Revenue,Operator,RevenueItem,Currency,PaymentKind,Card,CardAlias,CardBlockage,CardLicencePlate,Access,Host,Owner,CardJournal,CardJournalEvent,StationEvent,StationJournal,CardPassJournal,CashboxState,CashboxStateItem,ReceiptItemCard,ReceiptItemDiscount,ReceiptItemVoucher,ReceiptStorno,ZonePGS,LengthRule,Rate,RedLetterDays,SaturationRule,ScheduleRule,Season,AccessZoneRate

pmc.etlsybase.columnid = IDReceipt,IDItem,IDStation,IDRevenue,IDOperator,IDRevenueItem,IDCurrency,IDKind,IDCard,IDAlias,IDCard,IDLicencePlate,IDAccess,HAPAddress,IDOwner,IDCardJournal,Action+Language,IDEvent,CreatedWhen+IDStation,IDCard,IDState,IDItem,IDItem,IDItem,IDItem,IDReceipt,IDZone,ScheduleRuleID+fromMinute,IDRate,IDRedLetterDay,ScheduleRuleID+saturationTime,IDRule,IDSeason,IDAccess+Zone

# struktura je Nazev_tabulky=sloupec1,sloupec2|Nazev_tabulky2=sloupec1,sloupec2

pmc.etlsybase.columns =
pmc.etlsybase.whereCondition = ,,,,,,,,,,,,,,,,,,,,,,,,,,,

pmc.etldbsybase.prefix =

logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} - %logger{36} - %msg%n

logging.file.name=./logs/GreenPro-ETL.log

logging.file.max-size=100MB
  1. Tímto nastavením se vypíná opakované spouštění
  2. Konfigurace připojení do databáze
  3. Vyměnit za správné uživatelské údaje!
  4. Nastavení MQ komunikace - je třeba upravit podle prostředí
  5. Konfigurace tabulek, které se mají přenášet

Service

#store transfer data
pmc.etlsybase.store = true

#running export schedule

# every 20 minutes
pmc.etlsybase.cron.expression = 2 0,20,40 * * * ?

# (1)!
pmc.etlsybase.cron.repeatedly = true

# (2)!
# DB sybase configuration
spring.datasource.driver-class-name=com.sybase.jdbc4.jdbc.SybDriver
spring.datasource.jdbc-url=jdbc:sybase:Tds:127.0.0.1:2638/greenpro16?SQLINITSTRING=SET TEMPORARY OPTION "connection_authentication"='Company=Green Center s.r.o.;Application=GPP;Signature=000fa55157edb8e14d818eb4fe3db41447146f1571g357e241b4abefe1e00a1075355440585290041de';

# (3)!
spring.datasource.username=pmcbi
spring.datasource.password=xxx

spring.datasource.idle-timeout=180000
spring.datasource.connection-timeout=30000
spring.datasource.minimum-idle=5
spring.datasource.maximum-pool-size=5
spring.datasource.pool-name=EtlPool
spring.datasource.max-lifetime=1800000
spring.datasource.connection-test-query=SELECT 1

# SQL dialect for generating optimized queries
spring.jpa.hibernate.ddl-auto=none
spring.jpa.database=SYBASE
#spring.jpa.show-sql=true
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true

# (4)!
# MQ setting
pmc.etlsybase.url = ssl://pmc.parkcloud.cz:61617
pmc.etlsybase.username = pos_broker
pmc.etlsybase.password = xxx
pmc.etlsybase.queuename = etldb
pmc.etlsybase.timeout = 120000
pmc.etlsybase.messageSize = 5000
pmc.etlsybase.batchSize = 30000
pmc.etlsybase.expirationTime = 120000

# (5)!
# export tables
pmc.etlsybase.table = Receipt,ReceiptItem,Station,Revenue,Operator,RevenueItem,Currency,PaymentKind,Card,CardAlias,CardBlockage,CardLicencePlate,Access,Host,Owner,CardJournal,CardJournalEvent,StationEvent,StationJournal,CardPassJournal,CashboxState,CashboxStateItem,ReceiptItemCard,ReceiptItemDiscount,ReceiptItemVoucher,ReceiptStorno,ZonePGS,LengthRule,Rate,RedLetterDays,SaturationRule,ScheduleRule,Season,AccessZoneRate

pmc.etlsybase.columnid = IDReceipt,IDItem,IDStation,IDRevenue,IDOperator,IDRevenueItem,IDCurrency,IDKind,IDCard,IDAlias,IDCard,IDLicencePlate,IDAccess,HAPAddress,IDOwner,IDCardJournal,Action+Language,IDEvent,CreatedWhen+IDStation,IDCard,IDState,IDItem,IDItem,IDItem,IDItem,IDReceipt,IDZone,ScheduleRuleID+fromMinute,IDRate,IDRedLetterDay,ScheduleRuleID+saturationTime,IDRule,IDSeason,IDAccess+Zone

# struktura je Nazev_tabulky=sloupec1,sloupec2|Nazev_tabulky2=sloupec1,sloupec2
pmc.etlsybase.columns =
pmc.etlsybase.whereCondition = ,,,,,,,,,,,,,,,,,,,,,,,,,,,
pmc.etldbsybase.prefix =
  1. Tímto nastavením se zapíná opakované spouštění
  2. Konfigurace připojení do databáze
  3. Vyměnit za správné uživatelské údaje!
  4. Nastavení MQ komunikace - je třeba upravit podle prostředí
  5. Konfigurace tabulek, které se mají přenášet