Invalid character conversion found converting to ASCL_MS1252

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
nageshmb
Participant
Posts: 3
Joined: Thu Mar 11, 2004 1:09 pm

Invalid character conversion found converting to ASCL_MS1252

Post by nageshmb »

Hello,

Need inputs in this often reported error message. I did see that there are other posts however nothing that would help me right now. Hence this additional post:

We have a parallel job that is loading into a DB2 stage. The input file has 13.2 million rows in it. When we try to load this file it aborts giving the warning message more than 50 times and aborts:
"main_program: Invalid character conversion found converting to ASCL_MS1252, substituting."

Options tried and results:

1) Running on dev and test environment: Aborts though each run would abort after loading different number of row counts - 1.75m rows and 2.25m rows
2) Reducing the transaction size from 1,000 to 1: Aborted after 2.5m rows
3) Changed the partitioning method from Auto to Ordered: Aborted after 600K+ rows
4) Split the big input file into chunks of 1m each: Aborted after loading 5.5m (it was looking hopeful as we completed the first 5 files, each run taking around 35-40 mins)
5) Writing to a CFF stage: Wrote all the 13.2m rows successfully in one go...but yes the objective is to get these records into a DB2 table.

The CPU is a 4-node CPU. The job flow is:

I/P file --> Transformer --> Seq No Gen --> Look up (looks up 2 flat files) --> Transformer --> (O/P 1:) DB2 stage; (O/P2-6:) Funnel stage --> Flat file (for error capturing)

Job Summary: 10 stages (incl 2 Transformers in parallel mode), 13 links
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

The job is aborting because you have hit the 50 warning limit. Your two options are to increase that limit or to get rid of the warning message. Since the message is quite clear and easily fixed I would opt to correct the cause instead of hiding the symptoms.

Do you know what the offending character is? If it is just one character that isn't in the MS1252 character set you can do something simple such as put a filter in your source sequential stage, along the lines of

Code: Select all

/usr/bin/tr '\000' '?'
- this will replace all occurrences of 0x000 with a question mark.
Post Reply