Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

Innehållsförteckning

För att överlagra defaultinställningar behöver en fil med namnet ei-config-override.properties finnas på classpath.

Generellt

...

GetLogicalAddresseesByServiceContract

...

${EI_HSA_ID},${VP_HSA_ID}

...

LOCAL_EI_SUBSCRIBER_CACHE

...

/tmp/ei.localCache3

...

Generellt

En vanlig fil med Java-properties kan användas för att ändra inställningar. Aktivera genom att sätta flaggan -Dspring.config.import=/etc/ei-backend/application.properties

ParameterDefaultvärde/exempelKommentar
server.port8881Spring-boot serverport
update.webservice.urlhttp://localhost:8081/skltp-ei/update-service/v1URL för Update webbtjänsten
processnotification.webservice.url
http://localhost:8081/skltp-ei/notification-service/v1URL för ProcessNotification webbtjänsten
findcontent.webservice.url
http://localhost:8082/skltp-ei/find-content-service/v1URL för FindContent webtjänsten
management.endpoints.web.exposure.include
hawtio,jolokiaBehöver vara 'hawtio,jolokia' för att hawtio ska köras, 'health' behövs för probes
management.endpoint.health.probes.enabledtrue (sedan v3.2.1)Exponera liveness/readiness probes
management.endpoint.health.show-detailsalways (sedan v3.2.1)Visa detaljer om health indicators
management.health.livenessState.enabledtrue (sedan v3.2.1)Aktivera inbyggd livess-indikator
management.health.readinessState.enabledtrue (sedan v3.2.1)Aktivera inbyggd readiness-indikator
ei.hsa.id
ei-hsa-idEIs egna HSA id
ei.alternative.hsa.id
ei-hsa-idAlternativ till EIs HSA-ID
vp.hsa.id
vp-hsa-idVP's sender-ID för interna anrop
vp.instance.id
vp-instance-idVP's instans-ID för interna anrop
getlogicaladdresses.serviceEndpointUrl
http://localhost:8080/vp/getlogicaladdreessesUtgående URL till GLABSC tjänsten
getlogicaladdresses.logicalAddress
${vp.hsa.id}HSA id till GLABSC producenten
getlogicaladdresses.vpSenderId 
${vp.hsa.id}VP's sender-ID för interna anrop
getlogicaladdresses.vpInstanceId 
${vp.instance.id}VP's instans-ID för interna anrop
getlogicaladdresses.connectTimeoutMs 5000Connect timeout ms för GLABSC anrop
getlogicaladdresses.requestTimeoutMs 5000Request timeout ms för GLABSC anrop
processnotification.serviceEndpointUrl http://localhost:8080/vp/processnotificationUtgående URL för ProcessNotifications
processnotification.vpSenderId${vp.hsa.id}VP's sender-ID för interna anrop
processnotification.vpInstanceId${vp.instance.id}VP's instans-ID för interna anrop
subscriber.cache.file.name
Filnamn för lokal cache av subscribers
subscriber.cache.timeToLiveSeconds 7200Timeout innan subscriber cachen förnyas genom anrop med GLABSC tjänsten
subscriber.cache.reset.urlhttp://localhost:8083/skltp-ei/resetcacheAdress för att tömma prenumerantcachen
subscriber.cache.status.urlhttp://localhost:8083/skltp-ei/subscriber/statusAdress för att få status på prenumeranter
ei.status.urlhttp://localhost:8083/skltp-ei/statusAdress för att få status på EI
update-notification.not.allowed.hsaid.list${ei.hsa.id},${vp.hsa.id}Otillåtna HSA-IDn för att undvika recirkulation av anrop

Databas

Serverinställningar

...

Rekommendation avseende inställningar för MySQL:

ParameterVärdeKommentar
innodbonDefault engine ska vara InnoDB
innodb_log_buffer_size8MRekommendation
innodb_file_per_tableonReorganisering av data underlättas om en tabell har egen fil för lagring
innodb_buffer_pool_size2GNågonstans mellan 50-75% av RAM är rekommenderat
innodb_log_file_size512MRunt 25% av innodb_buffer_pool_size är rekommenderat
innodb_log_group_home_dir<på egen partition>Logfiler ska inte lagras på samma disk-partition som datafiler.
innodb_data_home_dir<på egen partition>Datafiler ska lagras på separat egen disk-partition, dvs. ej samma som root eller logfiler.
innodb_data_file_pathibdata1:100M:autoextend:max:5G...vad är kravet till denna parameter?
innodb_log_arch_dir<på egen partition>Arkivfiler ska lagras på separat egen disk-partition, dvs. ej samma som root eller logfiler.
bind-address
<ipadress>
Ipadress mysql skall lyssna på. Notera att bind-address behöver kommenteras 
bort i globala filen (/etc/mysql/my.cnf)
default-character-setutf8TBD
collation-serverutf8_unicode_ciTBD
character-set-serverutf8TBD



 Det ska baktas att inställningar som ökar prestanda på bekostnad av transaktionssäkerhet som tex  innodb_flush_method och innodb_flush_log_at_trx_commit inte ska ställas in på ett sätt som äventyrar konsistensen i databasen.

