Upgrade Alfresco 3.4 to 4.2 in production enviroment

Alfresco DMS Logo

While searching the internet for a complete solution to upgrade my alfresco 3.4d system to the newer version 4.2 I noticed that all guides provided in the alfresco forum as well as the official wiki are of this kind:

  1. Backup database and content store
  2. Install new System
  3. Import Backup of database and content store.

As much as they wished it was that easy and straight forward it is NOT.

I very much like the Alfresco Software. But upgrading is a horrific experience.
In my case over 20 upgrade attempts have been conducted (using VM snapshots which saved days of time) before finding a working procedure.

Please read the whole article before starting any actions to perform the upgrade or you will end up doing stuff several times instead of accomplishing everything in one run.

Depending on the current state of development (the builds you use, which can differ dramatically from night to night) you may or may not encounter the following issues while upgrading:

Workflows not working after upgrade:

Alfresco changed their BPM Engine from jBPM to Activity Engine since the 4.0 release. This introduces the following errors assuming you are upgrading a 3.4 that is a production system and not a vanilla installation.

Workflows coming from WebQuickStart and RM module in 3.4 will NOT work if you upgrade to 4.2 so you will have to undeploy them BEFORE making your backups for the upgrade.

If you managed to upgrade your system somehow without undeploying the workflows you will notice that not only the mentioned workflows will be broken but the whole workflow system will be rendered nonfunctional throwing “Definitions not found” errors. This will prevent you from perfoming ANY actions on ANY workflow or definition such as starting new workflows, even listing workflows, stopping running, deploying new workflows.
So you will end up with an upgraded system still not usable for business.

To prevent this please do the following:

  • Tell your users to abort/finish all assigned workflows before a given date you scheduled for the upgrade
  • Abort all unfinished workflows after that date using the workflows console:

    alfresco/faces/jsp/admin/workflow-console.jsp issue “delete all workflows”

  • Undeploy all workflow definitions related to WCM e.g. wcm wfsm (in fact you can undeploy all jBPM definitions as you just deleted all running workflows and because you will migrate to activity anyway)
  • This steps will clean up your original installation for the upgrade.

JBPM Tables blocking the upgrade procedure:

Alfresco will try to update the old JBPM tables during the upgrade using some sql scripts. Unfortunately you may encounter some case sensitivity problems (because someone from the alfresco 3.4 team decided to make all JBPM tables uppercase in contrast to the rest of the database -.-). Assuming you have a standalone MySQL Server on your target machine (where you want to import your database backup from 3.4) you will have to set the following entries in my.cnf BEFORE creating the target Database:

[mysqld]
lower_case_table_names = 0

UPDATE 12/04/13 (based on additions by Ken M. Jameson):
If you consider installing the Bitnami version of Alfresco 4.2 you should be prepared for some issues while upgrading. e.g. Ken found that “lower_case_table_names = 1” is contained inside the script that actually runs Alfresco and it is overriding the above statement in “my.cnf”.

I had to remove the one inside the startup script that was included with the Bitnami Alfresco installer (I at first tried to get this to work with the Bitnami version of Alfresco 4.2.e simply because their Alfresco included MYSQL instead of POSTGRES. I thought that would be easier, but never got it to work)
Not a problem, once I installed MYSQL in Ubuntu (using “apt-get install”).
I recommend using the regular Alfresco installer. Go to Alfresco’s site and download the one you need. I used 4.2.e (final).

kmj@mahlan.com

Now you can create your target database and import your 3.4 source db backup.

After that apply the following patch to make JBPM Tables uppercase again as the export-import (using mysqldump) will make them lowercase.

Upgrade blocking when trying to upgrade activity tables:

If you start your new 4.2 system for the first time to upgrade, it will try to execute a lot of DB schema patches. One of them will be to create new Activity Process Engine tables and another (or several others) to update those tables to match the current Activity version.
For sooome reason the update part of those scripts will be executed BEFORE the creation of the tables. The upgrade will fail dramatically.

