powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / cs_ctx_alloc() failed
18 сообщений из 18, страница 1 из 1
cs_ctx_alloc() failed
    #35942133
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASA 8.0.2.4424
Кто-нибудь общается с базой посредством OpenClient? (советы перевести на odbc прошу не предлагать).
При запуске приложения возникает ошибка:
error initialization of CT-library:cs_ctx_alloc() failed.
Приложение на этой машине работает давно, но вот внезапно стало выпадать в данную ошибку. В sybinit.err говорится следующее:
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 D:\osago\Sybase. Check the environment variable SYBASE if it is not the one you want!
Using locale name "1049" defined in environment variable LANG
Locale name "1049" doesn't exist in your D:\osago\Sybase\locales\locales.dat file

на счет локали 1049 не очень поняла. Да в датнике нет ничего о 1049. Однако на машине, где приложение работает, также нет никаких упоминаний о 1049. Более того, файлы сервера sybase полностью обновила с работающей машины.
Погуглив, выяснила, что основной причиной данной ошибки является "расконфигурирование" системных переменных (если я правильно перевела - misconfigured system environment). т.е. система не находит файлы конфигурации. Однако, системные переменные проверяла, все нормально. Еще возможные причины: недостаток памяти, отсутствие файлов конфигурации - исключены. Еще одна причина: The value of the LANG environment variable does not match an entry in the locales file. Не очень поняла, что за переменная окружения LANG, у меня такой нет ни на "больной", ни на "здоровой" машине. Может кто подскажет, куда еще копать
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35942255
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lily V. wrote:
> При запуске приложения возникает ошибка:
> error initialization of CT-library:cs_ctx_alloc() failed.
> Приложение на этой машине работает давно, но вот внезапно стало выпадать
> в данную ошибку. В sybinit.err говорится следующее:
> 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 D:\osago\Sybase. Check the environment
> variable SYBASE if it is not the one you want!
> Using locale name "1049" defined in environment variable LANG
> Locale name "1049" doesn't exist in your
> D:\osago\Sybase\locales\locales.dat file


>
> на счет локали 1049 не очень поняла. Да в датнике нет ничего о 1049.
> Однако на машине, где приложение работает, также нет никаких упоминаний
> о 1049. Более того, файлы сервера sybase полностью обновила с работающей
> машины.

У тебя переменная LANG содержит 1049. Это не валидное имя локейла
Sybase. Все валидные перечислены в файле

$(SYBASE)\locales\locales.dat

в секции, соответствующей твоей операционной системе,
в первом поле после ключ. слова locale :

locale = GER_DE, german, decmcs

Здесь GER_DE - имя локали.

> Погуглив, выяснила, что основной причиной данной ошибки является
> "расконфигурирование" системных переменных (если я правильно перевела -
> misconfigured system environment). т.е. система не находит файлы
Правильно.

> does not match an entry in the locales file. Не очень поняла, что за
> переменная окружения LANG, у меня такой нет ни на "больной", ни на
> "здоровой" машине. Может кто подскажет, куда еще копать

Если это не винда, выполни в коммандной строке комманду

echo $LANG

Если это винда, выполни ocscfg.exe

Внутри в закладке ENVIRONMENT смотри значения своих переменных.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35942823
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lily V.ASA 8.0.2.4424
Кто-нибудь общается с базой посредством OpenClient? (советы перевести на odbc прошу не предлагать). Лучше перевести на ESQL/C и dblib8. OpenClient - далеко не правильный клиент для ASA/SA. Даже ODBC будет лучше и надежнее чем OC.

Lily V.При запуске приложения возникает ошибка:
error initialization of CT-library:cs_ctx_alloc() failed.
Приложение на этой машине работает давно, но вот внезапно стало выпадать в данную ошибку. В sybinit.err говорится следующее:
The context allocation routine failed when it tried to load localization files!!
One or more following problems may caused the failureНа здровой и больной машинах разные ОС и/или одна из них руссифицированная другая нет. В любом случае, на больной машине кто-то доигрался с переводом машины на русский язык.
1049 это собственный Виндовый LCID (Language Code ID) русского. По идее, этот LCID должен быть отдан в функцию LcidToRfc1766, которая должна вернуть "rus". Но по какой-то (неизвестной мне) причине OpenClient (кстати, какой версии?) этого не делает. Возможно, что на больной машине попытались обновить Internet Explorer и оно встало не до конца сломав mlang.dll (которая и отвечает за конвертацию кода локали в ее текстовое имя).


