Nome maquina /ou IP

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

Maligno escreveu:
ederxc escreveu:Lucimauro , no seu caso fica bom se o .EXE estiver no servidor , em uma rede muito extenção com muitos acessos ao servidor creio que seja mais "coerente" deixar um .EXE para cada maquina e passar uma String como parametro para os DBF´s
Se bem que esse procedimento, numa rede grande, adiciona muita dificuldade na hora de atualizar os vários .EXEs espalhados pelas extensões.
Concordo , porêm, não deixaria o sistema mais lento ??
Editado pela última vez por ederxc em 08 Jan 2008 11:39, em um total de 1 vez.
C:\Xharbour\Xdev\Fw\VSX
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

Em tempo...


Maligno como voce faz , o que sugere ? :|<
C:\Xharbour\Xdev\Fw\VSX
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

lucimauro escreveu:voce quer indentifcar o servidor certo. voce pode usar: if left(execname(),1)==[C] indentifica o servidor
Esta indicação é a mais acertada para o caso de ser apenas UM executável na rede e não como foi mencionado em outros tópicos inclusive que seria conveniente instalar todos os executáveis do sistema para cada estação. E acho que é isso ao que o Maligno se referia. Até agora eu não tive oportunidade de avaliar o gango que se obtem através de execução de executáveis nas estações. Mas se o seu caso for assim, é como o colega disse, você precisa cadastrar o nome da estação (se quiser o IP dessa máquina e o usuário caso este seja fixo) para que identifique quem é o servidor. Mas em resumida, não sei se o ganho é considerável (me refiro a instalar executáveis em cada estação). EU partiria um executável no servidor e aplicar a lógica que o colega Lucimauro indicou (eu já faço isso e funciona beleza).
Editado pela última vez por Pablo César em 08 Jan 2008 20:36, em um total de 1 vez.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Confesso que também não gosto da idéia, aliás causaria lentidão apenas no inicio. Depois que o exe foi carregado na memoria do terminal, já elvis ! Já pensou a peregrinação que vc deverá fazer para atalizar o sistema de uma loja com 30 terminais. Com certeza vai esquecer um ou dois.
Mas mesmo assim, peço licença para o Janio para mostrar sua idéia. Interessante apesar de eu não usar.

Arquivo batch

@ECHO OFF
xcopy J:\Frango.exe /r /y /d C:\JanioSys
C:\JanioSys\Frango.exe
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

ederxc escreveu:
Maligno escreveu:
ederxc escreveu:Lucimauro , no seu caso fica bom se o .EXE estiver no servidor , em uma rede muito extenção com muitos acessos ao servidor creio que seja mais "coerente" deixar um .EXE para cada maquina e passar uma String como parametro para os DBF´s
Se bem que esse procedimento, numa rede grande, adiciona muita dificuldade na hora de atualizar os vários .EXEs espalhados pelas extensões.
Concordo , porêm, não deixaria o sistema mais lento ??
Depende. Mesmo que a quantidade de estações seja muito grande, normalmente a carga do programa é feita uma vez só e nem sempre todos de uma vez. Pode até acontecer de gerar um congestionamento na rede, mas numa rede de 100Mbps não seria o fim do mundo. Mas vai de cada caso. Pra mim nunca teve problema. Mantenho um EXE só.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

ederxc escreveu:Maligno como voce faz , o que sugere ? :|<
No meu caso particular, acho mais acertado um EXE só. Quando há alteração, se o usuário na estação for fazer a carga, o programa pode ser bloqueado por ele próprio, após a verificação de uma atualização em andamente. Se a alteração chega quando o programa já está carregado, o programa também sabe que uma alteração chegou e, conforme o caso, pede pro usuário encerrar e aguardar. Semáforos. Sabe como é. :)

Uso um só EXE, mas conforme o que o futuro me apresentar, posso mudar para um EXE em cada estação. Em programas Windows normalmente você precisa instalar um run-time qualquer em cada estação. Dependendo da situação (avaliada na hora), poderia ser mais interessante instalar um EXE em cada máquina. Ai, claro, o esquema de atualização precisa ser refeito pra evitar o incômodo de ter que ir de estação em estação.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Mensagem por lucimauro »

No caso de minha resposta acima so quiz deixar uma dica de como se pode indentificar se o programa esta rodando no servidor ou nao, e no caso de se colocar um executavel e cada terminal eu ainda uso um executavel so, nos terminais crio bat´s que fazem a conexcao com o servidor.
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

