× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Mike,

The only answer to that question is "it all depends". 

Many systems are set such that the *USRPRF CCSID defaults to *SYSVAL so 
user jobs default to running in the CCSID specified for the system value 
QCCSID.  A job CCSID of 65535 indicates that the system is to do no data 
conversions, a job CCSID of 37 indicates that the system should 
automatically perform data conversions in operations such as database 
reads and writes. 

Now lets assume that your system QCCSID is currently 65535 and your system 
QLANGID is FRA for French.  This would mean that by default files 
previously created on your system were CCSID tagged 297 (a French CCSID). 
Now lets assume that you have in the past written data to these files and 
some of the data has an @ sign (x'44') in it.  Everything is working fine 
as you have French display devices which display x'44' as @, etc. and the 
system makes no attempt to convert the @ sign as the job CCSID is 65535.

Now you change QCCSID to 37, user jobs default to this new CCSID of 37, 
but you leave everything else the same. 

When your application program opens a file database will detect that your 
job is 37, that your file is 297, and automatically convert the x'44' 
stored in your file to x'7C' when it provides the data to your application 
on a Read.  This is because in CCSID 37 the @ is x'7C'.  Now your 
application program writes the data to a French display, the display 
receives a x'7C' and since in 297 (the CCSID/CHRID of the French display) 
x'7C' is à that is what gets displayed.  Most users would not care for 
this... This type of problem can be handled by changing other system and 
job values/attributes, but my assumption here is that you ONLY changed 
QCCSID to 37.

Now assume the application program scans the data returned on the Read for 
the @ sign.  The application was written using CCSID 297 tagged source 
files and so is looking for the x'44' (under the covers) when you scan for 
the literal '@'.  Guess what?  It's not found as the @ is now x'7C' in 
your application variable and so the program does whatever processing it 
would do in the absence of the @ rather than the logic associated with 
finding the @.

These are just two of the possible problems one can encounter when 
changing the QCCSID value and the '@' is only one of many characters that 
might be impacted.  If all of your files are CCSID tagged 37 then you will 
PROBABLY be OK.  If your current QLANGID is ENU then the default for files 
created in the past would be 37 and you will PROBABLY be OK.  If you have 
any purchased applications then their databases are most likely tagged 
with whatever CCSID was used on your suppliers system -- which may or may 
not be 37.

What you really need to do is determine what objects on your system are 
currently tagged with a CCSID that is not 37 and not 65535, and then 
determine what will happen if data conversions to 37 start happening 
automatically on your system.  This normally requires an indepth knowledge 
of the application (especially when the application might be doing 
comparisions to characters such as #,@,$,etc).

And for sure I would go back to the supplier of your software and ask why 
they require a CCSID of 37.  This typically indicates that the application 
has hard coded literals in CCSID 37 and didn't want to go through the 
(trivial) effort of either 1) converting their literals from 37 to the 
current job CCSID or 2) under the covers changing the job CCSID to 37 for 
their language dependent processing and then returning the job CCSID to 
the initial value when exiting their languge dependent processing.  They 
probably are not aware of the impact their recommendations might have on 
systems outside of the United States.

As I indicated earlier, the answer is "it all depends" and as you can see 
one should not change QCCSID without really understanding their system. 
The sytem may appear to run fine for a hour, day, week, or month and then 
you find that year end has this one little file over on the side that used 
@....

Your approach of only changing the CCSID related to the job running this 
software is much safer than changing QCCSID, and using a CHGJOB CCSID(37) 
prior to calling the application and a CHGJOB(65535) after the application 
ends even safer.

Bruce Vining




Mike Wills <koldark@xxxxxxxxx> 
Sent by: midrange-l-bounces@xxxxxxxxxxxx
02/16/2006 10:31 AM
Please respond to
Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>


To
Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
cc

Subject
CCSID Question






One of the instructions in this setup manual I have is to change th CCSID 
of
the system. Currently it is set at 65535 and they want me to change it to
37. I really don't understand much about the CCSID. What impact would that
have on a system in general? The option (which I am doing so far) is to
change the default CCSID for a user.

--
Mike Wills
koldark@xxxxxxxxx
http://mikewills.name
http://theriverbendpodcast.com

"There are 10 types of people in the world: those who understand binary, 
and
those who don't." -Unknown

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.