Skip to Content
0

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

Apr 03, 2017 at 03:43 AM

622

avatar image

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

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

3 Answers

Zulfadzly Iqbal Mohmad Zulkafli Apr 04, 2017 at 09:15 AM
1

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>

Share
10 |10000 characters needed characters left characters exceeded
Julian Henderson Apr 04, 2017 at 02:16 AM
0

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

Show 1 Share
10 |10000 characters needed characters left 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
0
Julian Henderson Apr 04, 2017 at 11:29 PM
0

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
Share
10 |10000 characters needed characters left characters exceeded