2012-10-12 73 views
2

我正在使用Message Broker 8和MQ 7.當我嘗試在消息流中使用映射節點時,我得到一個java.lang.RuntimeException。爲什麼映射節點獲取java.lang.RuntimeException?

以下是事件查看器顯示:

(BROKER8.default) The map script generation for QName ''{practica}:CambioFecha'' has failed, with the following details: ''java.lang.RuntimeException: ''. 

The generation of the map has failed. 

Review and resolve the problems indicated in the message from the map generation. 

完整的異常堆棧是:

ExceptionList: (['MQROOT' : 0xe052600] 
     (0x01000000:Name):RecoverableException = (
     (0x03000000:NameValue):File     = 'F:\build\S000_P\src\DataFlowEngine\PluginInterface\ImbJniNode.cpp' (CHARACTER) 
     (0x03000000:NameValue):Line     = 1170 (INTEGER) 
     (0x03000000:NameValue):Function    = 'ImbJniNode::evaluate' (CHARACTER) 
     (0x03000000:NameValue):Type     = 'ComIbmMSLMappingNode' (CHARACTER) 
     (0x03000000:NameValue):Name     = 'practica/DATAGRAMA#FCMComposite_1_7' (CHARACTER) 
     (0x03000000:NameValue):Label    = 'practica.DATAGRAMA.Cambio Formato Fecha' (CHARACTER) 
     (0x03000000:NameValue):Catalog    = 'BIPmsgs' (CHARACTER) 
     (0x03000000:NameValue):Severity    = 3 (INTEGER) 
     (0x03000000:NameValue):Number    = 2230 (INTEGER) 
     (0x03000000:NameValue):Text     = 'Caught exception and rethrowing' (CHARACTER) 
     (0x01000000:Name ):RecoverableException = (
      (0x03000000:NameValue):File     = 'MbErrorHandler.java' (CHARACTER) 
      (0x03000000:NameValue):Line     = 146 (INTEGER) 
      (0x03000000:NameValue):Function    = 'evaluate' (CHARACTER) 
      (0x03000000:NameValue):Type     = '' (CHARACTER) 
      (0x03000000:NameValue):Name     = '' (CHARACTER) 
      (0x03000000:NameValue):Label    = '' (CHARACTER) 
      (0x03000000:NameValue):Catalog    = 'BIPmsgs' (CHARACTER) 
      (0x03000000:NameValue):Severity    = 3 (INTEGER) 
      (0x03000000:NameValue):Number    = 3946 (INTEGER) 
      (0x03000000:NameValue):Text     = 'Caught BrokerXCIStaticException' (CHARACTER) 
      (0x01000000:Name ):Insert    = (
      (0x03000000:NameValue):Type = 5 (INTEGER) 
      (0x03000000:NameValue):Text = '{practica}:CambioFecha' (CHARACTER) 
     ) 
      (0x01000000:Name ):Insert    = (
      (0x03000000:NameValue):Type = 5 (INTEGER) 
      (0x03000000:NameValue):Text = 'java.lang.RuntimeException: ' (CHARACTER) 
     ) 
      (0x01000000:Name ):RecoverableException = (
      (0x03000000:NameValue):File  = 'MbErrorHandler.java' (CHARACTER) 
      (0x03000000:NameValue):Line  = 310 (INTEGER) 
      (0x03000000:NameValue):Function = 'throwableToMbException' (CHARACTER) 
      (0x03000000:NameValue):Type  = '' (CHARACTER) 
      (0x03000000:NameValue):Name  = '' (CHARACTER) 
      (0x03000000:NameValue):Label = '' (CHARACTER) 
      (0x03000000:NameValue):Catalog = 'BIPmsgs' (CHARACTER) 
      (0x03000000:NameValue):Severity = 3 (INTEGER) 
      (0x03000000:NameValue):Number = 3949 (INTEGER) 
      (0x03000000:NameValue):Text  = 'Caught BrokerXCIStaticException' (CHARACTER) 
      (0x01000000:Name ):Insert = (
       (0x03000000:NameValue):Type = 5 (INTEGER) 
       (0x03000000:NameValue):Text = 'java.lang.RuntimeException: 

    ' (CHARACTER) 
      ) 
     ) 
     ) 
    ) 
    ) 

整個信息流是工作的罰款。所以,我認爲這不是映射節點的錯誤。另一個細節,在其他流程中,映射節點完全不起作用,並給出相同的錯誤。我不知道可能是什麼問題。也許是一個JRE錯誤?

有什麼想法?

謝謝!

蘇埃

+1

MQ Broker正在使用的JVM的java -version輸出是什麼? –

+0

謝謝。我會檢查它。 – brokermq

+0

這是輸出: Java版本 「1.6.0」 的Java(TM)SE運行時環境(建立pwa6460sr9fp1ifix-20110511(SR9 FP1 + IZ9755 2)) IBM J9 VM(建2.4,JRE 1.6.0 IBM J9 2.4的Windows 7 amd64-64 jvmwa6460sr9-20110 203_74623(JIT啓用,啓用AOT) J9VM - 20110203_074623 JIT - r9_20101028_17488ifx3 GC - 20101027_AA) JCL - 20110203_01 – brokermq

回答

6

這是最可能是由於在64臺機器的大Java堆大小,因爲所有的引用是較大的4個字節。要使其工作,你可以簡單地在32位經紀人運行或嘗試以下任一 -

  1. 使用Xcompressedrefs(關於它的解釋是在這裏 -

http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.diagnostics.60%2Fdiag%2Funderstanding%2Fmm_compressed_references.html

一)在代理提示

mqsichangeproperties來--broker名稱 - -e --EG名稱 - -o ComIbmJVMManager -n執行以下命令jvmSystemProperty -v \ 「 - Xcompressedrefs \」

b)中驗證的JVM選項成功地應用於

mqsireportproperties --broker名稱 - -e --EG名稱 - -o ComIbmJVMManager -n jvmSystemProperty

該系統應顯示 -

-Xcompressedrefs

c)重新啓動執行組

  1. 增加JVM存儲器,默認是256MB a)執行以下命令

mqsichangeproperties來--broker名稱 - -e - EG名稱 - -o ComIbmJVMManager -n jvmMaxHeapSize -v 536870912

b)中驗證的JVM OPTIO n被成功地應用於

mqsireportproperties --broker名稱 - -e --EG名稱 - -o ComIbmJVMManager -n jvmMaxHeapSize

c)重新啓動執行組

希望這幫助

+0

非常感謝您的回覆。我會盡量使用你的方法。不是一個解決方案,但我不得不創建一個新的代理和它的隊列管理器,並沒有改變流程......他們工作......我不知道到底發生了什麼,但似乎代理商已經損壞了像那樣。 – brokermq