<< Clique para Mostrar o Sumário >>
Utilizando Arquivos EID |
Ao selecionar a opção R/W EntryID File (.EID) na aba Reports, este Driver gera um arquivo para cada IED com a extensão .eid, contendo os últimos EntryIDs recebidos para cada Report em uso. Este arquivo é gerado em até dois segundos após a recepção de uma mensagem de Report e também antes de finalizar (shutdown) uma aplicação. Este arquivo é gerado no mesmo diretório dos arquivos de cache (LD).
Na inicialização deste Driver, a aplicação espera pela disponibilidade deste arquivo para prosseguir, a fim de obter os valores de EntryID processados até o momento em que a operação foi interrompida. Num sistema redundante, a aplicação do usuário deve ser responsável por sincronizar este arquivo entre as máquinas principal e Standby.
O exemplo a seguir, que deve ser executado ciclicamente, copia os arquivos de EntryID entre servidores redundantes. Como este Driver é carregado pelo módulo IOServer, que executa sob a conta System, o código de exemplo utiliza o programa psExec (SysInternals) para elevação dos privilégios do usuário do Windows, ao executar um arquivo batch (.bat) que especifica o usuário e a senha.
NOTA |
Para mais informações sobre o programa psExec, consulte o artigo PsExec v2.2 na Microsoft Developer Network. |
Sub MyTimer_OnPreset()
Set objWScript = CreateObject("WScript.Network")
strServer = objWScript.ComputerName
Set sw = CreateObject("WSCript.shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\MyAppDir\MyEntryIdDir")
'Carrega os arquivos .eid
For Each file In folder.Files
GetAnExtension = fso.GetExtensionName(file.path)
If GetAnExtension = "EID" then
'Copia os arquivos
fso.CopyFile file.path, "C:\MyAppDir\MyEntryIdDir\EID\"
End If
Next
If strServer = "Server2" Then
sw.run "C:\MyAppDir\Bat\psExec.exe -i 0 -u UserAccount -p Domain@password cmd /c C:\MyAppDir\Bat\toServer1.bat", 0
End If
If strServer = "Server1" Then
sw.run "C:\MyAppDir\Bat\psExec.exe -i 0 -u UserAccount -p Domain@password cmd /c C:\MyAppDir\Bat\toServer2.bat", 0
End If
End Sub
Conteúdo do arquivo toServer1.bat:
copy C:\MyAppDir\EntryId\EID, \\Server1\EntryID
Conteúdo do arquivo toServer2.bat:
copy C:\MyAppDir\EntryId\EID, \\Server2\EntryID