VbScript / ADODB perte de connexion, reconnexion impossible
Bonjour,
J'ai un script vbs qui boucle à toutes les 5 minutes et qui requête en base de donnée. Tout ce passe bien jusqu'à ce qu'il y ait un problème de connexion à la base de donnée.
Une fois que le script perd la connexion à la base de données, il est impossible qu'il se reconnecte par la suite même si la base revient en ligne. Le seul moyen de rétablir le tout, est d'arrêter et relancer le script.
Quand la base de donnée est injoignable, j'ai le message d'erreur suivant : -2147467259:[Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]SQL Server does not exist or access denied.
Et Quand la base revient en ligne, j'ai le message suivant : 424:Objet requis
Auriez-vous des idées à me donner afin de pouvoir gérer ce problème sans avoir à relancer le script ?
Voici le bout de code qui effectue la connexion, toute remarque constructive sur ce dernier sera considérée et appréciée.
Code VBScript :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
...
Do While MyExit=0
Print_Log Log_File, "Launching VBS in 5 minutes !"
WScript.Sleep(300000)
'Vérification de la version du vbs local
LocalVbsFileVer=CheckLocalVer(LocalVbsFileName)
Print_Log Log_File, "Local HeartBeat File Version : " & LocalVbsFileVer
LocalVbsLibVer=CheckLocalVer(LocalVbsLibName)
Print_Log Log_File, "Local Library File Version : " & LocalVbsLibVer
LocalVbsMainVer=CheckLocalVer(LocalVbsMainName)
Print_Log Log_File, "Local Main File Version : " & LocalVbsMainVer
' Connexion à SQL Server.
Print_Log Log_File, "Connectiong to SQL ..."
Set oCn = WScript.CreateObject("ADODB.Connection")
oCn.ConnectionString = "Driver={SQL Server};" & _
"Server=monserver;" & _
"Address=monserver,1433;" & _
"Network=DBMSSOCN;" & _
"Database=mabase;" & _
"user id=monuser;" & _
"password=monpass;"
oCn.Open
If Err.number <> 0 Then
Print_Log Log_File, "Not Able To Connect to SQL Server !"
Print_Log Log_File, Err.Number & ":" & Err.Description
Set Err.number = 0
oCn.ConnectionString
Set oCn = Nothing
Else
Print_Log Log_File, "Connected to SQL Server !"
Print_Log Log_File, "Controlling files version ..."
ControlFileVer LocalVbsFileName,LocalVbsFileVer
ControlFileVer LocalVbsLibName,LocalVbsLibVer
ControlFileVer LocalVbsMainName,LocalVbsMainVer
Print_Log Log_File, vbtab & "Getting System Info..."
MyResult = split(ExecCommand("cscript.exe //H:CScript //nologo //T:60 " & LocalVbsFileName),vbcrlf)
Print_Log Log_File, vbtab & "Command Output :"
For each StrLine in MyResult
Print_Log Log_File, vbtab & vbtab & StrLine
Next
oCn.Close
Set oCn = Nothing
End If
Loop
... |
Je suis a peu près certain que le problème est dans cette partie de code mais je n'ai pas le solution nécessaire. Vous l'auriez ?
Code:
1 2 3 4 5 6 7 8 9 10
|
oCn.Open
If Err.number <> 0 Then
Print_Log Log_File, "Not Able To Connect to SQL Server !"
Print_Log Log_File, Err.Number & ":" & Err.Description
Set Err.number = 0
oCn.ConnectionString
Set oCn = Nothing
Else
... |
Merci d'avance
Christian