Skip to main content

Configuration of Kubernetes based Security Server 3.4.x and higher

Initial Note:
The "ks.fullName" determination is explain below in the Appendix section. It is required to create the custom Kubernetes configmap objects into targeted namespace prior to the deployment.
The "Values (MetaConfig)" settings are part of the helm deployment meta-configuration file (values.yaml) and processed at time of deployment.

NameLocationDescription
General Database ConfigurationValues (MetaConfig): "database"Configurable Parameters (and default values):
database: type: MYSQL name: ssms_db host: hostname port: 3306 driver: '' useJdbcUrl: false jdbcUrl: '' additionalUrlParameters: '' jpaHibernateProperties: '' mgtUser: name: admin password: password adminUser: name: admin password: password
Cluster ConfigurationValues (MetaConfig) "cluster:"Configurable Parameters (and default values):
cluster: scalabilityFactor: 4 memoryPoolSize: 1024 managementNodes: replicas: 2 additionalSystemParameters: '' resources: limits: memory: '3Gi' cpu: '2' requests: memory: '1.5Gi' cpu: '1' servicesNodes: replicas: 2 additionalSystemParameters: '' resources: limits: memory: '4Gi' cpu: '2' requests: memory: '2Gi' cpu: '1'
Modules and SSMS Advanced SettingsValues (MetaConfig) "modules"Configurable Parameters (and default values):
modules: kernel: enabled: true settings: rowsPerPage: 50 restSessionDefaultTimeout: 900 usernameForRESTServices: ~ passwordForRESTServices: ~ urlsAddressBookServers: 'http://scp-addressbook/addressbook' addressBookCertificateIgnore: false traceExporter: 'Zipkin' traceSampler: 'Probabilistic' probability: '0.1' svm: enabled: true asm: enabled: true settings: loginMaximumRetries: 10 reportBufferSize: 100000 identityAccessManagementUrl: 'http://idp-keycloak:8080/auth/realms/${tenantId}/protocol/openid-connect/certs' anonymousUser: memberOfContactLists: ~ accessorOfContactLists: ~
Gossip Router ConfigurationValues: "gossipRouter"Configurable Parameters (and default values):
gossipRouter: replicas: 1 resources: requests: memory: '256Mi' cpu: 250m limits: memory: '512Mi' cpu: 500m
Shutdown TimeoutValues: "shutdownTimeout"This timeout is awaited whenever an unhandled exception occurs in the Configuration Utility and allows administrators to retrieve container logs before they are overwritten by a restart.
Perform Update FlagValues: "performUpdate"Set to "true" by default. This flag controls whether or not the full configuration sequence (including database schema migrations) of the Configuration Utility is executed. It is not normally required to override this flag, since a "helm install" or "helm upgrade" warrants the full sequence under most circumstances.
Database Connection Pool for Management NodesValues (MetaConfig): "database.mgtConPoolConfig"Configurable Parameters (and default values):
database: mgtConPoolConfig: databasePoolCheckConnectionInterval: 2 acquireIncrement: 2 acquireRetryAttempts: 10 acquireRetryDelay: 1000 checkoutTimeout: 10000 databasePoolCheckConnectionInterval: 600 databasePoolMaximum: 20 databasePoolMinimum: 10 databasePoolTimeout: 21600 maxIdleTimeExcessConnections: 1200 maxStatements: 50 numHelperThreads: 5
Database Connection Pool for Services NodesValues (MetaConfig): "database.svcConPoolConfig"Configurable Parameters (and default values):
database: svcConPoolConfig: acquireIncrement: 5 acquireRetryAttempts: 10 acquireRetryDelay: 1000 checkoutTimeout: 10000 databasePoolCheckConnectionInterval: 600 databasePoolMaximum: 200 databasePoolMinimum: 20 databasePoolTimeout: 21600 maxIdleTimeExcessConnections: 1200 maxStatements: 50 numHelperThreads: 50
SSMS TruststoreKubernetes (or OpenShift) ConfigMap "$ks.fullName-truststore"The ConfigMap needs to provide truststore content encoded as base64 under the key "truststore", analogous to how the ConfigMap would be created by this command (note that the filename must be truststore, without an extension): kubectl create configmap $fullname-truststore -n $namespace --from-file truststore
JGroups ConfigurationKubernetes (or OpenShift) ConfigMap "$ks.fullName-communication-xml"The ConfigMap needs to provide the communication.xml content under the key "communication.xml", analogous to how the ConfigMap would be created by this command (note that the filename must be communication.xml): kubectl create configmap $fullname-communication-xml -n $namespace --from-file communication.xml The default configuration is:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <config xmlns="urn:org:jgroups" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/jgroups-3.6.xsd"> <UDP enable_diagnostics="true" ip_mcast="false" ip_ttl="${jgroups.udp.ip_ttl:8}" loopback="true" max_bundle_size="64K" max_bundle_timeout="30" mcast_recv_buf_size="124K" mcast_send_buf_size="124K" oob_thread_pool.enabled="true" oob_thread_pool.keep_alive_time="54000" oob_thread_pool.max_threads="100" oob_thread_pool.min_threads="25" oob_thread_pool.queue_enabled="true" oob_thread_pool.queue_max_size="10000" oob_thread_pool.rejection_policy="discard" port_range="10" singleton_name="SharedTransport_Main" thread_naming_pattern="cl" thread_pool.enabled="true" thread_pool.keep_alive_time="54000" thread_pool.max_threads="40" thread_pool.min_threads="10" thread_pool.queue_enabled="true" thread_pool.queue_max_size="10000" thread_pool.rejection_policy="discard" timer.keep_alive_time="3000" timer.max_threads="14" timer.min_threads="4" timer.queue_max_size="500" timer_type="new" tos="8" ucast_recv_buf_size="124K" ucast_send_buf_size="124K"/> <TCPGOSSIP reconnect_interval="60000" initial_hosts="{{ template "ks.fullname" $ }}-gossip-{{ $index }}[12001]"/> <MERGE2 max_interval="30000" min_interval="10000"/> <FD_SOCK port_range="10"/> <FD_ALL/> <VERIFY_SUSPECT timeout="1500"/> <BARRIER/> <pbcast.NAKACK2 discard_delivered_msgs="true" max_msg_batch_size="500" use_mcast_xmit="false" xmit_interval="1000" xmit_table_max_compaction_time="30000" xmit_table_msgs_per_row="2000" xmit_table_num_rows="100"/> <UNICAST conn_expiry_timeout="60000" max_msg_batch_size="500" xmit_interval="2000" xmit_table_max_compaction_time="60000" xmit_table_msgs_per_row="2000" xmit_table_num_rows="100"/> <pbcast.STABLE desired_avg_gossip="50000" max_bytes="4M" stability_delay="1000"/> <pbcast.GMS join_timeout="3000" print_local_addr="true" view_bundling="true"/> <UFC max_credits="2M" min_threshold="0.4"/> <MFC max_credits="2M" min_threshold="0.4"/> <FRAG2 frag_size="60K"/> <RSVP resend_interval="2000" timeout="10000"/> <pbcast.STATE_TRANSFER/> </config>
Tomcat Configuration Template for Management Nodes (server.xml.template)Kubernetes (or OpenShift) ConfigMap "$ks.fullName-mgt-server-xml-template"The ConfigMap needs to provide the server.xml.template content under the key "server.xml.template", analogous to how the ConfigMap would be created by this command (note that the filename must be server.xml.template): kubectl create configmap $fullname-mgt-server-xml-template -n $namespace --from-file server.xml.template The default configuration is:
<?xml version="1.0" encoding="utf-8" standalone="no" ?> <Server port="-1"> <Listener className="org.apache.catalina.core.JasperListener" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <GlobalNamingResources> <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase" /> </GlobalNamingResources> <Service name="SSMS"> ${connector.mgt.start} <Connector SSLEnabled="true" Server="SSMS" URIEncoding="${mgt.URIEncoding}" acceptCount="${mgt.acceptCount}" algorithm="SunX509" ciphers="${connector.ciphers}" clientAuth="want" compression="true" connectionTimeout="${mgt.connectionTimeout}" keyAlias="ssmskey" keystoreFile="${mgt.keystoreFile}" keystorePass="${mgt.keystorePass}" keystoreType="${mgt.keystoreType}" maxThreads="${mgt.maxThreads}" port="${mgt.port}" protocol="HTTP/1.1" scheme="HTTPS" secure="true" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" truststoreFile="${mgt.truststoreFile}" truststorePass="${mgt.truststorePass}" truststoreType="${mgt.truststoreType}" /> ${connector.mgt.end} ${connector.svc.start} <Connector SSLEnabled="true" Server="SSMS" URIEncoding="${svc.URIEncoding}" acceptCount="${svc.acceptCount}" algorithm="SunX509" ciphers="${connector.ciphers}" clientAuth="false" compression="true" connectionTimeout="${svc.connectionTimeout}" keyAlias="ssmskey" keystoreFile="${svc.keystoreFile}" keystorePass="${svc.keystorePass}" keystoreType="${svc.keystoreType}" maxThreads="${svc.maxThreads}" port="${svc.port}" protocol="HTTP/1.1" scheme="HTTPS" secure="true" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" /> ${connector.svc.end} ${connector.ext.start} <Connector Server="SSMS" URIEncoding="${ext.URIEncoding}" acceptCount="${ext.acceptCount}" connectionTimeout="${ext.connectionTimeout}" maxThreads="${ext.maxThreads}" port="${ext.port}" protocol="org.apache.coyote.http11.Http11NioProtocol" /> ${connector.ext.end} ${connector.extSecure.start} <Connector SSLEnabled="true" Server="SSMS" URIEncoding="${extSecure.URIEncoding}" acceptCount="${extSecure.acceptCount}" algorithm="SunX509" ciphers="${connector.ciphers}" clientAuth="false" compression="true" connectionTimeout="${extSecure.connectionTimeout}" keyAlias="ssmskey" keystoreFile="${extSecure.keystoreFile}" keystorePass="${extSecure.keystorePass}" keystoreType="${extSecure.keystoreType}" maxThreads="${extSecure.maxThreads}" port="${extSecure.port}" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="HTTPS" secure="true" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" /> ${connector.extSecure.end} ${connector.ajp.start} <Connector URIEncoding="${ajp.URIEncoding}" port="${ajp.port}" protocol="AJP/1.3" redirectPort="${ajp.redirectPort}" secretRequired="${ajp.secretRequired}" ${ajp.attributeSecret}${ajp.secret} /> ${connector.ajp.end} <Engine defaultHost="localhost" jvmRoute="${engine.jvmRoute}" name="Catalina"> <Host appBase="webapps" autoDeploy="false" name="localhost" unpackWARs="false"></Host> </Engine> </Service> </Server>
Tomcat Configuration Template for Services Nodes (server.xml.template)Kubernetes (or OpenShift) ConfigMap "$ks.fullName-svc-server-xml-template"The ConfigMap needs to provide the server.xml.template content under the key "server.xml.template", analogous to how the ConfigMap would be created by this command (note that the filename must be server.xml.template): kubectl create configmap $fullname-svc-server-xml-template -n $namespace --from-file server.xml.template (The same template as above can be used)
EHCache Configuration for Management NodesKubernetes (or OpenShift) ConfigMap "$ks.fullName-mgt-ehcache-xml"The ConfigMap needs to provide the ehcache-MGT.xml content under the key "ehcache-MGT.xml", analogous to how the ConfigMap would be created by this command (note that the filename must be ehcache-MGT.xml): kubectl create configmap $fullname-mgt-ehcache-xml -n $namespace --from-file ehcache-MGT.xml The default configuration is:
<ehcache updateCheck="false" name="ssms_cache_mgt"> <diskStore path="java.io.tmp" /> <defaultCache maxElementsInMemory="100" eternal="false" timeToIdleSeconds="600" timeToLiveSeconds="600" overflowToDisk="false" /> <!-- <cache name="org.hibernate.cache.StandardQueryCache" maxElementsInMemory="50" eternal="false" timeToLiveSeconds="120" overflowToDisk="false" /> --> <cache name="com.kobil.ssms.asm.entity.AsmClientType" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.asm.entity.AsmDevice" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="300" overflowToDisk="false" /> <!-- half hour --> <cache name="com.kobil.ssms.asm.entity.AsmDeviceProperty" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="1800" overflowToDisk="false" /> <!-- 30 minutes --> <cache name="com.kobil.ssms.asm.entity.AsmDeviceType" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- one hour --> <cache name="com.kobil.ssms.asm.entity.AsmLittleDevice" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="300" overflowToDisk="false" /> <!-- half hour --> <cache name="com.kobil.ssms.asm.entity.AsmLittleDeviceProperty" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="1800" overflowToDisk="false" /> <!-- 30 minutes --> <cache name="com.kobil.ssms.asm.entity.AsmLittleSvmUsercertificate" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="1800" overflowToDisk="false" /> <!-- 30 minutes --> <cache name="com.kobil.ssms.asm.entity.AsmLittleVersion" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.asm.entity.AsmPushNotificationConfig" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- one hour --> <cache name="com.kobil.ssms.asm.entity.AsmSoftwareType" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- 2 Hours --> <cache name="com.kobil.ssms.asm.entity.AsmUser" maxElementsInMemory="10000" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.asm.entity.AsmVersion" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.asm.entity.AsmVersionUpdate" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- 2 Hours --> <cache name="com.kobil.ssms.asm.entity.AsmVirtualDevice" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="300" /> <!-- half hour --> <cache name="com.kobil.ssms.asm.entity.AsmApnsAuthenticationType" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- one hour --> <cache name="com.kobil.ssms.kernel.entity.KernelNode" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="3600" timeToIdleSeconds="300" overflowToDisk="false" /> <!-- one hour --> <cache name="com.kobil.ssms.kernel.entity.KernelRole" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="1800" overflowToDisk="false" /> <!-- 30 minutes --> <cache name="com.kobil.ssms.kernel.entity.KernelTextResource" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- 2 Hours --> <cache name="com.kobil.ssms.kernel.entity.KernelUser" maxElementsInMemory="2000" eternal="false" timeToLiveSeconds="600" timeToIdleSeconds="300" overflowToDisk="false" /> <!-- ten minutes --> <cache name="com.kobil.ssms.kernel.entity.KernelConfig" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.kernel.entity.KernelTenant" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.kernel.entity.KernelX509Certificate" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.kernel.entity.KernelX509CertificateExtension" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.kernel.entity.KernelGroupProperty" maxElementsInMemory="10000" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <cache name="com.kobil.ssms.kernel.entity.KernelUserProperty" maxElementsInMemory="10000" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <cache name="com.kobil.ssms.svm.entity.SvmKernelUser" maxElementsInMemory="10000" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- half hour --> <cache name="com.kobil.ssms.svm.entity.SvmIssuercertificate" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.svm.entity.SvmUsercertificate" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="1800" overflowToDisk="false" /> <!-- 30 minutes --> <cache name="org.hibernate.cache.StandardQueryCache" maxElementsInMemory="1000" eternal="false" timeToIdleSeconds="1800" timeToLiveSeconds="1800" overflowToDisk="false" diskPersistent="false" /> <!-- 30 minutes --> <cache name="org.hibernate.cache.internal.StandardQueryCache" maxElementsInMemory="1000" eternal="false" timeToIdleSeconds="1800" timeToLiveSeconds="1800" overflowToDisk="false" diskPersistent="false" /> <!-- 30 minutes --> <cache name="com.kobil.ssms.asm.entity.AsmTokenPolicy" maxElementsInMemory="500" eternal="false" timeToIdleSeconds="90000" overflowToDisk="false" diskPersistent="false" /> <cache name="org.hibernate.cache.spi.UpdateTimestampsCache" maxElementsInMemory="1000" eternal="true" overflowToDisk="false" diskPersistent="false" /> <cache name="query.asmAppVersion" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <cache name="query.asmAppVersionUpdate" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <cache name="query.asmPushNotificationConfig" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <cache name="query.getFirmwareVersions" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.HigherVersionsForFirmware" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.kernelGroupProperty" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="7000" timeToIdleSeconds="7000"/> <!-- always less than the entities involved --> <cache name="query.kernelTextResources" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <cache name="query.KernelUser.GetUserByLoginId" maxElementsInMemory="10000" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.kernelUserProperty" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7000"/> <!-- always less than the entities involved --> <cache name="query.svmIssuerCertificate" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <cache name="query.SvmKernelUser.GetUserByLoginId" maxElementsInMemory="10000" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.svmUserCertificate" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="1800" /> <!-- 30 minutes --> <cache name="query.VersionUpdatesForApp" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.VersionUpdateForFirmware" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.getAllAsmTokenPolicies" maxElementsInMemory="10" eternal="false" timeToIdleSeconds="86400" /> <cache name="query.asmApnsAuthenticationType" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <cache name="query.kernelConfig.massReactivation.config" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="7200" /> <cache name="query.KernelTenant.GetTenantByLoginId" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.KernelTenant.defaultTenant" maxElementsInMemory="1" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.KernelTenant.masterTenant" maxElementsInMemory="1" eternal="false" timeToIdleSeconds="86400" /> <!-- 24 Hours; if there is no interaction with cache object, it will be invalidate. --> <cache name="query.KernelX509Certificate.getOperatorCert" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <!-- two hour --> </ehcache>
EHCache Configuration for Services NodesKubernetes (or OpenShift) ConfigMap "$ks.fullName-svc-ehcache-xml"The ConfigMap needs to provide the ehcache-SVC.xml content under the key "ehcache-SVC.xml", analogous to how the ConfigMap would be created by this command (note that the filename must be ehcache-SVC.xml): kubectl create configmap $fullname-mgt-ehcache-xml -n $namespace --from-file ehcache-SVC.xml The default configuration is:
<ehcache updateCheck="false" name="ssms_cache_svc"> <diskStore path="java.io.tmp" /> <defaultCache maxElementsInMemory="100" eternal="false" timeToIdleSeconds="600" timeToLiveSeconds="600" overflowToDisk="false" /> <!-- <cache name="org.hibernate.cache.StandardQueryCache" maxElementsInMemory="50" eternal="false" timeToLiveSeconds="120" overflowToDisk="false" /> --> <cache name="com.kobil.ssms.asm.entity.AsmClientType" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.asm.entity.AsmDevice" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="300" overflowToDisk="false" /> <!-- half hour --> <cache name="com.kobil.ssms.asm.entity.AsmDeviceProperty" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="1800" overflowToDisk="false" /> <!-- 30 minutes --> <cache name="com.kobil.ssms.asm.entity.AsmDeviceType" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- one hour --> <cache name="com.kobil.ssms.asm.entity.AsmLittleDevice" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="300" overflowToDisk="false" /> <!-- half hour --> <cache name="com.kobil.ssms.asm.entity.AsmLittleDeviceProperty" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="1800" overflowToDisk="false" /> <!-- 30 minutes --> <cache name="com.kobil.ssms.asm.entity.AsmLittleSvmUsercertificate" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="1800" overflowToDisk="false" /> <!-- 30 minutes --> <cache name="com.kobil.ssms.asm.entity.AsmLittleVersion" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.asm.entity.AsmPushNotificationConfig" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- one hour --> <cache name="com.kobil.ssms.asm.entity.AsmSoftwareType" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- 2 Hours --> <cache name="com.kobil.ssms.asm.entity.AsmUser" maxElementsInMemory="10000" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.asm.entity.AsmVersion" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.asm.entity.AsmVersionUpdate" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- 2 Hours --> <cache name="com.kobil.ssms.asm.entity.AsmVirtualDevice" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="300" /> <!-- half hour --> <cache name="com.kobil.ssms.asm.entity.AsmApnsAuthenticationType" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- one hour --> <cache name="com.kobil.ssms.kernel.entity.KernelNode" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="3600" timeToIdleSeconds="300" overflowToDisk="false" /> <!-- one hour --> <cache name="com.kobil.ssms.kernel.entity.KernelRole" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="1800" overflowToDisk="false" /> <!-- 30 minutes --> <cache name="com.kobil.ssms.kernel.entity.KernelTextResource" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- 2 Hours --> <cache name="com.kobil.ssms.kernel.entity.KernelUser" maxElementsInMemory="2000" eternal="false" timeToLiveSeconds="600" timeToIdleSeconds="300" overflowToDisk="false" /> <!-- ten minutes --> <cache name="com.kobil.ssms.kernel.entity.KernelConfig" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.kernel.entity.KernelTenant" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.kernel.entity.KernelX509Certificate" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.kernel.entity.KernelX509CertificateExtension" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.kernel.entity.KernelGroupProperty" maxElementsInMemory="10000" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <cache name="com.kobil.ssms.kernel.entity.KernelUserProperty" maxElementsInMemory="10000" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <cache name="com.kobil.ssms.svm.entity.SvmKernelUser" maxElementsInMemory="10000" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- half hour --> <cache name="com.kobil.ssms.svm.entity.SvmIssuercertificate" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7200" overflowToDisk="false" /> <!-- two hour --> <cache name="com.kobil.ssms.svm.entity.SvmUsercertificate" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="1800" timeToIdleSeconds="1800" overflowToDisk="false" /> <!-- 30 minutes --> <cache name="org.hibernate.cache.StandardQueryCache" maxElementsInMemory="1000" eternal="false" timeToIdleSeconds="1800" timeToLiveSeconds="1800" overflowToDisk="false" diskPersistent="false" /> <!-- 30 minutes --> <cache name="org.hibernate.cache.internal.StandardQueryCache" maxElementsInMemory="1000" eternal="false" timeToIdleSeconds="1800" timeToLiveSeconds="1800" overflowToDisk="false" diskPersistent="false" /> <!-- 30 minutes --> <cache name="com.kobil.ssms.asm.entity.AsmTokenPolicy" maxElementsInMemory="500" eternal="false" timeToIdleSeconds="90000" overflowToDisk="false" diskPersistent="false" /> <cache name="org.hibernate.cache.spi.UpdateTimestampsCache" maxElementsInMemory="1000" eternal="true" overflowToDisk="false" diskPersistent="false" /> <cache name="query.asmAppVersion" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <cache name="query.asmAppVersionUpdate" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <cache name="query.asmPushNotificationConfig" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <cache name="query.getFirmwareVersions" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.HigherVersionsForFirmware" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.kernelGroupProperty" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="7000" timeToIdleSeconds="7000"/> <!-- always less than the entities involved --> <cache name="query.kernelTextResources" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <cache name="query.KernelUser.GetUserByLoginId" maxElementsInMemory="10000" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.kernelUserProperty" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="7000"/> <!-- always less than the entities involved --> <cache name="query.svmIssuerCertificate" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <cache name="query.SvmKernelUser.GetUserByLoginId" maxElementsInMemory="10000" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.svmUserCertificate" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="1800" /> <!-- 30 minutes --> <cache name="query.VersionUpdatesForApp" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.VersionUpdateForFirmware" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.getAllAsmTokenPolicies" maxElementsInMemory="10" eternal="false" timeToIdleSeconds="86400" /> <cache name="query.asmApnsAuthenticationType" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <cache name="query.kernelConfig.massReactivation.config" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="7200" /> <cache name="query.kernelConfig.KernelPortalServices" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.KernelTenant.GetTenantByLoginId" maxElementsInMemory="1000" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.KernelTenant.defaultTenant" maxElementsInMemory="1" eternal="false" timeToLiveSeconds="7200" /> <!-- 2 Hours --> <cache name="query.KernelTenant.masterTenant" maxElementsInMemory="1" eternal="false" timeToIdleSeconds="86400" /> <!-- 24 Hours; if there is no interaction with cache object, it will be invalidate. --> <cache name="query.KernelX509Certificate.getOperatorCert" maxElementsInMemory="100" eternal="false" timeToLiveSeconds="7200" /> <!-- two hour --> </ehcache>