Problemas em rede
Moderador: Moderadores
-
Jorge Adourian
- Usuário Nível 2

- Mensagens: 95
- Registrado em: 05 Jul 2004 23:38
- Localização: São Paulo-SP-Brasil
- Contato:
Fenix, é só colocar este SX_AUTOSHARE(0) no inicio antes de abrir os arquivos.
O BUG do SEEK é parecido, se colocar várias máquinas dando APPEND e SEEK começa a falhar o SEEK. Parecido com o caso do DOS ERROR 5 que estamos tratando neste tópico.
O BUG do SEEK é parecido, se colocar várias máquinas dando APPEND e SEEK começa a falhar o SEEK. Parecido com o caso do DOS ERROR 5 que estamos tratando neste tópico.
Até...
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
ja tive este caso
ja tive este caso, tive que ir no diretorio temp e detonar os arquivos do servidosr e do terminal, fazer o sacndisk e deflag em ambos e resolvi.
mas o caso esta no terminal, o computador e novo e mais rapido e instalacao, de utilitarios, tais como inflavermelho, som, e video ,
no diretorio temp cria um val de VGA.
o negocio e temporariamente detonar os temp e fazer o deflag, nao existe erro em nada e uma questao de manutencao.
mas o caso esta no terminal, o computador e novo e mais rapido e instalacao, de utilitarios, tais como inflavermelho, som, e video ,
no diretorio temp cria um val de VGA.
o negocio e temporariamente detonar os temp e fazer o deflag, nao existe erro em nada e uma questao de manutencao.
Tonix,
Acho que vc está enganado porque o erro existe sim e para verificar é só criar um programa de teste como expliquei nas mensagems anteriores. Não sei qual a logica de voce desconfiar que o utilitario de infravermelho pode interferir no compartilhamento de arquivos for DOS.... mas deixa para lá, se quiser ver o erro é só fazer o que falei.
Adourian,
Você tem razão, se colocar o SX_AUTOSHARE(0) a Six2 para de provocar o erro. Andei lendo sobre a rotina e ela configura como a lib irá abrir os arquivos automaticamente, se em modo exclusivo ou compartilhado, idenpendente do que foi informado como parametro no comando USE. Colocando o parametro zero esse recurso é desligado e o controle passa a ser feito pelo comando USE.
Na Six3 não tem necessidade de fazer isso. O erro não acontece.
Quanto ao erro do SEEK, coloquei nesse mesmo programa para dar um seek em cada loop e coloquei para rodar nas duas maquinas ao mesmo tempo e nao aconteceu nenhum erro. Poderia por favor detalhar melhor o erro que voce citou porque já estou por conta mesmo talves consiga desvendar o que esta acontecendo.
Acho que vc está enganado porque o erro existe sim e para verificar é só criar um programa de teste como expliquei nas mensagems anteriores. Não sei qual a logica de voce desconfiar que o utilitario de infravermelho pode interferir no compartilhamento de arquivos for DOS.... mas deixa para lá, se quiser ver o erro é só fazer o que falei.
Adourian,
Você tem razão, se colocar o SX_AUTOSHARE(0) a Six2 para de provocar o erro. Andei lendo sobre a rotina e ela configura como a lib irá abrir os arquivos automaticamente, se em modo exclusivo ou compartilhado, idenpendente do que foi informado como parametro no comando USE. Colocando o parametro zero esse recurso é desligado e o controle passa a ser feito pelo comando USE.
Na Six3 não tem necessidade de fazer isso. O erro não acontece.
Quanto ao erro do SEEK, coloquei nesse mesmo programa para dar um seek em cada loop e coloquei para rodar nas duas maquinas ao mesmo tempo e nao aconteceu nenhum erro. Poderia por favor detalhar melhor o erro que voce citou porque já estou por conta mesmo talves consiga desvendar o que esta acontecendo.
-
Jorge Adourian
- Usuário Nível 2

- Mensagens: 95
- Registrado em: 05 Jul 2004 23:38
- Localização: São Paulo-SP-Brasil
- Contato:
-
Jorge Adourian
- Usuário Nível 2

