|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
BIP2106E: Unable to allocate memory ERROR |
« View previous topic :: View next topic » |
Author |
Message
|
jlalbor |
Posted: Wed Sep 01, 2004 6:22 pm Post subject: BIP2106E: Unable to allocate memory ERROR |
|
|
Apprentice
Joined: 18 Feb 2003 Posts: 38
|
I have the following environment:
MQ v5.3 CSD07
WBIMBv5 CSD3
AIX 5.1 level maintenance 5
2 GB Memory
DB2 v 7.2 Fixpack 9
I have a message flow that:
1. Input node that recieves an XML
2. Compute Node that transforms XML to BLOB with the ASBITSTREAM function
3. OutputNode to a Queue
I am using the Message Set definition of an EDIFACT message that comes in an example in the Broker Toolkit
The message flow recieves a message that contains an EDIFACT in the XML format defined by de EDIFACT MessageSet (The message domain defined in the input node is MRM not XML)
Then the compute node transforms de EDIFACT in XML to a BLOB representation of the EDIFACT
The result is sent as a new message.
The ESQL code of the compute node is this:
Quote: |
BROKER SCHEMA WBI_Gigante
CREATE COMPUTE MODULE convierteEDIMRMR_TO_BLOB
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
CALL CopyMessageHeaders();
--CALL CopyEntireMessage();
SET OutputRoot.Properties.MessageDomain = 'BLOB';
SET OutputRoot.BLOB.BLOB = ASBITSTREAM(InputRoot.MRM OPTIONS RootBitStream ENCODING InputRoot.MQMD.Encoding CCSID InputRoot.MQMD.CodedCharSetId SET InputRoot.Properties.MessageSet TYPE InputRoot.Properties.MessageType);
RETURN TRUE;
END;
CREATE PROCEDURE CopyMessageHeaders() BEGIN
DECLARE I INTEGER 1;
DECLARE J INTEGER CARDINALITY(InputRoot.*[]);
WHILE I < J DO
SET OutputRoot.*[I] = InputRoot.*[I];
SET I = I + 1;
END WHILE;
END;
CREATE PROCEDURE CopyEntireMessage() BEGIN
SET OutputRoot = InputRoot;
END;
END MODULE; |
The flow works fine, but the problem is that after the DataFlowEngine has procesed about 200 hundred messages, the broker sends an BIP2106E: Unable to allocate memory error in the syslog.user log
The complete error is:
Quote: |
Sep 1 19:12:15 sistda MQSIv500[296106]: (BROKERSISTDA_01.OCEdi)[5141]BIP2121E: The thread bootstrap code caught an unhandled exception on thread '5141'. : BROKERSISTDA_01.8605a1b7-fe00-0000-0080-a12adf5430c3: /build/S500_P/src/CommonServices/rios_aix_4/ImbOsThread.cpp: 229: ImbOsThread::threadBootStrap: :
Sep 1 19:12:15 sistda MQSIv500[296106]: (BROKERSISTDA_01.OCEdi)[5141]BIP2106E: Unable to allocate memory during operation performed by object 'WBI_Gigante.generaEDIOC.xmlEDIToMRM'. : BROKERSISTDA_01.8605a1b7-fe00-0000-0080-a12adf5430c3: /build/S500_P/src/DataFlowEngine/ImbCommonBuffer.cpp: 101: ImbCommonBuffer::allocateBuffer: ComIbmComputeNode: WBI_Gigante/generaEDIOC#FCMComposite_1_7
Sep 1 19:12:26 sistda MQSIv500[296106]: (BROKERSISTDA_01.OCEdi)[1]BIP2204I: Execution group using process '296106' thread '1' stopped. : BROKERSISTDA_01.8605a1b7-fe00-0000-0080-a12adf5430c3: /build/S500_P/src/DataFlowEngine/ImbMain.cpp: 624: main: :
Sep 1 19:12:27 sistda MQSIv500[297372]: (BROKERSISTDA_01)[1800]BIP2060W: The broker has detected that the Execution Group OCEdi, process ID 296106, has shutdown. : BROKERSISTDA_01.agent: /build/S500_P/src/AdminAgent/ImbAdminAgent.cpp: 3869: ImbAdminAgent::startAndMonitorADataFlowEngine: :
Sep 1 19:12:27 sistda MQSIv500[296108]: (BROKERSISTDA_01.OCEdi)[1]BIP2201I: Execution Group started: process '296108'; thread '1'; additional information: brokerName 'BROKERSISTDA_01'; executionGroupUUID '8605a1b7-fe00-0000-0080-a12adf5430c3'; executionGroupLabel 'OCEdi'; defaultExecutionGroup 'false'; queueManagerName 'QMBKSISTDA.01'; trusted 'false'; dataSourceName 'WBRKBKDB'; userId 'mqm'; migrationNeeded 'false'; brokerUUID 'c672d753-fe00-0000-0080-a12adf5430c3'; filePath '/usr/opt/mqsi'; workPath '/var/mqsi'. : BROKERSISTDA_01.8605a1b7-fe00-0000-0080-a12adf5430c3: /build/S500_P/src/DataFlowEngine/ImbMain.cpp: 235: main: :
Sep 1 19:13:12 sistda MQSIv500[296108]: (BROKERSISTDA_01.OCEdi)[5141]BIP2121E: The thread bootstrap code caught an unhandled exception on thread '5141'. : BROKERSISTDA_01.8605a1b7-fe00-0000-0080-a12adf5430c3: /build/S500_P/src/CommonServices/rios_aix_4/ImbOsThread.cpp: 229: ImbOsThread::threadBootStrap: :
Sep 1 19:13:12 sistda MQSIv500[296108]: (BROKERSISTDA_01.OCEdi)[5141]BIP2106E: Unable to allocate memory during operation performed by object 'WBI_Gigante.generaEDIOC.xmlEDIToMRM'. : BROKERSISTDA_01.8605a1b7-fe00-0000-0080-a12adf5430c3: /build/S500_P/src/DataFlowEngine/ImbCommonBuffer.cpp: 101: ImbCommonBuffer::allocateBuffer: ComIbmComputeNode: WBI_Gigante/generaEDIOC#FCMComposite_1_7
Sep 1 19:13:17 sistda MQSIv500[296108]: (BROKERSISTDA_01.OCEdi)[1]BIP2204I: Execution group using process '296108' thread '1' stopped. : BROKERSISTDA_01.8605a1b7-fe00-0000-0080-a12adf5430c3: /build/S500_P/src/DataFlowEngine/ImbMain.cpp: 624: main: :
Sep 1 19:13:18 sistda MQSIv500[297372]: (BROKERSISTDA_01)[1800]BIP2060W: The broker has detected that the Execution Group OCEdi, process ID 296108, has shutdown. : BROKERSISTDA_01.agent: /build/S500_P/src/AdminAgent/ImbAdminAgent.cpp: 3869: ImbAdminAgent::startAndMonitorADataFlowEngine: :
Sep 1 19:13:18 sistda MQSIv500[296110]: (BROKERSISTDA_01.OCEdi)[1]BIP2201I: Execution Group started: process '296110'; thread '1'; additional information: brokerName 'BROKERSISTDA_01'; executionGroupUUID '8605a1b7-fe00-0000-0080-a12adf5430c3'; executionGroupLabel 'OCEdi'; defaultExecutionGroup 'false'; queueManagerName 'QMBKSISTDA.01'; trusted 'false'; dataSourceName 'WBRKBKDB'; userId 'mqm'; migrationNeeded 'false'; brokerUUID 'c672d753-fe00-0000-0080-a12adf5430c3'; filePath '/usr/opt/mqsi'; workPath '/var/mqsi'. : BROKERSISTDA_01.8605a1b7-fe00-0000-0080-a12adf5430c3: /build/S500_P/src/DataFlowEngine/ImbMain.cpp: 235: main: : |
What is happening is that the Execution Group is not releasing the memory it is consuming, so when there is not more memory available, the error is thrown and the Execution Group re-starts. When the Executiuon group re-starts the memory is release, and the flow works fine for around another 200 messages.
Ive modify de bipbroker and the DataFlowEngine executables so they use 1GB of memory, but the problem continues, the difference is that now it takes like 400 message to throw the error.
I dont mind if the Execution Group re-starts, but the problem is that we are losing those message that the broker was processing when the Execution gruop re-starts.
Is there something i need to configure in the AIX or in the broker?
Is there a fix pack we need to install?
Can anyone help me please? |
|
Back to top |
|
 |
mgk |
Posted: Thu Sep 02, 2004 12:04 am Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
Please raise a PMR for this issue with your IBM rep. The broker should not do this.
Cheers, _________________ MGK
The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. |
|
Back to top |
|
 |
titus |
Posted: Wed Jan 12, 2005 7:28 am Post subject: |
|
|
Novice
Joined: 14 Oct 2002 Posts: 23
|
Hello
Did you guys solved this problem?. We are also getting same error in out AIX broker.
Please advice us what to do in order to correct this one |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|