One might need to upgrade the WCC 11.4.x Tomcat engine to latest Tomcat 8.5.x release to address some vulnerabilities that are fixed in newer versions of Tomcat 8.5.x. Below document provides the steps to upgrade Tomcat for WCC when WCC is on Windows.
For WCC 12.x refer to 12.x documentation https://techdocs.broadcom.com/us/en/ca-enterprise-software/intelligent-automation/autosys-workload-automation/12-0/installing/Install-AutoSys/upgrade-tomcat-version-for-autosys.html
Release : 11.3.6
Component : CA Workload Automation AE (AutoSys)
1) Create a temporary folder c:\temp on the Autosys Server
2) Download and Copy apache-tomcat-8.5.65-windows-x64.zip (64bit tomcat) to c:\temp
(You can Download newer (for example 8.5.65) tomcat ZIP file from http://tomcat.apache.org or obtain your inhouse supported tomcat )
3) Right click on the above zip file in Windows Explorer and select Extract All
4) This creates folders like this: C:\temp\apache-tomcat-8.5.65-windows-x64\apache-tomcat-8.5.65
5) Repeat Steps 2 and 3 for apache-tomcat-8.5.65-windows-x86.zip (32bit tomcat)
%CA_WCC_INSTALL_LOCATION% below refers to the location where WCC is installed, example: C:\Program Files\CA\Workload Control Center
1. Stop the WCC services (CA-wcc and CA-wcc-services services), make sure both services are in Stopped status.
2. Rename folder %CA_WCC_INSTALL_LOCATION%\tomcat to tomcat_old
3. Rename folder %CA_WCC_INSTALL_LOCATION%\tomcat_32 to tomcat_32_old
4. Copy C:\temp\apache-tomcat-8.5.65-windows-x64\apache-tomcat-8.5.65 to %CA_WCC_INSTALL_LOCATION%
## NOTE, the folder in c:\temp here is the 64bit one, (-x64)
5. Rename %CA_WCC_INSTALL_LOCATION%\apache-tomcat-8.5.65 to %CA_WCC_INSTALL_LOCATION%\tomcat
6. Copy C:\temp\apache-tomcat-8.5.65-windows-x86\apache-tomcat-8.5.65 to %CA_WCC_INSTALL_LOCATION%
## NOTE, the folder in c:\temp here is the 32bit one, (-x86)
7. Rename %CA_WCC_INSTALL_LOCATION%\apache-tomcat-8.5.65 to %CA_WCC_INSTALL_LOCATION%\tomcat_32
8. Copy wrapper-windows-x86-64.exe AND InstallApp-NT.bat
From %CA_WCC_INSTALL_LOCATION%\tomcat_old\bin
To %CA_WCC_INSTALL_LOCATION%\tomcat\bin
9. Copy wrapper-windows-x86-64.exe
From %CA_WCC_INSTALL_LOCATION%\tomcat_32_old\bin
To %CA_WCC_INSTALL_LOCATION%\tomcat_32\bin
10. Copy log4j.properties
From %CA_WCC_INSTALL_LOCATION%\tomcat_old\conf
To %CA_WCC_INSTALL_LOCATION%\tomcat\conf
From %CA_WCC_INSTALL_LOCATION%\tomcat_32_old\conf
To %CA_WCC_INSTALL_LOCATION%\tomcat_32\conf
11. Copy wrapper.conf
From %CA_WCC_INSTALL_LOCATION%\tomcat_old\conf
To %CA_WCC_INSTALL_LOCATION%\tomcat\conf
From %CA_WCC_INSTALL_LOCATION%\tomcat_32_old\conf
To %CA_WCC_INSTALL_LOCATION%\tomcat_32\conf
12. Copy catalina.properties (Replace)
From %CA_WCC_INSTALL_LOCATION%\tomcat_old\conf
To %CA_WCC_INSTALL_LOCATION%\tomcat\conf
From %CA_WCC_INSTALL_LOCATION%\tomcat_32_old\conf
To %CA_WCC_INSTALL_LOCATION%\tomcat_32\conf
10. Copy context.xml (Replace)
From CA_WCC_INSTALL_LOCATION%\tomcat_old\conf
To CA_WCC_INSTALL_LOCATION%\tomcat\conf
From %CA_WCC_INSTALL_LOCATION%\tomcat_32_old\conf
To %CA_WCC_INSTALL_LOCATION%\tomcat_32\conf
11. Copy below jar files from tomcat_old/lib to tomcat\lib (it might be easiler to sort out the folder by date modified, most of these files get sorted separately from the default tomcat files)
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/access*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/apache-mime4j-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/asm-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/bc-fips-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/commons-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/db-resources-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/derbyclient-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/eclipselink-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/eem-safex-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/flow-model-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/hazelcast-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/httpclient-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/httpcore-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/httpmime-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/jcip-annotations-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/jpa-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/json-smart-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/log4j-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/mssql-jdbc-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/nimbus-jose-jwt-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/not-yet-commons-ssl-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/ojdbc7-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/security-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/snakeyaml-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/ujccapi-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/libwrapper-linux-*.so %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/wrapper.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/xercesImpl-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/xml-apis-*.jar %CA_WCC_INSTALL_LOCATION%\tomcat\lib
copy %CA_WCC_INSTALL_LOCATION%\tomcat_old\lib/wrapper*.dll %CA_WCC_INSTALL_LOCATION%\tomcat\lib/
12. Repeat Step #11 to copy all the jars
From %CA_WCC_INSTALL_LOCATION%\tomcat_32_old\lib
To %CA_WCC_INSTALL_LOCATION%\tomcat_32\lib
13. Delete the folder
%CA_WCC_INSTALL_LOCATION%\tomcat\webapps
and %CA_WCC_INSTALL_LOCATION%\tomcat_32\webapps
14. Copy the webapps folder
From %CA_WCC_INSTALL_LOCATION%\tomcat_old\
To %CA_WCC_INSTALL_LOCATION%\tomcat\
From %CA_WCC_INSTALL_LOCATION%\tomcat_32_old\
To %CA_WCC_INSTALL_LOCATION%\tomcat_32\
Tomcat changes
15. Following changes to be made for %CA_WCC_INSTALL_LOCATION%\tomcat\conf\web.xml
You can use Winmerge or some sort of diff/merge tool to show the differences between original and new file, while merging / updating these changes. It makes it easier as there are a lot of changes to be done manually here.
Replace
<!--
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<async-supported>true</async-supported>
</filter>
-->
With
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<init-param>
<param-name>hstsEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>hstsMaxAgeSeconds</param-name>
<param-value>31536000</param-value>
</init-param>
<init-param>
<param-name>antiClickJackingEnabled</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>blockContentTypeSniffingEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>xssProtectionEnabled</param-name>
<param-value>true</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
Replace
<!--
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
-->
With
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
Replace
<mime-mapping>
<extension>otf</extension>
<mime-type>font/otf</mime-type>
</mime-mapping>
With
<mime-mapping>
<extension>otf</extension>
<mime-type>application/x-font-otf</mime-type>
</mime-mapping>
Replace
<mime-mapping>
<extension>ttc</extension>
<mime-type>font/collection</mime-type>
</mime-mapping>
<mime-mapping>
<extension>ttf</extension>
<mime-type>font/ttf</mime-type>
</mime-mapping>
With
<mime-mapping>
<extension>ttc</extension>
<mime-type>application/x-font-ttf</mime-type>
</mime-mapping>
<mime-mapping>
<extension>ttf</extension>
<mime-type>application/x-font-ttf</mime-type>
</mime-mapping>
Replace
<mime-mapping>
<extension>woff</extension>
<mime-type>font/woff</mime-type>
</mime-mapping>
<mime-mapping>
<extension>woff2</extension>
<mime-type>font/woff2</mime-type>
</mime-mapping>
With
<mime-mapping>
<extension>woff</extension>
<mime-type>application/x-font-woff</mime-type>
</mime-mapping>
16. Changes in in %CA_WCC_INSTALL_LOCATION%\tomcat\conf\server.xml
Note: please use a xml-editor (say notepad++) to edit the server.xml file as it will makes things easier to change rather using notepad.
a) shutdown port:
compare %CA_WCC_INSTALL_LOCATION%\tomcat_old\conf\server.xml look for the shutdown port and fix the shutdown port entry appropriately in %CA_WCC_INSTALL_LOCATION%\tomcat\conf\server.xml
Example:
Replace
<Server port="8005" shutdown="SHUTDOWN"> (8005 is the port)
With
<Server port="8005" shutdown="">
b)
Replace
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
With
<Listener className="com.ca.wcc.cluster.resources.WccGlobalResourcesLifecycleListener"/>
c) Replace content between <GlobalNamingResources> … </GlobalNamingResources>
<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
With content from %CA_WCC_INSTALL_LOCATION%\tomcat_old\conf\server.xml in the same section <GlobalNamingResources> … </GlobalNamingResources>
Example:
<GlobalNamingResources>
<Resource auth="Container" factory="org.apache.naming.factory.BeanFactory"
name="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<Resource name="bean/AccessProviderFactory_WCC" auth="Container"
type="com.ca.uejm.access.authentication.IAccessProvider" factory="com.ca.wcc.access.resources.WccAccessProviderFactory" />
<Resource name="bean/AccessProviderFactory_AUTOSYS" auth="Container"
type="com.ca.uejm.access.authentication.IAccessProvider" factory="com.ca.wcc.access.resources.AutosysAccessProviderFactory" />
<Resource name="jdbc/wccDatabase" prefix="wcc"
factory="org.apache.naming.factory.BeanFactory" auth="Container" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<Resource name="jdbc/reportingDatabase" prefix="reporting"
factory="org.apache.naming.factory.BeanFactory" auth="Container" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<Resource name="bean/clusterInstance" auth="Container"
type="com.hazelcast.core.HazelcastInstance" factory="com.ca.wcc.cluster.resources.WccClusterProviderFactory" clusterConnection="client" />
</GlobalNamingResources>
d) Replace <Connector> tags associated to the main WCC port
Note: There may be multiple
Example, %CA_WCC_INSTALL_LOCATION%\tomcat\conf\server.xml, look for
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
Replace that with <Connector> from %CA_WCC_INSTALL_LOCATION%\tomcat_old\conf/server.xml
<Connector acceptCount="100" clientAuth="false"
disableUploadTimeout="true" enableLookups="false"
keystoreFile="/opt/CA/WorkloadCC/data/config/.keystore"
maxThreads="150" minSpareThreads="25"
port="8443" scheme="https" secure="true"
protocol="HTTP/1.1" SSLEnabled="true" sslProtocol="TLS"
URIEncoding="UTF-8" compression="on" keystorePass="changeit" keyAlias="tomcat"
compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css,application/x-javascript,application/javascript,application/json"
useSendfile="false"
server="WCC" sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1" />
e) Replace engine info that looks like below
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
With the engine info from %CA_WCC_INSTALL_LOCATION%\tomcat_old\conf\server.xml
Example:
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false" deployOnStartup="false" startStopThreads="8"
errorReportValveClass="com.ca.wcc.catalina.WccReportErrorValve" >
<Valve className="com.ca.wcc.catalina.EncodingValve" encoding="UTF-8" />
<Valve className="com.ca.wcc.catalina.ContentSecurityPolicyValve" enable="true" value="default-src 'self'; img-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; frame-src 'self' blob:;"/>
<!-- WCC contextes
Note: it would be better to get rid of the resourceLinks but i dont know how
-->
<Context path="/wcc/doc" docBase="../../doc" cookies="false" />
<Context path="/wcc/1collector" docBase="collector" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="bean/JFMBeanFactory" global="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<ResourceLink name="jdbc/reportingDatabase" global="jdbc/reportingDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/AccessProviderFactory_WCC" global="bean/AccessProviderFactory_WCC" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/AccessProviderFactory_AUTOSYS" global="bean/AccessProviderFactory_AUTOSYS" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<Context path="/wcc/app-editor" docBase="app-editor" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="bean/JFMBeanFactory" global="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<ResourceLink name="jdbc/reportingDatabase" global="jdbc/reportingDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/AccessProviderFactory_WCC" global="bean/AccessProviderFactory_WCC" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/AccessProviderFactory_AUTOSYS" global="bean/AccessProviderFactory_AUTOSYS" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<Context path="/wcc/castylesr5.1.3" docBase="castylesr5.1.3" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="bean/JFMBeanFactory" global="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<ResourceLink name="jdbc/reportingDatabase" global="jdbc/reportingDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/AccessProviderFactory_WCC" global="bean/AccessProviderFactory_WCC" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/AccessProviderFactory_AUTOSYS" global="bean/AccessProviderFactory_AUTOSYS" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<Context path="/wcc/configuration" docBase="configuration" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="bean/JFMBeanFactory" global="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<ResourceLink name="jdbc/reportingDatabase" global="jdbc/reportingDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/AccessProviderFactory_WCC" global="bean/AccessProviderFactory_WCC" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/AccessProviderFactory_AUTOSYS" global="bean/AccessProviderFactory_AUTOSYS" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<Context path="/wcc/ecli" docBase="ecli" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="bean/JFMBeanFactory" global="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<ResourceLink name="jdbc/reportingDatabase" global="jdbc/reportingDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/AccessProviderFactory_WCC" global="bean/AccessProviderFactory_WCC" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/AccessProviderFactory_AUTOSYS" global="bean/AccessProviderFactory_AUTOSYS" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<Context path="/wcc/forecast" docBase="forecast" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="bean/JFMBeanFactory" global="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<ResourceLink name="jdbc/reportingDatabase" global="jdbc/reportingDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/AccessProviderFactory_WCC" global="bean/AccessProviderFactory_WCC" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/AccessProviderFactory_AUTOSYS" global="bean/AccessProviderFactory_AUTOSYS" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<Context path="/wcc/jsc-rest" docBase="jsc-rest" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="bean/JFMBeanFactory" global="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<ResourceLink name="jdbc/reportingDatabase" global="jdbc/reportingDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/AccessProviderFactory_WCC" global="bean/AccessProviderFactory_WCC" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/AccessProviderFactory_AUTOSYS" global="bean/AccessProviderFactory_AUTOSYS" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<Context path="/wcc/monitoring" docBase="monitoring" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="bean/JFMBeanFactory" global="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<ResourceLink name="jdbc/reportingDatabase" global="jdbc/reportingDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/AccessProviderFactory_WCC" global="bean/AccessProviderFactory_WCC" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/AccessProviderFactory_AUTOSYS" global="bean/AccessProviderFactory_AUTOSYS" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<Context path="/wcc/quick-edit" docBase="quick-edit" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="bean/JFMBeanFactory" global="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<ResourceLink name="jdbc/reportingDatabase" global="jdbc/reportingDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/AccessProviderFactory_WCC" global="bean/AccessProviderFactory_WCC" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/AccessProviderFactory_AUTOSYS" global="bean/AccessProviderFactory_AUTOSYS" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<Context path="/wcc/quickview" docBase="quickview" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="bean/JFMBeanFactory" global="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<ResourceLink name="jdbc/reportingDatabase" global="jdbc/reportingDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/AccessProviderFactory_WCC" global="bean/AccessProviderFactory_WCC" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/AccessProviderFactory_AUTOSYS" global="bean/AccessProviderFactory_AUTOSYS" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<Context path="/wcc/reporting-rest" docBase="reporting-rest" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="bean/JFMBeanFactory" global="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<ResourceLink name="jdbc/reportingDatabase" global="jdbc/reportingDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/AccessProviderFactory_WCC" global="bean/AccessProviderFactory_WCC" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/AccessProviderFactory_AUTOSYS" global="bean/AccessProviderFactory_AUTOSYS" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<Context path="/wcc/resources" docBase="resources" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="bean/JFMBeanFactory" global="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<ResourceLink name="jdbc/reportingDatabase" global="jdbc/reportingDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/AccessProviderFactory_WCC" global="bean/AccessProviderFactory_WCC" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/AccessProviderFactory_AUTOSYS" global="bean/AccessProviderFactory_AUTOSYS" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<Context path="/wcc/rest" docBase="rest" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="bean/JFMBeanFactory" global="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<ResourceLink name="jdbc/reportingDatabase" global="jdbc/reportingDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/AccessProviderFactory_WCC" global="bean/AccessProviderFactory_WCC" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/AccessProviderFactory_AUTOSYS" global="bean/AccessProviderFactory_AUTOSYS" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<Context path="/wcc/ui" docBase="wcc" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="bean/JFMBeanFactory" global="bean/JFMBeanFactory" type="com.ca.wcc.db.jdm.JobFlowModel" />
<ResourceLink name="jdbc/reportingDatabase" global="jdbc/reportingDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/AccessProviderFactory_WCC" global="bean/AccessProviderFactory_WCC" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/AccessProviderFactory_AUTOSYS" global="bean/AccessProviderFactory_AUTOSYS" type="com.ca.uejm.access.authentication.IAccessProvider" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<Context path="/wcc/asi" docBase="asi" >
<Manager className="com.ca.wcc.catalina.session.WCCSessionManager"/>
<ResourceLink name="jdbc/wccDatabase" global="jdbc/wccDatabase" type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<ResourceLink name="bean/clusterInstance" global="bean/clusterInstance" type="com.hazelcast.core.HazelcastInstance" />
</Context>
<!-- end of WCC contextes -->
<!-- the root context is used for having a nice 404 and redirecting -->
<Context path="/" docBase="ROOT" ></Context>
</Host>
</Engine>
Note: Check if there is any customizations for these tags.
Tomcat 32 bit changes
16. Copy wrapper-windows-x86-64.exe
From %CA_WCC_INSTALL_LOCATION%\tomcat_32_old\bin
To %CA_WCC_INSTALL_LOCATION%\tomcat_32\bin
17. Changes in %CA_WCC_INSTALL_LOCATION%\tomcat_32\conf\web.xml
Replace
<mime-mapping>
<extension>otf</extension>
<mime-type>font/otf</mime-type>
</mime-mapping>
With
<mime-mapping>
<extension>otf</extension>
<mime-type>application/x-font-otf</mime-type>
</mime-mapping>
Replace
<mime-mapping>
<extension>ttc</extension>
<mime-type>font/collection</mime-type>
</mime-mapping>
<mime-mapping>
<extension>ttf</extension>
<mime-type>font/ttf</mime-type>
</mime-mapping>
With
<mime-mapping>
<extension>ttc</extension>
<mime-type>application/x-font-ttf</mime-type>
</mime-mapping>
<mime-mapping>
<extension>ttf</extension>
<mime-type>application/x-font-ttf</mime-type>
</mime-mapping>
Replace
<mime-mapping>
<extension>woff</extension>
<mime-type>font/woff</mime-type>
</mime-mapping>
<mime-mapping>
<extension>woff2</extension>
<mime-type>font/woff2</mime-type>
</mime-mapping>
With
<mime-mapping>
<extension>woff</extension>
<mime-type>application/x-font-woff</mime-type>
</mime-mapping>
18. Changes in %CA_WCC_INSTALL_LOCATION%\tomcat_32\conf\server.xml
Note: please use a xml-editor (notepad++) to edit the server.xml file as it will makes things easier to change rather than using notepad
a) shutdown port:
Replace
<Server port="8005" shutdown="SHUTDOWN"> (8005 is the server port)
with (compare this with %CA_WCC_INSTALL_LOCATION%\tomcat_32_old\conf\server.xml to make sure)
<Server port="10133" shutdown=""> (10133 is the server port)
b)
Replace
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
with
<Listener className="com.ca.wcc.cluster.resources.WccGlobalResourcesLifecycleListener"/>
c) Replace content within <GlobalNamingResources> … </GlobalNamingResources>
<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
With content within <GlobalNamingResources> … </GlobalNamingResources> from %CA_WCC_INSTALL_LOCATION%\tomcat_32_old\conf\server.xml
<GlobalNamingResources>
<Resource name="jdbc/wccDatabase" prefix="wcc"
factory="org.apache.naming.factory.BeanFactory" auth="Container"
type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<Resource name="jdbc/reportingDatabase" prefix="reporting"
factory="org.apache.naming.factory.BeanFactory" auth="Container"
type="com.ca.wcc.dbresource.datasource.WccDataSource" />
<Resource name="bean/clusterInstance" auth="Container"
type="com.hazelcast.core.HazelcastInstance" factory="com.ca.wcc.cluster.resources.WccClusterProviderFactory" clusterConnection="instance" />
</GlobalNamingResources>
d) Replace <Connector> tags (There may be multiple)
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
With <Connector> from %CA_WCC_INSTALL_LOCATION%\tomcat_32_old\conf\server.xml
Example:
<Connector acceptCount="100" clientAuth="false" address="127.0.0.1"
disableUploadTimeout="true" enableLookups="false"
maxThreads="400" minSpareThreads="25" port="10132" scheme="http"
protocol="HTTP/1.1" URIEncoding="UTF-8" compression="on"
compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css,application/x-javascript"
server="WCC" />
e) Replace <Engine name="Catalina" defaultHost="localhost">
Example:
<Engine name="Catalina" defaultHost="localhost">
....
....
</Engine>
with <Engine name="Catalina" defaultHost="localhost"> from %CA_WCC_INSTALL_LOCATION%\tomcat_32_old\conf\server.xml
Example:
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true"
autoDeploy="true" startStopThreads="4">
</Host>
</Engine>
Note: Please check if there is any customizations for these tags.
19) Download files attached to this document and rename them:
20) Copy the above two files to: <WCC_INSTALL_LOCATION>\tomcat\webapps\wcc\launcher\flow\lib\yfiles\wcc
21) Restart the WCC services, the first start takes a little bit longer than usual as Tomcat's building its cache/work folders
22) Empty browser cache and retest WCC URL