Heim  >  Artikel  >  Datenbank  >  So lösen Sie den durch c3p0 verursachten Deadlock

So lösen Sie den durch c3p0 verursachten Deadlock

一个新手
一个新手Original
2017-09-08 10:54:092126Durchsuche

Der Code wurde lokal getestet und war korrekt, also habe ich ihn zum Testen auf den externen Server gelegt, und ein Fehler wie dieser ist aufgetreten

com.mchange.v2.async.ThreadPoolAsynchronousRunner -466510
78 [Timer-18] WARN  com.mchange.v2.async.ThreadPoolAsynchronousRunner  - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1c17bd4 -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!

Ich war verwirrt, als ich es sah Was soll ich tun? Warum ist es zu einer solchen Situation gekommen?

Meine Antwort ist:

Weil die Anzahl der Verbindungen zum Die Datenbank ist begrenzt. Jedes Mal, wenn die Anwendung C3p0 startet, wird die Datenbankverbindung belegt, um den C3p0-Verbindungspool zu füllen. Wenn die Datenbankressourcen belegt sind, wird ein Deadlock gemeldet, da die gemeinsam genutzten Ressourcen nicht abgerufen werden können.

Ändern Sie die maximale Anzahl der Verbindungen und die Anzahl der Erstverbindungen in der entsprechenden Konfigurationsdatei:

Vor der Änderung:

<property name="maxPoolSize" value="100" />  
<property name="initialPoolSize" value="2" />

Nach der Änderung:

<property name="maxPoolSize" value="1" />  
<property name="initialPoolSize" value="1" />

Erneut bereitstellen und ausführen, ok!

Das obige ist der detaillierte Inhalt vonSo lösen Sie den durch c3p0 verursachten Deadlock. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:AIO-Analyse in OracleNächster Artikel:AIO-Analyse in Oracle