Problema

I seguenti errori appaiono nei log degli errori dell'autore:

22.01.2008 12:54:29 ERROR delivery: Unhandled Exception: com.day.cq.engine.ServiceException: /usr/local/day/cq-4.2/author/data/author/crx/workspaces/live_author/blobs/f6/6a/562772914484980cb2f403e8c920/1.68.0 (Too many open files): /usr/local/day/cq-4.2/author/data/author/crx/workspaces/live_author/blobs/f6/6a/562772914484980cb2f403e8c920/1.68.0 (Too many open files) 23.01.2008 12:37:42 ERROR jmx: IO Problem parsing descriptor for com.day.cq.util.scheduler.Event java.io.FileNotFoundException: /usr/local/day/cq-4.2/author/data/author/bin/classes/com/day/cq/util/scheduler/Event.xml (Too many open files)

23.01.2008 12:48:38 ERROR webdav: Put failed: Too many open files 23.01.2008 12:48:40 ERROR webdav: Put failed: Too many open files 23.01.2008 12:49:14 ERROR webdav: Put failed: Too many open files 23.01.2008 12:50:59 ERROR adapter: Error while updating digest: java.io.FileNotFoundException: /usr/local/day/cq-4.2/author/data/author/crx/workspaces/live_author/blobs/59/94/22047a324f25bb11674aa01a7de7/1.177.0 (Too many open files) 23.01.2008 12:50:59 ERROR adapter: Error while updateing digest: java.io.FileNotFoundException: /usr/local/day/cq-4.2/author/data/author/crx/workspaces/live_author/blobs/f3/cf/f4cc11f84023a4f498cc35be08b2/1.177.0 (Too many open files)

Quando si verificano questi errori, gli utenti possono comunque accedere all'autore. Tuttavia, la pagina mostra elementi mancanti, X rosse per le immagini, e via dicendo, quindi l'autore non è utilizzabile. Poi, è necessario arrestare manualmente e riavviare i processi dell'autore.

Soluzione

Cambia questo tipo di codice in qualcosa di simile:

try { InputStream ins = atom.getStream(); layer = new Layer(ins); }catch(Exception e) { // Log: exception } finally { try { if ( ins != null ) { ins.close(); ins = null; } } catch (IOException ex) { // Log: Cannot close input stream. } }

Informazioni aggiuntive

Questo errore si verifica quando il file contiene costrutti come i seguenti:

layer = new Layer(atom.getStream());

atom.getStream apre un canale, ma non lo richiude.

Questo prodotto è concesso in licenza in base alla licenza di Attribuzione-Non commerciale-Condividi allo stesso modo 3.0 Unported di Creative Commons.  I post su Twitter™ e Facebook non sono coperti dai termini di Creative Commons.

Note legali   |   Informativa sulla privacy online