Самый простой и неприличный способ лечения этого бага - пойти в %SYBASE%\locales\locales.dat файл. В секцию [NT] и добавить туда строку:
Код: plaintext
	locale = 1049, us_english, iso_1
Если в твоем OpenClient установлен пакет русской локализации, то строка может быть такой:
Код: plaintext
	locale = 1049, russian, cp1251

Но вообще-то, я вам очень-очень-очень рекомендую перейти на dblib ESQL/C. OpenClient намного более громоздкий и не приспособленный к реалиям ASA. OC все же разрабатывался для работы с ASE, там совсем другие принципы работы с базами. Да и для распространения dblib намного легче и проще, там всего-то полдюжины dll без каких-либо внешних файлов данных и оно не требует переменных окружения.
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35942945
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl wrote:

> другие принципы работы с базами. Да и для распространения dblib намного
> легче и проще, там всего-то полдюжины dll без каких-либо внешних файлов
> данных и оно не требует переменных окружения.

А DBLib что, не для ASE разрабатывался ?

Вообще говоря, Open Client - универсальный интерфейс, чем он и хорош.
Он используется во всех энтерпрайзных сервисах сайбейза, и в ASE,
и в бэкапе, мониторе, и так далее, и в репликейшн сервере, и даже
в покойном ныне Ягуаре был.

Не знаю, чем он так тебе не угодил, и какие там другие
принципы. Хотя наверное это неважно, поскольку вопрос о смене,
как заявил автор, не стоит.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35943039
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivА DBLib что, не для ASE разрабатывался ?Ты путаешь два разных dblib. Тот который часть OpenClient это действительно древний интерфейс для ASE. А в ASA/SA используется совершенно другой dblib. Исходник для одной библиотеки не соберется с другой библиотекой.

MasterZivНе знаю, чем он так тебе не угодил, и какие там другие
принципы. Хотя наверное это неважно, поскольку вопрос о смене,
как заявил автор, не стоит.Мне он не нравится в первую очередь тем, что зависит от переменных окружения, а значит поставить на одну машину две программы собранные под разный Open Client - сопряжено с большими проблемами.
Второе фе - диагностика ошибок сделана через колбеки. В OC я уже не могу просто вызвать какой-нибудь аналог GetLastError() если функция вернула ошибку. Мне теперь приходится самому создавать и вести стэк ошибок...
Третье фе - гигантский объем всей этой фигни. Нафига спрашивается OpenClient таскает за собой восемнадцать мегабайт никак не упакованной локализации? Плюс куча утилит которые пользователю совсем не нужны. Общий объем который я сейчас вынужден отдавать юзерам аж тридацать-три мегабайта на OC-15 и двадцать девять на OC-11. А уж как мы извращаемся чтобы разрулить конфликты между ними и говорить не хочется...

Для контраста - ASA'шный dblib это набор dll'ек с цифрой версии в имени файла. Можно иметь сколько угодно приложений собраных на разных версиях - конфликтовать не будут. Чтобы поставить пользователю приложение на ESQL/C достаточно скопировать две dll, одна собственно все функции доступа к серверу, вторая - языковая. В минимуме это два мегабайта. Плюс еще один мег если хочешь добавить локализованные сообщения об ошибках (примерно по полмега-мег на язык). Естественно никаких переменных окружения не нужно (но при желании можно).
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35943159
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl wrote:

> Мне он не нравится в первую очередь тем, что зависит от переменных
> окружения, а значит поставить на одну машину две программы собранные под
> разный Open Client - сопряжено с большими проблемами.

не понимаю.

> Второе фе - диагностика ошибок сделана через колбеки.

В OCL есть два механизма получения диагностики, как через коллбэки,
так и непосредственно, как резалты особого вида. Я например коллбэки
тоже не люблю, использую второй способ.

