Funktion: stellt den aktuellen Serverthread für
x-millisekunden auf eis.
Geschickt ein Sleep(1) in einem Select oder einer SP
untergebracht werden andere Nutzer nicht mehr so stark abgeblockt
Deklaration
in IB:
DECLARE EXTERNAL
FUNCTION SLEEP
INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT 'SLEEP' MODULE_NAME
'NWA_IB_UDF';
IB – Name: SLEEP
Parameter:
Integer
: Zeit in Millisekunden
Rückgabe:
Integer : Zeit in Millisekunden
Funktion: Führt ein Sleep(1) aus wenn die Division
von GetTickCount (die Zeit in MS seit Windows läuft) und dem Parameter 0
ergibt.
if GetTickCount MOD :PARAMETER=0 then
Sleep(1);
Deklaration
in IB:
DECLARE EXTERNAL
FUNCTION SLEEP1000
INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT 'SLEEP1000' MODULE_NAME
'NWA_IB_UDF';
IB – Name: SLEEP1000
Parameter:
Integer
: Divisor
Rückgabe:
Integer : Divisor
Beispiel:
.
.
FROM
DATE_PARAM(:VONDATUM) DP1, DATE_PARAM(:BISDATUM) DP2,
VST_LOCATION( :LTYP, :LGEM, :LORT, :LSTR, :LVST)
left join INT_PARAM(SLEEP1000(3)) on 1=1
.
.
.
Beschreibung
Wert 1 führt zur maximalen
Prozessorentlastung aber auch zur längsten Laufzeit, entspricht Sleep(1)
Wert 1000 Prozessor wird fast
vollständig genutzt, andere User werden ggf. stärker behindert.
Der Optimale Wert hängt von den durchzulaufenden
Sätze ab, und wie lang ein Satz durchlaufen wird bis das erneute Sleep1000
aufgerufen wird.
Es sollte ausreichen, wenn der Prozessor geringfügig
entlastet wird.
Name: GETAVAILPROCESSORS()
Für Auswertungslisten ungeeignet.
Funktion: liefert die Anzahl der installierten
Prozessoren zurück.
Deklaration
in IB:
DECLARE EXTERNAL
FUNCTION GETAVAILPROCESSORS
RETURNS INTEGER BY VALUE
ENTRY_POINT
'GETAVAILPROCESSORS' MODULE_NAME 'NWA_IB_UDF';
IB – Name: GETAVAILPROCESSORS
Parameter:
keine
()
Rückgabe:
Name: GETCURRENTPROCESSID()
Für Auswertungslisten ungeeignet.
Funktion: liefert die aktuelle
ID des ServerProzesses (fbserver.exe)
Deklaration
in IB:
DECLARE EXTERNAL
FUNCTION GETCURRENTPROCESSID
RETURNS INTEGER BY VALUE
ENTRY_POINT
'GETCURRENTPROCESSID' MODULE_NAME 'NWA_IB_UDF';
IB – Name: GETCURRENTPROCESSID
Parameter:
Integer
: <kein>
Rückgabe:
Name:
GETCURRENTTHREADID()
Für Auswertungslisten ungeeignet.
Deklaration
in IB:
DECLARE EXTERNAL
FUNCTION GETCURRENTTHREADID
RETURNS INTEGER BY VALUE
ENTRY_POINT
'GETCURRENTTHREADID' MODULE_NAME 'NWA_IB_UDF';
IB – Name: GETCURRENTTHREADID
Parameter:
Integer
: ()
Rückgabe:
Name: SETTHREADAFFINITYMASK
Für Auswertungslisten ungeeignet.
Funktion: Setzt den für den aktuellen ServerThread,
der auch von anderen Transaktionen anderer Nutzer wieder verwendet werden kann,
die Prozessormaske.
(Bitweise:
1 entspricht nur CPU0
2 entspricht nur CPU1
3 entspricht CPU0 und CPU1
:
15 entspricht CPU0, CPU1,
CPU2 und CPU3 etc.
ACHTUNG: der Serverprozess muss auch dieser
Prozessormaske entsprechen.
Deklaration
in IB:
DECLARE EXTERNAL
FUNCTION SETTHREADAFFINITYMASK
INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT 'SETTHREADAFFINITYMASK' MODULE_NAME 'NWA_IB_UDF';
IB – Name: SETTHREADAFFINITYMASK
Parameter:
Integer
: 1 entspricht nur CPU0
2
entspricht nur CPU1
3
entspricht CPU0 und CPU1
:
15
entspricht CPU0, CPU1, CPU2 und CPU3 etc.
Rückgabe:
Name: SETTHREADIDEALPROCESSOR
Für Auswertungslisten ungeeignet.
Funktion: Setzt den für den aktuellen ServerThread,
der auch von anderen Transaktionen anderer Nutzer wieder verwendet werden kann,
für die Prozessormaske die bevorzugte CPU
0: CPU1
1: CPU2
2: CPU2 etc
ACHTUNG: der Serverprozess muss auch der
Prozessormaske des Threads entsprechen, der bevorzugte Prozessor muss in dieser
Maske liegen
Deklaration
in IB:
DECLARE EXTERNAL
FUNCTION SETTHREADIDEALPROCESSOR
INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT 'SETTHREADIDEALPROCESSOR' MODULE_NAME 'NWA_IB_UDF';
IB – Name: SETTHREADIDEALPROCESSOR
Parameter:
Integer
: Prozessormaske
die bevorzugte CPU
Rückgabe: