|
|
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
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, у меня такой нет ни на "больной", ни на "здоровой" машине. Может кто подскажет, куда еще копать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2009, 14:40 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2009, 15:21 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
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 Код: plaintext Но вообще-то, я вам очень-очень-очень рекомендую перейти на dblib ESQL/C. OpenClient намного более громоздкий и не приспособленный к реалиям ASA. OC все же разрабатывался для работы с ASE, там совсем другие принципы работы с базами. Да и для распространения dblib намного легче и проще, там всего-то полдюжины dll без каких-либо внешних файлов данных и оно не требует переменных окружения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2009, 19:25 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
White Owl wrote: > другие принципы работы с базами. Да и для распространения dblib намного > легче и проще, там всего-то полдюжины dll без каких-либо внешних файлов > данных и оно не требует переменных окружения. А DBLib что, не для ASE разрабатывался ? Вообще говоря, Open Client - универсальный интерфейс, чем он и хорош. Он используется во всех энтерпрайзных сервисах сайбейза, и в ASE, и в бэкапе, мониторе, и так далее, и в репликейшн сервере, и даже в покойном ныне Ягуаре был. Не знаю, чем он так тебе не угодил, и какие там другие принципы. Хотя наверное это неважно, поскольку вопрос о смене, как заявил автор, не стоит. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2009, 21:12 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
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, одна собственно все функции доступа к серверу, вторая - языковая. В минимуме это два мегабайта. Плюс еще один мег если хочешь добавить локализованные сообщения об ошибках (примерно по полмега-мег на язык). Естественно никаких переменных окружения не нужно (но при желании можно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2009, 22:15 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
White Owl wrote: > Мне он не нравится в первую очередь тем, что зависит от переменных > окружения, а значит поставить на одну машину две программы собранные под > разный Open Client - сопряжено с большими проблемами. не понимаю. > Второе фе - диагностика ошибок сделана через колбеки. В OCL есть два механизма получения диагностики, как через коллбэки, так и непосредственно, как резалты особого вида. Я например коллбэки тоже не люблю, использую второй способ. > Третье фе - гигантский объем всей этой фигни. Нафига спрашивается > OpenClient таскает за собой восемнадцать мегабайт никак не упакованной > локализации? Плюс куча утилит которые пользователю совсем не нужны. Ну не знаю. Виста или даже XP тащит за собой гораздо больше. Ничего страшного, IMO. > Общий объем который я сейчас вынужден отдавать юзерам аж тридацать-три > мегабайта на OC-15 и двадцать девять на OC-11. А уж как мы извращаемся > чтобы разрулить конфликты между ними и говорить не хочется... А что, разве локейлы обязательно использовать ? Я считал, что нет. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2009, 00:55 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
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 Код: plaintext этот неприличный способ не помог) White OwlНо вообще-то, я вам очень-очень-очень рекомендую перейти на dblib ESQL/C. спасибо, за совет. но увы (см. выше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2009, 12:34 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
Lily V.А если эту самую mlang.dll с нормальной машины скопировать? Или, может, переустановка IE поможет в решении проблемы?Попробовать можно, терять то уже нечего, но гарантий естественно никаких. Кстати, возможно что локализованные винды требуют локализованной же версии IE, а попытка установить свеженький оригинальный IE и послужило причиной поломки... Lily V.этот неприличный способ не помог)А если в качестве кода языка поставить "C"? А "default" в вашем locale.dat есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2009, 17:34 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2009, 20:20 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
MasterZiv ...скип... Если это винда, выполни ocscfg.exe спасибо, раньше не встречалась с этой утилиткой) MasterZiv Внутри в закладке ENVIRONMENT смотри значения своих переменных. там значения всех переменных пустые. т.е. примерно так: Environment variable: LANG= их надо вручную заполнять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2009, 20:24 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
Lily V.White OwlА если в качестве кода языка поставить "C"? где это? не нашлаДа там же, в [NT] секции должно быть Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2009, 22:42 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
White OwlLily V.White OwlА если в качестве кода языка поставить "C"? где это? не нашлаДа там же, в [NT] секции должно быть Код: plaintext а для чего указывать код языка С? наши приложения не на С написаны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 06:38 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
Lily V. wrote: > там значения всех переменных пустые. т.е. примерно так: > Environment variable: > LANG= > их надо вручную заполнять? Ну по идее они все должны быть заполнены. Иначе будут использоваться значения по умолчанию. Вообще, хватить страдать ерундой, укажите локейл явно, и всё. Думаю всё заработает. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 10:41 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
MasterZiv ...скип... Вообще, хватить страдать ерундой, укажите локейл явно, и всё. Думаю всё заработает. в конфигураторе (ocscfg.exe) явно указала для LANG=rus. Ошибка осталась прежняя Еще есть какие-нть предположения?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 14:43 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
Lily V. wrote: > в конфигураторе (ocscfg.exe) явно указала для LANG=rus. Ошибка осталась > прежняя > Еще есть какие-нть предположения?) Если так, то только переставить OCS на той машине. Если и это не поможет, то переставить машину (больше ничего не приходит в моск). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 15:06 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
MasterZiv Lily V. wrote: > в конфигураторе (ocscfg.exe) явно указала для LANG=rus. Ошибка осталась > прежняя > Еще есть какие-нть предположения?) Если так, то только переставить OCS на той машине. Если и это не поможет, то переставить машину (больше ничего не приходит в моск). Никакой установки ocs на машине мы не делаем. Просто копирование необходимых dll-ек и установка sybase-овских системных переменных. Как переустановить OCS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 19:57 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
у меня была ситуация когда одна из самописных DLL-лек в екзешнике устанавливала при определенных условиях переменную окружения LANG, после чего подконнектиться было нельзя именно по этой причине. Использовалась ф-я апи Код: plaintext 1. 2. 3. я-бы для начала перед вызовом cs_ctx_alloc() вывел все переменные окружения в файл используя GetEnvironmentStrings() уверен, там окажется LANG=... -- проверьте еще что установлено на последней закладке региональных настроек язык для неюникодовых приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 22:50 |
|
||
|
cs_ctx_alloc() failed
|
|||
|---|---|---|---|
|
#18+
Dmitry.у меня была ситуация когда одна из самописных DLL-лек в екзешнике устанавливала при определенных условиях переменную окружения LANG, после чего подконнектиться было нельзя именно по этой причине. Использовалась ф-я апи Код: plaintext 1. 2. 3. я-бы для начала перед вызовом cs_ctx_alloc() вывел все переменные окружения в файл используя GetEnvironmentStrings() уверен, там окажется LANG=... я вообще не вызываю нигде эту функцию. я имею в виду в наших приложениях. К тому же, если эта переменная менялась, то приложение не работало бы ни у кого. Поэтому дело, скорее всего, не в ехе-шнике, а в конкретной операционке, где эта ошибка возникает -- Dmitry.проверьте еще что установлено на последней закладке региональных настроек язык для неюникодовых приложений. русский ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2009, 07:47 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=38&tid=2011062]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
95ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 216ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...