Upgrade from Worldserver 10.4.2 to 11.3.1 - database issue...

Hello... were upgrading from Worldserver 10.4.2 to 11.3.1 on a test server in preparation for the production server.

When upgrading from 11.2.0 to 11.3.0 we get an "integrity constraint" database error (Oracle) which we cannot resolve. Any ideas??

$ sqlplus idiom @WS-Upgrade-11.2.0-to-11.3.0.ora.sql

 

SQL*Plus: Release 11.2.0.3.0 Production on Thu Aug 23 16:25:26 2018

 

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

 

Enter password:

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

-->Start Upgrading Database from WS11.2.x to WS11.3.0 ...

 

PL/SQL procedure successfully completed.

 

Elapsed: 00:00:00.03

 

Procedure created.

 

Elapsed: 00:00:00.02

 

Procedure created.

 

Elapsed: 00:00:00.03

 

Procedure created.

 

Elapsed: 00:00:00.08

 

Procedure created.

 

Elapsed: 00:00:00.05

---->Removed "Delimited Text File Type (Deprecated)" filter.

DECLARE tcount INTEGER;

*

ERROR at line 1:

ORA-02292: integrity constraint (IDIOM.FILTERGROUPENTRYFKFILTERCONFIG) violated - child record found

ORA-06512: at line 15

 

 

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

