2014-11-13 23 views
11

'Dobiş artık yok' Ben bu hatayı alıyorumH2 DB hata

"invited_users VALUES INTO ('id', user_name ') INSERT" db için yeni bir satır eklemek için çalışıyorum zaman:

yeni bir db aynı satır eklemek için çalıştı çünkü
General error: "java.lang.IllegalStateException: Chunk 2089 no longer exists [1.4.181/9]" 

Muhtemelen, db ile bazı sorunlar var - hata kayboldu.

Güncelleme 20 Kasım 2014

Müjde! H2 db geliştiricileriyle bağlantı kurdum ve bir sonraki sürümde bu hatayı düzelteceklerini öğrendim. https://groups.google.com/forum/#!topic/h2-database/i_GHXExjotc

Güncelleme 6 Aralık 2014

basit bir çözüm ekleyerek MVStore devre dışı bırakmaktır "; mv_store = false" veritabanı URL'ye.

Ancak, bu hile, eski db'ye ihtiyacınız varsa çalışmayacaktır. O (aracı Kurtar ile) Eski veritabanı ".mv.db" nin SQL komut dosyası oluşturmak için gereken bu aşmak için yerine .mv.db

ait .h2.db uzantılı, yeni bir veritabanı oluşturur ve sonra Bu betiği "runscript ..." kullanarak çalıştırın.

+0

Muhtemelen ilginç: https://www.mail-archive.com/[email protected]/msg16976.html ve https://groups.google.com/forum/#!topic/h2 -database/i1YwSTG8CS8 –

+0

@JimGarrison evet, teşekkürler. Zaten bu – klvtsov

+0

[Minimal, Tam ve Doğrulanabilir örnek] (https://stackoverflow.com/help/mcve) verin. – philipxy

cevap

5

1.4.182 sürümünde, muhtemelen bir öbek başvurusu yapılmadığında algılanan mekanizmada bir sorun vardır. Şu anda, bu reference counting çöp toplamadır: canlı sayfaları ve canlı alanı sayarak. Bu sıfıra ulaştığında, 45 saniye sonra bir yığın üzerine yazılabilir.

Basit bir çözüm, mv_store=false'u azaltma olarak kullanmak için veritabanı bağlantısını değiştirerek mv_store yerine page store depolama mekanizmasını kullanmaktır. MV_STORE seçeneği, sürüm 1.4.177 Beta'dan itibaren otomatik olarak etkinleştirilir.

By default, the MV_STORE option is enabled, so it is using the new MVStore storage. The MVCC setting is by default set to the same values as the MV_STORE setting, so it is also enabled by default. For testing, both settings can be disabled by appending ";MV_STORE=FALSE" and/or ";MVCC=FALSE" to the database URL.

+0

@PierAlexandreBouchard hiçbir erkek, bu geçici çözüm benim için işe yaramadı. Yeni bir veritabanı yaratıyor, ama eski olana ihtiyacım var. – klvtsov

+0

@PierAlexandreBouchard Bunun üstesinden gelmek mümkün mü? – klvtsov

+0

Satırları eskiden yeni veritabanına çoğaltmanız mümkün değil mi? –