Probleme mit Deadlocks

10/20/2012 18:51 dennisdra#1
Hallo liebe Com,

es ist so das ich zurzeit mit Deadlocks zu kämpfen habe.
Da Twilight kein PN-Support machen möchte (kann ich dir nicht übel nehmen)
wende ich mich nun an die gesamte Community.

Es ist so das hin und wieder Deadlocks auftauchen, welche mit dem Inventar und dem Bag zu tun haben.

Folgende Errors erscheinen immer wieder:

Code:
query:{call INVENTORY_STR('U','0000051','01',?,?,?,?,?,?,?,?,?)}
SQLSTATE:40001 error:[Microsoft][SQL Server Native Client 10.0][SQL Server]Transaction (Process ID 150) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Code:
query:{call INVENTORY_STR('U','0000073','01',?,?,?,?,?,?,?,?,?)}
SQLSTATE:40001 error:[Microsoft][SQL Server Native Client 10.0][SQL Server]Transaction (Process ID 148) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Code:
query:{call uspSavePocket( '01', '0000077', ?, ?, ?, ?, ?, ?, ?, ?, ?) }
SQLSTATE:40001 error:[Microsoft][SQL Server Native Client 10.0][SQL Server]Transaction (Process ID 148) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Ich hoffe das jemand eventuell Ahnung davon hat und helfen kann.

Vielen Dank im voraus,

Gruß dennisdra
10/20/2012 19:56 Мarvin#2
Quote:
Originally Posted by dennisdra View Post
Da Twilight kein PN-Support machen möchte (kann ich dir nicht übel nehmen)
wende ich mich nun an die gesamte Community.
Glaub mir: Die Community kann und wird dir nicht helfen.
Ich hatte dieses Problem auf Sapphire gehabt und habe überall nach
Problemlösungen bzw. Hilfe gesucht. (Sogar Kontakt zu Devs von Eclipse aufgenommen etc.)

Twilight hat auf "Summer Paradise" diese wohl "behoben". Nur sollte man
diese eigentlich nicht einfach so beheben sondern die Fehlerquelle suchen.
Dieser Error wird dir nach und nach deine komplette Datenbank kaputt machen.
Nach 3-4 Wochen wirst du Wipen müssen.

Geht eure (Source-)Features durch, was habt ihr im Inventar verändert?
Was für neue SQL Prozeduren wurden hinzugefügt? Extra-Funktionen auf der HP?

Du solltest dich erstmal allgemein nach Deadlocks informieren um zu wissen,
mit was du es überhaupt zu tun hast. Es ist ein allgemeines "Programmierer-" Problem.
10/20/2012 21:02 dennisdra#3
Mir ist bewusst was Deadlocks sind, jedoch müsste ich dafür auf die Developer Edit. von MSSQL umsteigen um den Profiler nutzen zu können, welche jedoch bei mir zumindest Probleme zwischen HP und Webserver und der DB hatte.

Die Deadlocks haben bei uns damals nicht wirklich Probleme verursacht, Old Inception lief ja mehrere Monate mit den Fehlern (jedoch verschwanden halt ab und zu Items wenn es nen Crash gab da die Query nicht richtig ausgeführt werden konnte)

Es muss ja am Tabbed Inventory liegen, jedoch sind wir eigentlich alles durchgegangen.

Ansonsten muss ich wohl oder übel Local nen Testserver erstellen, wobei das schwer wird, denn die Deadlocks kamen bis jetzt nur sobald mehrere User online waren...

Trotzdem vielen Dank Marvin ;)
10/20/2012 21:27 Мarvin#4
Quote:
Originally Posted by dennisdra View Post

Ansonsten muss ich wohl oder übel Local nen Testserver erstellen, wobei das schwer wird, denn die Deadlocks kamen bis jetzt nur sobald mehrere User online waren...

Trotzdem vielen Dank Marvin ;)
Jo viel Glück, aber wenn Deadlocks schon nach ~20 Usern kommen,
dann muss man ziemlich hart was verbockt haben. Leider muss man sich
auch mit dem SQL-Profiler auskennen.

Ich würde das Tabbed Inventory vorrübergehend entfernen, falls das möglich ist.
10/20/2012 21:33 Sony.#5
Quote:
Originally Posted by Marvin' View Post
Jo viel Glück, aber wenn Deadlocks schon nach ~20 Usern kommen,
dann muss man ziemlich hart was verbockt haben. Leider muss man sich
auch mit dem SQL-Profiler auskennen.

Ich würde das Tabbed Inventory vorrübergehend entfernen, falls das möglich ist.
Wenn er das Tabbed Inventory entfernt, dann muss er allerdings Wipen.
Aber ne andere möglichkeit sehe ich auch nicht.
Und ich glaube nicht das es ander Hp liegt.
10/20/2012 21:54 Мarvin#6
Quote:
Originally Posted by Sony. View Post
Wenn er das Tabbed Inventory entfernt, dann muss er allerdings Wipen.
Aber ne andere möglichkeit sehe ich auch nicht.
Und ich glaube nicht das es ander Hp liegt.
..und das weißt du woher? Bist du im Team oder hast den Sourcecode
vom Tabbed Inv. gesehen? Denke eher nicht.
10/20/2012 22:03 uKn0w'#7
Ich wäre ja immer noch dafür das Leute die sich mit Sql auskennen ein Fixx tut, über Deadlocks schreiben aber naja.
Wir haben auch seit kurzem die Deadlocks aber erst bei einem peak von 190 oder 200..
Es hat sich jedoch herausgestellt das einige Deadlocks auch durch die Hp ausgelöst wurden die daraufhin umgecoded wurde und jetz weniger Deadlocks entstehen.
Ich hoffe irgendjemand kann da was tun & damit mein ich nicht nur Twilight.
10/20/2012 22:22 xTwiLightx#8
Schlagwort: Indexes (auf deutsch Indizies)