- Mensagens: 95
- Registrado em: 05 Jul 2004 23:38
- Localização: São Paulo-SP-Brasil
- Contato:
Fenix, sem dúvida o APPEND faz diferença, pois se ele não ocorrer o NSX não será atualizado e não falhará. Faça o teste com os APPEND de um código que não deve se repetir no DBF e verá que ele começará a se repetir, mas deixe rodar e criar pelo menos uns 10 mil registros rodando em 2 ou 3 máquinas ou janelas, quanto mais maquinas ou janelas rodarem mais rápido dará o erro e em maior quantidade.
Até...
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
-
gransoft
- Usuário Nível 3

- Mensagens: 321
- Registrado em: 06 Jul 2004 17:48
- Localização: UBERLÂNDIA-MG
- Contato:
RDD SIX 3.02
ARAGUARI-MG, 30 de agosto de 2004.
Prezados Srs.,
Sobre RDD SIX 3.02 $99,00:
http://www.vistasoftware.com/sixdriver.asp
Alguém informa um distribuidor ?
Atenciosamente,
Janis Peters Grants.
http://www.gransoft.com.br
gransoft@zipmail.com.br
Prezados Srs.,
Sobre RDD SIX 3.02 $99,00:
http://www.vistasoftware.com/sixdriver.asp
Alguém informa um distribuidor ?
Atenciosamente,
Janis Peters Grants.
http://www.gransoft.com.br
gransoft@zipmail.com.br
Gransoft,
O site informa:
A Six3 pode ser comprada pelo site do fabricante, mas não vejo vantagem nisso porque eles não fornecem suporte de erros e nem lançaram mais atualizações para ela.
A única coisa que justificaria sua aquisição seria ter a certeza que os bugs serão resolvidos.
O site informa:
- The final release of the SIx Driver is 3.02 and it was released on October 25th, 1996. This 3.02 version is very mature and very stable. SIx is no longer under development, and technical support is not provided, however it is still available for purchase by those developers who require it for their ongoing CA-Clipper 5.2x development. Support is provided by volunteers on the our support newsgroup
A Six3 pode ser comprada pelo site do fabricante, mas não vejo vantagem nisso porque eles não fornecem suporte de erros e nem lançaram mais atualizações para ela.
A única coisa que justificaria sua aquisição seria ter a certeza que os bugs serão resolvidos.
Editado pela última vez por Fenix em 01 Set 2004 11:54, em um total de 1 vez.
Pessoal que confusão, eu utilizo six02 e funciona normalmente. O que eu acho que faço de diferente é que cada módulo do sistema, os arquivos são abertos compartilhados, juntamente com seu indice e ao sair do módulo fecho os arquivos abertos. Veja um exemplo bem simples.
Mais uma coisa, no acesso ao sistema, se o indice não existir ele é criado e tenho um dbf que a cada 10 dias os indices são refeitos para o 1º usuário que acessa no dia.
Procedure xPagamento()
Use arq1 shared arq1nsx // Aqui uso uma função para abertura dos arquivos e indices automaticamente.
Do while(.t.)
Comandos
?
Enddo
Fecha() // Função para fechar todos os arquivos abertos nesse módulo
recupera a Tela
return
Espero ter ajudado.
Geraldo Barbosa
Mais uma coisa, no acesso ao sistema, se o indice não existir ele é criado e tenho um dbf que a cada 10 dias os indices são refeitos para o 1º usuário que acessa no dia.
Procedure xPagamento()
Use arq1 shared arq1nsx // Aqui uso uma função para abertura dos arquivos e indices automaticamente.
Do while(.t.)
Comandos
Enddo
Fecha() // Função para fechar todos os arquivos abertos nesse módulo
recupera a Tela
return
Espero ter ajudado.
Geraldo Barbosa
Pessoal que confusão. Eu utilizo normalmente a six02 e até agora não tive nenhum problema. No meus sistemas eu abro e fecho os arquivos .DBF e Índices a cada módulo. No acesso ao sistema se os indices não existirem são criados (exceto os temporários) e tenho um dbf que controla que a cada 10 dias os indices são refeitos para o 1º usuário que acessar no dia.
Um simples exemplo:
Procedure xQueConfusao()
GbAbre(“Vendas”,”Vds_a”) // Abre antes do While e vai fechar na saida
Do while (.t.)
Comandos
Enddo
Fecha() // Assim que o usuário sair da rotina os arquivos por ele abertos são fechados
RecTela(cVar)
return
Function GbAbre(_Def,_Def1,gModo)
If(empty(gModo),gModo:='S',gModo)
// GbDbf() é uma função que abre o arquivo em modo shared ou exclusiv
If !GbDbf(_Def,gModo)
return(.f.)
Else
&_Def->(OrdListAdd(_Def))
If !empty(_Def1)
&_Def->(OrdSetFocus(_Def1))
Endif
Endif
return(.t.)
Function Fecha()
DbCloseAll()
Return(.t.)
Espero ter ajudado.
Um simples exemplo:
Procedure xQueConfusao()
GbAbre(“Vendas”,”Vds_a”) // Abre antes do While e vai fechar na saida
Do while (.t.)
Enddo
Fecha() // Assim que o usuário sair da rotina os arquivos por ele abertos são fechados
RecTela(cVar)
return
Function GbAbre(_Def,_Def1,gModo)
If(empty(gModo),gModo:='S',gModo)
// GbDbf() é uma função que abre o arquivo em modo shared ou exclusiv
If !GbDbf(_Def,gModo)
return(.f.)
Else
&_Def->(OrdListAdd(_Def))
If !empty(_Def1)
&_Def->(OrdSetFocus(_Def1))
Endif
Endif
return(.t.)
Function Fecha()
DbCloseAll()
Return(.t.)
Espero ter ajudado.
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
Não estou dizendo q o SIX é perfeito...mas até o momento naum me deparei com nenhum problema q a utilização dele me afetasse...
Estou utilizando ele inclusive nas minhas aplicações em fivewin...
Estou somente salientando minha opinião a respeito.
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle
Barbosa,
Pode ser a forma como a tabela é aberta que provoca o problema. Para tirar a duvida poste sua funcao que abre os bancos de dados para vermos o que vc esta fazendo de diferente. Se quiser testar o erro que estou falando faça o seguinte:
Do while .t.
? 'Abrindo DBF... '
?? time()
abredbf()
dbsetorder(3)
go top
go bottom
close all
skip
endd
proc abredbf()
sele 0
use teste shared new alias
set index to teste1, teste2, teste3, teste4, teste5
dbsetorder(1)
retu
Pode ter algum erro no codigo acima pq estou repetindo de cabeca o codigo que testei, mas acontece que quando deixa isso executando em duas maquinas em rede e elas coincidem de abrir os arquivos ao mesmo tempo, naquela onde os dbfs estao locais ocorre o erro do dos n5. Se colocar o sx_autoshare(0) antes desse codigo nada disso acontece. Tambem nao acontece com a Six3 e nem usando NTX puro.
Teste com essa sua rotina de abertura de banco de dados e coloque para rodar na rede e nos fale se tambem deu o erro. Se nao der, poderemos ver se é a forma como linka ou como abre os arquivos..
O JORGE, coloca o código aí para a gente continuar os testes...
Até mais.
Pode ser a forma como a tabela é aberta que provoca o problema. Para tirar a duvida poste sua funcao que abre os bancos de dados para vermos o que vc esta fazendo de diferente. Se quiser testar o erro que estou falando faça o seguinte:
Do while .t.
? 'Abrindo DBF... '
?? time()
abredbf()
dbsetorder(3)
go top
go bottom
close all
skip
endd
proc abredbf()
sele 0
use teste shared new alias
set index to teste1, teste2, teste3, teste4, teste5
dbsetorder(1)
retu
Pode ter algum erro no codigo acima pq estou repetindo de cabeca o codigo que testei, mas acontece que quando deixa isso executando em duas maquinas em rede e elas coincidem de abrir os arquivos ao mesmo tempo, naquela onde os dbfs estao locais ocorre o erro do dos n5. Se colocar o sx_autoshare(0) antes desse codigo nada disso acontece. Tambem nao acontece com a Six3 e nem usando NTX puro.
Teste com essa sua rotina de abertura de banco de dados e coloque para rodar na rede e nos fale se tambem deu o erro. Se nao der, poderemos ver se é a forma como linka ou como abre os arquivos..
O JORGE, coloca o código aí para a gente continuar os testes...
Até mais.
Barbosa,
Pode ser a forma como a tabela é aberta que provoca o problema. Para tirar a duvida poste sua funcao que abre os bancos de dados para vermos o que vc esta fazendo de diferente. Se quiser testar o erro que estou falando faça o seguinte:
Do while .t.
? 'Abrindo DBF... '
?? time()
abredbf()
dbsetorder(3)
go top
go bottom
close all
endd
retu
proc abredbf()
sele 0
use teste shared new alias
set index to teste1, teste2, teste3, teste4, teste5
dbsetorder(1)
retu
Pode ter algum erro no codigo acima pq estou repetindo de cabeca o codigo que testei, mas acontece que quando deixa isso executando em duas maquinas em rede e elas coincidem de abrir os arquivos ao mesmo tempo, naquela onde os dbfs estao locais ocorre o erro do dos n5. Se colocar o sx_autoshare(0) antes desse codigo nada disso acontece. Tambem nao acontece com a Six3 e nem usando NTX puro.
Teste com essa sua rotina de abertura de banco de dados e coloque para rodar na rede e nos fale se tambem deu o erro. Se nao der, poderemos ver se é a forma como linka ou como abre os arquivos..
O JORGE, coloca o código aí para a gente continuar os testes...
Até mais.
Pode ser a forma como a tabela é aberta que provoca o problema. Para tirar a duvida poste sua funcao que abre os bancos de dados para vermos o que vc esta fazendo de diferente. Se quiser testar o erro que estou falando faça o seguinte:
Do while .t.
? 'Abrindo DBF... '
?? time()
abredbf()
dbsetorder(3)
go top
go bottom
close all
endd
retu
proc abredbf()
sele 0
use teste shared new alias
set index to teste1, teste2, teste3, teste4, teste5
dbsetorder(1)
retu
Pode ter algum erro no codigo acima pq estou repetindo de cabeca o codigo que testei, mas acontece que quando deixa isso executando em duas maquinas em rede e elas coincidem de abrir os arquivos ao mesmo tempo, naquela onde os dbfs estao locais ocorre o erro do dos n5. Se colocar o sx_autoshare(0) antes desse codigo nada disso acontece. Tambem nao acontece com a Six3 e nem usando NTX puro.
Teste com essa sua rotina de abertura de banco de dados e coloque para rodar na rede e nos fale se tambem deu o erro. Se nao der, poderemos ver se é a forma como linka ou como abre os arquivos..
O JORGE, coloca o código aí para a gente continuar os testes...
Até mais.
-
Jorge Adourian
- Usuário Nível 2