To get around this I first installed a vanilla version of 4.2 with no data, extracted the create statements for the vanilla Activity tables from the DB and packed them into a patch file that I apply to my freshly imported backup before starting the upgrade.

At this point we have the tables created but still have to set some values and tell the database that the faulty patch has already been applied automatically using another modified patch from the 4.2 installation.

Well, we are done. Activity will be upgrading find now. ;)

Records management module in 3.4 kills SORL and Lucene search system:

If you are using the records management module in your source 3.4 installation you have really bad luck. As far as I know there is no uninstallation procedure for this module and there is no new module available for 4.2.
When trying to upgrade to 4.2 having all the database entries left over from the the old RM module the new SOLR indexer introduced in 4.2 will almost certainly die trying to index the RM transactions. This will also happen to the old lucene indexer that you will have to use for the initial indexing procedure after upgrade.

If you installed the Records Management module with example data but never used it for production there is a workaround for you.

First delete all the example records management sites from the 3.4 system before backing up. This will delete most of the records related entries from the database but there are still some left over. To remove these left over entries you will have to use the following statement:

delete from alf_child_assoc where parent_node_id= ANY (
SELECT id from alf_node where type_qname_id= ANY (
select id from alf_qname where local_name LIKE ‘xxxxxx’));

Execute this statement replacing the “xxxxxx” with “record%” than again with “disposition%” and again with “filePlan”.

This will remove a lot of RM nodes so that SOLR and Lucene indexer will survive the initial indexing procedure.

Additionally add “lucene.indexer.batchSize=1000” to the alfresco-global.properties file of you new 4.2 installation before starting the upgrade to ease workload on lucene indexer.

Errors present after the upgrade:

After your managed to upgrade the system to 4.2 you may see reccuring errors in the system logs:

Failed to execute script ‘classpath*:alfresco/site-webscripts/org/alfresco/components/document-details/document-workflows.get.js’: 01120002 Error: Could not load document workflows

This may be caused by old workflow definitions. To stop the error from showing up again and again you could try adding
system.workflow.engine.jbpm.enabled=true
to alfresco-global.properties to additionally enable the old jbpm engine.

Another Error may be:

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

This is caused because you have installed the jvm bundled with your alfresco 4.2 release. Unfortunately the bundled jvm has expired certificates. So you will have to regenerate them. This may sound trivial but it is definitely not. Fortunately there is a bash script to do this. ;)

Enable UniCode support:

To enable UniCode support you will have to set the correct MySQL Server settings BEFORE importing your DB backup:

[mysqld]

init_connect=’SET collation_connection = utf8_general_ci’
collation-server = utf8_unicode_ci
init-connect=’SET NAMES utf8′
character-set-server = utf8

Actually, to make this work with the tomcat server you will also have to append
“?useUnicode=yes&characterEncoding=UTF8”
to your DB connection URI during initial 4.2 installation.
Further on edit the tomcat’s server.xml and add “URIEncoding="UTF-8"" to the connectors.

STEP BY STEP GUIDE (for the Linux savvy):

IMPORTANT:
I assume you have cloned your production machine to machine A. Do NOT modify the DB on the production machine until your new 4.2 installation has been sufficiently tested.

Machine A: source machine alfresco 3.4 MySQL