$

  • I am adding and to this thread to confirm, but I think this is related to having some filters defined for some deprecated Microsoft office filters.
  • Thanks Eric. In reviewing my update process I think I've made some update errors in my process, so I will restore and retry.
    I'll initially be updating from 10.4.2 to 10.4.3 to 10.4.4 and then 11.0.0. That (11.0.0) will be a major update and major checkpoint for success.
    Looking forward and just to be sure: there are five additional "mini-versions" between 11.0.0 and 11.3.1. Do we need to update to each one, or are there jumps that can be made (i.e. to 11.1.0, 11.2.0 and then to 11.3.1)? Thanks, Rich
  • One other thing... I noticed that for Unix downloads of version 11.0.0 there are two versions. I'm downloading the 'later' version (11.0.0.2877). I figure that since it is a later version it is improved. :) Anything I should consider about that?
  • In the sql update scripts folder, you should see scripts for both oracle ans MS SQL, the names of each will indicate how the versions progress. Usually for the DB scripts you do indeed need to go from version to version (running multiple scripts in succession) to get to the version you are installing. Additionally there is a set of scripts that allow you to test each DB upgrade. It simply asserts that the changes that should have been made we indeed changed. These scripts will need to be run on the server that WS is installed on. There is some pretty good documentation on this on SDL's documentation center. Let me know if you can't find it.
  • Yes, always go to the latest version. With that said. You do realise that SDL already has release all the way up to 11.3.2 correct. There are some significant DB performance improvements in versions 11.2 and up. Also, you'll want to pay close attention to how the configuration files need to be configured. There is a mighty shift in the way they should be configured from 10.x to 11.x. This is also documented on SDL's documentation center, but i am happy to help if you find it to be confusing (i know i initially did.)
  • Thanks Eric... I've been reviewing upgrade docs from the documentation center, so I should be OK.
  • Hi Richard, as mentioned, this relates to the usage of some Deprecated filters as noted here in the WS11.3 release notes: community.sdl.com/.../sdl-worldserver-11-3-is-released

    If you are using a non-default instance of these file types, or you have a reference to one of these in a File Type Group, then you will see this database constraint error message. To get beyond this, you need to delete these references in order to successfully execute the datbase upgrade script.

    Please let me know if you need anything more here.
    Thanks
    Ray
  • Thanks Ray... I've started again in the upgrade process and all is well so far. I'll inform you and ask questions as we progress... hopefully it will go cleanly this time. Thanks again to you & Eric!
  • We've updated now from 10.4.4 to 11.0.0. All seemed to go well with the Oracle DB schema update and the Worldserver merge... but the schema.sh test should 99% success... very close, but no cigar. Below is detailed schema output... looks like one error... any thoughts?

    [ws@cilv6s725 1100]$ sh -x testschema.sh
    + TOMCAT_HOME=/local/apps/idiom/worldserver/tomcat
    + WS_HOME=/local/apps/idiom/worldserver/tomcat/webapps/ws-legacy
    + java -Xmx512m -cp /local/apps/idiom/worldserver/tomcat/webapps/ws-legacy/WEB-INF/classes:/local/apps/idiom/worldserver/tomcat/webapps/ws-legacy/WEB-INF/lib/3dparty.jar:/local/apps/idiom/worldserver/tomcat/webapps/ws-legacy/WEB-INF/lib/commons-collections-3.2.1.jar:/local/apps/idiom/worldserver/tomcat/webapps/ws-legacy/WEB-INF/lib/commons-lang3-3.1.jar:/local/apps/idiom/worldserver/tomcat/webapps/ws-legacy/WEB-INF/lib/log4j.jar:/local/apps/idiom/worldserver/tomcat/webapps/ws-legacy/WEB-INF/lib/wssqlserverdd-5-1-3.jar:/local/apps/idiom/worldserver/tomcat/webapps/ws-legacy/WEB-INF/lib/wsoracledd-5-1-3.jar:/local/apps/idiom/worldserver/tomcat/webapps/ws-legacy/WEB-INF/lib/junit.jar com.idiominc.ws.test.upgrade.Schema1100Test
    .
    Initialized database jdbc:idiom:oracle://cilv6s725.net.plm.eds.com:1521;SID=idiom com.idiominc.jdbc.oracle.OracleDriver idiom
    ................Asserting database created table SEGMENTHASTMENTRIESCACHE
    column not found! Table: SEGMENTHASTMENTRIESCACHE Column: KEYID Nullable: N
    Asserting table added columns SEGMENTHASTMENTRIESCACHE [KEYID, N, VALUE, N, CREATIONDATE, N, LASTMODIFIEDDATE, N]
    Asserting table added primary key SEGMENTHASTMENTRIESCACHE KEYPK
    Asserting table added primary columns SEGMENTHASTMENTRIESCACHE [KEYID]
    ..............Asserting table changed column type SEGMENTHASTMENTRIESCACHE KEYID VARCHAR2(3072) null
    Asserting table changed column type SEGMENTHASTMENTRIESCACHE VALUE VARCHAR2(4000) null
    Asserting table changed column type SEGMENTHASTMENTRIESCACHE CREATIONDATE TIMESTAMP(6)(11) null
    Asserting table changed column type SEGMENTHASTMENTRIESCACHE LASTMODIFIEDDATE TIMESTAMP(6)(11) null
    ..............Asserting index created on table KEYPK SEGMENTHASTMENTRIESCACHE [KEYID]
    ......
    --- UPGRADE TEST RUN SUMMARY ---

    Ran 2909 tests on database
    There were 2900 (99%) successful tests
    There were 0 errors
    There were 9 failures

    Failure 1

    Asserting database created table SEGMENTHASTMENTRIESCACHE

    Failure 2

    Asserting table added columns SEGMENTHASTMENTRIESCACHE [KEYID, N, VALUE, N, CREATIONDATE, N, LASTMODIFIEDDATE, N]

    Failure 3

    Asserting table added primary key SEGMENTHASTMENTRIESCACHE KEYPK

    Failure 4

    Asserting table added primary columns SEGMENTHASTMENTRIESCACHE [KEYID]

    Failure 5

    Asserting table changed column type SEGMENTHASTMENTRIESCACHE KEYID VARCHAR2(3072) null

    Failure 6

    Asserting table changed column type SEGMENTHASTMENTRIESCACHE VALUE VARCHAR2(4000) null

    Failure 7

    Asserting table changed column type SEGMENTHASTMENTRIESCACHE CREATIONDATE TIMESTAMP(6)(11) null

    Failure 8

    Asserting table changed column type SEGMENTHASTMENTRIESCACHE LASTMODIFIEDDATE TIMESTAMP(6)(11) null

    Failure 9

    Asserting index created on table KEYPK SEGMENTHASTMENTRIESCACHE [KEYID]

    --- UPGRADE TEST RUN SUMMARY ---

    E
    Time: 7.772
    There was 1 error:
    1) test(com.idiominc.ws.test.upgrade.Schema1100Test)java.lang.NoClassDefFoundError: org/jsoup/nodes/Document$OutputSettings
    at com.idiominc.ws.servlet.xss.WsXssScanner.stripXSS(WsXssScanner.java:24)
    at com.idiominc.ws.attribute.AttributeUtils.<clinit>(AttributeUtils.java:40)
    at com.idiominc.ws.test.upgrade.UpgradeTestCase.getSQLColumnDefinition(UpgradeTestCase.java:2071)
    at com.idiominc.ws.test.upgrade.UpgradeTestCase.getCustomAttributeDefinitions(UpgradeTestCase.java:2013)
    at com.idiominc.ws.test.upgrade.UpgradeTestCase.getCustomTdEntryAttributeDefinitions(UpgradeTestCase.java:2051)
    at com.idiominc.ws.test.upgrade.Schema1100Test.assertTdCustomAttributeColumnTypes(Schema1100Test.java:12566)
    at com.idiominc.ws.test.upgrade.Schema1100Test.test(Schema1100Test.java:752)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at com.idiominc.ws.test.upgrade.Schema1100Test.main(Schema1100Test.java:48)
    Caused by: java.lang.ClassNotFoundException: org.jsoup.nodes.Document$OutputSettings
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 23 more

    FAILURES!!!
    Tests run: 1, Failures: 0, Errors: 1
  • It is very apparent that the issue is only related to one table. What would need to be done is to find the DB script that correctly creates that table. I am not sure however how you'd find that other than looking in the db scripts themselves and find someplace when an insert or update for that table is and re-running that part. If that's not something you can find or looks to be more complex than just creating that same table. I think you'd have to have SDL officially help you.