- Mensagens: 95
- Registrado em: 05 Jul 2004 23:38
- Localização: São Paulo-SP-Brasil
- Contato:
Fenix, segue modelo de PRG para os seus testes.
Código: Selecionar todos
*** NSX.PRG - TESTE DE INCLUSÃO REPETITIVA COM DRIVER NSX DO SIX ***
* ESTRUTURA DO TESTE.DBF ***
* 1 CODIGO C 6
* 2 NOME C 50
*******************************
#INCLUDE "SIXNSX.CH"
FUNCTION MAIN()
LOCAL AUXLOOP
CLS
IF ALERT('Indexar ?',{'Sim','Nao'})==1
USE TESTE.DBF VIA 'SIXNSX' EXCLUSIVE
INDEX ON FIELD->CODIGO TAG 1 TO TESTE.NSX
USE
ENDIF
USE TESTE.DBF VIA 'SIXNSX' SHARED
SET INDEX TO TESTE.NSX
DO WHILE INKEY(.1)<> 27
APPEND BLANK
IF .NOT. NETERR()
IF RLOCK()
DO WHILE .T.
FIELD->CODIGO:=G_CODIGO()
AUXLOOP:=RECNO()
SEEK FIELD->CODIGO
IF RECNO()==AUXLOOP
FIELD->NOME:=FIELD->CODIGO
EXIT
ENDIF
DBGOTO(AUXLOOP)
FIELD->CODIGO:=''
ENDDO
@ 13,13 SAY FIELD->CODIGO
DBCOMMIT()
DBUNLOCK()
ENDIF
ENDIF
ENDDO
USE
RETURN NIL
FUNCTION G_CODIGO()
LOCAL RETORNO
LOCAL AUXREG:=RECNO()
DBGOBOTTOM()
RETORNO:=STR(VAL(FIELD->CODIGO)+1,6)
DBGOTO(AUXREG)
RETURN RETORNO
Até...
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
