{"id":784,"date":"2021-12-30T15:31:47","date_gmt":"2021-12-30T14:31:47","guid":{"rendered":"https:\/\/www.ume.li\/blog\/?p=784"},"modified":"2021-12-30T15:32:42","modified_gmt":"2021-12-30T14:32:42","slug":"hcl-connections-optimize-jvm-settings","status":"publish","type":"post","link":"https:\/\/www.ume.li\/blog\/2021\/12\/30\/hcl-connections-optimize-jvm-settings\/","title":{"rendered":"HCL Connections optimize &#8211; JVM Settings"},"content":{"rendered":"<p>Dealing with a medium HCL Connections deployment, you&#8217;ll deal with at least 4 JVM&#8217;s. At least 6 with the file viewer. Deployment manager and nodeagents not counted.<br \/>\nGoing through the JVM Settings in the ISC is still doable in reasonable amount of time.<\/p>\n<p>The scripts from <a href=\"https:\/\/scripting101.stoeps.de\" title=\"Stoeps scripting\" rel=\"noopener\" target=\"_blank\">scripting101.stoeps.de<\/a> make lifes easier if you like to adjust the default settings.<\/p>\n<p>Dealing with a large, HA HCL Connections deployment including HCL Docs we have to deal with 44 JVM&#8217;s (dmgr and nodeagents excluded) I needed a way to easily compare and update the configuration in the cluster. For example adding a new server to the Activities Cluster requires you to add all the JVM Custom properties.<br \/>\nWhich are hidden deep within the ISC.<br \/>\n<a href=\"https:\/\/www.ume.li\/blog\/2021\/12\/30\/hcl-connections-optimize-jvm-settings\/selection_953\/\" target=\"_blank\" rel=\"attachment wp-att-789 noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ume.li\/blog\/wp-content\/uploads\/2021\/12\/Selection_953-300x27.png\" alt=\"\" width=\"600\" height=\"54\" class=\"alignleft size-medium wp-image-789\" srcset=\"https:\/\/www.ume.li\/blog\/wp-content\/uploads\/2021\/12\/Selection_953-300x27.png 300w, https:\/\/www.ume.li\/blog\/wp-content\/uploads\/2021\/12\/Selection_953-1024x92.png 1024w, https:\/\/www.ume.li\/blog\/wp-content\/uploads\/2021\/12\/Selection_953-768x69.png 768w, https:\/\/www.ume.li\/blog\/wp-content\/uploads\/2021\/12\/Selection_953.png 1308w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p>In order to have all the settings in 1 place (for documentation) and be able to apply any changes from the commandline I came up with this script: <a href=\"https:\/\/gist.github.com\/umeli\/d668f1060677f092f0e83d5a73a3ab32\" title=\"getJVMSettings.py\" rel=\"noopener nofollow\" target=\"_blank\">getJVMSettings.py<\/a><\/p>\n<pre class=\"brush: bash; title: run the script; notranslate\" title=\"run the script\">\r\n.\/wsadmin -lang jython -f getJVMsettings.py \/tmp\/jvmsettings-$(date +%Y-%m-%d_%H-%M-%S).py\r\n<\/pre>\n<p>this will export the JVM settings from all Websphere&#8217;s JVM&#8217;s into \/tmp\/jvmsettings-[timestamp].py<\/p>\n<p>The output file contains a block like this for each JVM<\/p>\n<pre class=\"brush: python; title: example output; notranslate\" title=\"example output\">\r\n\r\nprint 'Server ActivitiesCluster_server1 - init: 1024M - max: 1024M - arg: -Duser.language=en -Duser.region=US -Xmn256M -Xgcpolicy:gencon'\r\nAdminTask.setJVMInitialHeapSize('&#x5B;-serverName ActivitiesCluster_server1 -nodeName ConnectionsNode01 -initialHeapSize 1024]')\r\nAdminTask.setJVMMaxHeapSize('&#x5B;-serverName ActivitiesCluster_server1 -nodeName ConnectionsNode01 -maximumHeapSize 1024]')\r\nAdminTask.setGenericJVMArguments('&#x5B;-serverName ActivitiesCluster_server1 -nodeName ConnectionsNode01 -genericJvmArguments &quot;-Duser.language=en -Duser.region=US -Xmn256M -Xgcpolicy:gencon&quot;]')\r\nprint 'ActivitiesCluster_server1: com.ibm.security.jgss.debug = off'\r\nAdminTask.setJVMSystemProperties('&#x5B;-serverName ActivitiesCluster_server1 -nodeName ConnectionsNode01 -propertyName com.ibm.security.jgss.debug -propertyValue &quot;off&quot;]')\r\nprint 'ActivitiesCluster_server1: com.ibm.security.krb5.Krb5Debug = off'\r\nAdminTask.setJVMSystemProperties('&#x5B;-serverName ActivitiesCluster_server1 -nodeName ConnectionsNode01 -propertyName com.ibm.security.krb5.Krb5Debug -propertyValue &quot;off&quot;]')\r\nprint 'ActivitiesCluster_server1: com.ibm.ws.cache.CacheConfig.filterInactivityInvalidation = true'\r\nAdminTask.setJVMSystemProperties('&#x5B;-serverName ActivitiesCluster_server1 -nodeName ConnectionsNode01 -propertyName com.ibm.ws.cache.CacheConfig.filterInactivityInvalidation -propertyValue &quot;true&quot;]')\r\nprint 'ActivitiesCluster_server1: com.ibm.ws.cache.CacheConfig.filteredStatusCodes = 304 404 500 502'\r\nAdminTask.setJVMSystemProperties('&#x5B;-serverName ActivitiesCluster_server1 -nodeName ConnectionsNode01 -propertyName com.ibm.ws.cache.CacheConfig.filteredStatusCodes -propertyValue &quot;304 404 500 502&quot;]')\r\nprint 'ActivitiesCluster_server1: com.ibm.ws.cache.CacheConfig.filterLRUInvalidation = true'\r\nAdminTask.setJVMSystemProperties('&#x5B;-serverName ActivitiesCluster_server1 -nodeName ConnectionsNode01 -propertyName com.ibm.ws.cache.CacheConfig.filterLRUInvalidation -propertyValue &quot;true&quot;]')\r\nprint 'ActivitiesCluster_server1: db2.jcc.charsetDecoderEncoder = 3'\r\nAdminTask.setJVMSystemProperties('&#x5B;-serverName ActivitiesCluster_server1 -nodeName ConnectionsNode01 -propertyName db2.jcc.charsetDecoderEncoder -propertyValue &quot;3&quot;]')\r\nprint 'ActivitiesCluster_server1: com.ibm.ws.cache.CacheConfig.filterTimeOutInvalidation = true'\r\nAdminTask.setJVMSystemProperties('&#x5B;-serverName ActivitiesCluster_server1 -nodeName ConnectionsNode01 -propertyName com.ibm.ws.cache.CacheConfig.filterTimeOutInvalidation -propertyValue &quot;true&quot;]')\r\nprint 'ActivitiesCluster_server1: com.ibm.jsse2.overrideDefaultTLS = true'\r\nAdminTask.setJVMSystemProperties('&#x5B;-serverName ActivitiesCluster_server1 -nodeName ConnectionsNode01 -propertyName com.ibm.jsse2.overrideDefaultTLS -propertyValue &quot;true&quot;]')\r\nprint 'ActivitiesCluster_server1: com.ibm.ws.cache.CacheConfig.ignoreValueInInvalidationEvent = true'\r\nAdminTask.setJVMSystemProperties('&#x5B;-serverName ActivitiesCluster_server1 -nodeName ConnectionsNode01 -propertyName com.ibm.ws.cache.CacheConfig.ignoreValueInInvalidationEvent -propertyValue &quot;true&quot;]')\r\nprint 'ActivitiesCluster_server1: com.ibm.ws.recoverylog.disableNonHARegistration = true'\r\nAdminTask.setJVMSystemProperties('&#x5B;-serverName ActivitiesCluster_server1 -nodeName ConnectionsNode01 -propertyName com.ibm.ws.recoverylog.disableNonHARegistration -propertyValue &quot;true&quot;]')\r\nAdminConfig.save()\r\n<\/pre>\n<p>If you need to change a value , just edit the appropriate line starting with AdminTask.<br \/>\nTo apply the changes, just run the file.<\/p>\n<pre class=\"brush: bash; title: apply the changes; notranslate\" title=\"apply the changes\">\r\n.\/wsadmin -lang jython -f \/tmp\/jvmsettings-&#x5B;timestamp].py\r\n<\/pre>\n<p>Verify the changes in the ISC or run the getJVMSettings.py script again.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dealing with a medium HCL Connections deployment, you&#8217;ll deal with at least 4 JVM&#8217;s. At least 6 with the file<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[62,23],"tags":[],"class_list":["post-784","post","type-post","status-publish","format-standard","hentry","category-62","category-connections"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/posts\/784","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/comments?post=784"}],"version-history":[{"count":8,"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/posts\/784\/revisions"}],"predecessor-version":[{"id":794,"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/posts\/784\/revisions\/794"}],"wp:attachment":[{"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/media?parent=784"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/categories?post=784"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/tags?post=784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}