!!!Database does not support unicode!!!

we get this error when connecting rhythmyx 5.7 to a repository that has been migrated to ms sql server 2005 using the MS SSMA

3/27/08 2:18 PM: Starting initialization Server
3/27/08 2:18 PM: Version 5.71 Build 200612P01 (3190) [RX-12758] Server
3/27/08 2:18 PM: Loading configuration Server
3/27/08 2:18 PM: Initializing macros Server
3/27/08 2:18 PM: Initializing database pool PSServer
3/27/08 2:18 PM: Check database compatibility with unicode PSServer

3/27/08 2:18 PM: !!!Database does not support unicode!!!

PS a clean install directly on to MS SQL Server does not generate this error !

If you are on a Dev system, you could try turning on database logging to find out the exact database error that you are getting. You do this by editing the log4j.xml file:
/rxroot/AppServer/server/rx/conf/log4j.xml

Search for the “Uncomment to log all SQL statements from Rhythmyx” entry and uncomment it.

If there is an SQL2005 error, you could try the support.microsoft.com site for info relating to that error. I am not familiar with the SSMA tool and I dont know how it handles unicode when it does the migration, but there is an entry in support.microsoft.com specific to unicode at: http://support.microsoft.com/kb/239530
and it applies to MS SQL Server 2005 (and earlier) releases.

The Guide to Migrating from Oracle to SQL Server 2005 might also be helpful. It’s at:
http://download.microsoft.com/download/e/c/8/ec8d5025-7ef7-4dcc-a9f3-9c297cf5350e/SSMAOracle.docx

Rhonda

one more thing, there are Guides to migrating to SQL2005 from other databases on the Microsoft site in case you are not migrating from Oracle.

R

thanks for the idea but i can’t find the log4j.xml file on our system

$ find . -name log4j
./AppServer/webapps/rxwebdav/WEB-INF/classes/com/percussion/hooks/servlet/log4j.properties
./AppServer/webapps/rxwebdav/WEB-INF/lib/log4j-1.2.7.jar
./AppServer/webapps/RxServices/WEB-INF/classes/log4j.properties
./AppServer/webapps/RxServices/WEB-INF/lib/log4j.jar
./AppServer/webapps/Rhythmyx/WEB-INF/lib/log4j-1.2.7.jar
./DTD/log4j.dtd
./rxfix_unix/lib/log4j.jar
./Administration/log4j.jar
./lib/log4j.jar

Clive,

in 5.7, the logger configuration is set in /Rhythmyx/rxconfig/Server/rxlogger.properties.

Despite it’s name, it’s a regular “log4j.properties” file.

in 6.x, there’s a log4j.xml in AppServer/server/rx/conf. Sorry for the confusion.

Dave

i’m afraid neither or our log4j.properties has such a line

$ find . -name log4jprop
./AppServer/webapps/rxwebdav/WEB-INF/classes/com/percussion/hooks/servlet/log4j.properties
./AppServer/webapps/RxServices/WEB-INF/classes/log4j.properties

Clive,

in 5.7, the logger configuration is set in /Rhythmyx/rxconfig/Server/rxlogger.properties.

Despite it’s name, it’s a regular “log4j.properties” file.

in 6.x, there’s a log4j.xml in AppServer/server/rx/conf. Sorry for the confusion.

Dave

finally found rxlogger.properties !

someone must have deleted the SQL debug lines !

logs all SQL statements

#log4j.logger.com.percussion.util.PSSQLStatement=DEBUG

i’ll now un-comment it and see what happens

