Friday, December 4, 2020

Setup ACS62-ga and ASS1.4 using distribution package step by step Part-1

 

ACS6.x is mainly based on containers which makes use of popular container platform Docker

Many of us are not familiar with containerization setup and may not be ready to use it yet. In previous versions we had option to use installers and it used to setup everything seamlessly. With ACS6.x we don’t have installer option available and it is expected to leverage the use of containerization technologies.

But there are ways to setup ACS6.x in the same ways as we used to do for previous versions i.e. using distribution package provided by Alfresco.

The purpose of this post is to document all the steps at one place when setting up ACS6.x manually using distribution package.

ACS 6.2.0-ga is the latest stable version available and we will use the same version here.


What we need before we start doing setup?

  1. ACS-6.2.0-ga package (alfresco-content-services-community-distribution-6.2.0-ga)
  2. ASS-1.4.0 package (alfresco-search-services-1.4.0)
  3. Java: Oracle jdk-11.0.1 or later/Open JDK 11.0.1 or later
  4. Tomcat: Tomcat 8.5.43
  5. ActiveMQ: ActiveMQ v5.15.8 (Optional). Mandatory for transformation services when using enterprise version (async transform service) and/or Out of process extensions.
  6. DB: PostgreSQL 11.4
  7. ImageMagick: ImageMagick v7.0.10
  8. Libreoffice: LibreOffice v6.3.5
Checkout this documentation for additional details on Supported Platforms

Platform:

  • Windows 10 x64
Type of deployment:

  • ACS, Share and SOLR6 on same machine
  • Setup Without SSL

For Linux based installation steps visit this post: 

Setup ACS62-ga and ASS1.4 using distribution package part2

Interested in ACS7.x? checkout this post:



Let’s start gathering all the required prerequisites listed above.



Visit Alfresco community download page and download latest stable versions of ACS and ASS:

  • Download ACS 6.2.0-ga:
https://download.alfresco.com/cloudfront/release/community/201911-GA-build-368/alfresco-content-services-community-distribution-6.2.0-ga.zip
  • Download ASS 1.4.0:
https://download.alfresco.com/cloudfront/release/community/SearchServices/1.4.0/alfresco-search-services-1.4.0.zip

Note: If you are planning to setup ACS 6.2.1/6.2.2 (Enterprise versions) and ASS 2.0, then download the appropriate distribution packages from Alfresco Support portal. All the steps outlined below will remain same. We are using community version of ACS 6.2  for this post hence we have to use ASS 1.4 as stated in the Supported platforms here


Download and Install Oracle JDK 11.0.4:

https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html

https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/java/jdk/11.0.4+10/cf1bbcbf431a474eb9fc550051f4ee78/jdk-11.0.4_windows-x64_bin.zip

Note: Make sure you set the JAVA_HOME environment variable (on windows). It is the installation path of jdk. E.g. JAVA_HOME=C:\Program Files\Java\jdk-11.0.4

Download Tomcat 8.5.43 binary package:

https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.43/bin/apache-tomcat-8.5.43-windows-x64.zip

Note: Make sure ports 8005, 8080, 8443, AJP port 8009 are open and not in use already. These are default ports used for tomcat. If you have these ports already in use, make sure you change the ports accordingly in <TOMCAT_INSTALLATION>/conf/server.xml.

Download ActiveMQ v5.15.8 binary package, it will be used for transformation services down the line:

https://archive.apache.org/dist/activemq/5.15.8/apache-activemq-5.15.8-bin.zip

Download and Install PostgreSQL 11.4:

https://get.enterprisedb.com/postgresql/postgresql-11.4-1-windows-x64.exe

Alternatively you can also download the binary package and extract it. No installation needed. It is useful if you have trouble doing installation on Windows 10.

Download PostgreSQL 11 binary

Note: Make sure port 5432 is open and not already in use. Port 5432 is default for postgres to get db connection. If you have this port already in use, make sure you select a different port and use the same while configuring alfresco-global.properties.


Download ImageMagick v7.0.10:

https://imagemagick.org/download/binaries/ImageMagick-7.0.10-45-Q16-HDRI-x64-dll.exe

Above version is no longer available to download, use the below given alternatives.


Alternative options:

Download LibreOffice v6.3.5:

https://downloadarchive.documentfoundation.org/libreoffice/old/6.3.5.2/win/x86_64/LibreOffice_6.3.5.2_Win_x64.msi (installer)

Optional Alfresco module packages (amps)-Useful for admins/developers:

https://repo1.maven.org/maven2/org/orderofthebee/support-tools/support-tools-repo/1.1.0.0/support-tools-repo-1.1.0.0-amp.amp 

https://repo1.maven.org/maven2/org/orderofthebee/support-tools/support-tools-share/1.1.0.0/support-tools-share-1.1.0.0-amp.amp 

https://repo1.maven.org/maven2/de/fmaul/javascript-console-repo/0.6/javascript-console-repo-0.6.amp 

https://repo1.maven.org/maven2/de/fmaul/javascript-console-share/0.6/javascript-console-share-0.6.amp


Now, we have completed all the prerequisites. Let’s move forward with setup.


Follow the steps given below:

Assuming you have already installed Postgres, launch “pgAdmin4” from your postgres install location <PostgresInstallLocation>\PostgreSQL\11\pgAdmin 4\bin\pgAdmin4.exe

In my case: C:\PostgreSQL\11\pgAdmin 4\bin\pgAdmin4.exe

  • Create a new user named “alfresco” and set a password which will be used by alfresco content service to connect to database. Here we will be using username as “alfresco” and password “alfresco”.
  • Create a new database named : “alfresco”, make sure you select default encoding which is “utf8”.
  • Grant all permissions for user “alfresco” on database “alfresco”.
  • Alternatively, you can open the query tool and execute following SQL queries:
create role alfresco LOGIN password 'alfresco';

create database alfresco encoding 'utf8';

grant all on database alfresco to alfresco;

Prepare acs6.2.0-ga setup directory structure:

Create directory structure as shown below on your windows drive (e.g. C:\):


You can create the same structure anywhere else, make sure all the config paths are mapped accordingly. For this post all the setup and configurations will be done in C:\ drive.
  • Install imagemagick in the directory setup as per the structure given above. E.g. install imagemagick in C:\alfresco-community62ga\imagemagick directory (use custom installation option to select the install directory). Alternatively you can download the binary package and extract the image magic binaries in the folder given above as per your choice.
  • Install libreoffice in the directory setup as per the structure given above. E.g. install libreoffice in C:\alfresco-community62ga\libreoffice directory (use custom installation option to select the install directory).



  • Install Tomcat, get the tomcat binary package (apache-tomcat-8.5.43-windows-x64.zip) downloaded as per the steps given above and extract its contents directly under tomcat directory. For example:  C:\alfresco-community62ga\tomcat directory

Note: Make sure ports 8005, 8080, 8443, AJP port 8009 are open and not in use already. These are default ports used for tomcat. If you have these ports already in use, make sure you change the ports accordingly in <TOMCAT_INSTALLATION>/conf/server.xml.

  • Install ActiveMQ, get the activemq binary package (apache-activemq-5.15.8-bin.zip) downloaded as per the steps given above and extract its contents directly under activemq directory. For example:  C:\alfresco-community62ga\activemq directory. Note that activemq may not be used at this time as we will be setting up with legacy transformation service but keeping the message broker setup ready for future use in case you would like to setup transformation service.



