Fault occurred in BASIC program DSD.BCIPut at address 64a."
to get that information. If you replace your database output with a sequential file output and the error goes away then you have ruled out the XML input.
The easiest method is to capture those rejected records with their warning messages from the job itself and write them to a sequential file. This can then be used for error tracking. It is much easier to implement and maintain than a separate job that extracts warning messages from log files and the...
If you are at 7.5 then the error is at the SQL execution of a internal "SQLParamOptions" call. So it seems to be a problem with the write to your output database.
.. so plz gimme suggestions. Do you mean to say "please give me suggestions"? Or did I misunderstand? First off, are you trying to analyze or act on these warnings from another job or within the job itself? DSGetLogSummary() can be called from a routine or the same functionality can be called from ...
The DSLogFatal is not called as a function but as a routine, which is why you are getting the error. I would recommend putting a transform output link into your job that is set to fail the job if any rows go down that link; this is simple to do and easy for people looking at the job to understand.
Are you deleting & re-creating your file at each run? If you are, perhaps you had a corrupted file on the previous error run. If your key value is 100% free of control characters then a broken file is the most likely explanation for a failed write. Also, are you buffering your writes to the hash...
You might get better answers if you explain in more detail. When writing to certain database stages you can capture the SQL error information in a transform stage before that link and redirect this to other output links. Is this what you wish to do?
It is much easier to log the job runtime informater after the job has finished, then you can use the documented calls such as DSGetJobInfo() to return this information.
The convert and ereplace functions won't work in this , since you are dealing with multiple strings of different lengths. You can't use CONVERT since that replaces characters 1-for-1. You can sequential conversions in stage variables, i.e. Var1 = EREPLACE(In.Column,'<','<') then Var2 = EREPLAC...
Kumar, I opened up the stage in designer and tried to change it, plus looked at the documentation and didn't find anything regarding a "round robin" allocation for DB/2 and find that it doesn't really make logical sense, but then again, very little makes sense to me (I always walk around work confus...