...

Inställningar för applikation:

Applikationen använder en sk. pool av JDBC Connections och då även vad gäller JDBC PreparedStatements. Nuvarande implementation är baserad på Apache Commons bibliotek. 

...

EI_JDBC_DRIVER

...

Springs standardinställningar för JDBC.

...

titlelog4j.xml

...

ParameterExempel
spring.datasource.urljdbc:mysql://ei-db:3306/ei?serverTimezone=Europe/Stockholm
spring.datasource.usernameei
spring.datasource.passwordsecret
spring.datasource.driver-class-namecom.mysql.jdbc.Driver
 

EI_JDBC_URL

jdbc:hsqldb:mem:.jdbc:mysql://localhost:3306/ei 

EI_JDBC_USR

saei_user 

EI_JDBC_PWD

 **** 

EI_JDBC_CON_POOL_INIT_SIZE

1 Initial storlek för poolen med JDBC Connections

EI_JDBC_CON_POOL_MAX_ACTIVE

10 Max storlek för poolen med JDBC Connections

EI_JDBC_CON_POOL_MAX_IDLE

2 Max antal JDBC Connections som får ligga oanvända i poolen

Köhantering Active MQ

Köhantering är konfigurerbart genom ei-config-override.properties.

http://activemq.apache.org/redelivery-policy.html

ParameterVärdeKommentar
SOITOOLKIT_MULE_AMQ_MAX_REDELIVERIES-1Antalet försök innan ett meddelande anses felaktigt och skickas till dead letter kön, -1
betyder oändligt antal försök. 
SOITOOLKIT_MULE_AMQ_REDELIVERY_DELAY60 000 (60 sek)Sätter tiden mellan nya omsändningsförsök
   
   

Loggning

Konfigurera applikationsloggning

Applikationsloggning konfigureras i <MULE_HOME>/apps/<EI [frontend|backend]>/classes/log4j.xml, som paketeras med default i applikationen. De log4j.xml som är paketerade i applikationen innehåller default-inställningar typsikst för en produktionsmilj.

Default loggas EI backend till <MULE_HOME>/logs/mule-app-skltp-ei-application-mule-backend-app.log
Default loggas EI frontend till <MULE_HOME>/logs/mule-app-skltp-ei-application-mule-frontend-app.log 

Uppdatera lognivåer om det skulle behövas, kräver ingen omstart av applikationer.

 

Exempel på definitionen av filnamn och placering av logfil för ei frontend:

spring.datasource.jpa.database-platformorg.hibernate.dialect.MySQL5InnoDBDialect
spring.datasource.jpa.hibernate.ddl-autoupdate

Köhantering Active MQ

ParameterVärdeKommentar
collect.queue.nameskltp.ei.collectNamn på collect kön i AMQ
collect.queue.completion.size1000Antal anrop i kön innan den collectas och skickas till process kön |
collect.queue.completion.timeout5Max sekunder meddelande kan ligga i collect kön innan de skickas till processkön
update.collect.threshold1Tröskelvärde för antal engagemang i ett anrop för att de ska hamna direkt i Processkön
process.queue.nameskltp.ei.processNamn på processkön i AMQ
notification.queue.prefixEI.NOTIFICATION.Prefix för namn på notification-köer i AMQ. Kö-namnet bildas av prefixet och prenumerantens logiska adress. Konfigurerbar sedan v3.2.1, default är tidigare hårdkodat värde.
activemq.broker.url
vm://localhost?broker.persistent=falseURL till AMQ broker
activemq.broker.user
adminAnvändarnamn för ActiveMQ-användare
activemq.broker.password
secretLösenord för ActiveMQ-användare
activemq.broker.maximum-redeliveries
2Antal leveransförsök som görs innan meddelanden hamnar i dead letter-kön. Standardinställningen är 2
activemq.broker.redelivery-delay
5000Tid mellan leveransförsök i millisekunder. Standardinställningen är 5000 ms
activemq.broker.use-exponential-backoff (1)falseSätt till true om exponential backoff ska användas, annars false.
activemq.broker.backoff-multiplier (1)3

Om exponential backoff ovan är satt till true, kommer varje omsändningsförsök n att fördröjas med föregående delay * multiplier. Det första omsändningsförsöket sker efter 5 sekunder i exemplet.

Exempel:

försök 1: 5 sek

försök 2: 5* 3 = 15 sek

försök 3: 15* 3 = 45 sek

försök 4:  45 * 3 = 135 sek

försök 5: 135 * 3 = 405 sek

