First I would like to credit Steve Fraser for finding this information out today and letting me know about it.
Steve built a test to purposely find out if 4 times the worst case HL7 claims file would break our AIX 5.3 Cloverleaf 5.6rev2 process.
In his test case he created a complex 8 megabyte claim message that consumed 412 megabytes of process memory when translated which he learned exceed the AIX 5.3 default of 256 megabytes.
His xlate test crashed the process with the follwoing error message
[pti :sign:WARN/0:t_stevef_xlate:11/14/2012 10:58:46] Thread 1 received signal 11
[pti :sign:WARN/0:t_stevef_xlate:11/14/2012 10:58:46] PC = 0xf014
unable to alloc 28 bytes
which sounded alot like what I see in this clovertech post.
Steve Fraser’s search for a solution led him to this URL
<a href="http://pic.dhe.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=%2Fcom.ibm.itame3.doc_5.1%2Fam51_perftune113.htm” class=”bbcode_url”>http://pic.dhe.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=%2Fcom.ibm.itame3.doc_5.1%2Fam51_perftune113.htm
and discoverd even though the /etc/security/limits settings might be large enough that the environment variable ( LDR_CNTRL ) hidden from us was restricting us.
In our case we were able to get the test to work by running the following command at an xterm prompt
export LDR_CNTRL=MAXDATA=0x20000000
# start_process (which Steve told me was the xlt tester )
unset LDR_CNTRL
this increased our AIX data segment from 256MB to 512MB allowing our test to consume the 412MBs it needed to run without crashing the process.
We just learned of this method today and don’t have advice on how to utilize it.
We will need to determine if we use this, what size do we increase to and the method we will us to do it.
We are also preparing to upgrade to AIX 7.1 Cloverleaf 6.0 so might wait to see how that LPAR perfoms first.
I did modify our start host server script to include the following comments to make sure I don’t completely forget what was discovered today if we get around to using it.
#!/usr/bin/ksh
rm -f $HCIROOT/server/.exit
cd $HCIROOT/server/logs
myDISPLAY=$DISPLAY
unset DISPLAY
# here is an environment variable that can be set if a process uses to much paging space
# that is discussed at this URL: http://pic.dhe.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=%2Fcom.ibm.itame3.doc_5.1%2Fam51_perftune113.htm
# In this example the process memory limit is set to 512 megabytes,
# which was big enough to process an 8 megabyte HL7 claim that took 412 megabytes of process memory
# which was 4 times bigger than our worst case
#
# export LDR_CNTRL=MAXDATA=0x20000000
#
hciss -s h
export DISPLAY=$myDISPLAY
# might need to unset the LDR_CNTRL when done
#
# unset LDR_CNTRL
#
This is just a thought of how we might use it and not a recommendation because we have yet to discuss and investigate sufficiently at this point.
Even though that is our case, you might have immediate value of this knowledge and before we get to that point so I’m sharing something that might lead you to a solution.
Russ Ross
RussRoss318@gmail.com