Skip to Content

Locale name "POSIX" doesn't exist when login to isql

Hi Gurus,

Please help. I am using SUSE Linux and encounter below error when login to isql

login as: sybadm
Using keyboard-interactive authentication.
Password: SAPHANADEMO:sybadm 2> isql -Usapsa -SSYB -X

The context allocation routine failed when it tried to load localization files!! One or more following problems may caused the failure

Your sybase home directory is /sybase/SYB. Check the environment variable SYBASE if it is not the one you want! Using locale name "POSIX" defined in environment variable LANG Locale name "POSIX" doesn't exist in your /sybase/SYB/locales/locales.dat file An error occurred when attempting to allocate localization-related structures. SAPHANADEMO:sybadm 3>

Regards,
Fadzly Iqbal

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

3 Answers

  • Apr 04, 2017 at 09:15 AM

    Thanks.

    But, this is what I done.I just set environment variable LANG=us_english.utf8 as per [posix] in locales.dat

    sybadm@SAPHANADEMO:/sybase/SYB/locales> vi locales.dat

    [posix]

    ; refer to "man setlocale()"

    locale = fr_FR, french, iso_1

    locale = de_DE, german, iso_1

    locale = es_ES, spanish, iso_1

    locale = ja_JP, japanese, eucjis

    locale = zh_CN, chinese, eucgb

    locale = zh_TW, us_english, euccns

    locale = ko_KR, korean, eucksc

    locale = us_english.utf8, us_english, utf8

    locale = default, us_english, iso_1

    sybadm@SAPHANADEMO:~> export LANG=us_english.utf8

    sybadm@SAPHANADEMO:~> echo $LANG

    us_english.utf8

    sybadm@SAPHANADEMO:/sybase/SYB/locales> isql -Usapsa -SSYB -X

    Password:

    1>

    Add comment
    10|10000 characters needed characters exceeded

  • Apr 04, 2017 at 02:16 AM

    I was having this same issue recently - it wasn't stopping Sybase from starting, but it was stopping Commvault connecting to our SYB_BACKUP server.

    The fix was to add the [POSIX] entry to the locales.dat file. To do that, copy the entry for [posix], including all the "locale = " entries below the heading, change "posix" to uppercase, save and start Sybase. The extra entry doesn't hurt anything, as far as I can see. It's just a pointer to the languages/locales.

    More info here: http://www.peppler.org/FAQ/linux.html#q1.14

    Add comment
    10|10000 characters needed characters exceeded

    • Actually, looking at your question again, it seems that you don't have the right locale set for your sybadm user. Fix that first in your environment. Something like this in a .cshrc file, or in Putty or whatever you are using to connect - obviously, change the LC and LANG to whatever language you are using:

      umask 027 
      setenv LC_ALL en_US.UTF-8
      setenv LANG en_US.UTF-8
      setenv LANG en_US.UTF-8 source sybase/<SID>/SYBASE.csh
  • Apr 04, 2017 at 11:29 PM

    The problem is it's running on Linux, which is case sensetive, so "POSIX" and "posix" are completely different things. What you need to do is copy the [posix] entry plus the locales, paste it then change [posix] to [POSIX] - that way you retain the lowercase posix and add the uppercase POSIX. You'll end up with the entry as above, and an additional entry that looks like this:

    [POSIX]
    ; refer to "man setlocale()"
    locale = fr_FR, french, iso_1
    locale = de_DE, german, iso_1
    locale = es_ES, spanish, iso_1
    locale = ja_JP, japanese, eucjis
    locale = zh_CN, chinese, eucgb
    locale = zh_TW, us_english, euccns
    locale = ko_KR, korean, eucksc
    locale = us_english.utf8, us_english, utf8
    locale = default, us_english, iso_1
    Add comment
    10|10000 characters needed characters exceeded