Olá,
Estou desenvolvendo uma aplicação em Hot Standby com um Database adicional no SQL Server além do Database de eventos do E3.
Este Database está sendo preenchido pela aplicação desenvolvida com sucesso nos 2 servidores quando ambos estão conectados à rede, porém quando desconectamos um da rede, fazemos uma alteração no banco e conectamos novamente, os dados novos não estão sendo sincronizados para o outro servidor.
Os bancos estão com suas propriedades “EnableSynchronization” iguais a true.
Encontrei um outro tópico resolvido no Fórum que é semelhante (https://forum.elipse.com.br/t/duvidas-replicacao-de-dados-em-aplicacoes-hot-standby/119), porém não compreendi exatamente o que deve ser feito para resolver.
Segue trecho do script da tela em que estou inserindo os dados no banco:
'**************************************************************************************************************************
'*** Conexão SQLSERVER. Criando as variáveis ADO. Estabelecendo a conexão.
Set conn = CreateObject (“ADODB.Connection”)
Set rs = CreateObject (“ADODB.Recordset”)
conn.Open "Provider = SQLOLEDB ; Data Source = " & Application.GetObject(“Comum.DBActiveServer”).Value & "\SQLSCL ; Trusted_Connection = Sim ; Initial Catalog = SCLHigMackCFG ; User ID = sclhig ; Password = sclhig "
’ -------------------------------------------------------------------------------------------------------------------------
'*** Conexão SQLSERVER Standby. Criando as variáveis ADO. Estabelecendo a conexão.
Set conn2 = CreateObject (“ADODB.Connection”)
Set rs2 = CreateObject (“ADODB.Recordset”)
conn2.Open "Provider = SQLOLEDB ; Data Source = " & Application.GetObject(“Comum.DBStandbyServer”).Value & "\SQLSCL ; Trusted_Connection = Sim ; Initial Catalog = SCLHigMackCFG ; User ID = sclhig ; Password = sclhig "
’ -------------------------------------------------------------------------------------------------------------------------
'*** escreve a query - I N S E R E D A D O S
if Screen.Item(“OptionCad”).Value = true then
if msgbox("Deseja Realmente Cadastrar a Rotina ?", vbYesNo + vbExclamation, "Atenção")=6 then
'*** executa a query
Query2 = "insert into Rotinas (RotID,RotHab,RotNome,PH1_Inicio,PH1_Fim,PH1_SemanaInicio,PH1_SemanaFim,Espec_Inicio,Espec_Fim,RotDesc,RotUser,RotDt,RotDevicesInicio,RotDevicesFim) Values ('" & Screen.Item("IDRot").Value & "','" & check & "','" & Screen.Item("NomeRot").Value & "','" & InicRot & "','" & FimRot & "','" & SemanaInicio & "','" & SemanaFim & "','" & EspIni & "','" & EspFim & "','" & Screen.Item("DescRot").Value & "','" & Screen.Item("Usuario").Value & "','" & DtRot & "','" & EquiptoInicio & "','" & EquiptoFim & "')"
conn.Execute Query2
Screen.Item("E3Browser1").Requery()
'*** Fecha a conexão com o banco de dados
conn.Close
set conn = nothing
' executa a Query no servidor Standby ------------------------------------------------------------------------------
Query2a = "insert into Rotinas (RotID,RotHab,RotNome,PH1_Inicio,PH1_Fim,PH1_SemanaInicio,PH1_SemanaFim,Espec_Inicio,Espec_Fim,RotDesc,RotUser,RotDt,RotDevicesInicio,RotDevicesFim) Values ('" & Screen.Item("IDRot").Value & "','" & check & "','" & Screen.Item("NomeRot").Value & "','" & InicRot & "','" & FimRot & "','" & SemanaInicio & "','" & SemanaFim & "','" & EspIni & "','" & EspFim & "','" & Screen.Item("DescRot").Value & "','" & Screen.Item("Usuario").Value & "','" & DtRot & "','" & EquiptoInicio & "','" & EquiptoFim & "')"
conn2.Execute Query2a
'*** Fecha a conexão com o banco de dados
conn2.Close
set conn2 = nothing
' -----------------------------------------------------------------------------------------------------------------
'Servidor de Alarmes
Set Op = Application.GetObject("ServidorAlarmes")
'Registra Cmd
Call Op. LogTrackingEvent("Rotina Agendada: " & Screen.Item("IDRot").Value & " - " & Screen.Item("NomeRot").Value & " cadastrada.", Screen.Item("Usuario").Value,"SAO",3, , , , , , ,"")
msgbox "Rotina: " & Screen.Item("IDRot").Value & " - " & Screen.Item("NomeRot").Value & " - " & Screen.Item("DescRot").Value & Chr(13) & Chr(13) & "Cadastrada com sucesso."
Screen.Item("IDRot").Value = Screen.Item("IDRot").Value + 1
end if
end if
Segue imagem da configuração do DBServer:
Favor auxiliar em descobrir o que está faltando para funcionar e se possível detalhar melhor a solução indicada do outro tópico citado.
Desde já agradeço.