> Третье фе - гигантский объем всей этой фигни. Нафига спрашивается
> OpenClient таскает за собой восемнадцать мегабайт никак не упакованной
> локализации? Плюс куча утилит которые пользователю совсем не нужны.

Ну не знаю. Виста или даже XP тащит за собой гораздо больше.
Ничего страшного, IMO.

> Общий объем который я сейчас вынужден отдавать юзерам аж тридацать-три
> мегабайта на OC-15 и двадцать девять на OC-11. А уж как мы извращаемся
> чтобы разрулить конфликты между ними и говорить не хочется...

А что, разве локейлы обязательно использовать ? Я считал, что нет.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35943956
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlLily V.ASA 8.0.2.4424
Кто-нибудь общается с базой посредством OpenClient? (советы перевести на odbc прошу не предлагать). Лучше перевести на ESQL/C и dblib8. OpenClient - далеко не правильный клиент для ASA/SA. Даже ODBC будет лучше и надежнее чем OC.

Дело в том, что перевод умирающего ПО на что-то новое для нас сейчас неактуально. контора завершает свое существование и что-то менять сейчас уже не имеет никакого смысла. Надо лишь поддерживать то, что есть.
Программы на OpenClient, если не ошибаюсь, у нас работают аж с 2003, несклько десятков удаленных пользователей. Особых проблем с ним не было.

White OwlLily V.При запуске приложения возникает ошибка:
error initialization of CT-library:cs_ctx_alloc() failed.На здровой и больной машинах разные ОС и/или одна из них руссифицированная другая нет.

на обеих машинах XP русская

White OwlВ любом случае, на больной машине кто-то доигрался с переводом машины на русский язык. ...скип...
Но по какой-то (неизвестной мне) причине OpenClient (кстати, какой версии?)

OCS-12_5

White Owlэтого не делает. Возможно, что на больной машине попытались обновить Internet Explorer и оно встало не до конца сломав mlang.dll (которая и отвечает за конвертацию кода локали в ее текстовое имя).

Сейчас пытала юзера. Очень похоже на то, что Вы пишете, оказывается IE вылетал с ошибкой, и теперь не загружается.
А если эту самую mlang.dll с нормальной машины скопировать? Или, может, переустановка IE поможет в решении проблемы?

White OwlСамый простой и неприличный способ лечения этого бага - пойти в %SYBASE%\locales\locales.dat файл. В секцию [NT] и добавить туда строку:
Код: plaintext
	locale = 1049, us_english, iso_1
Если в твоем OpenClient установлен пакет русской локализации, то строка может быть такой:
Код: plaintext
	locale = 1049, russian, cp1251


этот неприличный способ не помог)

White OwlНо вообще-то, я вам очень-очень-очень рекомендую перейти на dblib ESQL/C.
спасибо, за совет. но увы (см. выше)
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35945111
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lily V.А если эту самую mlang.dll с нормальной машины скопировать? Или, может, переустановка IE поможет в решении проблемы?Попробовать можно, терять то уже нечего, но гарантий естественно никаких.
Кстати, возможно что локализованные винды требуют локализованной же версии IE, а попытка установить свеженький оригинальный IE и послужило причиной поломки...

Lily V.этот неприличный способ не помог)А если в качестве кода языка поставить "C"? А "default" в вашем locale.dat есть?
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35945525
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlLily V.А если эту самую mlang.dll с нормальной машины скопировать? Или, может, переустановка IE поможет в решении проблемы?Попробовать можно, терять то уже нечего, но гарантий естественно никаких.
переустановка IE не помогла.
White OwlКстати, возможно что локализованные винды требуют локализованной же версии IE, а попытка установить свеженький оригинальный IE и послужило причиной поломки...
винды не локализованные, а изначально русские обе. Кста, у себя на машине я этот IE7 уже поставила, все продолжает работать нормально
White OwlА если в качестве кода языка поставить "C"?
где это? не нашла
White OwlА "default" в вашем locale.dat есть?
да есть дефолтный: locale = default, us_english, cp1251
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35945533
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
...скип...
Если это винда, выполни ocscfg.exe

спасибо, раньше не встречалась с этой утилиткой)
MasterZiv
Внутри в закладке ENVIRONMENT смотри значения своих переменных.