Note: Make sure ports 61616, 5672, 61613, 1883, 61614 and 8161 are open and not in use already. These are default ports used for activemq. If you have these ports already in use, make sure you change the ports accordingly in <AMQ_INSTALLATION>/conf/activemq.xml and jetty.xml as needed.


  • Set ALF_HOME environment variable, this will be helpful for alfresco scripts such as apply_amps.bat, clean_tomcat.bat etc. to work properly. You always have option to manually change the paths in these files as needed. (Optional step)
    • ALF_HOME=C:\alfresco-community62ga
  • Copy contents from “C:\Downloads\alfresco-content-services-community-distribution-6.2.0-ga\alf_data\keystore” into “C:\alfresco-community62ga\alf_data\keystore

         Following files will be copied:

    • keystore -> Secret key keystore containing the secret key used to encrypt and decrypt node properties.  
    • keystore-passwords.properties -> Contains password protecting the keystore entries.
  • Copy contents from “C:\Downloads\alfresco-content-services-community-distribution-6.2.0-ga\keystore” into “C:\alfresco-community62ga\alf_data\keystore

         Following files will be copied:

    • CreateSSLKeystores.txt -> Contains instructions to create an RSA public/private key pair for the repository with a certificate that has been signed by the Alfresco Certificate Authority (CA).
    • readme.txt -> Text file containing information about other files in a directory.
    • generate_keystores.bat -> Windows batch file for generating secure keys for SOLR communication.

Note: These files will be used to setup Data Encryption (not supported on community version) and SSL for SOLR and Alfresco communication (we are not setting up SSL here so we are just copying the files but we will not be using it for now)
  • Copy contents from “C:\Downloads\alfresco-content-services-community-distribution-6.2.0-ga\alfresco-pdf-renderer\alfresco-pdf-renderer-1.1-win64.tgz” into “C:\alfresco-community62ga\alfresco-pdf-renderer” and extract the alfresco-pdf-renderer-1.1-win64.tgz

You would have following file in “C:\alfresco-community62ga\alfresco-pdf-renderer” directory:
    • alfresco-pdf-renderer.exe [Full path: C:\alfresco-community62ga\alfresco-pdf-renderer\alfresco-pdf-renderer.exe]

  • Copy contents from “C:\Downloads\alfresco-content-services-community-distribution-6.2.0-ga\amps” into “C:\alfresco-community62ga\amps”. We will be installing this alfresco module packages (amps) at later stage.

         Following files will be copied:

    • alfresco-share-services.amp -> Alfresco share service module containing extensions for search, datalist, sample sites patch etc.

Note: This amp installation is mandatory otherwise several functionalities including share search may not work. And you will also see following warning when you login to share: Alfresco is running without Share Services. See your System Administrator for more details.

  • Copy the contents from “C:\Downloads\alfresco-content-services-community-distribution-6.2.0-ga\bin” into “C:\alfresco-community62ga\bin” folder

         Following files will be copied:

    • alfresco-mmt.jar -> Alfresco Module Management Tool (MMT), A java library which supports alfresco module package installation/uninstallation/listing and preview operations etc.
    • apply_amps.bat -> Utility to install amps kept in “amps” and “amps_share” directory. It will install amps related to alfresco on alfresco.war (keeps the backup of original war file) and amps related to share on share.war (keeps the backup of original war file) For more details visit: https://docs.alfresco.com/community/tasks/amp-install.html
    • clean_tomcat.bat -> Windows batch file for cleaning out temporary application server files from previous installations.
    • Win32NetBIOS.dll -> DLL handles the connection between the native CIFS server and Alfresco Content Services.
    • Win32NetBIOSx64.dll -> DLL handles the connection between the native CIFS server and Alfresco Content Services.
    • Win32Utils.dll -> DLL handles the connection between the native CIFS server and Alfresco Content Services.
    • Win32Utilsx64.dll -> DLL handles the connection between the native CIFS server and Alfresco Content Services.

  • Copy the contents from “C:\Downloads\alfresco-content-services-community-distribution-6.2.0-ga\licenses” into “C:\alfresco-community62ga\licenses” folder. It contains files that have information about license terms used by alfresco including all third party licenses.
  • Copy the contents from “C:\Downloads\alfresco-content-services-community-distribution-6.2.0-ga\web-server\conf” into “C:\alfresco-community62ga\tomcat\conf” folder. conf directory contains Catalina repository and Share xml files.
  • Copy the contents from “C:\Downloads\alfresco-content-services-community-distribution-6.2.0-ga\web-server\lib” into “C:\alfresco-community62ga\tomcat\lib” or “C:\alfresco-community62ga\tomcat\shared\classes\lib” folder. lib directory contains the PostgreSQL JDBC jar file (postgresql-42.2.6.jar).
  • Copy the contents from “C:\Downloads\alfresco-content-services-community-distribution-6.2.0-ga\web-server\shared\classes” into “C:\alfresco-community62ga\tomcat\shared\classes” folder. shared directory includes the Alfresco Content Services configuration files:
    • /classes/alfresco-global.properties.sample -> Sample alfresco global properties file, which is used for configuration properties.
    • /classes/alfresco -> Contains the directory structure for the configuration override files, including the extension, and web-extension directories.
  • Delete all files/folders from “C:\alfresco-community62ga\tomcat\webapps
  • Copy the contents from “C:\Downloads\alfresco-content-services-community-distribution-6.2.0-ga\web-server\webapps” into “C:\alfresco-community62ga\tomcat\webapps” folder.
         Following files will be copied:
    • alfresco.war -> Alfresco repository web application.
    • share.war -> Share interface web application.
    • ROOT.war -> Application for the server root, also contains additional code/setup for handling alfresco office services module (alfresco-office-services). Alfresco Office Services (AOS) allow you to access Alfresco Content Services directly from all your Microsoft Office applications. We will not be installing this module since SSL is a mandatory enablement for this module.
    • _vti_bin.war -> App to help and support AOS module.


Configure tomcat and alfresco content services:

  • Open server.xml file which can be found under: “C:\alfresco-community62ga\tomcat\conf” directory [Full path: C:\alfresco-community62ga\tomcat\conf\server.xml] and update following:
    • Find Connector with port "8080”.
    • Add the URIEncoding and maxHttpHeaderSize attributes.
    • Add the enableLookups, xpoweredBy and server attributes. (Optional Attributes for Tomcat 8.x and later)
      • Set xpoweredBy attribute to true to cause Tomcat to advertise support for the Servlet specification using the header recommended in the specification. The default value is false.
      • Set enableLookups to true if you want calls to request.getRemoteHost() to perform DNS lookups in order to return the actual host name of the remote client. Set to false to skip the DNS lookup and return the IP address in String form instead (thereby improving performance). By default, DNS lookups are disabled.
      • Setting server to true, overrides the server header for the http response. If set, the value for this attribute overrides any Server header set by a web application. If not set, any value specified by the application is used. If the application does not specify a value then no Server header is set.
<Connector port="8080" protocol="HTTP/1.1"
 URIEncoding="UTF-8" connectionTimeout="20000"
 maxHttpHeaderSize="32768"
 redirectPort="8443" enableLookups="false" xpoweredBy="false" server="AlfrescoECM"/>

Tomcat uses ISO-8859-1 character encoding when decoding URLs that are received from a browser. This can cause problems when creating, uploading, and renaming files with international characters. By default, Tomcat uses an 8 KB header buffer size, which might not be large enough for the Kerberos authentication protocol. We need to increase this buffer size.

Update AJP Connector config you are planning to use it. By default it is commented in tomcat server.xml, make sure you add URIEncoding attribute to the config if you are planning to use it. This port is used when configuring external authentication. 

See here for more details: 

