работа TTS из-под Novell Client Win 2000/XP

Обсуждение технических вопросов по продуктам Novell

работа TTS из-под Novell Client Win 2000/XP

Сообщение McKir » 23 июн 2006, 09:27

История вопроса.
Есть у нас программа, написанная на FoxPro 2.5 и VFP6.0. Исторически сложилось, что ПО использует Новелловские транзакции (ДОС - netware.plb, VFP - что-то вроде её аналога, написанную мной на VC++). Из-под ДОС-а всё работает классно, из-под Win95/98 тоже. А вот с клиентом для NT/2k/XP траблы. Если паралелльно программе табличка открыта НА ТОЙ ЖЕ станции чем-то ещё, например, фоксом (нормальная ситуация, например, для отладки), то откат транзакции не происходит. Пару лет назад находил (как мне кажется) правильный клиент+заплатки, чтобы работало, но рецепт был утерян.
От сервера не зависит. На работе проверяю на 3.12, у клиента крутится 5.1 сервер.
Написал такую вот тестовую программу. Вызовы begintran,endtran,aborttran приводят к вызовам функций NWTTSBegintransaction, NWTTSEndtransaction, NWTTSAborttransaction в новельном клиенте.

Код: Выделить всё
for i =1 to 1000
    j=begintran()
    if j!=0
        errhand(-j,"Begintran error",program(),lineno(1))
    endif
   
    insert into testtts (testtts_cd,res) values (i,iif(mod(i,2)=0,"Чётное","Нечётное"))
    if mod(i,2)=0
        j=aborttran()
        if j!=0
            errhand(-j,"aborttran error",program(),lineno(1))
        endif
    else          &&Должны остаться только нечётные записи
        j=endtran()
        if j!=0
            errhand(-j,"endtran error",program(),lineno(1))
        endif
    endif
next

Пробовал также ставить внутри транзакцинного блока ставить блокировку всей таблицы (фокс при изменении блокирует только изменяющиеся куски файла таблицы) - результат не изменился.

TTS$LOG.ERR - за сегодняшний день только
Friday June 23, 2006 8:30:17 am
Initializing Transaction Tracking System

Если снимал программу, а она в этот момент оказывалась внутри транзакции, то при отключении от сервера писала:
Thursday June 22, 2006 2:30:05 pm
Transaction aborted for station #4 task #8
McKir
 

Re: работа TTS из-под Novell Client Win 2000/XP

Сообщение Dimerson » 27 июн 2006, 14:16

McKir писал(а):История вопроса.
Есть у нас программа, написанная на FoxPro 2.5 и VFP6.0. Исторически сложилось, что ПО использует Новелловские транзакции (ДОС - netware.plb, VFP - что-то вроде её аналога, написанную мной на VC++). Из-под ДОС-а всё работает классно, из-под Win95/98 тоже. А вот с клиентом для NT/2k/XP траблы. Если паралелльно программе табличка открыта НА ТОЙ ЖЕ станции чем-то ещё, например, фоксом (нормальная ситуация, например, для отладки), то откат транзакции не происходит. Пару лет назад находил (как мне кажется) правильный клиент+заплатки, чтобы работало, но рецепт был утерян.
От сервера не зависит. На работе проверяю на 3.12, у клиента крутится 5.1 сервер.
Написал такую вот тестовую программу. Вызовы begintran,endtran,aborttran приводят к вызовам функций NWTTSBegintransaction, NWTTSEndtransaction, NWTTSAborttransaction в новельном клиенте.

Код: Выделить всё
for i =1 to 1000
    j=begintran()
    if j!=0
        errhand(-j,"Begintran error",program(),lineno(1))
    endif
   
    insert into testtts (testtts_cd,res) values (i,iif(mod(i,2)=0,"Чётное","Нечётное"))
    if mod(i,2)=0
        j=aborttran()
        if j!=0
            errhand(-j,"aborttran error",program(),lineno(1))
        endif
    else          &&Должны остаться только нечётные записи
        j=endtran()
        if j!=0
            errhand(-j,"endtran error",program(),lineno(1))
        endif
    endif
next

Пробовал также ставить внутри транзакцинного блока ставить блокировку всей таблицы (фокс при изменении блокирует только изменяющиеся куски файла таблицы) - результат не изменился.

TTS$LOG.ERR - за сегодняшний день только
Friday June 23, 2006 8:30:17 am
Initializing Transaction Tracking System

Если снимал программу, а она в этот момент оказывалась внутри транзакции, то при отключении от сервера писала:
Thursday June 22, 2006 2:30:05 pm
Transaction aborted for station #4 task #8


Я помнится возился с эмулятором VLM который работает в 2000/NT/XP.

Вопрос в том какое API использует эта PLB. Дело в том что VLM API в клиенте для NT/2000/XP реализовано не полностью а некое его подмножество .

И это апи уже не supported ;((( попробуйте сходиь на саппорт форум девелоперов Novell - поглядите форумы которые уже unsupported.
Аватара пользователя
Dimerson
 
Сообщения: 2966
Зарегистрирован: 15 сен 2002, 14:39
Откуда: Регион 70


Вернуться в Novell

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1