Machine B: target machine

  1. A: Delete all workflows and undeploy all definitions. (see alfresco wiki)
    Also Delete all Records Management Sites you may have created.
  2. A: Stop alfresco and start Mysql Server alone.
    If you use the bundled MySQL server you can find the command to start the bundled server in the alfresco.sh start script. Look for the mysqld_safe script and start it providing the path to the data directory of the alfresco db.
  3. A: Connect to the DB with mysql-client and delete the left over RM nodes by issuing the following SQL:

    delete from alf_child_assoc where parent_node_id= ANY (SELECT id from alf_node where type_qname_id= ANY (select id from alf_qname where local_name LIKE ‘record%’));delete from alf_child_assoc where parent_node_id= ANY (SELECT id from alf_node where type_qname_id= ANY (select id from alf_qname where local_name LIKE ‘disposition%’));

    delete from alf_child_assoc where parent_node_id= ANY (SELECT id from alf_node where type_qname_id= ANY (select id from alf_qname where local_name LIKE ‘filePlan’));

    UPDATE 12/04/13 (based on additions by Ken M. Jameson):
    There are also some user and system groups inside Share that are related to Records_Management. You should remove them via the admin console from inside the system.

    Now you are ready to take the backup. Mysqldump your DB and move it to machine B.

  4. B: Install mysql Server modify my.cfn with this settings and restart:

    [mysqld]
    lower_case_table_names = 0
    init_connect=’SET collation_connection = utf8_general_ci’
    collation-server = utf8_unicode_ci
    init-connect=’SET NAMES utf8′
    character-set-server = utf8

  5. B: Create a new database.UPDATE 12/04/13 (based on additions by Ken M. Jameson):
    Before you can accomplish this, you should make sure to stop Alfresco (if it was already installed in a prior failed upgrade attempt) and start MYSQL

    server.service mysql status
    service mysql start
    mysql –u root –pyourpassword
    mysql> show databases;
    #optional if this is your second upgrade attempt: mysql> drop database alfresco;
    mysql> create database alfresco;
    mysql> quit;

  6. B: Install prequistites for OpenOffice (example for Debian).
    apt-get install libfontconfig1-dev libsm-dev libice-dev libXrender-dev libXext-dev
  7. B: Install Alfresco 4.2 using the same modules you have chosen for 3.4 (e.g. WebQuickStart). Do not install Postgres DB. DO install the bundled JVM.
    Use “org.gjt.mm.mysql.Driver” for DB Driver and

    “jdbc:mysql://localhost:3306/<DBNAMEHERE>?useUnicode=yes&characterEncoding=UTF8”

    for Database connection uri.

  8. B: After installation is finished do NOT let the installer start Alfresco after it finished installtion.
  9. B: Drop the created database from step 5 and create a new one with the same name.

    service mysql status
    service mysql start
    mysql -uroot -pyourpassword
    mysql> show databases;
    mysql> drop database alfresco;
    mysql> create database alfresco;
    mysql> quit;

    Now you can import your DB Backup from step 3.

    mysql -uroot -pyourpassword alfresco < /path_to_your_backup_from_3_4/olddata.sql

  10. B: After import is finished apply uppercase-JBPM-Tables-patch.UPDATE 12/04/13 (based on additions by Ken M. Jameson):
    To verify that patching is performed correctly Ken did this before applying the patch:

    mysql –uroot –ppassword
    mysql> show databases;
    mysql> use alfresco;
    mysql> show tables;
    Total of 88 tables
    #JBPMN tables should all be lowercase due to dump_import
    mysql> quit;

    Now apply the Patch that will make tables uppercase:

    mysql -uroot –pyourpassword alfresco</path_to_patch/uppercase-JBPM-Tables-patch.txt

    #verify that the patch worked
    mysql –uroot –ppassword
    mysql> show databases;
    mysql> use alfresco;
    mysql> show tables;
    #Verify that JBPMN tables are now uppercase … should be at the top of list
    Total tables should still be 88 …
    mysql> quit;

  11. B: Apply create-Activity-Tables-patch.UPDATE 12/04/13 (based on additions by Ken M. Jameson):
    While applying this patch Ken found that you have to disable foreign key checks to make it work. I think it depends on your mysql-server version if you need it or not.

    #I had to add to this “patch” …
    SET FOREIGN_KEY_CHECKS = 0  as first line in “patch”
    SET FOREIGN_KEY_CHECKS = 1 as last line in “patch”
    #Before running this patch, I did …
    mysql –uroot –ppassword
    mysql> show databases;
    mysql> use alfresco;
    mysql> show tables;
    Total of 88 tables …
    #Now exit mysql …
    mysql> quit;
    #and run patch …
    mysql -uroot –pyourpassword alfresco <
    /opt/alfresco_activity_table_creation_script.txt
    #After running this patch, I did …
    mysql –uroot –ppassword
    mysql> show databases;
    mysql> use alfresco;
    mysql> show tables;
    #Verify that ACT_??? tables have been added to the top of the list …
    #Total tables should be 109 …
    #Now exit mysql …
    mysql> quit;

  12. B: Apply confirm-Activity-Tables-creation-patch.

    mysql -uroot –pyourpassword alfresco </path_to_confirm_Activity_tables_creation_patch/confirm-Acrivity-TAbles-creation-patch.txt

  13. B: Download MySQL Connector/J and place it into <alfrescoInstallDir>/tomcat/lib.
  14. B: Add the Property URIEncoding="UTF-8"  to the connectors in tomcat’s server.xml
  15. B: Edit <alfrescoInstallDir>/tomcat/shared/classes/alfresco-global.properties:

    #not sure which one is implemented in the current version. Just use both.
    schema.update=true
    db.schema.update=true
    #COMMENT  OUT ALL EMAIL SETTINGS FOR THE FIRST START#Comment out Solr and enable Lucene with full reindex#index.subsystem.name=solr
    dir.keystore=${dir.root}/keystore
    solr.port.ssl=8443
    index.subsystem.name=lucene
    index.recovery.mode=FULL
    lucene.indexer.batchSize=1000#Disable IMAP as long it is not configured
    imap.server.enabled=false#I enable JOD Converter because it works better for me.
    jodconverter.enabled=true#Enable JBPM Engine for the upgrade
    system.workflow.engine.jbpm.enabled=true

  16. A: Copy all data from alf_data to Machine B/<AlfrescoInstallDir>/alf_data.
  17. B: Delete alf_data/lucene-indexes. Rename lucene-indexes-backup to lucene-indexes
  18. Execute regenerate-certificates-script to renew jvm certificates.UPDATE 12/04/13 (based on additions by Ken M. Jameson):
    Ken found that the recent downloadable installers already contain the renewed certificates.
    So this step is not necessary anymore.
  19. You are ready to start the upgrade. If you work in a Virtualized Enviroment I would recommend to snapshot Machine B now. So you can rollback and change something if you (or I ;) forgot to change some settings.Execute “/<alfrescoInstallDir>/alfresco.sh start” and watch the upgrade progress with “tail -f /<alfrescoInstallDir/tomcat/logs/catalina.out”

