Página 1 de 2
Problema: Harbour e DBFs em rede Windows
Enviado: 18 Jun 2013 11:54
por JoséQuintas
Um problema muito, mas muito estranho com Harbour, DBFs, e rede Windows.
Ocorrendo em redes com servidor XP, WIndows 7 e Windows 8.
Talvez estes dois problemas estejam relacionados, mas um deles eu nunca vi.
Problema 1:
Arquivo ficando preso.
Nenhum usuário utilizando o sistema, e acusa que o DBF está em uso.
Problema 2:
Este é o mais fdp, estava lá no cliente e vi pessoalmente.
Ao atualizar versão, o sistema acusou DOS ERROR 2, DBF não encontrado, nas estações, mas não no servidor.
O sistema cria automaticamente os DBFs que não existem, e este era um arquivo novo.
Olhando no servidor pelo prompt:
DIR ARQUIVO.DBF
ok, o arquivo está lá.
DIR A*.DBF
Mostra todos, menos o arquivo.dbf
attrib arquivo.dbf
tá lá, somente o atributo A de arquivo
COPY *.DBF TEMP
Copia todos, menos o arquivo.dbf
Pelo Explorer, não aparece o arquivo.
No servidor, fazendo a reindexação, voltou tudo ao normal.
Minha reindexação cria um novo arquivo com os registros, apaga o original e renomeia.
Direitos de acesso ou algo parecido eu descarto, porque tudo foi feito pelo mesmo usuário diretamente no servidor.
Problemas de cabeamento idem.
A mesma máquina e mesmo usuário criaram o arquivo da primeira vez, e também na reindexação.
Harbour 3.2, gtwvg e multithread.
Tomei o cuidado de incluir toda a configuração em cada thread (SIXCDX, filecase, etc).
Apesar do multithread, ainda não liberei várias janelas abertas ao mesmo tempo, apenas está compilado com multithread.
Não sei exatamente quando começou o problema, mas de diferente nos últimos tempos que passei a usar foram: gtwvg, multithread, e a API do windows pra arquivos temporários. Como a API do Windows não se limita a apenas fornecer o nome, também inclui na lista de suspeitos.
Alguém já passou por isto?
Problema: Harbour e DBFs em rede Windows
Enviado: 18 Jun 2013 14:57
por asimoes
José,
Você tentou fazer um teste de gerar esse arquivo no drive local?
Problema: Harbour e DBFs em rede Windows
Enviado: 18 Jun 2013 15:48
por JoséQuintas
Acho que não entendeu.
Tudo isso foi diretamente no servidor, em drive local.
Problema: Harbour e DBFs em rede Windows
Enviado: 18 Jun 2013 16:53
por asimoes
Ok. entendi.
Será algo relacionado a anti-virus ou cache do windows?
Problema: Harbour e DBFs em rede Windows
Enviado: 18 Jun 2013 18:06
por JoséQuintas
Por enquanto nenhuma idéia.
Mas muito preocupado, porque não poder usar o sistema em rede pode ser o fim.
Problema: Harbour e DBFs em rede Windows
Enviado: 18 Jun 2013 18:11
por Itamar M. Lins Jr.
Ola!
32 ou 64 ?
Eu não uso mais o drive nativo do Harbour em rede, uso o letodb, nunca tive problemas.
Outra coisa não fico criando e apagando arquivo dbf o tempo todo, nem indices, apenas os relatórios em disco.
Abro os dbf´s na hora que uso quando sai da telas de incluir/alterar/etc fecho tudo.
Depois que usei Linux o sistema de arquivos do ruindows NTFS agora me parece sempre suspeito.
Verifique se está tudo conforme o "Viktor Szakarts" ensinou.
Código: Selecionar todos
If !WIN_OSNETREGOK()
If WIN_OSNETREGOK(.t.,.t.)
Else
hwg_Msginfo('Registro do windows não ajustado !')
EndIf
EndIf
2010-10-22 17:49 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/hbwin/win_os.prg
+ WIN_OSNETREGOK() extended to disable some SMB2 internal caches,
which if left on default might cause db corruption on Vista
and above systems.
...
+ WIN_OSNETREGOK() extended to turn of SMB2 on Vista and upper systems.
! Fixed WIN_OSNETREGOK() to only attempt to change HKLM registry settings
if run under admin account (on NT systems). This also fixes a typo
in current xhb implementation.
; Adaptation of xhb addition by Peter Rees.
...
! Fixed WIN_OSNETREGOK() to also consider Win7 when second parameter is .T.
https://pctoledo.org/forum/viewto ... =4&t=11325
Saudações,
Itamar M. Lins Jr.
Problema: Harbour e DBFs em rede Windows
Enviado: 18 Jun 2013 18:51
por JoséQuintas
Eu não conhecia isso, e nunca fiz isso nem na minha máquina.
Acabo de alterar meu programa principal e inclui isto:
Código: Selecionar todos
IF .NOT. win_OsNetRegOk()
IF MsgYesNo( "Windows nao configurado corretamente. Configura?" + HB_EOL() + "Obs.Pra poder configurar, necessario executar como administrador" )
IF win_OsNetRegOk( .t., .t. )
MsgExclamation( "Configuracao necessaria aplicada" )
ELSE
MsgExclamation( "Nao foi possivel aplicar configuracao, provavelmente JPA nao foi executado como administrador" )
ENDIF
ENDIF
ENDIF
Agora aguardar.
Obs. Antes eu abria só arquivos necessários, depois passei a abrir todos, depois voltei a abrir somente necessários, mas ainda falta ajustar alguns módulos. Só crio arquivos quando necessário, no caso eram novos arquivos.
Problema: Harbour e DBFs em rede Windows
Enviado: 18 Jun 2013 19:51
por Itamar M. Lins Jr.
Se precisar entender mais e ver o que faz esta função:
https://github.com/harbour/core/blob/ma ... win_os.prg
Saudações,
Itamar M. Lins Jr.
Problema: Harbour e DBFs em rede Windows
Enviado: 19 Jun 2013 15:08
por JoséQuintas
Tentei baixar esse letodb do sourceforge.
Diz que tem 2.61mb mas baixa somente 200kb e acusa arquivo corrompido.
Qual a outra opção?
Problema: Harbour e DBFs em rede Windows
Enviado: 19 Jun 2013 16:57
por Itamar M. Lins Jr.
Posso mandar para seu email ele já compilado.
Para quem usa o Harbour do GIT ou 3.2 funciona blz.
Melhor irei subir aqui mesmo no forum é bem pequeno.
Saudações,
Itamar M. Lins Jr.
Problema: Harbour e DBFs em rede Windows
Enviado: 19 Jun 2013 17:26
por Itamar M. Lins Jr.
Pronto, esperando aprovação do moderador.
T+
Problema: Harbour e DBFs em rede Windows
Enviado: 22 Jun 2013 10:06
por JoséQuintas
Acabei chegando a este artigo:
http://support.microsoft.com/kb/937624
Num site encontrei um texto mais ou menos assim:
"A Microsoft considera isso bom, porque evita o funcionamento de programas obsoletos"
Pesquisando outros sites, indicam que esse hotfix altera este parâmetro:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]"EnableLinkedConnections"=dword:00000001
Tem a ver com o tal UAC (Controle de Conta de Usuário), que surgiu no Vista e versões posteriores.
Ainda não comprovado na prática.
Seja o que for, nunca precisei configurar nenhum Windows antes, é algo recente.
Problema: Harbour e DBFs em rede Windows
Enviado: 23 Jun 2013 17:03
por rochinha
Amiguinho,
As vezes, raramente, tenho este problema de um arquivo ficar travado, mesmo sem um aplicativo estar por trás com ele aberto. Fica como um fantasma. Em se tratando de Windows e problema pode ser relacionado ao controle de cache.
O uso de LetoDB ou NetIO pode ser uma solução se a implementação for somente uma picada de agulha.
Se o seu caso de manipular o UAC do Windows veja e teste para Windows XP:
Código: Selecionar todos
...
CATCH
// Ajuda a instalar automaticamente a capicom.dll
UAC( 0 )
iif( file( "CAPICOM.DLL" ), RegisterServer( "CAPICOM.DLL" ), MsgStop( "Nao foi instalado CAPICOM.DLL" ) )
UAC( 1 )
//myrun("install.bat")
...
CATCH
// Ajuda a instalar automaticamente a capicom.dll
UAC( 0 )
iif( file( "CAPICOM.DLL" ), RegisterServer( "CAPICOM.DLL" ), MsgStop( "Nao foi instalado CAPICOM.DLL" ) )
UAC( 1 )
//myrun("install.bat")
Return(aVETOR)
END
END
FUNCTION UAC(nAtivar)
*****************************************************
* Grava o registro do aplicativo
*****************************************************
LOCAL cRunName, cRunKey, cRegKey
// EnableLUA
// 0-Desativar
// 1-Ativar
cRegValue:= nAtivar
cRegKey := "Software\Microsoft\Windows\CurrentVersion\Policies\System"
cRegRoot := HKEY_LOCAL_MACHINE
SETREGVAR( cRegRoot, cRegKey, "EnableLUA", cRegValue )
RETURN 0
FUNCTION SETREGVAR(nKey, cRegKey, cSubKey, uValue)
LOCAL oReg, cValue
nKey := IF(nKey == NIL, HKEY_CURRENT_USER, nKey)
uValue := IF(uValue == NIL, "", uValue)
oReg := TReg32():Create(nKey, cRegKey)
cValue := oReg:Set(cSubKey, uValue)
oReg:Close()
RETURN cValue
Para Windows Vista ou Seven a chave muda:
Código: Selecionar todos
FUNCTION UACV(nAtivar)
*****************************************************
* Grava o registro do aplicativo
*****************************************************
LOCAL cRunName, cRunKey, cRegKey
// EnableLUA
// 0-Desativar
// 1-Ativar
cRegValue:= nAtivar
cRegKey := "SOFTWARE\Microsoft\Security Center"
cRegRoot := HKEY_LOCAL_MACHINE
SETREGVAR( cRegRoot, cRegKey, "UACDisableNotify", cRegValue )
RETURN 0
Problema: Harbour e DBFs em rede Windows
Enviado: 10 Jun 2014 13:00
por Kapiaba
Bom dia Rochinha, Pode me ajudar aqui porfa:
http://fivewin.com.br/index.php?/topic/ ... o-windows/
Obg. abs.
Problema: Harbour e DBFs em rede Windows
Enviado: 23 Jun 2014 14:47
por Marcio_Carneiro
Estou com um problema estranho.
Sistema antigo, migrado para harbour, rodando em rede a muitos anos.
De repente, começou a ficar lento:
Num terminal se abrir um prg (via atalho), é rápido, normal, realiza operações, e imprime.
Se abrirmos um outro terminal, fica tudo lento, a impressão chega a pausar na impressora.
Será que este procedimento relatado(Win_OsNetRegOk() poderia ser o caminho das pedras?
Um abraço Marcio
Harbour 3.02 - DBF COM NTX