on 2013 Sep 16 10:50 AM
Hello,
we use SQL Anywhere 10.0.1.4103.
The consolidate server is running under windows and a most of the remote sites are running windows too. We have recently added a few linux remotes, but there we see a replication problem with some characters.
When a windows remote enter text in the database, sometimes the replication fails on the linux systems with this message:
I. 2013-09-03 09:03:00. INSERT INTO DBA.CardEntries(CardEntries,ClientCard,CreationDate,Amount, REMOTENAME,Salesperson,EntryProcessed,BatchID) VALUES ('O000CB','J001UW','12:26:15.446918 2013/08/30',169,'SiteTest1','Sil Sch.r',0,NULL) E. 2013-09-03 09:03:00. SQL-Anweisung fehlgeschlagen: (-131) Syntaxfehler bei 'Sil Sch.,0,NULL)' in Zeile 3 E. 2013-09-03 09:03:00. Wird übersprungen: E. 2013-09-03 09:03:00. INSERT INTO DBA.CardEntries(CardEntries,ClientCard,CreationDate,Amount, REMOTENAME,Salesperson,EntryProcessed,BatchID) VALUES ('O000CB','J001UW','12:26:15.446918 2013/08/30',169,'SiteTest1','Sil Sch.r',0,NULL)
The "offending" text is the entry for the sales person which should be "Sil Schär", but apparently it stumbles over the ä character.
All databases have the same encodings:
CHAR Collation: 1251LATIN1
CHAR Encoding: windows-1252
NCHAR Collation: UCA
NCHAR Encoding: UTF-8
The replication is done via Email. In the connection string of dbremote we specify nothing special, only uid,pwd,eng,dbn
I think that the linux dbremote is using a wrong character set when deconding the emails received and then trys to apply the sql operation in a wrong encoding.
Strange is, that messages with the ü character are correctly replicated, but the ä seems to cause problems....
Any ideas how to solve it ?
Request clarification before answering.
Here's a note to SQL Remote and charsets from the newest v12 EBF (3942).
In my understanding, it doesn't describe a bugfix but a "how to" - and possibly that might work for you, too:
================(Build #3850 - Engineering Case #730270)================
SQL Remote always assumes that all databases involved in replication share
the same character set. By default, SQL Remote will always apply source CHAR
data to a target database using the default character set for the operating
system it is running on, ignoring the source data character set.
When using a database character set that is different than the default character
set for the operating system, dbremote must be instructed to perform explicit
data conversion to that character set on its connection string:
e.g. dbremote -c “CHARSET=utf8;…”
or instruct dbremote to always use the CHAR character set
of the target database to apply the remote CHAR data:
e.g. dbremote -c “CHARSET=none;…”
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 13 | |
| 8 | |
| 6 | |
| 4 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.