dogma писал(а):Не так давно (уже несколько лет) с переходом на четвертую версию нетвари (сейчас уже 6-ая) стали глючить дос-задачи. Сами они располагаются в сети, а юзера запускают их через ярлыки на рабочем столе.
Некорректная работа выражается в том, что приложение иногда запускается, иногда не запускается. На примере не работает сетевая функция получения сетевого имени пользователя (приложения в основном делались на Clipper), точнее выдает левое имя пользователя.
Еще пример, кто-то запустил программу, которая работает с таблицей a.dbf. , так же кто-то другой (пусть это будет юзер 'B') запускает приложение, которое тоже работает с данной таблицей, но уже в режиме запись. В результате у пользователя 'B' на экране выдается ошибка, что данный файл не найден или т.п., и соответственно далее работа с программой невозможна.
Может кто сталкивался с подобным?
Локально задачи работают нормально.
Обьясняю популярно про имя пользователя.
Если программеры юзают недокументированное Netware API в котором номер соединения пользователя передается в регистре 8 бит то это проблема программеров. У меня данная трабла вылезла тоже на 411 тогда когда номер коннекта стал зашкаливать 255 ...
Выходов 3.
1. Заставить юзать нормальное Netware API
2. Застрелиться
3. Замутит workaround. Я делал так.
Перед запуском древней дебильной проги вешается резидент. Он обрабатывает прерывание которое используется в NetWare 2.15 API.
Данный резидент в памяти < 1 Кб. Следом за ним пускается досовая прога немерянного размера [юзающая NW DOS API - размер изза того что используется NDS] которая корректно получает имя пользователя и передает резиденту. После завершения данной проги Дубовым фоксам клипперам и прочей ботве всегда возвращается номер коннекта ну к примеру 16 и правильное имя пользователя.
Вуаля.
Если есть желание позаниматься сексом с ассемблером и практически не документированным VLM ASM API то можно заставить резидента дергать VLM. Безо всяких внешних прог. Тут начинаюся дебри.
Я быстрее сделал вариант описанный выше. С VLM API помог Peter Vandrovec - аффтар ncpfs [так как на NT/2000/XP поддерживается только некое подмножество полного VLM API] - заработало и оно так же но я его джо ума не доводил ибо первый вариант гибче.
Про совместное использование баз - надо просто правильно писать проги. Оно в принципе живет. Кроме того можно использовать файловые транзакции NetWare.
Если прога написана корректно то в 100% случаев помогает
на сервере OPLOCK LEVEL1=OFF и OPLOCK LEVEL2=OFF.