там значения всех переменных пустые. т.е. примерно так:
Environment variable:
LANG=
их надо вручную заполнять?
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35945688
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lily V.White OwlА если в качестве кода языка поставить "C"?
где это? не нашлаДа там же, в [NT] секции должно быть
Код: plaintext
   locale = C, us_english, iso_1
C (большая латинская) в некоторых случаях играет роль языка по умолчанию... Впрочем в те разы когда мне такая запись помогла OpenClient сам просил язык C...
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35945859
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlLily V.White OwlА если в качестве кода языка поставить "C"?
где это? не нашлаДа там же, в [NT] секции должно быть
Код: plaintext
   locale = C, us_english, iso_1
C (большая латинская) в некоторых случаях играет роль языка по умолчанию... Впрочем в те разы когда мне такая запись помогла OpenClient сам просил язык C...
а для чего указывать код языка С? наши приложения не на С написаны
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35946219
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lily V. wrote:

> там значения всех переменных пустые. т.е. примерно так:
> Environment variable:
> LANG=
> их надо вручную заполнять?

Ну по идее они все должны быть заполнены.

Иначе будут использоваться значения по умолчанию.

Вообще, хватить страдать ерундой, укажите локейл явно,
и всё. Думаю всё заработает.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35947161
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
...скип...
Вообще, хватить страдать ерундой, укажите локейл явно,
и всё. Думаю всё заработает.

в конфигураторе (ocscfg.exe) явно указала для LANG=rus. Ошибка осталась прежняя
Еще есть какие-нть предположения?)
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35947276
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lily V. wrote:

> в конфигураторе (ocscfg.exe) явно указала для LANG=rus. Ошибка осталась
> прежняя
> Еще есть какие-нть предположения?)

Если так, то только переставить OCS на той машине. Если и это не поможет,
то переставить машину (больше ничего не приходит в моск).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35948313
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
Lily V. wrote:

> в конфигураторе (ocscfg.exe) явно указала для LANG=rus. Ошибка осталась
> прежняя
> Еще есть какие-нть предположения?)

Если так, то только переставить OCS на той машине. Если и это не поможет,
то переставить машину (больше ничего не приходит в моск).


Никакой установки ocs на машине мы не делаем. Просто копирование необходимых dll-ек и установка sybase-овских системных переменных. Как переустановить OCS?
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35948487
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня была ситуация когда одна из самописных DLL-лек в екзешнике устанавливала при определенных условиях переменную окружения LANG, после чего подконнектиться было нельзя именно по этой причине.

Использовалась ф-я апи

Код: plaintext
1.
2.
3.
SetEnvironmentVariable(
    LPCTSTR lpName,	// address of environment variable name  
    LPCTSTR lpValue 	// address of new value for variable 
   );

я-бы для начала перед вызовом cs_ctx_alloc() вывел все переменные окружения в файл
используя GetEnvironmentStrings()

уверен, там окажется LANG=...
--
проверьте еще что установлено на последней закладке региональных настроек
язык для неюникодовых приложений.
...
Рейтинг: 0 / 0
cs_ctx_alloc() failed
    #35948689
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry.у меня была ситуация когда одна из самописных DLL-лек в екзешнике устанавливала при определенных условиях переменную окружения LANG, после чего подконнектиться было нельзя именно по этой причине.

Использовалась ф-я апи

Код: plaintext
1.
2.
3.
SetEnvironmentVariable(
    LPCTSTR lpName,	// address of environment variable name  
    LPCTSTR lpValue 	// address of new value for variable 
   );

я-бы для начала перед вызовом cs_ctx_alloc() вывел все переменные окружения в файл
используя GetEnvironmentStrings()

уверен, там окажется LANG=...
я вообще не вызываю нигде эту функцию. я имею в виду в наших приложениях. К тому же, если эта переменная менялась, то приложение не работало бы ни у кого. Поэтому дело, скорее всего, не в ехе-шнике, а в конкретной операционке, где эта ошибка возникает
--
Dmitry.проверьте еще что установлено на последней закладке региональных настроек
язык для неюникодовых приложений.
русский
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / cs_ctx_alloc() failed
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]