Default code page query

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?


dcstevenson (BOB member since 2006-09-06)

Doesn’t it pick up the code page from the database?


eganjp :us: (BOB member since 2007-09-12)

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?

Cheers


dcstevenson (BOB member since 2006-09-06)

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.


Parijatam (BOB member since 2016-09-08)