During the first boot alresco should patch your Database Scheme. There are some operations that can take very long. e.g. ACL Operations. Don’t despair. Depending on your DB it can take from minutes to hours.
Further on when Lucene indexing kicks in you will receive a lot of error about nodes and transactions not beeing parsed because we deleted RM nodes. This is ok. Just ignore the errors and let Lucene complete.

If you are sure that your machine hungup and not processing the reindexing anymore, “killall java” tomcat, delete tomcat/temp/catalina.pid and start alfresco once again. The indexing will beginn again and hopefully pass this time.

After your new System is up and running do NOT switch off lucene in alfresco-global.properties at least for a few days (depending on your DB and content store size).
SOLR will need some time to catch up with indexing. The search system will not work properly until SOLR indexed all transactions ever made.

Watch catalina.log for errors and have fun with your finally upgraded Alfresco 4.2 System.

Comments are welcome. ;)

UPDATE 12/04/13:

Some Additional Points:

  • There are some issues with the activity feed notifier if you upgraded your install. It mainly will try to send out emails to users about the recent site activities and cause some errors if the users subscribed to the feed but you did not configure emailing by now. To prevent this just add “activities.feed.notifier.enabled=false” to your alfresco-global.properties file.
  • There also might be issues with preview generation of some filetypes. Add the following to alfresco-global.properties (if not already there) to improve preview generation with jodconverter.“

    jodconverter.enabled=true
    jodconverter.officeHome=/pathtoalfresco/libreoffice
    jodconverter.portNumbers=8100″

  • Strange thing is that by default the 4.2 will not send out site-invite-emails. To enable this you should also add “notification.email.siteinvite=true” to alfresco.global.properties.
  • If you are much into photography some of your pictures may be way to big for the image-transformers to convert if you upload like 100 of them at once. Your server will be 100% busy for hours and the converters may die while trying to generate thumbnails and previews. ( not without hogging all your RAM before dying ;)
    Add alfresco_4.2_thumbnailing_setup.txt to your alfresco-global.properties and set reasonable size limits for thumbnail generation. (better no thumbnail than an unusable slow system)

