How can we upgrade Tomcat for WCC 11.4.x on Windows?
search cancel

How can we upgrade Tomcat for WCC 11.4.x on Windows?

book

Article ID: 214268

calendar_today

Updated On:

Products

CA Workload Automation AE - Scheduler (AutoSys)

Issue/Introduction

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

 

Environment

Release : 11.3.6

Component : CA Workload Automation AE (AutoSys)

Resolution

 

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 &quot;%r&quot; %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:

1654096263949__wcc-flow-editor.js  rename it as wcc-flow-editor.js
1654096247707__wcc-flow-context.js rename it as wcc-flow-context.js

 

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

Attachments

1654096263949__wcc-flow-editor.js get_app
1654096247707__wcc-flow-context.js get_app