2016-04-03 30 views
2

Ben IBM MQ kullanıyorum gelen kodu ve queue bir mesaj koyarak ve ben örneğin hata kodları yakalamak gerekir iken:Yakalama MQ hata java

MQJE001: Completion Code '2' Reason '2035' 

bu hata kodunu okuyor Benim sorunum, benim java programı okur tarafından çıkışı: hiçbir hata kodu varsa

BufferReader reader = new BufferReader(new InputStreamReader(processSH.getInputStream())); // processSH - the process that is putting message on queue 

ben bu şekilde çıkış okuyabilir ama kullanarak okuyamıyorum:

String line = null; 
while(line.reader.readLine()) != null){ 
    system.out.println(line) // prints nothing in case of error 
} 

Tüm yardımcılara teşekkürler!

+1

İletileri koymak için hangi MQ API kullanıyorsunuz? Java için uygun MQ sınıflarını kullandığınızı sanmıyorum çünkü bu API, RC'yi içeren MQExceptions'ı atar. –

cevap

1

Sorun bu kod bloğunda olduğunu düşünüyorum:

String line = null; 
while(line.reader.readLine()) != null){ 
    system.out.println(line) // prints nothing in case of error 
} 

Ben bunu derlemek için var olduğundan bile emin değilim. reader, String'un bir özelliği değildir. O çizgi okumak gerektiğini düşünüyorum:

while(line = reader.readLine()) != null){

+0

Sonuç çalışılıyor ve yayınlanıyor. –

+0

Hayır, bu özel durumu yakalayamıyorum, programım yalnızca MQ'yu çalıştıran sh okur. –

+0

Denememe izin verin, sonucu yayınlayacağım. –

0

kullandığım exception bu tür yakalamak için:

BufferReader errorReader = new BufferReader(new InputStreamReader(processSH.getErrorStream())); 

MQ hataları bazı durumlarda ErrorStream olabilir.

Yardımcı olur umarım.