A query on default code pages, as I’m struggling to understand the transcode messages I’m getting in trace log.
UNIX: eng_us.iso-8859-1
DSConfig.txt: _.
Datastores are setup as default for language, code page and server code page.
My understanding was that the al_engine process for the dataflow would pick this up from OS level - as both the job server and datastore settings are default.
However, when I’m running the job it shows;
13775 1 DATAFLOW 10/07/2013 11:36:14 The specified locale <eng_us.iso-8859-1> has been coerced to <eng_us.cp1252> for data flow <DF_CodePageTest> because all
13775 1 DATAFLOW 10/07/2013 11:36:14 datastores obtain data in same locale <eng_us.cp1252>.
I understand that the difference between iso-8859-1 and cp1252 is minimal, however, I’m interested why it even goes to the trouble of doing this?
Where is it picking-up cp1252 from, as this isn’t set at OS level, DSConfig level or datastore level?
Database nls_characterset is WE8ISO8859P1 (if that’s the setting you’re meaning), so I don’t think its getting it from there. Any other ideas where its picking the CP1252 from?
Here’s a bit more detail too, as I’ve been running a few tests.
If I explicitly state a code page within the datastore then I get some strange results.
First - I set it to UTF-8, just to prove that it picks this up and transcodes;
22893 1 DATAFLOW 10/07/2013 17:19:46 The specified locale <eng_us.iso-8859-1> has been coerced to <Unicode (UTF-16)> for data flow <DF_CodePageTest> because the
22893 1 DATAFLOW 10/07/2013 17:19:46 datastore <LT_DEV_01> obtains data in codepage.
22893 1 JOB 10/07/2013 17:19:46 Initializing transcoder for datastore <LT_DEV_01> to transcode between engine codepage<Unicode (UTF-16)> and datastore codepage
Next, I set it to ISO-8859-15 to see if it picks this up;
23024 1 DATAFLOW 10/07/2013 17:20:47 The specified locale <eng_us.iso-8859-1> has been coerced to <eng_us.iso-8859-15> for data flow <DF_CodePageTest> because all
23024 1 DATAFLOW 10/07/2013 17:20:47 datastores obtain data in same locale <eng_us.iso-8859-15>.
This looks ok too, so then I set it to ISO-8859-1;
23388 1 DATAFLOW 10/07/2013 17:21:44 The specified locale <eng_us.iso-8859-1> has been coerced to <eng_us.cp1252> for data flow <DF_CodePageTest> because all
23388 1 DATAFLOW 10/07/2013 17:21:44 datastores obtain data in same locale <eng_us.cp1252>.
In this case, it transcodes to CP1252, but I’ve set it to ISO-8859-1- why does it do this when it’s set to ISO-8859-1 (but doesn’t do this when the datastore is set as UTF-8 or ISO-8859-15?
Please use UTF8/16 for last default setting in config file, the forceful conversion will not happen then. The reason is Data services uses UTF-16 in its environment( and there is no problem in conversion from/to between UTF16 and 8) but Job when triggered on server pics eng_us.cp1252… due to OS must be windows for your case. So once you set UTF16 in config file, error will be gone.