2010-10-04 86 views
0

我有一個可用的Lotus Notes代理。在LN 7上運行。 我的代理每5分鐘運行一次,並且每當它在Microsoft SQL(2005)表上找到某些特定記錄時,它就會發送一些郵件。在Lotus Notes代理上管理不穩定的SQL連接

它通常工作正常,但最近它停止工作 - 現在不止一次 - 並且不會重新啓動,直到Notes服務器重新啓動或Notes管理員重新啓動所有代理(我沒有Notes管理員,所以我我不確定他做了什麼,我試圖讓這個信息添加到這個問題中)。

我想排除我能想到的任何事情,唯一讓我想到的是我的LN代理運行查詢的MS SQL Server有一些穩定性問題,可能並不總是在線。 ..我認爲這可能是問題的原因......(我試圖在上次代理成功完成時交叉引用來自SQL的運行時日誌)。

我在想如果有什麼辦法來管理連接,除了我在做什麼,所以我可以排除(缺少)連接問題。

在此先感謝您提供的任何建議。

親切的問候,

迭戈

Option Public 

Uselsx "*LSXODBC"

Sub Initialize 
Dim session As New NotesSession 
Dim db As NotesDatabase 
Dim doc As NotesDocument 
Dim subject As String, cc As String, bcc As String, sender As String, OID As String, mailto As String, bodyNotMIME As String 
Dim body As NotesMIMEEntity 


On Error Goto errorCounter 

Set db = session.CurrentDatabase 

Gosub SendMailGeneral 

Exit Sub 

SendMailGeneral: 
Dim con As New ODBCConnection 
Dim qry As New ODBCQuery 
Dim result As New ODBCResultSet 
Dim defaultQuery As String 
Set qry.Connection = con  
If con.ConnectTo("DSN_Name","USER_NAME", "PASSWORD") Then 
    Set result.Query = qry 
    defaultQuery = "select TOP (10) * from Message where StatusType=0" 
    qry.SQL = defaultQuery  
    result.Execute 
    If (result.IsResultSetAvailable) Then 
     Do 
      result.NextRowcode 

      //here´s all the code that gets the results from each table´s fields and transform them into notes mails 

     Loop Until result.IsEndOfData 
    End If 
End If 
result.Close(DB_CLOSE) 
Return 

末次

+0

只需確認,Notes Domino服務器版本是6.5.1。 筆記管理員告訴我,不是重新啓動,而是在命令控制檯上嘗試:telamgr quit 然後他用這個命令取回它:Load namgr 但似乎退出所有代理需要很長時間。 – frenetix 2010-10-04 18:01:51

回答

0

萬一別人有同樣的問題:

我們終於發現,那裏有從SQL Server的一些超時錯誤,並有在Notes服務器上的錯誤信息提示,會遮擋運行代理直到點擊ok按鈕(!)。

爲了避免我發現了我的華僑連接定義的SILENTMODE選項服務器上的這些「視覺」的提示錯誤:這裏是你必須做的:

con.SilentMode = True 

還是要謝謝你!

0

我有一個非常類似的問題(在多米諾6.0.4),它是由於一個錯誤。這已經有一段時間了,所以我不記得我發現它是在哪裏報告的(但可能在notes.net上),但我花了很多時間試圖找出解決方法。在我的情況下,唯一的修復方法是重新啓動服務器。

讓管理員在代理程序觸發時檢查日誌以查找任何錯誤消息。您還可以將一些打印語句添加到代理,該代理會寫入日誌,以確認代理正在運行。

如果你的問題是我的一樣,症狀會:

  • 代理運行正常,但有與發送消息的日誌中的錯誤。
  • 任何其他發送郵件的代理也會受到影響。
  • 它可以正常工作幾周,甚至幾個月,然後突然停止工作。
  • 不幸的是,我發現的唯一修復方法是在發生時重新啓動。
+0

謝謝Ken。症狀與您提到的類似...但我們在Windows服務器控制檯上收到此錯誤消息: Microsoft SQL Server登錄 連接失敗: SQLState:'S1T00' SQL Server錯誤:0 [Microsoft ] [ODBC SQL Server驅動程序]超時過期 所以我仍然認爲我應該嘗試和更好地管理代理中的SQL連接......你不覺得嗎? – frenetix 2010-10-06 16:57:53

+0

是的,這不完全是我面對的問題。您可以考慮獲取數據的另一種方法。我已經使用了LC LSX連接,並使用普通的舊的CreateObject(「ADODB.Connection」)將數據從SQL中獲取到Notes中。也許你可以通過使用ODBCConnection類的替代方法編寫另一個代理程序來開始。 – 2010-10-06 21:13:06