Autor Thema: Welche Funktion hat der Agent (MailPolicy) in der Maildatenbank  (Gelesen 22914 mal)

Offline domino770

  • Frischling
  • *
  • Beiträge: 16
Hallo Zusammen,

weiss jemand welche Funktion der Agent  ' MailPolicy' in den Maildatenbanken ( aus Schablone der mail7.ntf) hat?

Wir nutzen 7.0.1 FP

Folgender Hintergrund: Der Agent lässt bei einigen Usern den Client abstüzen.
Auszug aus dem lokalen Notesprotokoll der User:

Agent '(MailPolicy)|MailPolicy' - Fehler: Attempt to access uninitialized dynamic array.

Ich habe den Code mir angeschaut und den Fehler in der SL 'MailPolicy_de-DE' entdeckt.

Wenn der keine Werte aus dem Calenderprofile bekommt, dann initialisiert er das Array nicht.

Ich würde Ihn ja direkt in der Standardschablone bereinigen, wenn ich nur wüsste was der Agent macht bzw. welche Nebeneffekte es haben könnte.


Der Fehler ist auch in 7.0.2 noch vorhanden.

Hat jemand auch so einen Effekt gehabt bzw. das Problem anders gelöst?


Danke im voraus für Eure Hilfe


Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
was der Agent macht, steht im Agenten selber beschrieben

%REM
This library supports the Mail Policy feature.

Administrators will set values as policy, which will applied to the end user's mail file.
Adminp will push data from the user's Directory and will deposit to the user's Calendar Profile.
Some of this data need to be massage before the end user access it.
This library will massage data for:
*Mail Rules (MiniViews),
*SoftDelete,
*Display Alarms,
*Allow Notes to update To Do status and dates for incomplete entries - FollowUp agent, and
*Set standard availabilty hours for employees

%END REM

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline domino770

  • Frischling
  • *
  • Beiträge: 16
