Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.
Kommentera: Uppdateringar för EI Camel

Innehållsförteckning

EI Camel

Denna sida beskriver EI Mule. Konfigurationsfilerna för EI Camel är beskrivna i källkoden.

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

Generellt

...

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
spring.jmx.enabled
trueSlå på JMX för Spring, så att det går att konfigurera t.ex. köer i Hawtio
hawtio.authentication.enabled
trueSätt till 'false' för att stänga av autentisering i Hawtio
hawtio.external.loginfile
/etc/ei-backend/users.propertiesSökväg till fil med Hawtio-användare och lösenord. Användare behöver tillhöra rollen 'user' för att kunna logga in. Formatet beskrivs på: https://wiki.eclipse.org/Jetty/Tutorial/Realms#HashLoginService
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-id
HSA ID vid kommunikation med Tjänsteplattformen, tex

GetLogicalAddresseesByServiceContract

GET_LOGICAL_ADDRESSES_BY_SERVICE_CONTRACT_OUTBOUND_URLAdressen till ändpunkten som exponerar tjänsten GetLogicalAddresseesByServiceContract.
VP's sender-ID för interna anrop
vp.instance.id
vp-instance-idVP's instans-ID för interna anrop
getlogicaladdresses.serviceEndpointUrl
http://
<host>
localhost:
<port>
8080/vp/
GetLogicalAddresseesByServiceContract/1/rivtabp21.UPDATE_NOTIFICATION_NOT_ALLOWED_HSA_ID_LIST

${EI_HSA_ID},${VP_HSA_ID}

En kommaseparerad lista med HSA-Id:n som ej får lov att användas i fälten logicalAddress eller sourceSystem. Detta gäller för anrop till både Update- och Processnotificationtjänsterna.1.1.0

LOCAL_EI_SUBSCRIBER_CACHE

/tmp/ei.localCache3

Sökväg till den fil där cachen med resultatet från GetLogicalAddresseesByServiceContract ska sparas. 1.1.0EI_ALTERNATIVE_HSA_IDEI_HSA_ID

Alternativ logisk adress för EI. Se

Jira Legacy
serverJIRA (skl-tp.atlassian.net)
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId750a6180-d7a0-3a07-9e26-06918e482381
keySKLTP-898

2.1.1
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

...

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



...

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. Springs standardinställningar för JDBC.

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:

...

titlelog4j.xml

...

jdbc:
ParameterDefaultvärdeFör MYSQLKommentar

EI_JDBC_DRIVER

org.hsqldb.jdbcDriver

com.mysql.jdbc.Driver

EI_JDBC_URL

jdbc:hsqldb:mem:.Exempel
spring.datasource.urljdbc:mysql://localhostei-db:3306/ei

EI_JDBC_USR

saei_user

EI_JDBC_PWD

****

EI_JDBC_CON_POOL_INIT_SIZE

1Initial storlek för poolen med JDBC Connections

EI_JDBC_CON_POOL_MAX_ACTIVE

10Max storlek för poolen med JDBC Connections

EI_JDBC_CON_POOL_MAX_IDLE

2Max 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

...

?serverTimezone=Europe/Stockholm
spring.datasource.usernameei
spring.datasource.passwordsecret
spring.datasource.driver-class-namecom.mysql.jdbc.Driver
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
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 0
activemq.broker.redelivery-delay
5000Tid mellan leveransförsök i millisekunder. Standardinställningen är 0 ms
camel.component.activemq.broker-ur
${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.

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">
        <param/var/log/ei-backend
    </Property>
  </Properties>

  <Appenders>

    <RollingRandomAccessFile name="fileBackendLogFile" value
      fileName="${mulelog.homedir}/logs/mule-app-skltp-ei-application-mulebackend-frontend-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 name   <DefaultRolloverStrategy fileIndex="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"/>
     <param<Logger 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"/>

    <!--   <level value="INFO" Hibernate -->
    <Logger name="org.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 value     <AppenderRef ref="WARNBackendLogFile"/>
    </>Root>

  </Loggers>
</logger>Configuration>