2010-10-04 46 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