Server 3/31/08 2:53 PM: Starting initialization
Server 3/31/08 2:53 PM: Version 5.71 Build 200612P01 (3190) [RX-12758]
Server 3/31/08 2:53 PM: Loading configuration
Server 3/31/08 2:53 PM: Initializing macros
Server 3/31/08 2:53 PM: Initializing database pool
PSServer 3/31/08 2:53 PM: Check database compatibility with unicode
PSSQLStatement 3/31/08 2:54 PM: SQL[1]:
: delete from RXDUAL
PSSQLStatement 3/31/08 2:54 PM: SQL[1]: <Stopwatch stopped elapsed 186 ms>
PSSQLStatement 3/31/08 2:54 PM: SQL[2]:
: insert into RXDUAL (GB) values(?)
PSSQLStatement 3/31/08 2:54 PM: Binding value [1]: !"#$%&’()*+,-./
PSSQLStatement 3/31/08 2:54 PM: SQL[2]: <Stopwatch stopped elapsed 125 ms>
PSSQLStatement 3/31/08 2:54 PM: SQL[3]:
: select * from RXDUAL
PSSQLStatement 3/31/08 2:54 PM: SQL[3]: <Stopwatch stopped elapsed 47 ms>
PSSQLStatement 3/31/08 2:54 PM: SQL[4]:
: delete from RXDUAL
PSSQLStatement 3/31/08 2:54 PM: SQL[4]: <Stopwatch stopped elapsed 47 ms>

PSSQLStatement 3/31/08 2:54 PM: SQL[18]:
: select * from RXDUAL
PSSQLStatement 3/31/08 2:54 PM: SQL[18]: <Stopwatch stopped elapsed 3 ms>
PSSQLStatement 3/31/08 2:54 PM: SQL[19]:
: delete from RXDUAL
PSSQLStatement 3/31/08 2:54 PM: SQL[19]: <Stopwatch stopped elapsed 4 ms>
PSSQLStatement 3/31/08 2:54 PM: SQL[20]:
: insert into RXDUAL (GB) values(?)
PSSQLStatement 3/31/08 2:54 PM: Binding value [1]: {|}~^?<80><81><82><83><84><85><86><87><88><89>
PSSQLStatement 3/31/08 2:54 PM: SQL[20]: <Stopwatch stopped elapsed 20 ms>
PSSQLStatement 3/31/08 2:54 PM: SQL[21]:
: select * from RXDUAL
PSSQLStatement 3/31/08 2:54 PM: SQL[21]: <Stopwatch stopped elapsed 3 ms>
PSSQLStatement 3/31/08 2:54 PM: SQL[22]:
: delete from RXDUAL
PSSQLStatement 3/31/08 2:54 PM: SQL[22]: <Stopwatch stopped elapsed 3 ms>
PSServer 3/31/08 2:54 PM: !!!Database does not support unicode!!!

The message seen on server startup is a warning message which is displayed if the Rhythmyx repository does not support unicode characters. It is recommended that the Rhythmyx repository database uses a character set which supports unicode characters. The following excerpt is from the “Repository Database Requirements” section of the “Installing_Rhythmyx_5_7.pdf:”

[I]Note that Rhythmyx does not perform any escaping or character conversion when inserting characters into the database. Therefore, the character encoding of the underlying database character set should match the encoding of the characters you want to store in the Repository. If the encoding of the database does not match the encoding used in Rhythmyx, some functionality may be lost. For example, if you use Microsoft Word as a Content Editor and Oracle as your database, Word SmartQuotes might not work if your database uses a character set other than UTF-8.

Percussion Software makes the following recommendations:

 • Use UTF-8 if the majority of the characters you use match the ASCII
   character set. This is the recommended option for Western languages.

 • Use UTF-16 if the majority of the characters you use fall outside of the
   ASCII character set. This is the recommended option for most Asian 
   languages.[/I]

In the case of MS SQL SERVER 2005, this refers to the collation of your database.

i’ve been looking at the collation of both my “clean” ms sql 2005 and my migrated MS SSMA database and they both say “Latin1_General_CI_AS”

PS Thanks for everyones help but it looks like we’ll now have to get PSA to sort out our migration problems for us

FYI we’re now going to try a different approach (instead of using MS SSMA)

  1. install/create a clean rhythmyx repository on ms sql server 2005
  2. use a php script to copy data from old db on top of clean rhythmyx repository

and hopefully rhythmyx wont say there are any unicode problems