APAR status
Closed as program error.
Error description
A Java User Defined Node (UDN) is called twice in a message flow with other nodes inbetween. When the flow enters the evaluate method of the second instance, the flow rolls back and does not show an exception. catch( MbException ex ) was added to the code to capture the exception and the following is produced in the trace: <com.ibm.broker.plugin.MbBrokerException source:BIPv610 key:4374 message:[BIPv610:4374]BIP4374S: An unexpected exception has occurred in the Java API framework. The error is also dependant on the number of nodes (any type) between the two Java Nodes. The more nodes there are, the greater the likelihood of failure. The cause of the failure is a system stack overflow error. The problem appears to be that the default Java stack size is not big enough to accommodate the large number of nodes between the two instances of the Java user-defined node. Also, The posix standard does not include an API that allows you to determine it dynamically, thus preventing a dynamic change of the stack.
Local fix
It is possible to add the following Java env. variable to the brokers ENVFILE to increase the Java Stack size: IBM_JAVA_OPTIONS=-Xmso<size> ie., IBM_JAVA_OPTIONS=-Xmso1048576 (which is 1 MB) The EG will need to be restarted to pick up the change.
Problem summary
**************************************************************** * USERS AFFECTED: All users of WebSphere Message Broker on * * Unix and z/OS using large C/Java stack * * sizes. * **************************************************************** * PROBLEM DESCRIPTION: A Java stackoverflow may occur if the * * C stack is larger than the Java stack * * size. * **************************************************************** * RECOMMENDATION: * **************************************************************** The JVM only attempts to determine the Java stack size on the Windows operating system. For all other platforms, it assumes that the stack size will be the same as the value set with with the Java -Xmso option. If the C thread stack size grows beyond this value and the thread then calls into Java, the stackoverflow exception will occur.
Problem conclusion
WebSphere Message Broker has been modified so that the size of the Java stack is set to the same size as the C stack before the C thread calls into Java.
Temporary fix
Comments
APAR Information
APAR number
PK96849
Reported component name
WMB Z/OS V6
Reported component ID
5655M7400
Reported release
100
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2009-09-22
Closed date
2009-12-30
Last modified date
2014-08-06
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Modules/Macros
BIP610DQ BIP610DR BIP610DS BIP610DT BIP610DU BIP610DV BIP610DW BIP610DX BIP610DY BIP610DZ BIP610E0 BIP610 ***This field was truncated. To obtain the full apar record, please contact your local support center.***
Fix information
Fixed component name
WMB Z/OS V6
Fixed component ID
5655M7400
Applicable component levels
R100 PSY
UP
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M"},"Platform":[{"code":"PF054","label":"z Systems"}],"Version":"6.1"}]
Document Information
Modified date:
24 October 2021