An Marvin: Die Fehlerquelle liegt in den Datenbanken, das ist so schon richtig.

Quote:
Mir ist bewusst was Deadlocks sind, jedoch müsste ich dafür auf die Developer Edit. von MSSQL umsteigen um den Profiler nutzen zu können, welche jedoch bei mir zumindest Probleme zwischen HP und Webserver und der DB hatte.
Wüsste nicht, warum das so sein sollte.
SQL Server ist SQL Server. Die verschiedenen Versionen bieten nur andere Programe. Profiler ist soweit ich weiß überall dabei, nur bei Express nicht.
10/20/2012 22:40 alfredico#9
The issue is that two or more threads are accessing the table.
10/21/2012 00:00 dennisdra#10
Quote:
Originally Posted by Marvin' View Post
Jo viel Glück, aber wenn Deadlocks schon nach ~20 Usern kommen,
dann muss man ziemlich hart was verbockt haben. Leider muss man sich
auch mit dem SQL-Profiler auskennen.

Ich würde das Tabbed Inventory vorrübergehend entfernen, falls das möglich ist.

Ich sag mal so Marvin, die Deadlocks kommen wenn's hochkommt 1x pro Stunde und das bei max. 2 Usern. Deadlocks können auch bei 2 Leuten enstehen, von daher sehe ich da kein Bezug auf die Useranzahl.

Wir sind eh in der Open Beta, von daher wird das sofern uns das möglich ist gefixt, denn auf's Tabbed Inventory werden wir nicht verzichten.

@Twilight

Danke das du dich doch noch zu Worte gemeldet hast, werde das ganze mal nachlesen.
10/21/2012 04:28 Мarvin#11
Quote:
Originally Posted by xTwiLightx View Post
An Marvin: Die Fehlerquelle liegt in den Datenbanken, das ist so schon richtig.
Das stimmt schon, nur sehe ich es einfach so:
x-beliebig andere (volle) Server haben/hatten nie Probleme damit gehabt,
jetzt fummelt jeder am Source rum und sie entstehen .. (?)

Aber gut: Solange das Unschreiben der Datenbank funktioniert, ist doch
soweit alles okay. :D


Quote:
Originally Posted by dennisdra View Post
Ich sag mal so Marvin, die Deadlocks kommen wenn's hochkommt 1x pro Stunde und das bei max. 2 Usern. Deadlocks können auch bei 2 Leuten enstehen, von daher sehe ich da kein Bezug auf die Useranzahl.

Wir sind eh in der Open Beta, von daher wird das sofern uns das möglich ist gefixt, denn auf's Tabbed Inventory werden wir nicht verzichten.
Nunja, ich wünsch dir dann noch viel Erfolg :D
10/21/2012 05:19 Мentus#12
Quote:
Originally Posted by dennisdra View Post
Ich sag mal so Marvin, die Deadlocks kommen wenn's hochkommt 1x pro Stunde und das bei max. 2 Usern. Deadlocks können auch bei 2 Leuten enstehen, von daher sehe ich da kein Bezug auf die Useranzahl.

Wir sind eh in der Open Beta, von daher wird das sofern uns das möglich ist gefixt, denn auf's Tabbed Inventory werden wir nicht verzichten.

@Twilight

Danke das du dich doch noch zu Worte gemeldet hast, werde das ganze mal nachlesen.
Du verstehst es anscheinend etwas falsch, wenn du mehr User hast, ist die Chance das du Deadlocks kriegst halt viel höher, da deine Datenbank viel mehr beansprucht wird.
1x Pro Std bei 2 Usern ist extrem viel, ich hatte auf SP gerade mal bei 200++ User'n online gerade ma alle 5 Stunden ein Deadlock oder so, am Ende dann garkeine mehr ( hi Twi :3 )

Ich hoffe Twilight kann dir weiter helfen, weil wenns so weiter geht dann ... :(
10/22/2012 11:11 Jopsi332#13
Ich glaub eher es liegt an eurem Gürtel System das ihr da nicht den Datenbank server richtig angepasst habt(wie wenn man den Pocket vergrößert kommen deadlocks)
10/22/2012 13:29 dennisdra#14
Quote:
Originally Posted by Jopsi332 View Post
Ich glaub eher es liegt an eurem Gürtel System das ihr da nicht den Datenbank server richtig angepasst habt(wie wenn man den Pocket vergrößert kommen deadlocks)
Die Deadlocks kamen schon bevor das Gürtel System überhaupt programmiert war ^^
Das Tabbed Inventory war eins der ersten Systeme die fertig programmiert waren, der Gürtel kam erst später dazu.
10/22/2012 15:29 Jopsi332#15
Quote:
Originally Posted by dennisdra View Post
Die Deadlocks kamen schon bevor das Gürtel System überhaupt programmiert war ^^
Das Tabbed Inventory war eins der ersten Systeme die fertig programmiert waren, der Gürtel kam erst später dazu.
ok das konnte ich ja jetz nicht wissen ;D

war nur mein gedanke weil bei fast allen max speicher änderungen nacher deadlocks kommen