<Connector port="8009" URIEncoding="UTF-8" protocol="AJP/1.3" redirectPort="8443" xpoweredBy="false"/>

    shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
    

    Note: If you have used alternative names for the directories, you must specify these names in the shared.loader property.

    • Rename “C:\alfresco-community62ga\tomcat\shared\classes\alfresco-global.properties.sample” to “alfresco-global.properties
    • Open “C:\alfresco-community62ga\tomcat\shared\classes\alfresco-global.properties” and add the following configuration properties:
      • Add the “dir.root” property as path to alf_data folder.
    dir.root=C:/alfresco-community62ga/alf_data
    alfresco.context=alfresco
    alfresco.host=${localname}
    alfresco.port=8080
    alfresco.protocol=http
    share.context=share
    share.host=${localname}
    share.port=8080
    share.protocol=http
      • Add the database connection properties which alfresco will use to create a JDBC connection with db. Use the db name and credentials when we prepared the database.
    db.driver=org.postgresql.Driver
    db.username=alfresco
    db.password=alfresco
    db.name=alfresco
    db.url=jdbc:postgresql://localhost:5432/${db.name}
    db.pool.max=275
    db.pool.validate.query=SELECT 1
      • Add the server mode property, leave it default to ‘UNKNOWN’.
    system.serverMode=UNKNOWN
        • Add the alfresco rmi services port and host properties.
      alfresco.rmi.services.port=50500
      alfresco.rmi.services.host=0.0.0.0

      Within Alfresco, you can transform a document from one format to another. This feature requires you to install LibreOffice or OpenOffice.org. 

      OOoJODconverter 

      The JODConverter integration, which is a library that improves the stability and performance of OpenOffice.org or LibreOffice within Alfresco. The OOoJODConverter runs on the same machine as the Alfresco server and it supports:
      - a pool of separate OpenOffice processes
      - automatic restart of crashed OpenOffice processes
      - automatic termination of slow OpenOffice operations
      - automatic restart of any OpenOffice process after a number of operations (this is a workaround for OpenOffice memory leaks)

      OOoDirect 

      The subsystem for direct OpenOffice integration, in which the Alfresco server manages OpenOffice directly. To enable or disable this subsystem, use the following property:
      ooo.enabled=false 

      Note:
      If you install Alfresco manually, by default, the OOoDirect subsystem is enabled, and the OOoJodconverter subsystem is disabled. Although it is possible to run both subsystems, Alfresco recommends that you enable only one at a time. To take advantage of the stability and performance benefits of the OOoJodconverter subsystem, ensure that you disable OOoDirect and enable OOoJodConverter using the following properties in the alfresco-global.properties file:
      ooo.enabled=false
      jodconverter.enabled=true


      alfresco-pdf-renderer.root=C:/alfresco-community62ga/alfresco-pdf-renderer
      alfresco-pdf-renderer.exe=${alfresco-pdf-renderer.root}/alfresco-pdf-renderer.exe
      
      img.root=C:/alfresco-community62ga/imagemagick
      img.dyn=${img.root}/lib
      img.exe=${img.root}/convert.exe
      img.coders=${img.root}/modules/coders
      img.config=${img.root}
      img.gslib=${img.root}/lib
      
      ooo.exe=C:/alfresco-community62ga/libreoffice/program/soffice.exe
      ooo.enabled=false
      ooo.port=8100
      jodconverter.enabled=true
      jodconverter.officeHome=C:/alfresco-community62ga/libreoffice
      jodconverter.portNumbers=8100
      

        • Add the activemq url property and disable messaging subsystem until you want to configure transformation services. It will be used when you setup transformation service.
      messaging.broker.url=tcp://localhost:61616 
      messaging.subsystem.autoStart=false

      We are not setting up transformation service currently but keeping activemq setup ready for future in case you would like to start using transformation service. For more details visit:

      How to use local transformation service  
      Local vs Legacy Transformation Service

      You can also create a custom t-engine as well, learn about the detailed steps here: 

          • Creating-a-t-engine: https://github.com/Alfresco/acs-packaging/blob/master/docs/creating-a-t-engine.md 
          • Developing-a-new-t-engine: https://docs.alfresco.com/content-services/latest/develop/repo-ext-points/content-transformers-renditions/#developing-a-new-t-engine
        • Disable transformation service and enable legacy transformation service:
      transform.service.enabled=false
      local.transform.service.enabled=false
      legacy.transform.service.enabled=true

        • Add property for email notification on invite, it is by default disabled.
      notification.email.siteinvite=false

        • Add the license location property.
      dir.license.external=C:/alfresco-community62ga
          • Add following properties related to security, smart folder and JMX. All values are default ootb
        security.anyDenyDenies=false
        smart.folders.enabled=false
        alfresco.jmx.connector.enabled=false

          • Add following properties related to FTP connection (Optional)
        ftp.port=2121
        ftp.enabled=true
        ftp.server.enables=true

        • Enable logging so that you can configure any custom loggers or change/update log levels (Optional)
          • Go to C:\alfresco-community62ga\tomcat\shared\classes\alfresco\extension folder and rename “custom-log4j.properties.sample” to “custom-log4j.properties
            • Mandatory Amps:
              • alfresco-share-services.amp” amp is mandatory for alfresco.war
          Note: This amp installation is mandatory otherwise several functionalities including share search may not work. And you will also see following warning when you login to share: Alfresco is running without Share Services. See your System Administrator for more details

            • Optional Amps: As part of this installation, we will be installing some optional amps which will be useful for admins/developers that can help in debugging and administration.
              • support-tools-repo-1.1.0.0-amp.amp -> A module that provides utilities for developers and administrators via alfresco admin console. Download the amp from here, and copy in “C:\alfresco-community62ga\amps” folder.
              • support-tools-share-1.1.0.0-amp.amp -> A module that provides utilities for developers and administrators via share admin console. Download the amp from here, and copy in “C:\alfresco-community62ga\amps_share” folder.

          For more details visit: 
              • javascript-console-repo-0.6.amp -> A module that provides ability for developers and administrators to execute JavaScript code. It is repository layer dependency for share amp. Download the amp from here, and copy in “C:\alfresco-community62ga\amps” folder.
              • javascript-console-share-0.6.amp -> A module that provides ability for developers and administrators to execute JavaScript code. Download the amp from here, and copy in “C:\alfresco-community62ga\amps_share” folder.
          For more details visit:

          Share config changes:

          • Make sure you update the "repository-url" to point to the alfresco host and port, in case you are setting up alfresco and share on different servers. Default values are "localhost" and "8080". We are setting up both acs and share on same host so we will leave it default.
          <!--
             If set, will present a WebDAV link for the current item on the Document and Folder details pages.
             Also used to generate the "View in Alfresco Explorer" action for folders.
          -->
          <repository-url>http://localhost:8080/alfresco</repository-url>

          • Make sure you update the share "Remote" configuration to point to the alfresco host and port, in case you are setting up alfresco and share on different servers. Default values are "localhost" and "8080". We are setting up both ACS and Share on same host so we will leave it default.

          <config evaluator="string-compare" condition="Remote">
                <remote>
                   <endpoint>
                      <id>alfresco-noauth</id>
                      <name>Alfresco - unauthenticated access</name>
                      <description>Access to Alfresco Repository WebScripts that do not require authentication</description>
                      <connector-id>alfresco</connector-id>
                      <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
                      <identity>none</identity>
                   </endpoint>
          
                   <endpoint>
                      <id>alfresco</id>
                      <name>Alfresco - user access</name>
                      <description>Access to Alfresco Repository WebScripts that require user authentication</description>
                      <connector-id>alfresco</connector-id>
                      <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
                      <identity>user</identity>
                   </endpoint>
          
                   <endpoint>
                      <id>alfresco-feed</id>
                      <name>Alfresco Feed</name>
                      <description>Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet</description>
                      <connector-id>http</connector-id>
                      <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
                      <basic-auth>true</basic-auth>
                      <identity>user</identity>
                   </endpoint>
                   
                   <endpoint>
                      <id>alfresco-api</id>
                      <parent-id>alfresco</parent-id>
                      <name>Alfresco Public API - user access</name>
                      <description>Access to Alfresco Repository Public API that require user authentication.
                                   This makes use of the authentication that is provided by parent 'alfresco' endpoint.</description>
                      <connector-id>alfresco</connector-id>
                      <endpoint-url>http://localhost:8080/alfresco/api</endpoint-url>
                      <identity>user</identity>
                   </endpoint>
                </remote>
             </config>
          


          • Lastly, we need to fix a known bug in Share 6.2.0 where it user searches from admin tools fails to return results. For more info see these issues:
          https://github.com/Alfresco/acs-community-packaging/issues/367
          https://github.com/Alfresco/acs-community-deployment/issues/85

          <config evaluator="string-compare" condition="Users" replace="true">
                  <users>
                      <!-- minimum length for username and password -->
                      <username-min-length>2</username-min-length>
                      <password-min-length>3</password-min-length>
                      <!-- Default value is 'true', setting it to 'false' to fix the user search issue. -->
                      <show-authorization-status>false</show-authorization-status>
                  </users>
                  <!-- This enables/disables the Add External Users Panel on the Add Users page. -->
                  <enable-external-users-panel>false</enable-external-users-panel>
           </config>
          


          Configure search service:

            • Unzip the “alfresco-search-services-1.4.0.zip” package which we downloaded initially.
            • Copy the extracted folder “alfresco-search-services” to e.g. C:\ drive. Full path will be “C:\alfresco-search-services
            • Open “C:\alfresco-community62ga\tomcat\shared\classes\alfresco-global.properties” and add the following configuration properties:
            solr.host=localhost
            solr.port=8983
            solr.secureComms=none #Possible values are: none, https
            solr.base.url=/solr
            index.subsystem.name=solr6

            Note: We are setting up solr6 without SSL, hence using non SSL port and setting secureComms property as none. 

            • We are enabling the multi language search support, Its optional if you wish to enable it. By default it is disabled. Open “C:\alfresco-search-services\solrhome\conf\shared.properties” and update following:
            alfresco.cross.locale.datatype.0={http://www.alfresco.org/model/dictionary/1.0}text
            alfresco.cross.locale.datatype.1={http://www.alfresco.org/model/dictionary/1.0}content
            alfresco.cross.locale.datatype.2={http://www.alfresco.org/model/dictionary/1.0}mltext
            • We are enabling search suggestions for some properties, it is disabled by default. This feature is optional if you wish to enable it. You can also add additional properties down the line. Open “C:\alfresco-search-services\solrhome\conf\shared.properties” and update following:
            alfresco.suggestable.property.0={http://www.alfresco.org/model/content/1.0}name
            alfresco.suggestable.property.1={http://www.alfresco.org/model/content/1.0}title 
            alfresco.suggestable.property.2={http://www.alfresco.org/model/content/1.0}description 
            alfresco.suggestable.property.3={http://www.alfresco.org/model/content/1.0}content

            More details on shared.properties can be found here: https://docs.alfresco.com/search-services/latest/install/options/

            set SOLR_SOLR_HOST=localhost
            set SOLR_SOLR_PORT=8983
            set SOLR_SOLR_BASEURL=/solr
            set SOLR_ALFRESCO_HOST=localhost
            set SOLR_ALFRESCO_PORT=8080
            set SOLR_ALFRESCO_BASEURL=/alfresco
            
            :: Since we are setting up with no SSL, this property need to be set to none. Default is https
            set SOLR_ALFRESCO_SECURECOMMS=none
            
              • You can also set SOLR_HOME variable in solr.in.cmd (if you see error like  ERROR: Solr home directory C:\alfresco-search-services must contain solr.xml,  then this setting is must) 
            set SOLR_HOME=C:\alfresco-search-services\solrhome

            Alternatively you can set the properties in “C:\alfresco-search-services\solrhome\templates\rerank\conf\solrcore.properties” file as well before cores are created. If you have both alfresco and archive cores already created use the environment variable based approach.

            For all the externalized search service configurations (environment variables), visit: https://docs.alfresco.com/search-services/latest/config/#search-services-externalized-configuration 

            • Starting and stopping solr6 (aka alfresco search service) instructions.
            Starting Solr6: 
            .\solr\bin\solr.cmd start -a "-Dcreate.alfresco.defaults=alfresco,archive"

            The command line param, -a passes additional JVM parameters, e.g., system properties using -D.

            Note that, -Dcreate.alfresco.defaults=alfresco,archive command automatically creates the alfresco and archive cores. So you need to pass this param only on first/initial startup of solr in order to allow cores being created and configured.

            Once Search Services is up and running, you should see a message similar to the following:

              Startup message: 
              Waiting up to 180 seconds to see Solr running on port 8983 [\]  
              Started Solr server on port 8983 (pid=443218). Happy searching!

              Stopping Solr6: 
              .\solr\bin\solr.cmd stop -p 8983
              
              Or
              
              .\solr\bin\solr.cmd stop -all
              • Configure solr log, The logs are stored in the C:\alfresco-search-services\logs\solr.log file, by default. This can be configured in solr.in.cmd using SOLR_LOGS_DIR. This is optional setup. We are keeping default settings
              set SOLR_LOGS_DIR=..\..\logs
              set LOG4J_CONFIG=file:!SOLR_LOGS_DIR!\log4j.properties
              • Verify the SOLR Admin UI. Use the URL below to launch SOLR Admin UI and validate the status and cores:

              Note: If you are planning to use Alfresco Search Services 2.0, make sure you check the Supported Platforms documentation here and use appropriate version of ACS 6.2. Steps would be same irrespective of the versions


              Now we are done with all the setup and config changes. Here are full “alfresco-global.properties”, “custom-log4j.properties”, “shared.properties” and “solr.in.cmd” files for reference:


              alfresco-global.properties:

              ###############################
              ## Common Alfresco Properties #
              ###############################
              
              
              dir.root=C:/alfresco-community62ga/alf_data
              
              # URL Generation Parameters (The ${localname} token is replaced by the local server name)
              #-------------
              alfresco.context=alfresco
              alfresco.host=${localname}
              alfresco.port=8080
              alfresco.protocol=http
              share.context=share
              share.host=${localname}
              share.port=8080
              share.protocol=http
              
              ### database connection properties ###
              db.driver=org.postgresql.Driver
              db.username=alfresco
              db.password=alfresco
              db.name=alfresco
              db.url=jdbc:postgresql://localhost:5432/${db.name}
              # Note: your database must also be able to accept at least this many connections.  Please see your database documentation for instructions on how to configure this.
              db.pool.max=275
              db.pool.validate.query=SELECT 1
              
              # The server mode. Set value here
              # UNKNOWN | TEST | BACKUP | PRODUCTION
              system.serverMode=UNKNOWN
              
              ### RMI registry port for JMX ###
              alfresco.rmi.services.port=50500
              
              # Default value of alfresco.rmi.services.host is 0.0.0.0 which means 'listen on all adapters'.
              # This allows connections to JMX both remotely and locally.
              alfresco.rmi.services.host=0.0.0.0
              
              # Assign individual ports for each service for best performance 
              # or run several services on the same port. You can even run everything on 50500 if needed.
              # Select 0 to use a random unused port.
              #monitor.rmi.service.port=50508
              
              
              ### External executable locations ###
              
              #PDF Renderer config, used for previewing pdf docs.
              alfresco-pdf-renderer.root=C:/alfresco-community62ga/alfresco-pdf-renderer
              alfresco-pdf-renderer.exe=${alfresco-pdf-renderer.root}/alfresco-pdf-renderer.exe
              
              #Imagemagick config
              img.root=C:/alfresco-community62ga/imagemagick
              img.dyn=${img.root}/lib
              img.exe=${img.root}/convert.exe
              img.coders=${img.root}/modules/coders
              img.config=${img.root}
              img.gslib=${img.root}/lib
              
              ####LibreOffice and jodconverter configurations
              #You can transform a document from one format to another using the OOoJodconverter subsystem. This feature requires you to install LibreOffice.
              #The Jodconverter integration is a library that improves the stability and performance of LibreOffice in Alfresco Content Services. 
              #The Jodconverter runs on the same machine as the Alfresco Content Services server and it supports:
              #	- a pool of separate LibreOffice processes
              #	- automatic restart of crashed LibreOffice processes
              #	- automatic termination of slow LibreOffice operations
              #	- automatic restart of any LibreOffice process after a number of operations (this is a workaround for LibreOffice memory leaks)
              
              #OOoDirect
              #The subsystem for direct OpenOffice integration, in which the Alfresco server manages OpenOffice directly. To enable or disable this subsystem, use the following property:
              #ooo.enabled=false
              #Note:
              #If you install Alfresco manually, by default, the OOoDirect subsystem is enabled, and the OOoJodconverter subsystem is disabled. 
              #Although it is possible to run both subsystems, Alfresco recommends that you enable only one at a time. 
              #To take advantage of the stability and performance benefits of the OOoJodconverter subsystem, 
              #ensure that you disable OOoDirect and enable OOoJodConverter using the following properties in the alfresco-global.properties file: ooo.enabled=false
              #jodconverter.enabled=true
              
              ooo.enabled=false
              jodconverter.enabled=true
              ooo.exe=C:/alfresco-community62ga/libreoffice/program/soffice.exe
              ooo.enabled=false
              ooo.port=8100
              jodconverter.enabled=true
              jodconverter.officeHome=C:/alfresco-community62ga/libreoffice
              jodconverter.portNumbers=8100
              
              
              ### E-mail site invitation setting ###
              notification.email.siteinvite=false
              
              ### License location ###
              dir.license.external=C:/alfresco-community62ga
              
              #Confiure ActiveMQ URL. 
              messaging.broker.url=tcp://localhost:61616
              messaging.subsystem.autoStart=false
              
              #Transform service configurations
              transform.service.enabled=false
              local.transform.service.enabled=false
              legacy.transform.service.enabled=true
              
              ### Allow extended ResultSet processing
              security.anyDenyDenies=false
              
              ### Smart Folders Config Properties ###
              smart.folders.enabled=false
              
              ### Remote JMX (Default: disabled) ###
              alfresco.jmx.connector.enabled=false
              
              ################ Solr Search service configurations ###############
              
              # Index Recovery Mode
              #-------------
              #index.recovery.mode=AUTO
              
              # Set this property unless you have explicitly chosen to expose some repository APIs without authentication
              solr.host=localhost
              solr.port=8983
              #none, https
              solr.secureComms=none
              solr.base.url=/solr
              index.subsystem.name=solr6
              
              ### FTP Server Configuration ###
              ftp.port=2121
              ftp.enabled=true
              ftp.server.enables=true
              


              custom-log4j.properties:

              #Tranformer specific logs
              log4j.logger.org.alfresco.repo.content.transform.TransformerDebug=info
              log4j.logger.org.alfresco.util.exec.RuntimeExecBootstrapBean=info
              log4j.logger.org.alfresco.util.exec.RuntimeExec=info
              
              #ScriptLogger
              log4j.logger.org.alfresco.repo.jscript.ScriptLogger=debug
              
              #Log for email executer
              log4j.logger.org.alfresco.repo.action.executer.MailActionExecuter=info
              
              #Transaction specific logs
              log4j.logger.org.alfresco.repo.transaction.RetryingTransactionHelper=info
              
              #Solr specific logs
              log4j.logger.org.alfresco.solr.query.AbstractQParser=debug
              log4j.logger.org.alfresco.repo.search.impl.solr.SolrQueryHTTPClient=debug
              
              #Metadata extractor 
              log4j.logger.org.alfresco.repo.content.metadata.AbstractMappingMetadataExtracter=info
              log4j.logger.org.alfresco.repo.content.metadata.MetadataExtracterRegistry=info
              
              #Thumbnail logs
              log4j.logger.org.alfresco.repo.thumbnail=info
              
              # FTP server debugging
              log4j.logger.org.alfresco.ftp.protocol=info
              log4j.logger.org.alfresco.ftp.server=info
              


              shared.properties:

              # Shared Properties file
              
              #Host details an external client would use to connect to Solr
              solr.host=localhost
              #If not set then solr.port will be the jetty.port
              #solr.port=8983
              solr.baseurl=/solr
              
              # Properties treated as identifiers when indexed
              
              alfresco.identifier.property.0={http://www.alfresco.org/model/content/1.0}creator
              alfresco.identifier.property.1={http://www.alfresco.org/model/content/1.0}modifier
              alfresco.identifier.property.2={http://www.alfresco.org/model/content/1.0}userName
              alfresco.identifier.property.3={http://www.alfresco.org/model/content/1.0}authorityName
              alfresco.identifier.property.4={http://www.alfresco.org/model/content/1.0}lockOwner
              
              # Suggestable Properties
              alfresco.suggestable.property.0={http://www.alfresco.org/model/content/1.0}name
              alfresco.suggestable.property.1={http://www.alfresco.org/model/content/1.0}title
              alfresco.suggestable.property.2={http://www.alfresco.org/model/content/1.0}description
              alfresco.suggestable.property.3={http://www.alfresco.org/model/content/1.0}content
              
              # Data types that support cross locale/word splitting/token patterns if tokenised
              alfresco.cross.locale.property.0={http://www.alfresco.org/model/content/1.0}name
              alfresco.cross.locale.property.1={http://www.alfresco.org/model/content/1.0}lockOwner
              
              # Data types that support cross locale/word splitting/token patterns if tokenised
              alfresco.cross.locale.datatype.0={http://www.alfresco.org/model/dictionary/1.0}text
              alfresco.cross.locale.datatype.1={http://www.alfresco.org/model/dictionary/1.0}content
              alfresco.cross.locale.datatype.2={http://www.alfresco.org/model/dictionary/1.0}mltext
              
              alfresco.model.tracker.cron=0/10 * * * * ? *
              


              solr.in.cmd:

              @echo off
              
              REM Increase Java Min/Max Heap as needed to support your indexing / query needs
              set SOLR_JAVA_MEM=-Xms1g -Xmx1g
              
              REM Alfresco configuration. This file is automatically included by solr. You can define your custom settings here
              set SOLR_OPTS=%SOLR_OPTS% -Dsolr.jetty.request.header.size=1000000 -Dsolr.jetty.threads.stop.timeout=300000 -Ddisable.configEdit=true 
              
              REM Location where Solr should write logs to. Absolute or relative to solr start dir
              set SOLR_LOGS_DIR=..\..\logs
              set LOG4J_CONFIG=file:!SOLR_LOGS_DIR!\log4j.properties
              
              
              set SOLR_SOLR_HOST=localhost
              set SOLR_SOLR_PORT=8983
              set SOLR_SOLR_BASEURL=/solr
              set SOLR_ALFRESCO_HOST=localhost
              set SOLR_ALFRESCO_PORT=8080
              set SOLR_ALFRESCO_BASEURL=/alfresco
              
              :: Since we are setting up with no SSL, this property need to be set to none. Default is https
              set SOLR_ALFRESCO_SECURECOMMS=none
              


              Start and test:


              There are three services that we need to start one by one in order:

              • Start DB
                • To start DB, you can do either of the following:
                  • Use windows services, and start “postgresql-x64-11” service.
                  • Or Open command prompt and execute this command: C:\PostgreSQL\11\bin\pg_ctl.exe start -D “C:\PostgreSQL\11\data"

              • Start Alfresco
                • To start Alfresco, you can do either of the following:
                  • Open command prompt and navigate to “C:\alfresco-community62ga\tomcat\bin” and execute following command: catalina.bat start
                  • Or navigate to “C:\alfresco-community62ga\tomcat\bin” folder and execute “startup.bat”

              • Start Solr6
                • To start SOLR6, use the following command by navigating to “C:\alfresco-search-services\solr\bin” folder via command prompt:
                  • Initial start only: C:\alfresco-search-services\solr\bin\solr.cmd start -a "-Dcreate.alfresco.defaults=alfresco,archive"
                  • Consecutive start command: C:\alfresco-search-services\solr\bin\solr.cmd start

                Note: See the search service configuration section for more details.

              I have created this bat file “start.bat”, you can use this to start all services instead of doing one by one.


              start.bat:


              @echo off
              
              ECHO ################ Starting ACS, DB and Solr Services ##############
              ECHO.
              
              
              SET ALF_INSTALL_PATH=%1
              SET SOLR_INSTALL_PATH=%2
              SET POSTGRES_INSTALL_PATH=%3
              
              :init
              	IF "%~1" == "" (
              	   SET ALF_INSTALL_PATH=C:\alfresco-community62ga
              	)
              	
              	IF "%~2" == "" (
              		SET SOLR_INSTALL_PATH=C:\alfresco-search-services
              	)
              	
              	IF "%~3" == "" (
              		SET POSTGRES_INSTALL_PATH=C:\PostgreSQL\11
              	)
              	
              	goto startDB
              
              :startDB
              	echo Starting DB...
              	:: Using the windows service to start the db.
              	:: net start postgresql-x64-11
              	REM You can also use this command, if there is any issue with permission elevation on windows
              	%POSTGRES_INSTALL_PATH%\bin\pg_ctl.exe restart -D "%POSTGRES_INSTALL_PATH%\data"
              	if errorlevel 1 (goto end) else (goto startACS)
              
              :startACS
              	echo.
              	echo Starting ACS...
              	SET CATALINA_HOME=%ALF_INSTALL_PATH%\tomcat
              	start /MIN /WAIT cmd /c %ALF_INSTALL_PATH%\tomcat\bin\catalina.bat start
              	if errorlevel 1 (goto end) else (goto startSolr)
              	
              :startSolr
              	echo.
              	set "initial=false"
              
              	:: check if cores exists
              	echo.
              	set "initial=false"
              	CD %SOLR_INSTALL_PATH%\solrhome
              	:: check if cores exists
              	
              	set Exts=alfresco archive
              	for %%A in (%Exts%) do (
              	  echo Checking core: %%A
              	  if not exist %%A\NUL (
              		echo %%A doesn't exist
              	    set "initial=true"
              	  ) else (
              		echo %%A already exist
              		set "initial=false"
              	  )
              	)
              
              	CD %ALF_INSTALL_PATH%
              	if "%initial%" == "true" (
              		GOTO startSolrInitial
              	) else (
              		GOTO startSolrConsecutive
              	)
              
              :startSolrInitial
              	echo.
              	echo Starting SOLR for the first time, alfresco and archive cores will be created...	
              	start /MIN /WAIT cmd /c %SOLR_INSTALL_PATH%\solr\bin\solr.cmd start -a "-Dcreate.alfresco.defaults=alfresco,archive"
              	if errorlevel 1 (goto end)
              	
              :startSolrConsecutive
              	echo.
              	echo Starting SOLR...
              	start /MIN /WAIT cmd /c %SOLR_INSTALL_PATH%\solr\bin\solr.cmd start
              	if errorlevel 1 (goto end)
              	
              
              :end
              	echo.
                      echo Exiting..
              	timeout 10
              


              Note: If you see any warning in logs such as "org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/WEB-INF/classes/alfresco/templates/org/alfresco/dashboard.ftl] to the cache for web application [/share] because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache" or "org.apache.catalina.webresources.Cache.backgroundProcess The background cache eviction process was unable to free [10] percent of the cache for Context [/share] - consider increasing the maximum size of the cache. After eviction approximately [9,411] KB of data remained in the cache." then you can increase the resource case of disable resource caching. Follow the below given steps if you see these warnings:
                  • By default value for resource caching is 10240 kbytes, even when not added to [ALF_HOME]\tomcat\conf\context.xml. so either increase it until you stop seeing the warning or disable it completely.
                  • Make sure you clean the tomcat 'work' (C:\alfresco-community62ga\tomcat\work\Catalina) directory before restarting the server.

                <Resources cacheMaxSize="100000" cachingAllowed="true"/>
                Or disable the caching
                <Resources cachingAllowed="false" />         
                  • The above configuration is default for tomcat but since for 'alfresco' and 'share' webapps we have cross contexts under '[ALF_HOME]\tomcat\conf\Catalina\localhost\ ' directory.
                    • Make the above given configuration changes in "alfresco.xml" and "share.xml" and clean the tomcat 'work' (C:\alfresco-community62ga\tomcat\work\Catalina) directory before restarting the server
                <Context crossContext="true">
                  <Resources cachingAllowed="true" cacheMaxSize="100000">
                    <PostResources base="${catalina.base}/../modules/platform"
                                   className="org.apache.catalina.webresources.DirResourceSet"
                                   webAppMount="/WEB-INF/lib"/>
                  </Resources>
                </Context>
                <Context crossContext="true">
                  <Resources cachingAllowed="true" cacheMaxSize="100000">
                    <PostResources base="${catalina.base}/../modules/share"
                                   className="org.apache.catalina.webresources.DirResourceSet"
                                   webAppMount="/WEB-INF/lib"/>
                  </Resources>
                </Context>


                Stopping:


                There are three services that we need to stop one by one in order:

                • Stop Alfresco
                  • To stop Alfresco, you can do either of the following:
                    • Open command prompt and navigate to “C:\alfresco-community62ga\tomcat\bin” and execute following command: catalina.bat stop
                    • Or navigate to “C:\alfresco-community62ga\tomcat\bin” folder and execute “shutdown.bat”
                • Stop Solr6
                  • To stop SOLR6, use the following command by navigating to “C:\alfresco-search-services\solr\bin” folder via command prompt:
                    • C:\alfresco-search-services\solr\bin\solr.cmd stop -all
                    • Or C:\alfresco-search-services\solr\bin\solr.cmd stop -p 8983
                Note: See the search service configuration section for more details.
                • Stop DB
                  • To stop DB, you can do either of the following:
                    • Use windows services, and stop “postgresql-x64-11” service.
                    • Or Open command prompt and execute this command: C:\PostgreSQL\11\bin\pg_ctl.exe stop -D “C:\PostgreSQL\11\data"

                I have created this bat file “stop.bat”, you can use this to stop all services instead of doing one by one.

                stop.bat:


                @echo off
                
                ECHO ################ Stopping ACS, DB and Solr Services ##############
                ECHO.
                
                SET ALF_INSTALL_PATH=%1
                SET SOLR_INSTALL_PATH=%2
                SET POSTGRES_INSTALL_PATH=%3
                
                :init
                	IF "%~1" == "" (
                	   SET ALF_INSTALL_PATH=C:\alfresco-community62ga
                	)
                	
                	IF "%~2" == "" (
                		SET SOLR_INSTALL_PATH=C:\alfresco-search-services
                	)
                	
                	IF "%~3" == "" (
                		SET POSTGRES_INSTALL_PATH=C:\PostgreSQL\11
                	)
                	
                	goto stopACS
                
                :stopACS
                	echo.
                	echo Stopping ACS from %ALF_INSTALL_PATH% ...
                	SET CATALINA_HOME=%ALF_INSTALL_PATH%\tomcat
                	start /MIN /WAIT cmd /c %ALF_INSTALL_PATH%\tomcat\bin\catalina.bat stop
                	if errorlevel 1 (goto end) else (goto stopDB)
                
                :stopDB
                	echo.
                	echo Stopping DB from %POSTGRES_INSTALL_PATH% ...
                	:: Using the windows service to stop the db.
                	:: net stop postgresql-x64-11
                	REM You can also use this command, if there is any issue with permission elevation on windows
                	%POSTGRES_INSTALL_PATH%\bin\pg_ctl.exe stop -D "%POSTGRES_INSTALL_PATH%\data"
                	if errorlevel 1 (goto end) else (goto stopSolr)
                	
                :stopSolr
                	echo.
                	echo Stopping SOLR from %SOLR_INSTALL_PATH% ...
                	%SOLR_INSTALL_PATH%\solr\bin\solr.cmd stop -all
                	if errorlevel 1 (goto end)
                
                :end
                	echo.
                        echo Exiting..
                	timeout 10
                


                All the structure and updated files are available here for reference:

                https://github.com/abhinavmishra14/alfresco62ga-solr-dist-setup


                For Linux platform visit this post: 

                https://javaworld-abhinav.blogspot.com/2021/02/setup-acs62-ga-and-ass14-distribution-stepbystep-centos.html


                References:

                https://docs.alfresco.com





                29 comments:

                1. Can you provide me deployments steps for Centos 7

                  ReplyDelete
                  Replies
                  1. Refer this post: https://javaworld-abhinav.blogspot.com/2021/02/setup-acs62-ga-and-ass14-distribution-stepbystep-centos.html

                    Delete
                2. Hi!
                  Thank you very much for this tutorial.
                  When I am starting catalina I am having this error:

                  WARNING [main] org.apache.catalina.startup.ClassLoaderFactory.validateFile Problem with directory [C:\alfresco-community62ga\tomcat\shared\lib], exists: [false], isDirectory: [false], canRead: [false]

                  But I can't find anyhere where this is parameter configured!

                  I can only relate to this:
                  Change the value of the shared.loader= property to the following:
                  shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar

                  But I've changed that line in catalina.properties exactly as you mentioned.

                  You have any idea?

                  Thank you!

                  ReplyDelete
                  Replies
                  1. Yes shared.loader config looks correct but seems C:\alfresco-community62ga\tomcat\shared\lib directory is missing. Please cross check and create the directory if not created already. Check the directory structure and steps at the beginning.

                    You can also refer sample configuration files in the github project provided for windows platform

                    Delete
                  2. Thank you! That was the issue.

                    Delete
                  3. I am glad you are able to resolve the issue.

                    Delete
                3. Hi Abhinav. Thanks for this guide. Am having difficulty in configuring Memory since current installation only shows 1GB. How do i go about specifically Windows Environment.

                  ReplyDelete
                  Replies
                  1. Are you configuring memory for ACS or ASS ?

                    For ACS, just update the catalina.bat file. Look for :

                    set "JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"

                    And update it as, example increased the default memory to 2g:

                    set "JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Xms2g -Xmx2g"

                    See here for reference: https://github.com/abhinavmishra14/alfresco62ga-solr-dist-setup/blob/master/windows-platform/alfresco-community62ga/tomcat/bin/catalina.bat#L220

                    ----------------------------------------------------------------------------------------------------

                    For ASS, Update the "SOLR_JAVA_MEM" in solr.in.cmd file. Look for :

                    set SOLR_JAVA_MEM=-Xms1g -Xmx1g

                    And update it:

                    set SOLR_JAVA_MEM=-Xms2g -Xmx2g

                    See here for reference: https://github.com/abhinavmishra14/alfresco62ga-solr-dist-setup/blob/master/windows-platform/alfresco-search-services/solr.in.cmd#L28

                    Delete
                4. Hello Abhinav,
                  Thank you for this step by step clear intallation.
                  After having done everything I arrive on the authentication page of alfresco but the logins and mp don't work, so I don't arrive on the dashboard.
                  I've tried admin/admin, alfresco/alfresco, unsuccessfully.
                  Is there a solution please?
                  Thanks in advance.

                  ReplyDelete
                  Replies
                  1. Hi @imane
                    You are right admin/admin should work. Looks like share is up but there is some issue with alfresco, can you check the logs and see if you can spot any errors? Or share the logs here (alfresco.log and catalina.log)

                    Delete
                  2. Hello @Abhinav,
                    The problem was that I missed a change on a configuration file, everything is ok now thank you.
                    Now I want to migrate documents from a document management solution installed on the local server to Alfresco which is installed on the cloud.
                    is there a tool (like bulk import tool) that can do this?
                    if not how to do it please if you have any idea?
                    Thank you in advance.

                    Delete
                  3. Glad to hear you are able to resolve the issue.

                    For migration you can use the bulk-import tool like this one:

                    https://github.com/pmonks/alfresco-bulk-import

                    or use OOTB option : https://docs.alfresco.com/content-services/6.1/admin/import-transfer/
                    https://docs.alfresco.com/content-services/community/admin/import-transfer/

                    Delete
                5. Hello, I want to ask links could use to access to alfresco in my browser?

                  ReplyDelete
                  Replies
                  1. If you have installed locally, to access alfresco app use : http://localhost:8080/alfresco and to access share use: http://localhost:8080/share

                    Delete
                6. thank you Abhinav . your article is very helpful . I was able to launch Alfresco 6.
                  I am looking forward to see article for Alfresco 7 with elastic search .

                  ReplyDelete
                  Replies
                  1. Thanks Raja. I have instructions for ACS7 here : https://javaworld-abhinav.blogspot.com/2021/06/setup-acs70-ass201-and-transformation-service.html

                    Elastic search is enterprise only feature. You can find integration steps here: https://docs.alfresco.com/search-enterprise/latest/

                    I am covering community edition setup as part of the posts which is default integration with Solr6.

                    Delete
                7. Hello Abhinav, Thanks a lot for breaking down the installation process. I get this error at the end of the installation. Can you help me out to point out the problem ?



                  ERROR [repo.rendition2.RenditionDefinitionRegistry2Impl] [QuartzScheduler_Worker-2] Config read failed. Illegal access: this web application instance has been stopped already. Could not load [alfresco/renditions/0100-baseRenditions.json]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
                  java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [alfresco/renditions/0100-baseRenditions.json]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
                  at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1380)
                  at org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream(WebappClassLoaderBase.java:1109)
                  at org.alfresco.util.ConfigFileFinder.getResourceAsStream(ConfigFileFinder.java:181)
                  at org.alfresco.util.ConfigFileFinder.readFromJar(ConfigFileFinder.java:139)
                  at org.alfresco.util.ConfigFileFinder.readFiles(ConfigFileFinder.java:87)
                  at org.alfresco.repo.rendition2.RenditionDefinitionRegistry2Impl.readConfig(RenditionDefinitionRegistry2Impl.java:290)
                  at org.alfresco.repo.rendition2.RenditionDefinitionRegistry2Impl$1.readConfig(RenditionDefinitionRegistry2Impl.java:164)
                  at org.alfresco.util.ConfigScheduler.readConfigAndReplace(ConfigScheduler.java:208)
                  at org.alfresco.util.ConfigScheduler$ConfigSchedulerJob.execute(ConfigScheduler.java:64)
                  at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
                  at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)

                  ReplyDelete
                  Replies
                  1. This error is related to transformation service, are you using legacy transformation service or local transformation service. Based on your usage type, set the following properties and see if that fixes the issue.

                    Legacy::::::::::::::::::::::

                    transform.service.enabled=false
                    local.transform.service.enabled=false
                    legacy.transform.service.enabled=true



                    Local:::::::::::::::::

                    localTransform.core-aio.url=http://localhost:8090/
                    local.transform.service.enabled=true
                    messaging.broker.url=tcp://localhost:61616
                    messaging.subsystem.autoStart=true
                    legacy.transform.service.enabled=false


                    Delete
                8. Your guide is by far the easiest to follow instruction on Alfresco installation. Thank you so much. But please will you consider doing installing alfresco 7 distribution zip for windows 10 up...Thanks

                  ReplyDelete
                  Replies
                  1. Hi, glad to hear that. Take a look at following posts. Win10 is already covered.

                    Setup ACS-7.x, ASS-2.x and Local Transformation Service using distribution package --> https://javaworld-abhinav.blogspot.com/2022/05/setup-acs-7-ass-2-and-local-windows.html

                    Setup ACS-7.2 with Elasticsearch and Transformation Service --> https://javaworld-abhinav.blogspot.com/2022/06/setup-acs-72-with-elasticsearch-and-transformservice.html

                    Delete
                9. Hi Abhinav,
                  How to use the in-place bulk import tool???
                  I didn't found any help in documentation.

                  Thanks
                  Srik

                  ReplyDelete
                  Replies
                  1. Take a look at this thread: https://hub.alfresco.com/t5/alfresco-content-services-forum/data-migration-from-4-to-5/m-p/309344/highlight/true#M25500

                    and

                    https://hub.alfresco.com/t5/alfresco-content-services-hub/bulk-importer/ba-p/289507

                    Hope this helps.

                    Delete
                10. Hi Abhinav,

                  Thank you for the details steps. I followed Windows installation steps and when I try to start alfresco-search-service with command .\solr\bin\solr.cmd start -a "-Dcreate.alfresco.defaults=alfresco,archive"
                  it is giving below message and solr is not starting.
                  Invalid command-line option: alfresco

                  Please suggest if I am missing anything.

                  Thanks
                  Sid

                  ReplyDelete
                  Replies
                  1. You may be not going to right context before executing the command.

                    To start SOLR6, use the following command by navigating to “\solr\bin” e.g. “C:\alfresco-search-services\solr\bin” folder via command prompt and execute the commands or provide full path until \solr\bin before command. See examples below:

                    For initial start only (when starting solr for the first time after setup): C:\alfresco-search-services\solr\bin\solr.cmd start -a "-Dcreate.alfresco.defaults=alfresco,archive"

                    Consecutive start command: C:\alfresco-search-services\solr\bin\solr.cmd start

                    Alternatively you can use these convenience scripts:
                    https://github.com/abhinavmishra14/alfresco62ga-solr-dist-setup/blob/master/windows-platform/alfresco-community62ga/start.bat

                    More details: https://github.com/abhinavmishra14/alfresco62ga-solr-dist-setup/blob/master/windows-platform/alfresco-community62ga/start.bat#L41

                    https://github.com/abhinavmishra14/alfresco62ga-solr-dist-setup/blob/master/windows-platform/alfresco-community62ga/stop.bat

                    More details: https://github.com/abhinavmishra14/alfresco62ga-solr-dist-setup/blob/master/windows-platform/alfresco-community62ga/stop.bat#L41

                    Delete
                11. hello thank you for the guide very easy to follow. i've been able to run alfresco following the guide later i tried to add new module from amp i used the tool 'apply_amps.bat' provided in the alfresco folder everything went well when i try to start the server, alfresco failed to start and share start properly but
                  got stuck on the login page after trying to log in. here is the error from the alfresco log.

                  2022-11-30 22:20:12,326 WARN [org.springframework.web.context.support.XmlWebApplicationContext] [localhost-startStop-1] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authorityBridgeTableCache' defined in class path resource [alfresco/cache-context.xml]: Cannot resolve reference to bean 'tenantAdminService' while setting bean property 'tenantAdminService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tenantAdminService' defined in URL [jar:file:/C:/alfresco-community62ga/tomcat/webapps/alfresco/WEB-INF/lib/alfresco-repository-6.55.jar!/alfresco/mt/mt-admin-context.xml]: Cannot resolve reference to bean 'dbNodeServiceImpl' while setting bean property 'nodeService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dbNodeService' defined in class path resource [alfresco/node-services-context.xml]: Cannot resolve reference to bean 'permissionServiceImpl' while setting bean property 'permissionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'permissionServiceImpl' defined in class path resource [alfresco/public-services-security-context.xml]: Cannot resolve reference to bean 'authorityService' while setting bean property 'authorityService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authorityService' defined in class path resource [alfresco/authority-services-context.xml]: Cannot resolve reference to bean 'personService' while setting bean property 'personService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'personService' defined in class path resource [alfresco/authentication-services-context.xml]: Cannot resolve reference to bean 'personServicePermissionsManager' while setting bean property 'permissionsManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'personServicePermissionsManager' defined in class path resource [alfresco/authentication-services-context.xml]: Cannot resolve reference to bean 'ownableService' while setting bean property 'ownableService';

                  ReplyDelete
                12. hello, sorry to repost again, my first post was as an anonymous sorry for that. i my previous post i stated that i ve been able to run alfresco following the guide later i a tried to add new module from amp
                  i used the tool 'apply_amps.bat' provided in the alfresco folder everything went well when i try to start the server alfresco faild to start and share start properly but
                  got stuck on the login page after trying to log in. here is the the error from the alfresco log.
                  2022-11-30 22:20:12,326 WARN [org.springframework.web.context.support.XmlWebApplicationContext] [localhost-startStop-1] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authorityBridgeTableCache' defined in class path resource [alfresco/cache-context.xml]: Cannot resolve reference to bean 'tenantAdminService' while setting bean property 'tenantAdminService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tenantAdminService' defined in URL [jar:file:/C:/alfresco-community62ga/tomcat/webapps/alfresco/WEB-INF/lib/alfresco-repository-6.55.jar!/alfresco/mt/mt-admin-context.xml]: Cannot resolve reference to bean 'dbNodeServiceImpl' while setting bean property 'nodeService';

                  ReplyDelete
                  Replies
                  1. Your repository did not start correctly as per the logs, hence you can not login. Check the logs from start to and end and see if you can find any errors that could be causing the error you posted.

                    Make sure your amp has no broken changes. If you are sure that your amp is working correctly when using SDK, then follow these additional steps and see if it fixes the issue:

                    1- Delete everything from C:\alfresco-community72\tomcat\work\Catalina\localhost
                    2- Delete the exploded war files "alfresco" and "share"
                    3- If you have a backup of your previous war files, copy them back and reapply the amps again. Make sure you take the backup of your war files.

                    See the detailed steps here: https://docs.alfresco.com/content-services/6.2/install/zip/amp/

                    Delete
                13. hello i would like to know if you have any tutorial that deals with AOS configuration for alfresco community version thank you

                  ReplyDelete

                Thanks for your comments/Suggestions.