A partir da versão 4.5 Build 228, o E3 possui um recurso chamado Hands-Off Mode. Esta ferramenta permite abrir os arquivos de projeto (.PRJ e .LIB) no modo hands-off, possibilitando o sincronismo automático entre dois servidores utilizando o DFS (Distributed File System).
Algumas aplicações que utilizam Hot-Standby juntamente com auto-configuração (criar/alterar/salvar objetos em tempo de execução) precisam propagar as alterações do PRJ para o micro standby. Para este e outros inúmeros casos, a solução encontrada é utilizar o DFS (Distributed File System), uma ferramenta do Windows Server que permite espelhar duas pastas em micros diferentes. Desta forma, ao salvar o PRJ em uma máquina, o DFS se encarrega de copiar automaticamente o arquivo para o servidor standby.
Para habilitar o Hands-Off Mode, deve-se criar a chave abaixo (a chave HandsOffMode é um DWord):
Quando este modo está ativo, os arquivos .PRJ e .LIB são carregados mas ficam liberados (o E3 faz uma cópia dos arquivos para a pasta Temp, e acessa os arquivos apenas nesta pasta, deixando os arquivos originais liberados). Isto permite que ferramentas de sincronismo de arquivos (DFS) possam copiar arquivos modificados no Hot para o Standby, e vice-versa.
Com este modo habilitado, o procedimento do E3 para abrir arquivos .PRJ e .LIB é o seguinte:
- O arquivo PRJ ou LIB é copiado para a pasta Temp do usuário. O nome do arquivo gerado é “EFS_{clsid}.tmp“.
- O arquivo temporário é aberto no modo direto (isto é, sem criar um snapshot) e mantido aberto pelo E3 enquanto estiver em uso.
Nos logs do E3, é possível verificar que foram logados os módulos EFS. Por exemplo:
182013-11-20 15:52:27.24499603076EFSHandsOffMode: Temp file ‘C:\Windows\TEMP\EFS_{49656153-0FAF-4656-87B1-B118D237EEA5}.tmp’ created from ‘C:\Program Files (x86)\Elipse Software\Elipse E3\Gallery\SymbolFactory.prj’14
Os arquivos temporários criados são apagados da pasta Temp apenas em duas situações:
- Na primeira vez em que um arquivo é aberto no Hands-Off Mode e um novo processo é executado (antes que o arquivo seja aberto, ele tenta apagar os arquivos EFS_*.tmp que estão na pasta Temp); e
- Sempre antes que um arquivo for aberto no Hands-Off Mode, desde que já tenham se passado 60 segundos desde a última limpeza da pasta Temp.
Desta forma, é normal que alguns arquivos sobrem na pasta Temp depois que um processo E3 for fechado. Normalmente, estes arquivos serão deletados na próxima vez que o E3 for executado.
Requisitos para utilização do Hands-Off Mode:
- Elipse E3 ou Elipse Power Versão 4.5 Build 228 ou superior instalado.
- DFS (Distributed File System) corretamente instalado e funcionando.
- Chave HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Elipse Software\EFS\HandsOffMode = 1.
Para quem possui problemas em sobrescrever arquivos .prj e .lib via Teamviewer e com domínio rodando, adicione as chaves do HandsOffMode ao registro que será possivel fazer isso novamente.