Das Notes Forum
Lotus Notes / Domino Sonstiges => Projekt Bereich => Help-Desk Applikation !!Help!! => Thema gestartet von: MarcusH am 15.08.07 - 13:11:51
-
Hallo liebe Leute,
ich verfolge die Entwicklung des Helpdesks/Service Desks schon seit geraumer Zeit und habe auch schon einige Versionen desselbigen installiert. Problemlösungen konnte ich zum Helpdesk auch immer finden. Nun habe ich aber ein ungewöhnliches Problem hier.
Ich habe die alte Version 1.5.3 komplett gelöscht und die Version 1.6 installiert. Auf einer I5
mit Domino 7.01. Hat auch alles wunderbar funktioniert. Konfiguration angepasst und Tests durchgeführt. Nun mein Problem:
Nachdem ich die Datenbank erstellt hatte hat diese eine Größe von ca. 14 MB
Ich habe bis auf Ecalation alle Agenten aktiviert. Nun stieg die Datenbankgröße auf 15MB
Es wurden bisher noch keine Mails an Helpdesk geschickt. Jetzt cca 15 min später liegt die Dateigröße bei knapp 215 MB.
Woran könnte es liegen ??? ???
folgende Anpassungen führte ich im Vorfeld in der Schablone durch.
LS.API.Notes
folgenden Code hinzugefügt
in Declarations
Zeile 4
Declare Function I5_NEMGetFile Lib "/qsys.lib/qnotes.lib/libnotes.svrpgm" Alias "NEMGetFile"( wUnk As Integer, Byval szFileName As String, Byval szFilter As String, Byval szTitle As String ) As Integer
Zeile 8
Declare Function I5_NEMPutFile Lib "/qsys.lib/qnotes.lib/libnotes.svrpgm" Alias "NEMPutFile" ( wHandle As Integer, Byval szFileName As String, Byval szFilter As String, Byval szTitle As String ) As Integer
Zeile 82
' I5
Declare Function I5_NSFFormulaCompile Lib "/qsys.lib/qnotes.lib/libnotes.svrpgm" Alias "NSFFormulaCompile" ( _
Byval FormulaName As Long, _
Byval FormulaNameLength As Integer, _
Byval FormulaText As Lmbcs String, _
Byval FormulaTextLength As Integer, _
rethFormula As Long, _
retFormulaLength As Integer, _
retCompileError As Integer, _
retCompileErrorLine As Integer, _
retCompileErrorColumn As Integer, _
retCompileErrorOffset As Integer, _
retCompileErrorLength As Integer _
) As Integer
Declare Sub I5_OSMemFree Lib "/qsys.lib/qnotes.lib/libnotes.svrpgm" Alias "OSMemFree" (Byval hHandle As Long)
Declare Function I5_OSLoadString Lib "/qsys.lib/qnotes.lib/libnotes.svrpgm" Alias "OSLoadString" ( _
Byval hmodule As Long, _
Byval status As Integer, _
Byval s As String, _
Byval slen As Integer _
) As Integer
in
CheckSelecttionFormularValid
Zeile49
Case "I5"
iError = I5_NSFFormulaCompile(0, 0, _
sFormula, _
Len(sFormula), _
hFormula, _
wFormulaLen, _
iCompileError, _
iCompileErrorLine, _
iCompileErrorColumn, _
iCompileErrorOffset, _
iCompileErrorLength)
End Select
Ab Zeile 62
If hFormula <> NULLHANDLE Then
Select Case szVersion
Case "w32"
Call OSMemFree(hFormula)
Case "linux"
Call LX_OSMemFree(hFormula)
Case "mac"
Call MAC_OSMemFree(hFormula)
Case "I5"
Call I5_OSMemFree(hFormula)
End Select
End If
get_platform
Function get_platform () As String
Dim tmp_platform As Variant
Dim lower_platform As String
tmp_platform = Evaluate(|@Implode(@Platform([Specific]);" ")|)
lower_platform = Lcase(Cstr(tmp_platform(0)))
If (Instr (lower_platform, "linux")) Then
get_platform = "linux"
Elseif (Instr (lower_platform, "win")) Then
get_platform = "w32"
Elseif (Instr (lower_platform, "mac")) Then
get_platform = "mac"
Elseif (Instr (lower_platform, "I5")) Then
get_platform = "I5"
Else
Print "Unsupported Platform : >" + lower_platform + "<"
get_platform = ""
End If
End Function
GetAPIError
Function GetAPIError(iErrorCode As Integer) As String
Dim iRetVal As Integer
Dim sError As String * 1024
Dim szVersion As String
szVersion = get_platform()
sError = String(1024, 0)
Select Case szVersion
Case "w32"
iRetVal = OSLoadString(0&, iErrorCode, sError, 1023)
Case "linux"
iRetVal = LX_OSLoadString(0&, iErrorCode, sError, 1023)
Case "mac"
iRetVal = MAC_OSLoadString(0&, iErrorCode, sError, 1023)
Case "I5"
iRetVal = I5_OSLoadString(0&, iErrorCode, sError, 1023)
End Select
End Function
Das waren die Veränderungen die ich vor erstellen der Datenbank durchgeführt habe
Vielleicht weiß ja jemand Rat ?ß
Mit freundlichen Grüßen
Marcus Hammes
-
Das schaut auf den ersten Blick nicht außergewöhnlich aus.
Wächst die Datenbank wirklich? Also Anzahl an Dokumenten. Oder wird die einfach nur Größer und Größer was den Platz angeht den sie braucht. Die Geschwindigkeit mit der das deiner Aussage nach passiert würde ja eigentlich auf den Indexer schließen lassen, der die ganzen Ansichten aufbaut.
-
Hallo Thomas,
danke für die schnelle Antwort.
Nach Angaben aus den Eigenschaften der DB liegt die Größe der DB bei
338 MB mit 235.397 Dokumenten.
Ich habe aber auch festgestellt, dass nach dem Abschalten aller Agenten die DB nicht weiter wächst.
Mit freundlichen Grüßen
Marcus Hammes
P.S.: Ich hatte noch vergessen zu erwähnen, dass ich die Version 1.6 heute Morgen gelöscht und neu installiert hatte, da die alte DB schon auf 1.9 GB!! angewachsen war.
-
kannst du auch rausfinden was für Dokumente da reingelaufen sind?
Logs oder Reports?
Es gibt ja in der Regel einen Grund wenn so etwas passiert.
-
Nochmal Hallo :-)
Ich Rind :-) . Manchmal muß man halt mit der Nase draufgestossen werden.
Der Dispatcher hat die ganze Zeit das Log im Servicedesk mit Errormeldungen vollgeladen.
Error Num 4044 Error Msg Invalid formula (@BusinessDays([5/19/2160];[5/19/2160];1:7;[01.11.2007]:[03.10.2007]:[24.12.2007]:[25.12.2007]:[26.12.2007]:[31.12.2007]:[01.01.2008]))
Error Line 113 Language LotusScript
Database help16.nsf
Agent Dispatch
Method GETBUSINESSDAYS
Es könnte daran liegen, das die Dominoversion erst in Englisch installiert und dann ein German language Pack draufgespielt wurde.
Ich habe aber gesehen das es dazu auch einen Thread gibt.
"Fehler in LS.DateTime GETBUSINESSDAYS"
Ich denke mal das ich warten muß bis es da eine Lösung gibt.
Aber vielen Dank für die schnelle Hilfe.
Mit freundlichen Grüßen
Marcus Hammes
-
Ja, das ist dieser bekloppte Loop, wenn das GetBusinessDays auf einen Fehler läuft.
Grundsätzlich lässt sich der Loop unterbinden, wenn man in der Funktion Getbusinessdays im ERRHANDLE vor dem Resume EXITPOINT noch ein GetBusinessDays = -1 setzt ( als Abbruchbedingung für die While-Schleife in der aufrufenden Funktion.
ABÄR: Da die Schleife schon einmal durchlaufen wurde, stimmt das resultierende datum nicht! Soweit zum SideEffect.
Bin heute aufgrund der starken Beanspruchung in meinem "Nebenjob" nicht dazu gekommen, das Problem anzugehen.
-
Hallo,
Bin gerade dabei, den GetBusiness Days Fehler in der Schablone zu beseitigen. Ich habe Probleme GetBusinessDays = -1 einzubauen.
Wo muss ich das machen ? Sorry, habe von Lotus Script nicht viel Ahnung.
Kann mir vielleicht jemand ein Auschnitt des Codes posten ?
Danke.
-
Im Designer öffnen:
Gemeinsamer Code -> Script-Bibliotheken -> LS.DateTime
Objekte -> Declarations:
Public Function GetBusinessDays(dtStart As String,dtEnd As String) As Integer
On Error Goto ERRHANDLE
Dim busdays As Variant
Dim BDS As New NotesDateTime(dtStart)
Dim BDE As New NotesDateTime(dtEnd)
busdays = Evaluate(_
{@BusinessDays([}&_
Cdat(BDS.DateOnly)& {];[}&_
Cdat(BDE.DateOnly)& {];}&_
Me.nondays &{;}&_
Me.holidays & {)})
GetBusinessDays = Cint(busdays(0))
EXITPOINT:
Exit Function
ERRHANDLE:
Call LogError()
GetBusinessDays = -1
Resume EXITPOINT
End Function