Utilizando Arquivos EID

<< 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

Esta página foi útil?