Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
devel:documentation:application_configuration:dev:backend [2021/03/08 10:26]
svandav
devel:documentation:application_configuration:dev:backend [2021/05/05 09:08]
tomiskar [Application/ Server]
Line 63: Line 63:
 idm.pub.app.stage= idm.pub.app.stage=
 # Application instance / server id - is used for scheduler etc. # Application instance / server id - is used for scheduler etc.
-Should be defined in property file only+Can be defined in property file only! Overidding via ConfigurationService is not possible for application instance (~ more instanceos on the same database)
 idm.pub.app.instanceId=idm-primary idm.pub.app.instanceId=idm-primary
 # global date format on BE. Used in notification templates, logs, etc. FE uses localization key 'core:format.date'. # global date format on BE. Used in notification templates, logs, etc. FE uses localization key 'core:format.date'.
Line 77: Line 77:
 # Show role baseCode in frontend application for roles (table, role detail, niceLabel, info components, role select). # Show role baseCode in frontend application for roles (table, role detail, niceLabel, info components, role select).
 idm.pub.app.show.role.baseCode=true idm.pub.app.show.role.baseCode=true
-# Number of items (pagination) in role catalogue tree in root level.+# Number of items (pagination) in role catalogue tree in root level. Used on role select and agenda.
 idm.pub.app.show.roleCatalogue.tree.pagination.root.size=25 idm.pub.app.show.roleCatalogue.tree.pagination.root.size=25
-# Number of items (pagination) in role catalogue tree in other levels.+# Number of items (pagination) in role catalogue tree in other levels. Used on role select and agenda.
 idm.pub.app.show.roleCatalogue.tree.pagination.node.size=25 idm.pub.app.show.roleCatalogue.tree.pagination.node.size=25
 # Number of items (pagination) in tree node structure in root level. # Number of items (pagination) in tree node structure in root level.
Line 128: Line 128:
 idm.sec.core.init.data.enabled=true idm.sec.core.init.data.enabled=true
 </code> </code>
 +
 +=== Change server for asynchronous processing (switch application instance) ==
 +
 +@since 11.1.0
 +
 +Application instance (server) is used for asynchronus processing - for scheduled tasks, asynchronous long running tasks and events.
 +Instance identifier can be defined in the application profile (application.properties) by property ''idm.pub.app.instanceId''.
 +When we want to schedule and process asynchronous tasks and event on other instace (or when one instance shutdown), then we can switch processing by provided bulk action ''Change server for asynchronous processing'' in configuration agenda:
 +
 +{{ :devel:documentation:application_configuration:dev:switch-instance-bulk-action.png |}}
 +
 +Previous and new instance identifier is required as input parameters. All scheduled tasks and all created (~ not processed) asynchronous long running tasks and events will be moved from previous to new instance and will be processed on new instance (server).
 +
  
 ==== Jpa === ==== Jpa ===
Line 196: Line 209:
 <springProperty name="spring.datasource.jndi-name" source="spring.datasource.jndi-name"/> <springProperty name="spring.datasource.jndi-name" source="spring.datasource.jndi-name"/>
        
-<appender name="DB" class="eu.bcvsolutions.idm.core.exception.IdmDBAppender">+<appender name="DB" class="eu.bcvsolutions.idm.core.exception.IdmDbAppender">
  <connectionSource class="ch.qos.logback.core.db.JNDIConnectionSource">  <connectionSource class="ch.qos.logback.core.db.JNDIConnectionSource">
  <!-- please note the "java:comp/env/" prefix -->  <!-- please note the "java:comp/env/" prefix -->
Line 468: Line 481:
 # Thread priority for threads in event executor pool - 5 by default (normal). # Thread priority for threads in event executor pool - 5 by default (normal).
 scheduler.task.executor.threadPriority= scheduler.task.executor.threadPriority=
 +# Asynchronous task processing is stopped.
 +# Asynchronous task processing is stopped, when instance for processing is switched => prevent to process asynchronous task in the meantime.
 +# Asynchronous task processing can be stopped for testing or debugging purposes.
 +# Asynchronous task are still created in queue, but they are not processed automatically - task can be executed manually from ui.
 +idm.sec.core.scheduler.task.asynchronous.stopProcessing=false
 # Event queue processing period (ms). Period to read prepared (~created) asynchronous entity events from queue.  # Event queue processing period (ms). Period to read prepared (~created) asynchronous entity events from queue. 
 # Events are processed in batch configured by property 'idm.sec.core.event.asynchronous.batchSize'. If you events are processed quickly (~provisioning on your environment is quick), then batch size can be higher or this property can be lower. # Events are processed in batch configured by property 'idm.sec.core.event.asynchronous.batchSize'. If you events are processed quickly (~provisioning on your environment is quick), then batch size can be higher or this property can be lower.
Line 605: Line 623:
 # disable / enable asynchronous event processing. Events will be executed synchronously, if it's disabled. Enabled by default. # disable / enable asynchronous event processing. Events will be executed synchronously, if it's disabled. Enabled by default.
 idm.sec.core.event.asynchronous.enabled=true idm.sec.core.event.asynchronous.enabled=true
 +# Asynchronous event processing is stopped.
 +# Event processing is stopped, when instance for processing is switched => prevent to process instances in the meantime.
 +# Asynchronous event processing can be disabled for testing or debugging purposes.
 +# Events are still created in queue, but they are not processed.
 +idm.sec.core.event.asynchronous.stopProcessing=false
 # Asynchronous events will be executed on server instance with id. Default is the same as {@link ConfigurationService#getInstanceId()} (current server instance). # Asynchronous events will be executed on server instance with id. Default is the same as {@link ConfigurationService#getInstanceId()} (current server instance).
 idm.sec.core.event.asynchronous.instanceId= idm.sec.core.event.asynchronous.instanceId=
Line 649: Line 672:
   * ''deleteAction'' - true / **false** - Action deletes records (for FE only). Action will be in bottom menu section, is action is included in menu.    * ''deleteAction'' - true / **false** - Action deletes records (for FE only). Action will be in bottom menu section, is action is included in menu. 
   * ''quickButton'' - true / **false** - Render action as quick button (for FE only). The first available actions are rendered as buttons, if icon is defined. This configuration enforces rendering action as quick button (order is ignored).   * ''quickButton'' - true / **false** - Render action as quick button (for FE only). The first available actions are rendered as buttons, if icon is defined. This configuration enforces rendering action as quick button (order is ignored).
 +  * ''quickButtonable'' - **true** / false - Action can be included in quick buttons on FE. Set to **false**, when button should be not rendered => action will be rendendered in drop down menu only.
  
  
  • by chalupat