28 thoughts on “Upgrade Alfresco 3.4 to 4.2 in production enviroment

  1. Pingback: Setup a simple XEN Virtualization Cluster – Part 1 – Hardware | higgsbugson

  2. I am a little confused as it relates to the backing up of the database. From Alfresco’s website, they say the following;

    Backing up an Alfresco repository involves backing up the following:
    •The directory pointed to by the dir.root setting
    •The database Alfresco is configured to use

    If Solr is being used, only the following directories must be backed up from the dir.root directory: •contentstore directory
    •solr/workspace/ directory
    •solr/archive/ directory
    •contentstore.deleted directory (optional)

    If Lucene is being used, only the following directories must be backed up from the dir.root directory: •contentstore directory
    •lucene-indexes directory
    •contentstore.deleted directory (optional)

    I am using alfresco 3.4.d so can I copy all of Alf_data or only the directories below
    contentstore directory
    lucene-indexes directory
    contentstore.deleted directory

    Like

    • Hi Craig, the official alfresco documentation is a little confusing indeed from my point of view.
      As said in the beginning of the article the often say that things are easier than they actually are.

      I may be wrong (sorry for that) but you referr “Backing up an Alfresco repository” as “relates to the backing up of the database”.
      Warning. Those are two different task that should be performed BOTH.
      (Sorry if I misunderstood you ;)

      The alfresco repository is NOT just the Alf_Data folder.
      This folder only contains the actual data of your documents sorted first by state of the document like active (contentstore) or deleted (contentstore.deleted).
      Than this folders contain subfolders named by years (when the document has been uploaded) than subfolders named by month and so on…
      The lowest level folders (minutes) contain only the raw data of the files that have been uploaded.
      They look like: “4nf93-2n593-205k3n-3029543” this could be a JPG, a PDF, a Video, just anything.
      For alfresco to know what “4nf93-2n593-205k3n-3029543” is it has the mysql/postgres/whateveryoulike Database that stores metadata
      (filename, dates, relations, children of the file, parents of the file, permissions, THE REALLY IMPORTANT STUFF)
      As you can see. Your alf_data folder is absolutely worthless without the Database.

      Now for Lucene: Lucene tracks all transactions made on the database and creates indexes. I am not sure how they really work but I think…
      to start a fresh lucene indexing process (on your upgrade machine) the base for indexing must be in some kind of a “closed” state.
      Thats why lucene is performing the lucene-indexes backup process, “closing” the index and creating the lucene-indexes.backup folder.

      If you are running 3.4 you can just copy all data in alf_data to your upgrade machine
      BUT:
      1. After moveing the whole alf_data delete the lucene-indexes directory
      2. Rename lucene-indexes.backup that lucene created to lucene-indexes. That is going to be your base for the new lucene to start a full reindex.
      3. Backup the mysql database of 3.4 as described in the tutorial.

      Cheers
      Ilja

      Like

      • Thanks for the response. However I had difficulty with your steps 11 and 12. I couldn’t patch the database. Step 10 worked out ok as I just pasted the sql commands into the MYSQL > prompt. The other two patches didn’t work. Is there a better way to ‘patch’ a MYSQL database?

        Right now the share page is displayed but the alfresco page won’t show. Also I have some lucene errors. I would be happy to paste my logs if this would help.

        Thanks again for your help.

        Like

        • Hi Craig, sorry for the late reply. Had a lot of stuff to do at work.

          Basically you do not need to paste the patches inside the Mysql prompt. This may work in some cases but not in other. It depends on how your prompt handles backslashes, line breaks and so on.

          To apply mysql patches as provided here you should use the mysql client in non-interactive mode. Something like this e.g.

          mysql -u root -p mydatabase < mypatch.sql

          As you skipped the patches I can not tell in what state your installation is atm.
          I would recommand rolling the database back to preupgrade state and start over patching it completely. After that you can empty your tomcat/logs/catalina.out and let alfresco perform the upgrade once again

          Let it boot and post your catalina.out to pastebin. ;) Lets see if there still will be errors.

          Like

  3. Thanks for this info … OK up thru Step#9 … Step 10 fails (no error message, no data change) … suspect due to FOREIGN KEYS??? Help! Thanks!

    Like

    • Hi Ken,
      What exactly is failing. The Process to apply the pach is 1. downloading it from pastebin 2. saving as JBPM_patch.sql or something 3. applying it via “mysql -u root -p yourdatabasename < JBPM_tables.sql"

      If you somehow already have all tables in upper case there is no need to apply the patch. Just fire up your mysql client "use yourdatabase" than "show tables" to see if your JBPM tables are uppercase.

      Like

      • Thanks again for your reply … replied earlier, but I guess this system dumped my reply … Step 10 … “Patch” runs with no errors … does not modify table names … runs silently … I cannot modify table names manually nor any other way … apparently ’cause of FOREIGN KEYS?????? … table names are lower case … thanks for any help !

        Like

        • Hey Ken.
          What happens if you fire up mysql client use your database and just try to execute

          “ALTER TABLE jbpm_action RENAME TO JBPM_ACTION;” ?

          You already stated that you can not modify table names manually and that everything remains silent without errors. If it was a foreign key problem there would be loads of errors;

          By the Way: The success message of an ALTER TABLE RENAME command is indeed:
          “Query OK, 0 rows affected
          Records: 0 Duplicates: 0 Warnings: 0”

          This does not mean that nothing has been changed.

          Like

      • FWIW … JBPM tables (All tables for that matter) are lower case … in my original 3.4.d “alfresco” database … what scripts in the new 4.2 system are doing the “upgrading” / “migration”? At this point … I’m very confused … I do appreciate your input … Thanks!

        Like

      • Thanks for your reply … according to my understanding, the patches purpose in life is to change the 28 fields from lower to upper case … “patch” runs w/o any errors … but changes nothing … line by line will not change anything … I cannot change these table names any way I try … I am by no menas a MYSQL expert … MYSQL 5.5 by the way … my research into “why” the table names cannot be changed … led me to FOREIGN KEYS … evidently “other” tables, etc. are dependent upon these names … MYSQ will not allow them to be changed … does that make any sense? I have quite a bit of data I am trying to migrate to 4.2 … if your “scheme” works … it will save me loads of work … my plan “B” involves manually moving the data … not something I’m looking forward to … and I deeply appreciate your help … Thank You … “Keeping The Faith” …

        Like

        • Hey Ken, if there were Foreign Key Problems or Constraint Problem you would receive an error message. (only if you execute interactively from the command line mysql client).

          Did you add the “lower_case_table_names = 0” statement to the [mysqld] section in your my.cfn?

          If you still do not receive any error messages on screen and nothing is changed try going to “/var/log/mysql/” (assuming debian)and have a look at the last modified files. (“ls -lt”). There must be something inside telling you why your tables are not changed.

          Like

      • There was a “lower_case_table_names” = 1 option in the command line that starts mysql … corrected … patch in line 10 runs with expected results …

        Item 11 aborts at line 4 …

        ERROR 1005 (HY000) at line 4: Can’t create table ‘bitnami_alfresco.ACT_GE_BYTEARRAY’ (errno: 150)

        Like

      • I added the following to your patch in ITEM 11 …

        SET FOREIGN_KEY_CHECKS = 0;

        table was created, but failed on line 25 …

        I deeply appreciated all your help … but I have a question …

        Has this concept ever worked?

        I’d really like to get this fixed … but ??? I’m beginning
        to have my doubts …

        Thanks again! KMJ

        Like

        • Hi Ken, i was just about suggesting Foreign_key_checks=0 ;)
          Even though I did not have had to use it during my upgrades.

          It is strange that the patches do not work for you as expected. I upgraded several installations using this process exactrly as described. So yes. it SHOULD work for you.

          A) Are you running a windows system? I have never tried this process on windows.

          What’s really strange is that line 25 is just an insertion of values into the table.
          That is a quite simple operation so the only reason i can think of it failing is your OS or mysql client interpreting the data to be inserted in a strange way.

          B) Please make sure that all your tables are InnoDB and not MyIASM
          C) Make sure that your CLIENT is using uft8

          I think I will post my client settings that worked for me in a couple of minutes.

          Like

          • Thanks for all the help … the line 25 error was caused by a bad download of your script … I have come quite a ways … finally got system to start … errors of numerous kinds in catalina.out … I am re-thinking the entire setup … I was using bitnami … lots of wierdness … can you recommend a setup that works … I really do not want to re enter all my data … and the alfresco folks offered no help (without big $) … this just has to be doable … I finally got all three of your scripts to run … only mod was the foreign key mod … alfresco starts … shows incompatible libraries, etc. … the system did run until I moved my data over … not sure what’s going on … Ubuntu 12.04 … utf8 … InnoDB … any ideas are welcome at this point … the 3.4.d was installed using the alfresco installer … has worked fine … think this would work using the bitnami stack? Thanks again … very much! Lots of time …

            Like

          • Oh I never had a look at the bitnami version.
            A) Is the directory structure the same as the default one created by alfresco installer?
            B) Why using bitnami? The alfresco installer seems to work pretty well these days. I think that using bitnami adds just another factor of uncertainty. I may also be completely wrong and the bitnami stuff is greate. ;)
            C) What do you mean by ” alfresco starts … shows incompatible libraries, etc.”
            Could you please 1. stop alfresco 2. Empty log with “echo > ./tomcat/logs/catalina.out 3.Start alfresco and post the catalina.out to pastebin or somewhere.

            Don’t worry i have proof that it IS possible to upgrade running in my office ;)

            Like

          • 1. Not doubting you …
            2. I tried Bitnami … it comes w/ MYSQL … no POSTGRESQL
            3. At this moment … I am re installing …
            a. MYSQL-SERVER apt-get install mysql-server
            b. alfresco-community-4.2.e-installer-linux-x64.bin
            4. It runs … 4.2.0 r56674-b4848 …
            192.168.0.43/alfresco & 192.168.0.43/share
            Let me go through the motions … per your article …
            I’ll get back as soon as possible … it is 0507am here … been up all night …
            I’ve never set up alfresco like this … with the Ubuntu MYSQL 5.5.34 seems smooth …
            Thank God for Proxmox … virtual machine …
            I really appreciate all that you’ve done to help me …
            Hope you can stay …

            Like

          • Trying to get consistency in my failures … I am now able to access alfresco … both webserver and share … all users are there … logons work (passwords, etc) … can see sites in pull downs, but cannot access any sites or documents … very few errrors … I gotta’ be missing something here … this should not be this hard …

            What version of alfresco are you using? I’m trying 4.2.e … no luck …

            1600 pm here … I need a break … Thanks again.

            Like

          • Hey, hey, hey … Houston … we have lift off … yeeeeeaaaaaaah! 11/30/2013 00:45 …
            I have learned a bunch … almost saturated … at least for a while … give me a day or two … I’ll get my notes in order … if you are interested … Ubuntu 12.04.2 LTS … MYSQL 5.5.34 … Tomcat 7.0.42 … Alfresco 4.2.e (Alfresco’s installer) … runs like am ape with his butt on fire … Proxmox 3.1 … virtual server … can’t wait to get this mess cleaned up … I appreciate all the support … most likely (absolutely) would not have gotten this done without your help … sorry for “trashing” your blog … all users are there … all groups are there … all sites are there … I can access all sites (haven’t finished a thorough test, yet) … need to verify many more documents, etc. Blogs are there … w/ entries … doing a backup NOW … I’ll be in touch … I’d like to talk …

            Like

          • Hi again higgsbugson … wanted to see if you had read my findings (above) … and if you are interested in my imbellishments of your fine procedure … also, what can I do to repay you for all the time your tutorial saved me … you may reply here … or kmj@mahlan.com … Thanks so much!

            Like

          • Hey Ken, glad you managed to get everything sorted out. ;)
            As for the “embellishments”, would be glad if you could mail me your comments to the different steps. I am going to qoute them in an edited version of the tutorial. The wordpress blogs do not support that many levels of threaded comments so I would propose sending me an email with your additions to ilja.schumacher@gmail.com.
            Improving the tutorial for all the people to come and try to upgrade after you’ve succeeded is “Thank you” enought. ;)

            Some Additional Points:
            1. There are some issues with the activity feed notifier if you upgraded your install. It mainly will try to send out emails to users about the recent site activities and cause some errors if the users subscribed to the feed but you did not configure emailing by now. To prevent this just add “activities.feed.notifier.enabled=false” to your alfresco-global.properties file

            2. There also might be issues with preview generation of some filetypes. Add the following to alfresco-global.properties (if not already there) to improve preview generation with jodconverter.
            “jodconverter.enabled=true
            jodconverter.officeHome=//yourpathtoalfresco/libreoffice
            jodconverter.portNumbers=8100”

            3. Strange thing is that by default the 4.2 will not send out site-invite-emails. To enable this you should also add “notification.email.siteinvite=true” to alfresco.global.properties.

            4, As you are much into photography some of your pictures may be way to big for the image-transformers to convert if you upload like 100 of them at once. Your server will be 100% busy for hours and the converters may die while trying to generate thumbnails and previews. ( not without hogging all your RAM before dying ;)
            Add http://pastebin.com/s7Pki7kv to your alfresco-global.properties and set reasonable size limits for thumbnail generation. (better no thumbnail than an unusable slow system)

            Maybe i should add this points to the tutorial as well. ;)

            Like

  4. Thanks for your reply … according to my understanding, the patches purpose in life is to change the 28 fields from lower to upper case … “patch” runs w/o any errors … but changes nothing … line by line will not change anything … I cannot change these table names any way I try … I am by no menas a MYSQL expert … MYSQL 5.5 by the way … my research into “why” the table names cannot be changed … led me to FOREIGN KEYS … evidently “other” tables, etc. are dependent upon these names … MYSQ will not allow them to be changed … does that make any sense? I have quite a bit of data I am trying to migrate to 4.2 … if your “scheme” works … it will save me loads of work … my plan “B” involves manually moving the data … not something I’m looking forward to … and I deeply appreciate your help … Thank You … “Keeping The Faith” …

    Like

  5. Hey – The tutorial is perfect and I got everything working by following it. I am a bit unclear over when to switch from Lucene to Solr. Is there anyway to check if Lucene indexes are rebuilt? And after they are, can you simply comment out Lucene in alfresco-global.properties and put in Solr.Thanks.

    Like

    • Hi DGolash, i am happy it worked for you too. ;)

      Of course you can check what solr is doing.

      First. Get the certificate called browser.p12 to your local computer from WEB_INF/classes/alfresco/keystore/
      Second. Import it into your browser. The password to this is “alfresco”
      Third. Go to http://yourserver:yourport/solr/admin/cores?action=SUMMARY&wt=xml

      There you can see what solr is doing and how far it got in the meantime.

      You are right with switching to solr completely. Just wait for it to index everything and change the indexsubsystem from lucene to solr in alfresco-global.properties and reboot.
      Try some test searches. If it finds everything you want its alright. If not switch back to lucene and give solr more time.

      Cheers, Ilja

      Like

Leave a comment