Управление на нестабилна SQL връзка на Lotus Notes Agent

Имам работещ агент на Lotus Notes. Работи на LN 7. Моят агент работи на всеки 5 минути и изпраща някои имейли, когато намери някои конкретни записи в таблица на Microsoft SQL (2005).

Обикновено работи добре, но наскоро спря да работи - вече повече от веднъж - и няма да се рестартира отново, докато сървърът на Notes не бъде рестартиран или администраторът на Notes не рестартира всички агенти (аз не съм администратор на бележки, така че не съм наистина със сигурност какво прави, опитвам се да получа тази информация, за да добавя към този въпрос).

Опитвам се да изключа всичко, за което се сещам, и единственото нещо, което ми идва на ум е, че MS SQL сървърът, на който моят LN Agent изпълнява заявките, имаше някои проблеми със стабилността и може да не винаги е онлайн... Мислех си че това може да е причината за проблема... (Опитвам се да направя кръстосана препратка към регистрационния файл за непрекъсната работа от 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

End Sub


person frenetix    schedule 04.10.2010    source източник
comment
Само потвърждавам, версията на Notes Domino Server е 6.5.1. Администраторът на бележките току-що ми каза, че вместо да рестартира, той опитва това на командната конзола: telamgr quit След това го връща с тази команда: Load namgr Но изглежда, че излизането от всички агенти отнема много време.   -  person frenetix    schedule 04.10.2010


Отговори (2)


Имах много подобен проблем (в Domino 6.0.4) и се дължеше на грешка. Мина известно време, така че не помня къде открих, че се отчита като но (вероятно в notes.net), но прекарах много часове, опитвайки се да намеря заобиколно решение. В моята ситуация единственото решение беше да рестартирам сървъра.

Накарайте вашия администратор да провери регистрационните файлове за всякакви съобщения за грешка около времето, когато агентът се задейства. Можете също да добавите някои изрази за печат към агента, които се записват в журнала, само за да потвърдите, че агентът работи.

Ако вашият проблем е същият като моя, симптомите ще бъдат:

  • агентът работи добре, но има грешка в дневника, свързана с изпращането на съобщения.
  • Всички други агенти, които изпращат поща, също ще бъдат засегнати.
  • Работи добре седмици, дори месеци, след което изведнъж спира да работи.
  • и за съжаление единственото решение, което някога съм намирал, е да рестартирам, когато това се случи.
person Ken Pespisa    schedule 04.10.2010
comment
Благодаря ти Кен. Симптомите са подобни на тези, които споменахте... но получаваме това съобщение за грешка на конзолата на сървъра на Windows: Microsoft SQL Server Login Connection failed: SQLState: 'S1T00' SQL Server Error: 0 [Microsoft][ODBC SQL Server Драйвер] Времето за изчакване е изтекло. Така че все още мисля, че трябва да се опитам да управлявам по-добре моята SQL връзка от агента... не мислите ли? - person frenetix; 06.10.2010
comment
Да, това не е точно същият проблем, с който се сблъсках. Можете да потърсите алтернативен метод за получаване на данните. Използвал съм както връзките LC LSX, така и просто обикновен стар CreateObject(ADODB.Connection), за да получа данни от SQL в Notes. Може би бихте могли да започнете оттам, като напишете друг агент, използвайки алтернатива на класовете ODBCConnection? - person Ken Pespisa; 07.10.2010

Само в случай, че някой друг има същия проблем:

Най-накрая открихме, че има някои грешки при изчакване от SQL сървъра и имаше подкана за съобщение за грешка на сървъра на Notes, което блокира агента да работи, докато не се щракне върху бутона OK (!).

За да избегна тези „визуални“ грешки на сървъра, разбрах за опцията SilentMode в моята дефиниция на OCBC връзка: ето какво трябва да направите:

con.SilentMode = True

Благодаря все пак!

person frenetix    schedule 07.02.2011