Was der Agent macht ist jetzt klar. (Danke:-), hätte ich auch selber sehen können :-[
Die Frage ist Fehlt dem Agenten eine Einstellung für den Adminp oder  eine Einstellung in der Mailrichtlinie.

 Der Fehler tritt bei Defineworktype in SL auf. Das klingt mir sehr nach einer Einstellung. Villeicht brauche ich den Code nicht zu ändern. Der Agent gibt bei jedem User die Meldung aus. Hast du villeicht eine Idee  welche Einstellung es sein könnte?

Ein Bug scheint es nicht zu sein. Der Code ist in 7.0.0 bis 7.0.2 immer noch gleich oder der Bug ist niemandem aufgefallen




Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
das ist ja lustig ( aber auch logisch )

Bei mir findet sich im Protokoll der gleiche Fehler.

Dim WorkItemNames() As String   

OK, damit ist das Array aber noch nicht initialisiert.


If Me.m_CalProfile.HasItem("$FL_2") Then

nö, hat es aber nicht, ebensowenig wie

If Me.m_CalProfile.HasItem("$FL_3") Then

und damit bleibt WorkItemName un-initialisiert


Da frage ich doch gleich morgen mal bei der IBM nach ( In der KB habe ich nichts dazu gefunden )
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Habe einen Call bei IBM aufgemacht
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
... und wie erwarte, kommt mal wieder nur MÜLL zurück:

Zitat
Dear Mr Krause,


Regarding your question on this PMR: 41781,032,724 about the purpose of the
function DefineWorkType()

This is not a public method then it is not documented for being using by
customer and not available to customer.
This function put value from calendar profile to another document.
It cannot be changed as making change to this function will be in customer
own risk.
I have created SPR:KMUR6YEM26 as enhancement request for this function to
be public in our designer help in the future.

According to the above please let me know if you agree to close this PMR.

While waiting for your feedback, I will setup the next follow up for
16/02/2007

Hallo ?? Hat der eigentlich meine Frage richtig gelesen ??

Ich habe in meinem Call genau beschrieben, worum es geht, und an welcher Stelle das Problem ( reproduzierbar auf allen rechnern unserer Abteilung ) auftritt.

Und der Dummbatz meint, ich will da irgend eine Funktion haben, die offenbar kein Mensch braucht ...
Ich fasse es nicht.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Anscheinend gibt es innerhalb der unterschiedlichen Versionen eines Release ( 7.0.2, Server, Client ) unterschiedliche Templatestände, obwohl scheinbar alle Templates das gleiche Datum tragen.

Ich habe mir mal unterschiedliche Templates angesehen. Hier mein Ergebnis

StdR7Mail ( 7.0.2 - 24.07.2006 )
dwa7 ( basiert auf ExtR7Mail 7.0.2 - 24.07.2006 )
ExtR7Mail/de ( 7.0.2 - 24.07.2006 )

Code
	Public Function DefineWorkType() As Variant
%REM
		*** Function to define what type of work need to be done ***
		1 - Future implementation
		2 - Always - With this, Mail Policy will always be pushed to the client
		3 - Initially - With this, Mail Policy will be applied only the db is created (run once only)
%END REM
		Dim WorkItemNames() As String     'array of item names
		Dim counter As Integer
		
		'// reset flag
		DefineWorkType = ""
		counter = 0
		
		If Not (Me.m_CalProfile Is Nothing) Then		
			If Me.m_CalProfile.HasItem("$FL_2") Then
				Redim Preserve WorkItemNames(Counter) As String
				WorkItemNames(Counter) =  "$FL_2"
				Counter = Counter + 1
			End If
			
			If Me.m_CalProfile.HasItem("$FL_3") Then
				Redim Preserve WorkItemNames(Counter) As String
				WorkItemNames(Counter) = "$FL_3"
				Counter = Counter + 1
			End If
		End If
		
		DefineWorkType = WorkItemNames
		
	End Function


in der OpenNTF Mail Experience - German Edition ( http://www.openntf.org/Projects/pmt.nsf/ProjectHome?ReadForm&Query=OpenNTF%20Mail%20Experience%20-%20German%20Edition )
 sieht die Funktion dann folgendermaßen aus:

Code
	Public Function DefineWorkType() As Integer
%REM
		*** Function to define what type of work need to be done ***
		1 - Future implementation
		2 - Always - With this, Mail Policy will always be pushed to the client
		3 - Initially - With this, Mail Policy will be applied only the db is created (run once only)
%END REM
		
		'// reset flag
		DefineWorkType = 0
		
		If Not (Me.m_CalProfile Is Nothing) Then		
			If Me.m_CalProfile.HasItem("$FL_2") Then
				Set Me.m_WorkTypeItem = Me.m_CalProfile.GetFirstItem( "$FL_2" )						
				DefineWorkType = 2
			Elseif Me.m_CalProfile.HasItem("$FL_3") Then
				Set Me.m_WorkTypeItem = Me.m_CalProfile.GetFirstItem( "$FL_3" )						
				DefineWorkType = 3
			End If
		End If
	End Function

Der Fehler tritt hier nicht auf, was auch logisch ist.

in der letzten Version von OpenNTF Mail Experience (7.0.2b HF1) ( http://www.openntf.org/Projects/pmt.nsf/ProjectHome?ReadForm&Query=OpenNTF%20Mail%20Experience )
sieht dann die Funktion wieder so aus, wie eingangs erwähnt. Allerdings tritt der beschriebene Fehler nicht auf.

So liebe IBM. Jetzt bringt das in Ordnung.



Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
in der OpenNTF Variante kommt der Fehler deshalb nicht hoch, weil die Public Function OKToProcess(Client As String) As Integer
dort ein false zurückliefert. In meinem Client wird die exact gleiche Funktion mit exakt gleichem Parameter aufgerufen und liefert ein true.

Dann erst wird  die Public Function DefineWorkType() As Variant überhaupt angesprungen, was dann zu dem bekannten Fehler führt.

EDIT: die Funktion liefert bei mir ein true, weil in meinem CalenderProfile das feld $MPUP_N vorhanden ist und mit "1" besetzt ist.

« Letzte Änderung: 15.02.07 - 08:23:36 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
offenbar ist dieses Feld auch gar nicht nötig. Es gibt in der SL MailPoliy eine Sub, die dieses Feld neben anderen Feldern löscht

Code
	'// ******** Reset any flags *************
	Public Sub ResetFlag()
		
		If Me.m_ClientType <> "" Then
			If Not Me.m_CalProfile Is Nothing Then
				Select Case Me.m_ClientType
					
				Case "Notes"
					Call Me.m_CalProfile.RemoveItem("$MPUP_N")
					If Me.m_CalProfile.HasItem("$FL_2") Then
						Call Me.m_CalProfile.RemoveItem("$FL_2")
					End If
					If Me.m_CalProfile.HasItem("$FL_3") Then
						Call Me.m_CalProfile.RemoveItem("$FL_3")
					End If
					
				Case "WebMail"
					Call Me.m_CalProfile.RemoveItem("$MPUP_W")
					
				Case "DWA"
					Call Me.m_CalProfile.RemoveItem("$MPUP_D")
					
				Case Else
					Exit Sub
				End Select
				
				
			End If
		End If
		
	End Sub

Bisher habe ich aber noch nicht gefunden, wo die Sub aufgerufen wird. Möglicherweise ist hier der Hund begraben und man hat schlichtweg den Funktionsaufruf irgendwo vergessen.

Mal sehen, ob IBM auch in dieser Richtung was anzubieten hat, wenn ich denn mal eine gescheite Antwort auf meine Frage erhalte ...
« Letzte Änderung: 15.02.07 - 08:45:08 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline domino770

  • Frischling
  • *
  • Beiträge: 16
Da bin ich auch gespannt.  >:(

Entweder haben die Leute dort keine Ahnung oder die können nicht programmieren.

Trotzdem Danke! Wäre echt super wenn die etwas tun würden...

Gruß

Ülker

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Das liegt eindeutig am Feld $MPUP_N im CalendarProfile der Maildatei. Ich vermute mal, daß das aus Notes5 Zeiten übriggeblieben ist und durch die Funktion ResetFlag() gelöscht werden sollte.
Die Sub ist da und auch der Aufruf ist im Agenten vorhanden. Ich habe aber jetzt keine Lust zu suchen, warum diese Sub nicht angesprungen wird.
Auf meinem Testsystem habe ich mehrere Maildatenbanken, die im Laufe von Notes 6 und 7 zeiten angelegt wurden. Einzig meine eigene Datei ist immer nur durch ein Update von version zu Version geschleppt worden. In den neuen datenbanken ist das Feld nicht vorhanden. Die erzeugen auch keinen Fehler.

Ich habe gerade noch einmal einen PMR gestellt mit der einfachen Frage, ob man das Feld $MPUP_N löschen kann.
Ich hoffe auf eine Antwort in der Richtung "Ja".

Ich habe das Feld in meinem CalendarProfile gelöscht; bisher ohne SideEffects ( ausser, daß der Fehler nicht mehr im Log auftaucht )
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Zitat
oder die können nicht programmieren.

könnte man vermuten ...

Code
	Else		'// Mail Policy has not been applied - exiting now...
		Goto Continue
	End If
	
Continue:	
	
End Sub
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Antwort vom Support

Zitat
Everytime adminp runs on the Domino server, the calendar profile of the
users mailfiles gets updated with three fields derived from the policie
set up on the server. These fields ($FL_2, $FL_3, $MPUP_N) gets deleted
from the $CalendarProfile when the user opens their mailfile.     

Wobei wir dann wieder bei der UrSuppe wären; dem Ausgangsproblem ...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
So, ich denke, ich habe das jetzt entschlüsselt und spiele mal IBM Support:

@domino770:

Verwendest du die Mail Policy und hast du ein entsprechendes Dokument im DominoDirectory erstellt?

Wenn ja, dann setze mal an der Serverkonsole den Befehl Tell adminp process MailPolicy ab.
Und dann sieh' nach, ob der Fehler noch auftritt.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline domino770

  • Frischling
  • *
  • Beiträge: 16
es stimmt
 ich nutze Mailpolicy's. Ich habe auch am Montag die Mailpolicy's eingeschaltet und habe den Befehl Tell adminp process Mailpolicy abgesetzt. Die Probleme bestanden jedoch vorher schon.

Habe es jetzt trotzdem versucht, aber leider ohne erfolg. Die Noteslog des Users gibt immer noch die folgende Meldung aus, sobald er die Mailbox öffnet.

 Agent '(MailPolicy)|MailPolicy' - Fehler: Attempt to access uninitialized dynamic array.




Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Trga mal was bei Default Letterhead in die Mailpolicy ein und mache nochmal ein Tell adminp ... Erst danach hat der AdminP bei mir das Feld $FL_2 gesetzt.

ANsonsten  hänge dich an den PMR:41781,032,724 und mache einen Call bei IBM auf. Ich bin mit meinem Latein am Ende. Auf meinem testsystem funktioniert das jetzt zumindest ohne Fehler.
Die Felder werden durch den AdminP erstellt und beim Öffnen des Client wieder gelöscht. Wenn , wie bei dir, der Agent mit einem fehler aussteigt, werden auch andere Sachen im Rahnen des Agenten nicht ausgeführt und somit einige Parameter nicht gesetzt.

Habe jetzt allein heute gut 4 Stunden mit der Analyse des Code zugerbracht. Obendrein zahle ich auch noch nicht unerhebliche Supportgebühren bei IBM ( wofür eigentlich ? )
« Letzte Änderung: 15.02.07 - 13:53:38 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline domino770

  • Frischling
  • *
  • Beiträge: 16
Herzlichen Dank für deine Hilfe trotzdem!!

hatte auch leider 2 Tage verloren bis ich überhaupt erkannt habe das der Agent für die Abstürze zustaändig ist.
Wir haben schon die Default Einstellungen drin, trotzdem funktioniert es zumindest bei Uns nicht.

Ich werde auch einen call aufmachen, aber soweit ich aus der Erfahrung mit IBM weiss, wird das Problem nicht behoben werden, weil die es nicht verstehen!!

Wenn es sich was neues Ergibt melde ich mich:-)


Gruss

Ülker



Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
 :P :P :P :P :P :P :P :P

Ich beiss gleich in den Tisch:

Zitat
Dear Mr Krause,                                                         
                                                                       
Thank you for your feedback regarding this PMR: 41781,032,724 issue.   
I would like to let you know that the original question for this PMR was
as below and this according to what my colleague Werner updated on pmr:
                                                                       
  Could you please explain the purpose of this function?               
  customer would like to know, what this function is doing, except     
filling the log file of the client (see attached abstract from a client
log).                                                                   
That why I have created spr: KMUR6YEM26 as enhancement request for this
documentation to be public.                                             
                                                                       
If this is not this PMR issue then please reproduce the issue with a   
small database and provide me a copy of database with a clear steps by 
steps how to reproduce the bug here.
                                   
Can you provide us as well with a screenshot regarding the exact error 
message?
         

Es hat einfach keinen Zweck, einen Call zu erstellen und auf eine fundierte Hilfe zu hoffen.

Die verstehen echt den Sinn der Anfrage nicht.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Driri

  • Gast
Ich kann nicht behaupten, daß mich das wundert. Meine Kollegin hatte letztens auch richtig Spaß, als sie einem Inder (vermutlich) am Telefon auf englisch ein Problem erklären mußte. Der konnte eigentlich weder englisch sprechen oder verstehen.

Find ich echt gelungen, seinen Helpdesk nach Indien/Pakistan/was weiß ich auszulagern, um sich an den Supportverträgen dumm und dusselig zu verdienen.

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
den Inder hatte ich auch, aber momentan ist das wohl jemand aus Irland. Aber nicht dort geboren ...

Ich habe auch auf diesen Thread verwiesen, damit die sehen, was hier in diesem Forum  zu dem Problem bereits herausgefunden wurde.

Allein die Frage nach "a small database" zeigt doch deutlich, daß der überhaupt nicht kapiert, worum es geht. Sonst wüsste er, daß wir von der MailDB sprechen.
Allerdings wird das nicht ausreichen, denn, wie sich ja gezeigt hat, ist das Thema weitaus komplexer. So ist ja neben der Maildatei auch noch das Domino Directory und der AdminP an dem Gesamtprozess beteiligt.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz