Forms Runaway Process
I have a situation where some of the instances/services are still hanging even after the form is closed. The env I have is 9IASrel2 and Forms9i. This happens ooccasionaly and requires a restart of the forms server. Is there a praticular way to code the exit forms to avoid this or is this a bug. We did set the heart beat parameter in the Application Server but this is not a fix.
Thanks
Harsha
FORMS90_TIMEOUT will define the time after which a Forms process will "clean itself up" if it does not hear from the client.
Try this and also you may also need to educate your users to exit the Forms application in a "clean" manner and not by killing the browser.
Regards
Grant Ronald
Forms Product Management
Similar Messages
-
How to kill Forms Runaway Process using 95% CPU and running for 2 hours.
We had a situation at E-Business Suite customer (using Oracle VM server) where some of Form processes were not being cleared by form timeout settings automatically.
Also when user exits the form session from front end, the linux form process (PID) and DB session did not exit properly, so they got hung.
They were spiking CPU and memory usage and causing e-business suite to perform slowely and ultimately causing VM host to reboot the production VM guest (running on Linux).
We could see the form processes (PIDs) using almost 100% cpu with "top" command and running for a long time.
Also we verified those Form Sessions did not exist in the application itself.
ie. Using from Grid Control -> OAM-> Site Map -> Monitoring (tab) -> "Form Sessions".
It means that we could safely kill that form process from Linux using "kill -9 <PID>" command.
But that required a continuous monitoring and manual DBA intervention as customer is 24x7 customer.
So, I wrote a shell script to do the following;
• Cron job runs every half an hour 7 days a week which calls this shell script.
• Shell script runs and tries to find "top two" f60webmx processes (form sessions) using over 95% cpu with 2 minutes interval.
• If no process is found or CPU% is less than 95%, it exits and does nothing.
• If top process is found, it searches for its DB session using apps login (with hidden apps password file - /home/applmgr/.pwd).
a. If DB session is NOT found (which means form process is hung), it kills the process from unix and emails results to <[email protected]>
b. If DB session is found, it waits for 2 hours so that form process times automatically via form session timeout setting.
It also emails the SQL to check the DB session for that form process.
c. If DB session is found and it does not timeout after 2 hours,
it kills the process from unix (which in turn kills the DB session). Output is emailed.
This are the files required for this;
1. Cron job which calls the shell script looks like this;
# Kill form runaway process, using over 95% cpu having no DB session or DB session for > 2hrs
00,30 * * * * /home/applmgr/forms_runaway.sh 2>&1
2. SQL that this script calls is /home/applmgr/frm_runaway.sql and looks like;
set head off
set verify off
set feedback off
set pagesize 0
define form_client_PID = &1
select count(*) from v$session s , v$process p, FND_FORM_SESSIONS_V f where S.AUDSID=f.audsid and p.addr=s.paddr and s.process='&form_client_PID';
3. Actual shell script is /home/applmgr/forms_runaway.sh and looks like;
# Author : Amandeep Singh
# Description : Kills runaway form processes using more than 95% cpu
# and Form Session with no DB session or DB session > 2hrs
# Dated : 11-April-2012
#!/bin/bash
. /home/applmgr/.bash_profile
PWD=`cat ~/.pwd`
export PWD
echo "`date`">/tmp/runaway_forms.log
echo "----------------------------------">>/tmp/runaway_forms.log
VAR1=`top -b -u applmgr -n 1|grep f60webmx|grep -v sh|grep -v awk|grep -v top|sort -nrk9|head -2|sed 's/^[ \t]*//;s/[ \t]*$//'| awk '{ if ($9 > 95 && $12 = "f60webmx") print $1 " "$9 " "$11 " "$12; }'`
PID1=`echo $VAR1|awk '{print $1}'`
CPU1=`echo $VAR1|awk '{print $2}'`
TIME1=`echo $VAR1|awk '{print $3}'`
PROG1=`echo $VAR1|awk '{print $4}'`
PID_1=`echo $VAR1|awk '{print $5}'`
CPU_1=`echo $VAR1|awk '{print $6}'`
TIME_1=`echo $VAR1|awk '{print $7}'`
PROG_1=`echo $VAR1|awk '{print $8}'`
echo "PID1="$PID1", CPU%="$CPU1", Running Time="$TIME1", Program="$PROG1>>/tmp/runaway_forms.log
echo "PID_1="$PID_1", CPU%="$CPU_1", Running Time="$TIME_1", Program="$PROG_1>>/tmp/runaway_forms.log
echo " ">>/tmp/runaway_forms.log
sleep 120
echo "`date`">>/tmp/runaway_forms.log
echo "----------------------------------">>/tmp/runaway_forms.log
VAR2=`top -b -u applmgr -n 1|grep f60webmx|grep -v sh|grep -v awk|grep -v top|sort -nrk9|head -2|sed 's/^[ \t]*//;s/[ \t]*$//'| awk '{ if ($9 > 95 && $12 = "f60webmx") print $1 " "$9 " "$11 " "$12; }'`
PID2=`echo $VAR2|awk '{print $1}'`
CPU2=`echo $VAR2|awk '{print $2}'`
TIME2=`echo $VAR2|awk '{print $3}'`
PROG2=`echo $VAR2|awk '{print $4}'`
PID_2=`echo $VAR2|awk '{print $5}'`
CPU_2=`echo $VAR2|awk '{print $6}'`
TIME_2=`echo $VAR2|awk '{print $7}'`
PROG_2=`echo $VAR2|awk '{print $8}'`
HRS=`echo $TIME1|cut -d: -f1`
exprHRS=`expr "$HRS"`
echo "PID2="$PID2", CPU%="$CPU2", Running Time="$TIME2", Program="$PROG2>>/tmp/runaway_forms.log
echo "PID_2="$PID_2", CPU%="$CPU_2", Running Time="$TIME_2", Program="$PROG_2>>/tmp/runaway_forms.log
echo " ">>/tmp/runaway_forms.log
# If PID1 or PID2 is NULL
if [ -z ${PID1} ] || [ -z ${PID2} ]
then
echo "no top processes found. Either PID is NULL OR CPU% is less than 95%. Exiting...">>/tmp/runaway_forms.log
elif
# If PID1 is equal to PID2 or PID1=PID_2 or PID_1=PID2 or PID_1=PID_2
[ ${PID1} -eq ${PID2} ] || [ ${PID1} -eq ${PID_2} ] || [ ${PID_1} -eq ${PID2} ] || [ ${PID_1} -eq ${PID_2} ];
then
DB_SESSION=`$ORACLE_HOME/bin/sqlplus -S apps/$PWD @/home/applmgr/frm_runaway.sql $PID1 << EOF
EOF`
echo " ">>/tmp/runaway_forms.log
echo "DB_SESSION ="$DB_SESSION >>/tmp/runaway_forms.log
# if no DB session found for PID
if [ $DB_SESSION -eq 0 ] then
echo " ">>/tmp/runaway_forms.log
echo "Killed Following Runaway Forms Process:">>/tmp/runaway_forms.log
echo "-------------------------------------------------------------------">>/tmp/runaway_forms.log
echo "PID="$PID1", CPU%="$CPU1", Running Time="$TIME1", Program="$PROG1>>/tmp/runaway_forms.log
kill -9 $PID1
#Email the output
mailx -s "Killed: `hostname -a` Runaway Form Processes" [email protected] </tmp/runaway_forms.log
cat /tmp/runaway_forms.log
else
# If DB session exists for PID
if [ ${exprHRS} -gt 120 ]; then
echo $DB_SESSION "of Database sessions exist for this forms process-PID="$PID1". But its running for more than 2 hours. ">>/tmp/runaway_forms.log
echo "Process running time is "$exprHRS" minutes.">>/tmp/runaway_forms.log
echo "Killed Following Runaway Forms Process:">>/tmp/runaway_forms.log
echo "-------------------------------------------------------------------">>/tmp/runaway_forms.log
echo "PID="$PID1", CPU%="$CPU1", Running Time="$TIME1", Program="$PROG1>>/tmp/runaway_forms.log
kill -9 $PID1
#Email the output
mailx -s "`hostname -a`: Runaway Form Processes" [email protected] </tmp/runaway_forms.log
cat /tmp/runaway_forms.log
else
echo "Process running time is "$exprHRS" minutes.">>/tmp/runaway_forms.log
echo $DB_SESSION "of Database sessions exist for PID="$PID1" and is less than 2 hours old. Not killing...">>/tmp/runaway_forms.log
echo "For more details on this PID, run following SQL query;">>/tmp/runaway_forms.log
echo "-----------------------------------------------------------------------">>/tmp/runaway_forms.log
echo "set pages 9999 lines 150">>/tmp/runaway_forms.log
echo "select f.user_form_name, f.user_name, p.spid DB_OS_ID , s.process client_os_id,, s.audsid, f.PROCESS_SPID Forms_SPID,">>/tmp/runaway_forms.log
echo "to_char(s.logon_time,'DD-Mon-YY hh:mi:ss'), s.seconds_in_wait">>/tmp/runaway_forms.log
echo "from v\$session s , v\$process p, FND_FORM_SESSIONS_V f">>/tmp/runaway_forms.log
echo "where S.AUDSID=f.audsid and p.addr=s.paddr and s.process='"$PID1"' order by p.spid;">>/tmp/runaway_forms.log
mailx -s "`hostname -a`: Runaway Form Processes" [email protected] </tmp/runaway_forms.log
cat /tmp/runaway_forms.log
fi
fi
else
#if PID1 and PID2 are not equal or CPU% is less than 95%.
echo "No unique CPU hogging form processes found. Exiting...">>/tmp/runaway_forms.log
cat /tmp/runaway_forms.log
fi
If you have the same problem with some other unix and DB processes, the script can be easily modified and used.
But use this with thorough testing first (by commenting out <kill -9 $PID1> lines.
Good luck.
Edited by: R12_AppsDBA on 19/04/2012 13:10Thanks for sharing the script!
Hussein -
Hi All,
Is there a way to validate if a frmweb that consume alot of ressource is still active or a runaway process?
Any SQL query to validate this?
Thank you,
FelixGood morning Hussein,
When looking in OAM (OAM -> Site Map -> Monitoring tab -> Form Runtime Processes -> View Runaways), it seems like Oracle can detect them for you.
I tried to play with the metric but no forms ever came out. I guess I can assume, even if the form consume 45% of ressources, it was still "alive"?
Thank you,
Felix
Edited by: user8247865 on 13-Jul-2009 1:10 PM -
Attachment Buttons not coming in Task TS17900101 of HCM Forms and Process
Hi ,
We are using HCM Forms and process for changing employee organization unit which is linked with workflow for approvals.
In this workflow we are calling standard task TS17900101 .Till now every thing is working fine but the problem is with attachments as their is a requirement to show attachments button with this Approve and Reject Task. But as per my knowledge SAP has not given any option to attach documents with this task which is however only possibe through TS17900100.
So can u suggest any way to attach documents with Approve and Reject Task which is TS17900101.
Thanks,
RahulHi,
i have the same problem and no idea how to solve it.
Please let me know, what enhancing module pool code helped you
Thanks,
Galina -
Hi All,
I am working on design time tool for hr forms and processes.
I am copying the standard form for change in position attributes.
i have made the necessaryu changes in the form i copied from the standard one.
My issue is still do i need to install ISR libraryfor form layout?
I have actually cvopied the form scenario from the standard set up. So i just brought the fiels i want from stanadrd ISR Controls.
DO i still need to install ISR LIB?
Regards
MandeepHi,
I think you might have configured two different pages thatu2019s why it is not appearing in portal. According to my knowledge you configure whatever fields you want in one form. Depends on fields it will take two pages.
Just give a try. It may works out.
Regards,
G K -
HCM Proces & Forms - Mass process for OM
Hello experts,
I have a req. in which i have to
1) Create multiple Positions
2) Copy multiple Postions (upto 30)
3) Change multiple Positions(upto 30)
4)Delimit multiple Positions(upto 30)
The req. is to create mass OM process (like mass PA process or special payments).
Step1) As in mass PA process, user is able to select multiple employees, simillarly here user should be able toselect multiple positions.
Step2) As in mass PA process, after selecting multiple employees, a WD table comes (imn enter data stap), here also a WD able should come with all positions selected in previous step.
Step3) Once data for all the positions are saved , the corresponding action(cdelimit or change) for all the positions should be triggred in backend system.
Please help.
Regards,
Ashish GuptaOK. So I understand the requirement a bit more now. Ultimately you want 30 positions created but via one form and one workflow.
Ideally in a create mode you would like to save the data multiple times. i.e. put the save data task in a loop, the iterations of which would be governed by an entry on the form? (A 'Number of Instances' field for example).
I am not sure if it is possible to save the data multiple times - even if you are in create mode and therefore generating new positions. Maybe someone else can comment?
Either that or can you clone the process object within the workflow? I think it best to at least use the form to process one position as it will have all the standard error checking, even if you decided to copy the position from within the workflow (via a program exit on a task or a class based based business object?).
Cheers
Ian -
HCM forms and Processes - Adobe
Hi,
I am working on HCM forms and processes( not QISRs ). I want to populate a drop down list based on the selection of another dropdown list, how can we acheive this in Adobe forms. Should I go about configuring some back end generic service? if so how will the backend service get triggered based on my selection.. Any idea on this is highly appreciated
Thanks.Hi
To archive above functionality we can use below simple method, if u r expectig same functionality through operations and custom event give me some time i need to recall some functioality(At present i am unable to acces MY SAP)
Let my BADI name is Z_Positions .
Letu2019s define two attributes in my BADI like E_DATE and DD1.
For to understand better create one methods as same as input and out parameters of Get_Help_Values method.
So my methods is F4_Vac_Pos
Method:- F4_Vac_Pos
Read the entered value of the Effective date (by reading service datasets with passing key as filename =E_Date)
Once if we able to read the Effective date, cheek is initialize are not(value is there or not).
If it is not initialize go ahead else return.
If it is not initialize fill all vacant positions in DD1 based on by passing key as readied
Effective date.
Call this methods in get_help_values method.
From Configuration side:-
Created Effective_date and F4_DD1attributes.
Add your custom generic service to form (let assume service no is 200 ).
Go to the assignment of custom generic service; map the F4_DD1 form attributes to the BADI attribute DD1 and cheek default value and value help.
The same way map form Effective_date attribute to BADI E_date (donu2019t select value help option)
Now adobe java script:-
Write the below piece of code on click method of button
xfa.record.CONTROL_PARAM.ISR_EVENT.value = "USER_EVENT_CHECK";
ContainerFoundation_JS.SendMessageToContainer(event.target, "submit", "", "", "", "");
Data Flow:-
Once the date is selected, click on the Button. As we know already for every round trip get_help_values method will call. Now it will call.
As already effective date value is mapped to one of the custom badi attribute, so we are able to read this value through service data set.
While filling DD1 values we are filtering data based on effective date. Now at badi level we are filtered vacant position based on effective date.
As this one is mapped to F4_DD1 form attribute, once round trip is completed u will see filtered vacant position based on effective date. -
TS17900100 in HCM forms and processes
Hi All,
For HCM forms and processes certain standatrd task and workflow templates are provided.
Out of them of the tasks is TS17900100: Process Form. I suppose this task saves the infotypes in the backend system.
If we see the object method for this class in PFTC, it is CLASS:CL_HRASR00_WF_COMPONENTS & METHOD: WI_EXECUTION_VIA_R3_INBOX. But this method seems to be a dummy method. There is no ABAP code in this method.
Would you please let me know where is the actual code which is executed for this task.
Thanks
Sameer TapreNo, if I enter all the mandatory fields on the form then there is no problem. It allows me to move ahead and submit the form successfully.
As recommended by Siddharth, I tried debugging the message class and what I observed was it passes the complete_fieldname value as Personnel Subarea (I1008_BTRTL) and system expects it to be I1008-BTRTL.
SAP as a fallback tries to read description from the table T5ASRFSCNFLDT but it has a_form_scenario as blank and complete_fieldname has a concatenated value "Personnel Subarea (I1008_BTRTL)" instead of "I1008-BTRTL".
Not sure what am I missing which causes it to have this wrong error message.
Regards,
MK -
HCM FORMS and Process Initiator role
Hi,
Certain forms/process needs to be initiabed by only group of people,
Is it posible to restrict the process using the initiator role?
How to create the custom Initiator role in HCM Forms and Process?
Can i pass the directly custom intiator role as application parameter to the Iview?any other configuration is required to complete this requirement?
Thanks
Srikanth M
Edited by: srikanth chowdhary on Apr 28, 2010 6:17 AMHi Srikanth,
Yes it is possible to make the process initiate for a group.This can be achieved via roles in the process.But in case if you are using custom roles then you need to include it in the process .So that it is exclusive for that role alone.
For custom roles you need to create them in the processor role (yes configuration is required to be set up ).I don't think it is necessary to pass an application parameter for the custom role to the standard component.
Regards,
Aravind.P -
HCM forms and process with single workflow
Hi Experts,
Can we use single workflow for multiple form scenarios?
Actually we have some 10 scenarios with 20 forms. We planned to combine all the scenario's in a single workflow and use it in different form scenario.
Is it possible or we need to create a separate workflow for each process?
Thanks in advance,
Helps will be appreciated.Thanks for the reply Rick.
For normal workflows its fine. I would like to know for HCM forms and process will it allow or not?
HCM forms and process framework has come limitation's. Please check the below link.
http://help.sap.com/saphelp_erp60/helpdata/en/42/f2cd04249b3268e10000000a1553f6/frameset.htm
So I doubt will it make any issues.
Thanks. -
HCM Form and Process Case Management Configuration
Hi All,
Can somebody help me with Case Management Config in HCM Form and Processes. I don't see the Cae Mgt config anywhere for HCM F&P on any documenttation or on help.sap.com.
This is the error I am getting when I am doing the Process COnfiguration
Case type for Step Object H_SO is not defined
Case type for Scenario Obj. H_FO is not defined
Case type for Process Object H_PO is not defined
Thanks..Hi
If you get the error ' H_SO , H_PO , H_PO' , then the relevant case types are not defined.
IMG Path :
SAP NetWeaver->Application Server->Basis Services->Case Management.
Goto define case type -> Select Define Case Type . Change the case record model id for case type H_PO. This is the same id which exist in SCASE and SRMREGEDIT transaction.
Yes, the data is stored in case instead of the forms directly.
The archiving time period can be set like any other case types . From the above IMG path, if you drill in further , there is 'Set archiving' , where you can define the archiving period for the case types.
Hope this helps.
Best Regards
Saujanya -
HCM Form and Process ERROR No error agents maintained in table T5ASRERRORAG
Hi All,
I am setting up HCM form and Process and I am done with Setting up new scenario and form and workflow steps. When I do the check consistency for Processes I get these 4 error below and not sure what do i do about these error
No error agents maintained in table T5ASRERRORAGENTS
Case type for Step Object H_SO is not defined
Case type for Scenario Obj. H_FO is not defined
Case type for Process Object H_PO is not defined
Any help will be appreciated.
Thanks,
-AshwaniSome elaboration would help here a LOT! Would it be possible to get some more info about it?
I am following this tutorial: http://help.sap.com/saphelp_erp60/helpdata/EN/42/f273461e5132c3e10000000a1553f6/frameset.htm
and didn´t find any "sub-chapters" about this. am I missing something? Or could you tell me the number of the tutorial step which I performed in a wrong way or did NOT performed?
Thank you, cheers Otto -
What are theadvantages and disadvantages of HR Forms and processes
Hi Experts,
Greetings!
Please let me know the use of and advantages of HR Forms and processes, What is the role of SAP HR/HCM Consultant role while implementing HR Forms and Processes.
Thanks in advance.
Regards,
RamHi,
In HCM Processes and Forms the SAP HR consultnat define the
Process - it means "Depiction of a HR process flow in Personnel Administration using elements from HR Administrative Services."
ISR Scenario - it means "Used to call up an interactive form in a form-based process within HR Administrative Services. In the Internet Service Request (ISR) scenario you specify which form is used and the layout of the form."
Form Scenario - Together with the assigned ISR scenario, the form scenario provides the basis for a form-based process such as "Transferu201C.
This type of process runs through several roles that are integrated using interactive forms, and ends by modifying the HR master data.
A form scenario comprises one interactive form and is assigned to one ISR scenario.
Please find the following is the Best document on it .
http://help.sap.com/saphelp_erp2005/helpdata/en/43/1d63953fce3566e10000000a11466f/frameset.htm
Go thorw propery here you can find also how to use this in ESS and MSS . -
Forms Runtime Process and OC4J - Can I separate them?
Hello,
I was reading a Oracle Application Server Forms 10g material.
One thing that come to my mind was that can Forms Runtime Process
run in physically different host than OC4J J2EE Application Server?
Does anyone have any information of this issue?
Cheers!Hi,
you cannot separate the runtime from OC4J. But you can separate the HTTP Server from OC4J
Frank -
Hi,
It is my understanding that only one forms runtime process is spawned per session.
Is this the case? So everytime you call a new form you shouldnt be opening a new
forms runtime process correct?
Thanks!Hi
CALL_FORM, OPEN_FORM, NEW_FORM are the Built-ins that will help us in creating “Multiple Form Applications”.
This built-in is used to invoke more than one form in a single session.
So everytime you call a new form you shouldnt be opening a new forms runtime process correct?If you are using
NEW_FORM, you are starting a new form and terminating the current EXISTING form.
OPEN_FORM opens the new Form but also keeps the calling form open and running.
The third way to execute another form is the
CALL_FORM builtin. This would call a new form and suspend execution of the calling form. Once the called form is exited, the control is returned to the calling form.
Usefull to see the On-Line help & pls Study this link...
http://dbdeveloper.narod.ru/97521f.html
Hope this helps
Regards,
Abdetu...
Maybe you are looking for
-
Yahoo mail page sign-in button no longer works
I suddenly can't sign into my yahoo accounts on my iPad 1. It seems the sign-in button no longer works, when I tap it or use the "go" button, nothing happens - no error message, nothing. I've re-set the iPad and I still can't sign in. I can get to
-
IPad is not recognized by iTunes or my computer.
iPad is not recognized by iTunes or my computer. Running 10.6.7, restarted, removed and reinstalled iTunes, erased iPad, removed latest 3rd Party software, tried 3 different wires, nothing is working. Worked fine for months, then stopped. HELP! This
-
X3-02 WLAN doesn't work :/
Hi, can someone help me with that. When I'm pressing Available WLANs, its only showing me "No networks available" (it looks like its not even trying to find nearby AP) Two or three months ago it works great :/ My router have a WPA/WPA2-PSK security,
-
Problems with FCE viewing on TV monito
I've used an ADVC-300 converter for several years to monitor and edit my FCE canvas. But today I am not getting real movement on the TV monitor. Just bumpy stills as I click the mouse. I've checked all cables and everything is the same. So what's hap
-
Logging for the webservices connector
Hi all, I am confused. I am looking for How to enable logging for the webservices connector. The Wiki article: How to enable logging for the webservices connector (http://social.technet.microsoft.com/wiki/contents/articles/12427.fim2010-how-to-enable