Topic
4 replies Latest Post - ‏2012-06-11T05:23:06Z by sbjerry
duanng2008
duanng2008
1 Post
ACCEPTED ANSWER

Pinned topic a code page (nls)problem: Failed to connect to DataStage server?!!

‏2008-07-29T17:59:53Z |
Hi all,
When I want to connect a windows client with Chinese Lang(code page 936) to a Datastage server installed on Linux (English),I encounted the following errors:

"Failed to connect to DataStage server: BI, project: UV
Invalid UniVerse mark characters have been sent from the server. Code page 936 may not support these characters, or you may need to install DataStage NLS."

Because I installed the datastage on a linux suse server using english,and my client is on windows with chinese.I tried to update the Client NLS setting to MS936-CS (it was MS1252-CS earlier). And restarted the datastage server. But I still get the same error.

Has anyone successfully connected from a chinese client to an English server? your response is appreciated!
Updated on 2012-06-11T05:23:06Z at 2012-06-11T05:23:06Z by sbjerry
  • Ray.Wurlod
    Ray.Wurlod
    78 Posts
    ACCEPTED ANSWER

    Re: a code page (nls)problem: Failed to connect to DataStage server?!!

    ‏2008-08-09T00:58:36Z  in response to duanng2008
    MS936-CS should be the correct code page for connecting to a Chinese Windows client using code page 936 (the "CS" stands for "client server"). The CS maps should include handling of marks. You can experiment with the "+MARKS" character maps to see if you can find a working compromise.
  • LenGreenwood
    LenGreenwood
    19 Posts
    ACCEPTED ANSWER

    Re: a code page (nls)problem: Failed to connect to DataStage server?!!

    ‏2008-08-11T09:14:49Z  in response to duanng2008
    Here's what I think might be causing your problem. Text below is written for Japanese, so in you case for "932" read "936" instead.


    Let's assume you have Designer installed on a Japanese Windows system, or one where you have gone into Control Panel/Regional and Language options/Advanced and selected "Japanese" from the drop-down list of "language to match the language version of the non-Unicode programs you want to use" (parts of Designer are non-Unicode). Let's also assume you have DS Server installed on a non-Japanese Unix or Windows system.

    The server has a table that links Windows codepages, such as 932 for Japanese clients, to an NLS "client/server map" held in DSEngine. The problem pre-8.1 is that: (a) not all known maps are automatically registered in that table; (b) there is a known bug (ecase 126505)that means the default map which gets assigned is unusable :(. Only a server installed on a Japanese system will have the map for 932 registered; if you connect from a 932 client to such a system what you may see is a message along the lines of "Invalid Universe mark characters have been sent from the server" every time you try and login. That's because the invalid default map is, unfortunately, being picked up.

    This particular problem has been fixed in recent 8.1 builds. It still does not help the fact that the server does not have a mapping for the 932 code page if it is a non-Japanese install - so attempts to transfer Japanese characters between client and server result in lots of "?"s being shown instead. Note that the same problems occur for Chinese (936, 950) and Korean (949) clients, and possibly also for non-Latin1 clients such as Polish (1250), Russian (1251), Greek (1252), Turkish (1254), Hebrew (1255), or Arabic (1256).

    The goal for 8.1 is to change DS install so that all code page maps are built and registered on all servers. (See ecase 128305). Until that is available though, and on all DS 7.5.x and IS 8.0.1 systems, you can manually register the required maps, as follows. Note that where the examples have 932 below, you can substitute another code page number.
    In a Unix command session :

    cd $DSHOME
    bin/dssh
    ...or in a Windows command session:
    cd C:\IBM\InformationServer\Server\DSEngine
    bin\dssh
    The appropriate commands will take you into the DSEngine command environment, where the prompt is ">". From then onwards the instructions are independent of O/S type. At the ">" prompt, enter:

    COPY FROM NLS.CLIENT.MAPS WIN:1252,WIN:932
    Should get a message "1 record copied" Then type:
    ED NLS.CLIENT.MAPS WIN:932
    2
    R/1252/932/
    FILE
    Should get a message "WIN:932" filed in file "NLS.CLIENT.MAPS" This has created a record called WIN:932 that links code page 932 to the map named MS932-CS, which is probably not built on your server.

    So, then type:

    NLS.BUILD MAP MS932-CS NO.PAGE
    Should eventually see a message about "Binary file is: NLS.MAP.INSTALL/MS932-CS" Then type:
    Q
    to get out of DSEngine shell and back to the O/S command shell.

    You have to stop & restart DSEngine to get this new map loaded. But once that is done, a Japanese client should be able to attach to the server.
    • Ray.Wurlod
      Ray.Wurlod
      78 Posts
      ACCEPTED ANSWER

      Re: a code page (nls)problem: Failed to connect to DataStage server?!!

      ‏2008-08-15T08:06:50Z  in response to LenGreenwood
      The same technique outlined by Len will work for 936 (Chinese) as well. Just substitute in his example.

      On UNIX, it is wise (necessary!) to source the dsenv script before invoking the dssh command.
      • sbjerry
        sbjerry
        1 Post
        ACCEPTED ANSWER

        Re: a code page (nls)problem: Failed to connect to DataStage server?!!

        ‏2012-06-11T05:23:06Z  in response to Ray.Wurlod
        My environment:

        Win7 with locale Chinese; datastage 8.5

        I installed both server and client on the same PC, select "Simple Chinese" as the server language.During the installation process, the checkbox of "install Global Support" is checked and grey(cannot be modified).

        After installed, I checked installation log, there's
        "Configuring client/server map file...
        Client encoding WIN:936 => Map MS936-CS
        MS936-CS required and not currently installed
        Building MS936-CS...
        ERROR: Error setting client/server map MS936-CS for code page WIN:936
        Failed to set new server map MS936-CS
        Error (-1) calling *NLS.LISTMAPS - NLS shared memory probably not available
        Client encoding UNX:DEFAULT => Map GB2312-CS
        GB2312-CS required and not currently installed
        Building GB2312-CS...
        ERROR: Error setting client/server map GB2312-CS for code page UNX:DEFAULT
        Failed to set new server map GB2312-CS"

        when using client to connect to server failed, telling :
        Invalid UniVerse mark characters have been sent from the server. Code page 936 may not support these characters, or you may need to install DataStage NLS.

        when trying to set NLS in "Administrator Client", there's notification:
        "Cannot find routine *NLS.LISTMAPS - NLS not installed?"

        If I changed the locale of OS to English, and restart, then can use the client to connect to the server.

        Can anyone help to solve this problem? I wonder why install an Chinese sever with Chinese locale will bring this problem. Thanks!