activemq.broker.maximum-redelivery-delay (1)600000Maximal tid mellan leveransförsök i millisekunder, om exponential backoff används. Standardinställningen är 600000 ms (10 minuter).
activemq.broker.notification.maximum-redeliveries (1)${activemq.broker.maximum-redeliveries}Frivillig parameter med möjlighet att sätta activemq.broker.maximum-redeliveries endast för notification-köer.
activemq.broker.notification.redelivery-delay (1)${activemq.broker.redelivery-delay}Frivillig parameter med möjlighet att sätta activemq.broker.redelivery-delay endast för notification-köer.
activemq.broker.notification.use-exponential-backoff (1)${activemq.broker.use-exponential-backoff}Frivillig parameter med möjlighet att sätta activemq.broker.use-exponential-backoff endast för notification-köer.
activemq.broker.notification.backoff-multiplier (1)${activemq.broker.backoff-multiplier}Frivillig parameter med möjlighet att sätta activemq.broker.backoff-multiplier endast för notification-köer.
activemq.broker.notification.maximum-redelivery-delay (1)${activemq.broker.maximum-redelivery-delay}Frivillig parameter med möjlighet att sätta activemq.broker.maximum-redelivery-delay endast för notification-köer.
camel.component.activemq.broker-url
${activemq.broker.url}Adress till ActiveMQ
camel.component.activemq.trust-all-packagestrueStandard för ActiveMQ är att inte tillåta serialisering av godtyckliga Javaobjekt. Denna inställning ändrar detta beteende.

Not (1): Tillagd i EI version 3.2.0

Loggning

Exempel på loggfil för ei-backend

Kodblock
languagexml
titlelog4j2.xml
  <Configuration status="WARN" monitorInterval="30">

  <Properties>
    <Property name="LOG_PATTERN">
      %d %-5p [%t] %-30c - %X{corr.id} %m%n
    </Property>
    <Property name="log.dir">
       /var/log/ei-backend
    </Property>
  </Properties>

  <Appenders>

    <RollingRandomAccessFile name="BackendLogFile"
      fileName="${log.dir}/skltp-ei-backend-app.log"
      filePattern="${log.dir}/skltp-ei-backend-app.%i">
      <PatternLayout  <param namepattern="MaxFileSize" value="50MB" />${LOG_PATTERN}"/>
      <Policies>
        <!-- KB, MB -->
        <SizeBasedTriggeringPolicy size="50 MB"/>
      </Policies>
    <param  <DefaultRolloverStrategy namefileIndex="MaxBackupIndexmin" valuemax="10"/>
    </RollingRandomAccessFile>
  </Appenders>
  <Loggers>


    <!-- Ei application-->
    <Logger name="se.skltp.ei" level="INFO"/>
    <layout<Logger classname="orgse.apacheskltp.log4j.PatternLayout"ei.subscriber" level="INFO"/>
    <Logger name="se.skltp.ei.service.GetLogicalAddresseesServiceClient" level="WARN"/>
    <Logger <param name="ConversionPatternse.skltp.ei.EiApplication" valuelevel="%d %-5p %-30C - %m%n" />INFO"/>

    <!-- Ei application routes-->
    <Logger name="eiBackendLog" level="debug"/>
      
  </layout> <!--Apache camel-->
     </appender> 

 

Konfigurera loggning till meddelandekö

I ei-config-override.properties konfigureras till vilka köer logevents skall hamn på.

ParameterVärdeKommentar
SOITOOLKIT_LOG_INFO_QUEUESOITOOLKIT.LOG.STOREKonfigurera vilken kö INFO events skall hamna på.
SOITOOLKIT_LOG_ERROR_QUEUESOITOOLKIT.LOG.ERRORKonfigurera vilken kö ERROR events skall hamna på.

Konfigurera loggnivå för meddelanden

I log4j.xml på respektive app, skltp-ei-application-mule-[front|backend]-app/classes, kan konfiguration av logevents göras.

Slå på loggning till meddelandekö för INFO (ger även ERROR och WARN)

Kodblock
titlelog4j.xml
<Logger name="org.apache.camel" level="INFO"/>
    <Logger name="org.apache.camel.impl.engine.InternalRouteStartupManager" level="INFO"/>

    <!--Jetty-->
    <Logger name="org.eclipse.jetty" level="WARN"/>

    <!-- Message logging using soi-toolkit LogTransformer class -ActiveMQ-->
    <logger<Logger name="org.soitoolkit.commons.mule.messageLogger">apache.activemq" level="WARN"/>

    <!--  Hibernate -->
    <level<Logger valuename="INFOorg.hibernate.SQL" level="WARN"/>

   </logger>

 

Slå på loggning till meddelandekö för WARN (ger endast WARN)

Kodblock
titlelog4j.xml
     <!-- Message logging using soi-toolkit LogTransformer class  Cxf -->
    <logger<Logger name="org.soitoolkit.commons.mule.messageLogger"apache.cxf" level="WARN"/>

    <Root level="WARN">
      <level<AppenderRef valueref="WARNBackendLogFile"/>
    </>Root>

  </Loggers>
</logger>

 

 

...

Configuration>