Program DOSowy wiesza klienta przy wychodzeniu
Problem przedstawia się następująco:
Mam komp klienta na Win98 SE podłączony do serwera Win2003 i wszystko fajnie chula. Udostępniam sobie katalogi, klient je widzi moźe robić to co mu pozwole itp. wszystkie programy znajdujące się na serwerze moźna uruchomić z poziomu klienta i sobie na nich pracować do woli. Wszystko jest ok. Sesja w Shares pokazuje, źe klient uźywa tego, a tego folderu, tych, a tych plików, jak wyjdzie to wszystko znika i jest OKI.
Problem zaczyna się w przypadku odpalenia programu DOSowego. Program uźywa bazy danych i to niebagatelnej. Jest to program firmowy, na którey wpisuje się zamówienia, sprzedaź itp. Równocześnie otwiera on ok. 5 plików z danymi. Program troszkę muli przy starcie, ale potem śmiga wzorowo. Wszystko jest w porządku dopóki nie zamyka się programu. Wtedy pokazuje się nam czarny ekran i widać tylko skrót do programu i to co się przejedzie myszką (wniosek – nie odświerza). Na tym jednak problem się nie kończy. Sesja na serwerze się nie zamyka, a klient wisi. Gdy daje serwerowi polecenie, źeby zakończył sesję klienta po chwili klient oźywa i działa dalej. Co robić? Nie mogę przecieź siedzieć przy serwerze i wyrzucać wszyskich komputerów, które skończą sesję Myślałem, źe moźe da się jakoś to ustawić. Czy ktoś z was miał moźe podobny problem?
Myślę, źe problem tkwi w tym, źe W2003 nie zamyka sesji dostępu, bo gdy zrobi się to ręcznie to wszystko wraca do normy. Nie wiem juź co robić? Czy nie da się naprawdę jakoś wymusić (np. odpowiednim skryptem) zamknięcie sesji, po zako.ńczeniu pracy programu?
Dowiedziałem się równieź, źe często występują róźne problemy z programami DOSowymi pracującymi na serwerze Windows NT, Windows 2000 i Windows XP (a więc pewnie równieź w Windows 2003) i jest to spowodowane oportunistycznym blokowaniem plików (oplocks). Wiem jak wyłączyć tą opcję w w/w systemach:
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters]
"EnableOplocks"=dword:00000000
"CachedOpenLimit"=dword:00000000
"autodisconnect"=dword:ffffffff
ale niestety po odszukaniu tej ścieźki w rejestrze Windwsa 2003 NIE MA TAKICH PARAMETRÓW. Przeszukiwałem równieź cały rejestr pod kątem wyraźenia "EnableOplocks", a nawet samego "oplocks" i nie istnieją takie wyraźenia.
Czy mogę po prostu dodać takie parametry? Czy to zadziała? Czy byćmoźe Oplocks nie ma w Windowsie 2003? Moźe znacie inny sposób na naprawienie tego problemu?
Z góry dziękuję
Mam komp klienta na Win98 SE podłączony do serwera Win2003 i wszystko fajnie chula. Udostępniam sobie katalogi, klient je widzi moźe robić to co mu pozwole itp. wszystkie programy znajdujące się na serwerze moźna uruchomić z poziomu klienta i sobie na nich pracować do woli. Wszystko jest ok. Sesja w Shares pokazuje, źe klient uźywa tego, a tego folderu, tych, a tych plików, jak wyjdzie to wszystko znika i jest OKI.
Problem zaczyna się w przypadku odpalenia programu DOSowego. Program uźywa bazy danych i to niebagatelnej. Jest to program firmowy, na którey wpisuje się zamówienia, sprzedaź itp. Równocześnie otwiera on ok. 5 plików z danymi. Program troszkę muli przy starcie, ale potem śmiga wzorowo. Wszystko jest w porządku dopóki nie zamyka się programu. Wtedy pokazuje się nam czarny ekran i widać tylko skrót do programu i to co się przejedzie myszką (wniosek – nie odświerza). Na tym jednak problem się nie kończy. Sesja na serwerze się nie zamyka, a klient wisi. Gdy daje serwerowi polecenie, źeby zakończył sesję klienta po chwili klient oźywa i działa dalej. Co robić? Nie mogę przecieź siedzieć przy serwerze i wyrzucać wszyskich komputerów, które skończą sesję Myślałem, źe moźe da się jakoś to ustawić. Czy ktoś z was miał moźe podobny problem?
Myślę, źe problem tkwi w tym, źe W2003 nie zamyka sesji dostępu, bo gdy zrobi się to ręcznie to wszystko wraca do normy. Nie wiem juź co robić? Czy nie da się naprawdę jakoś wymusić (np. odpowiednim skryptem) zamknięcie sesji, po zako.ńczeniu pracy programu?
Dowiedziałem się równieź, źe często występują róźne problemy z programami DOSowymi pracującymi na serwerze Windows NT, Windows 2000 i Windows XP (a więc pewnie równieź w Windows 2003) i jest to spowodowane oportunistycznym blokowaniem plików (oplocks). Wiem jak wyłączyć tą opcję w w/w systemach:
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters]
"EnableOplocks"=dword:00000000
"CachedOpenLimit"=dword:00000000
"autodisconnect"=dword:ffffffff
ale niestety po odszukaniu tej ścieźki w rejestrze Windwsa 2003 NIE MA TAKICH PARAMETRÓW. Przeszukiwałem równieź cały rejestr pod kątem wyraźenia "EnableOplocks", a nawet samego "oplocks" i nie istnieją takie wyraźenia.
Czy mogę po prostu dodać takie parametry? Czy to zadziała? Czy byćmoźe Oplocks nie ma w Windowsie 2003? Moźe znacie inny sposób na naprawienie tego problemu?
Z góry dziękuję
Odpowiedzi: 1
Witam!
Dodac zawsze mozesz. Calkiem niedawno walczylem z czyms podobnym, ale nie udalo mi sie do konca rozwiazac tego problemu. Pewnie chodzi o dbf'y.
Sa polecenia ktore powoduja zamkniecie otwartych plikow.
zeby zamknac otware procesy (w tym otware pliki) mozna posluzyc sie
nastepujacymi programami:
taskkill (standardowo w cmd.exe)
pskill (trzeba sciagnac z netu)
oba polecenia mozna zarzucic do *.bat
ponadto w kluczu hkey_classes_rootsystemfilesassociations.dbx lub
.ntxshellexpropertyhandler –> wykasowac ten klucz
mozna to zrobic kopiujac ta galaz to pliku z rozszerzeniem .reg i potem dac
w *.bat zeby to odpalil. (jesli chodzi o automatyczne kasowanie).
niech pan rowniez sprawdzi czy w zasobniku po zamknieciu programu dosowego
pozostaje NTVDM. jesli tak to go usunac (np. taskkill'em).
Daj cynk co udalo ci sie wskurac :)
Powodzenia!
Dodac zawsze mozesz. Calkiem niedawno walczylem z czyms podobnym, ale nie udalo mi sie do konca rozwiazac tego problemu. Pewnie chodzi o dbf'y.
Sa polecenia ktore powoduja zamkniecie otwartych plikow.
zeby zamknac otware procesy (w tym otware pliki) mozna posluzyc sie
nastepujacymi programami:
taskkill (standardowo w cmd.exe)
pskill (trzeba sciagnac z netu)
oba polecenia mozna zarzucic do *.bat
ponadto w kluczu hkey_classes_rootsystemfilesassociations.dbx lub
.ntxshellexpropertyhandler –> wykasowac ten klucz
mozna to zrobic kopiujac ta galaz to pliku z rozszerzeniem .reg i potem dac
w *.bat zeby to odpalil. (jesli chodzi o automatyczne kasowanie).
niech pan rowniez sprawdzi czy w zasobniku po zamknieciu programu dosowego
pozostaje NTVDM. jesli tak to go usunac (np. taskkill'em).
Daj cynk co udalo ci sie wskurac :)
Powodzenia!
Strona 1 / 1