Zeigt eine Momentaufnahme aller „Locks“ auf dem Server. Dies ist insbesondere dann hilfreich, wenn viele Prozesse durch einen anderen Prozeß blockiert sind und man herausfinden möchte welcher Prozeß bzw. welche Tabelle das Problem ist.
Hinweis:
Bei dieser Prozedur handelt es sich im wesentlichen um eine Kombination der beiden (vom ASE vorinstallierten) Prozeduren „sp_who“ und „sp_lock“.
HTTP-Method | GET |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | system administration |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
cmd5) | In „5.0.2“ entfernt und durch „Command“ ersetzt | char | 3.5.2 |
page6) | In „5.0.2“ entfernt und durch „PageID“ ersetzt | integer | 3.5.2 |
class7) | In „5.0.2“ entfernt und durch „LockClass“ ersetzt | char | 3.5.2 |
table8) | In „5.0.2“ entfernt und durch „TableName“ ersetzt | char | 3.5.2 |
hostname9) | In „5.0.2“ entfernt und durch „HostName“ ersetzt | char | 3.5.2 |
locktype10) | In „5.0.2“ entfernt und durch „LockType“ ersetzt | char | 3.5.2 |
loginame11) | In „5.0.2“ entfernt und durch „LoginName“ ersetzt | char | 3.5.2 |
dbname12) | In „5.0.2“ entfernt und durch „DatabaseName“ ersetzt | char | 3.5.2 |
status13) | In „5.0.2“ entfernt und durch „ProcessStatus“ ersetzt | char | 3.5.2 |
blk14) | In „5.0.2“ entfernt und durch „BlockingProcessID“ ersetzt | char | 3.5.2 |
spid15) | In „5.0.2“ entfernt und durch „ServerProcessID“ ersetzt | integer | 3.5.2 |
ServerProcessID | Die Server-Prozeß-ID | integer | 5.0.2 |
LoginName | Unter welchem „login“ wurde der Prozeß eröffnet | varchar(50) | 5.0.2 |
ProcessStatus | Was macht der Prozeß gerade („running“, „lock sleep“, etc.) | varchar(50) | 5.0.2 |
HostName | Name des Host-Rechners, der den Prozeß gestartet hat | varchar(50) | 5.0.2 |
Command | Was für eine Art von Kommando wird gerade ausgeführt | varchar(50) | 5.0.2 |
DatabaseName | Name der Datenbank, auf der der Prozeß gerade aktiv ist | varchar(50) | 5.0.2 |
TableName | Name der Tabelle (in der Datenbank „DatabaseName“), die gerade ge„locked“ ist/wird | varchar(50) | 5.0.2 |
PageID | ID der Page (der Tabelle „TableName“), die gerade ge„locked“ ist/wird | integer | 5.0.2 |
LockType | Art des Locks („Sh_table“, „Ex_page“, etc.) | varchar(50) | 5.0.2 |
LockClass | Durch was wurde der Lock verursacht (Cursor, Non Cursor etc.) | varchar(50) | 5.0.2 |
BlockingProcessID | ID eines anderen Prozesses, durch den dieser Prozeß ge„blocked“ wird. Ein Wert von „0“ bedeutet, daß der Prozess NICHT blockiert wird. | integer | 5.0.2 |
(parameterunabängige Sortierung)
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 16) |
---|---|---|
-569 | Der Benutzer hat kein Ausführungsrecht für die Prozedur | nur indirekt |
-567 | Die Prozedur darf z. Zt. nicht ausgeführt werden | nur indirekt |
-566 | Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werden | nur indirekt |
-535 | Das Datum liegt nicht in der Vergangenheit | nur indirekt |
-530 | Der Wert ist nicht konvertierbar | nur indirekt |
-510 | Der Benutzer ist nicht registriert | nur indirekt |
-504 | Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochen | nur indirekt |
-500 | Falsche Parameter | nur indirekt |
Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.
7.0.7 | 2015-01-29 | Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf] |
5.0.2 | 2005-04-29 | 1. Änderung aller Spaltennamen der Rückgabemenge - damit wird zwar die Abwärts-Kompatibilität gebrochen, aber die Prozedur wird ja quasi „nie“ verwendet 2. Neuer Parameter „ServerProcessID“ |
4.0.14 | 2004-06-03 | 1. Aufruf der Prozeduren „_mi_StartProcedure“ und „_mi_FinishProcedure“ 2. Ausführen von „set transaction isolation level 1“ und „set rowcount 0“ zu Beginn der Prozedur |
3.5.13 | 2001-12-06 | |
3.5.2 | 2001-01-28 | |
3.5.0 | 2000-11-23 | Erstmalig in dieser Version erstellt |
Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:
Unformatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/mi_GetCurrentLocks_Ad'
Mit xmllint 17) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/mi_GetCurrentLocks_Ad' | xmllint --format -
use dStore_php\WebService; $service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80); $request = new WebService\Requests\Engine\Procedure\Request( new WebService\Requests\AccessData('default'), 'mi_GetCurrentLocks_Ad', array( // 'ServerProcessID' => NULL ) ); $service->execute($request); $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); $ResultSet = $xml_result->getRowsAsArray();
XML zur Ausführung mit der Methode engine/execute, z.B. per
curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?xml version="1.0" encoding="UTF-8"?> <ListOfBatches> <Batch No="0"> <Procedure Name="mi_GetCurrentLocks_Ad"> <Parameters> <!-- <Parameter Name="ServerProcessID">NULL</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>