2017-12-11 202 views
6

Uygulamamda, HornetQ 2.4.1'in mesaj günlüğü dosyalarını (bazen binlerce) biriktirdiğini fark ettim. JMS Kuyrukları üzerinden HornetQ kullanıyorum ve kullanıyoruz Wildfly 8.2. Normalde, sunucu örneğini başlatırken, HornetQ 3 mesajlaşma günlüklerine ve bir kilit dosyasına sahip olacaktır.HornetQ Kalıcılık dosyaları silmiyor

HQ221014: 54% loaded

, sunucu yükleri sadece iyi dosyaları kaldırarak:

mesajı dergi dosyalarının kazık yukarı sunucuyu yeniden başlatmadan, biz bildiren bir günlüğünü göreceksiniz sorunlara yol açıyor. Bazıları denedim ve sanki bu dosyalardaki iletiler zaten işlenmiş gibi görünüyor, ancak neden zamanla yığılmaya devam ettiklerini bilmiyorum.

Düzenleme 1: İletileri kabul etmediğimizi gösteren this link buldum. Ancak, oturumu connection.createSession(false,Session.AUTO_ACKNOWLEDGE); gibi oluşturduğumuzda.

Çözüm aramaya devam edeceğim.

+1

XA hareketleri veya JMS işlemleri kullanıyor musunuz? Kaynak bağdaştırıcınızı standalone.xml dosyasında nasıl tanımlarsınız? – user2612030

+0

XA İşlemlerini kullanıyorum. Kaynak bağdaştırıcısıyla ilgili daha fazla bilgi alacağım. – dimwittedanimal

+1

XA işlemlerini kullanıyorsanız, yukarıdaki oturumda ne yaptığınız önemli değil. XA işlemi gerçekleştirildiğinde mesajlar onaylanmalıdır. HornetQ hakkında bir şey bilmiyorum ama genel olarak bu, birçok ürünün biraz buggy olduğu bir alandır. – user2612030

cevap

0

Bu durumun neden olduğunu (bir nedenle veya başka bir durumda, şu anda sunucu yüklemesi veya ağ askıda kalması gerektiğine inanıyorum) afterDelivery() yöntemini arama hatasıyla anlamaya geldim. Bu sıraya sık sık girmeyerek bunu ele alıyorum. Zarif değil, ama amacına hizmet ediyor.

günlüklerinde buldum HornetQ mesajları aşağıdaki bakınız:

HQ152006: Unable to call after delivery 
javax.transaction.RollbackException: ARJUNA016053: Could not commit transaction. at org.jboss.as.ejb3.inflow.MessageEndpointInvocationHandler.afterDelivery(MessageEndpointInvocationHandler.java:87) 

HQ222144: Queue could not finish waiting executors. Try increasing the thread pool size 

HQ222172: Queue jms.queue.myQueue was busy for more than 10,000 milliseconds. There are possibly consumers hanging on a network operation 
İlgili konular