alaminojunior escreveu:Mas mesmo assim, peço licença para o Janio para mostrar sua idéia. Interessante apesar de eu não usar.

Arquivo batch

@ECHO OFF
xcopy J:\Frango.exe /r /y /d C:\JanioSys
Start C:\JanioSys\Frango.exe
Alaminojunior,

Esse esquema funciona muito bem para quem utiliza o EXE em cada estação. O .bat verifica se há no servidor um EXE com data mais atual do que aquele que está na estação. Se houver, faz a cópia automática, muitas vezes sem que o usuário perceba. Assim, vc pode ter uma rede com quantas estações quiser e TODAS estarão com o EXE mais atual.

Um outro incômodo que há para quem utiliza o EXE somente no servidor é no caso de ter que colocar alguma versão mais recente no servidor e ter que ficar pedindo para TODOS os usuário saírem do sistema para que o executável do servidor possa ser substituído. Tem usuário que xia pra danado!

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

janio escreveu:ter que ficar pedindo para TODOS os usuário saírem do sistema para que o executável do servidor possa ser substituído.
Tem razão. Isso é muito chato mesmo. Mas note que se você usar alguns semáforos, seu programa pode tratar disso automaticamente; podendo, inclusive, "arrancar" o usuário na marra. A idéia é apenas se sentar numa estação, configurar esses semáforos com uma mensagem de alerta e um tempo limite para o infeliz sair do programa. Finado o tempo, seu sistema pode "arrancar" o sujeito, dependendo, claro, da prioridade do serviço que ele estiver realizando. E também com a ajuda de semáforos, se o usuário sair do sistema, ele não pode voltar mais, enquanto você não autorizar, também através de semáforos.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Srs(a). eu uso apenas um EXE no servidor, e quando vou atualizar apenas renomeio o EXE que esta em USO de "SISTEMA.EXE" para "SISTEMA2.EXE" e atulizo com o novo.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

É... essa é realmente uma alternativa.

o SO não deixa que o EXE em uso seja SUBSTITUÍDO, mas deixa que seja RENOMEADO. Legal!

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

sygecom escreveu:quando vou atualizar apenas renomeio o EXE que esta em USO de "SISTEMA.EXE" para "SISTEMA2.EXE" e atulizo com o novo.
Pensei que não daria para fazer isso enquanto alguém estiver executando o programa antigo. Será que isso de renomeiar durante alguém estiver executando-o na rede, não daria lagum tipo de problema ?

Sei que quando chamamos um executável, é carregado na memória (completo ou parcial) do binário daquele arquivo. Caberia saber se carrega completamente ou parcial a instrução do executável. Se for parcial, acho que tem grandes chances de ocorrer algum erro inesperado.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Sem problema algum ! uso isso e varios clientes que tem REDE com mais de 20 micros e até hj não tive problemas...o que não pode é deletar esse arquivo renomeado....mas enganar o windows .... ISSO PODYYYYYYY.....
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

sygecom escreveu:Sem problema algum ! uso isso e varios clientes que tem REDE com mais de 20 micros e até hj não tive problemas...o que não pode é deletar esse arquivo renomeado....mas enganar o windows .... ISSO PODYYYYYYY.....
Vish, o tópico ficou bem produtivo

Isso tambem póóódyyyy
C:\Xharbour\Xdev\Fw\VSX
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

Bem, proveitoso o tópico foi mesmo.

Mas relativamente ao problema inicial, acho que não é difícil resolver.

Nos meus sistemas, quando usava dbf (é que tô ficando chique, agora é mysql), abria todos os arquivos necessários a utilização do sistema numa tacada só.

Então, tentava usar os arquivos em modo exclusivo.

Se conseguisse, seja no servidor ou terminal, fazia a indexação uai.

Depois, liberava os arquivos abertos em modo exclusivo e reabria os mesmos no modo compartilhado.

Se o arquivo não pudesse ser usado de forma exclusiva é porque alguém estava usando o mesmo no modo exclusivo ou compartilhado.

Então, se usado no modo exclusivo, estava sendo feita a atualização dos índices.

Caso contrário, ou seja, compartilhado, a atualização já tinha sido feita pelo primeiro usuário ou usuário ativo.

Quanto a criação do DB(F) é simples.

É só testar a sua inexistência e criar o mesmo.

MarceloG
Água mole em pedra dura tanto bate que até espirra!
Responder