There are several different ways to debug this.  Here are some:

1) You say a "crash" occurs.  Do you mean a STAX signal is raised (e.g. 
STAXPythonEvalError signal) and terminates the job?  If so, then that logs 
an errors in the STAX Job log (and is shown if running the STAX job via 
the STAX Monitor) that contains a stack trace which would show you the 
function(s) called when the error occurred.

2)  You could run the STAX job via the STAX Monitor and use the STAX 
Monitor's Debug panel (see the STAX User's Guide for more info).  The STAX 
Monitor allows you to set breakpoints at functions / line numbers.

3) You could add some debug code to your "closeSessionOutput" function 
that checks if scriptFileName has the bad value and, if so, you could hold 
the job and then submit a STAF local STAX LIST JOB <Job#> THREADS request 
to list the active threads.  Find the thread (and its thread number) that 
called the closeSessionOutput function and then query that thread by 
submitting a request like:  STAF local STAX  QUERY JOB <Job#> THREAD 
<Thread#>.  For example:

<!-- Check for the "bad" value.  I didn't know if you meant '' or None or 
something else -->
<if expr="scriptFileName == ''> 
  <hold/>
</if>

--------------------------------------------------------------
Sharon Lucas
IBM Austin,   luc...@us.ibm.com
(512) 286-7313 or Tieline 363-7313




From:   Tennis Smith <tennis_sm...@yahoo.com>
To:     staf-users@lists.sourceforge.net
Date:   07/11/2011 04:30 PM
Subject:        [staf-users] stax error debug query



Hi,

I'm new to debugging stax errors, so please bear with me.  

In a  a script called "stax-script.xml', there is a function 
 "closeSessionOutput". This has a required argument "scriptFileName". 

Intermittently, "closeSessionOutput" is getting called and 
"scriptFileName" is given a null value.  This subsequently causes a crash.

How can I determine who is the caller? 

Tks,
-T


For completeness, here is the function definition:
   <function name="closeSessionOutput" scope="local">
        <function-prolog>
            When an CompareOutput command is encountered in the script, it 
sends
            a #OutputToTextFile(Close) to all application instances
        </function-prolog>
        <function-single-arg>
            <function-required-arg name="scriptFileName"/>
        </function-single-arg>
        <sequence>
            <script>
                cmdResult = 
gCurrentRootScriptContextMgr.sessionManager.getSessionNameList()
            </script>
            <call function="'handleCmdResult'">cmdResult</call>
            <script>
                sessionsList = cmdResult.result[0]
                appInstancesLen = len(sessionsList) - 1
            </script>
            <if expr="appInstancesLen > 0">
                <sequence>
                    <loop var="ii" from="0" to="appInstancesLen" by="1">
                        <sequence>
                            <script>
                                nextAppToCheck = sessionsList[ii]
                                onSessionCmd = "#OnSession(%s)" % 
nextAppToCheck
                                outputToFileClose = 
"#OutputToTextFile(CLOSE)"
                            </script>
                            <call 
function="'doNextScriptCommand'">onSessionCmd, scriptFileName</call>
                            <call 
function="'doNextScriptCommand'">outputToFileClose, scriptFileName</call>
                        </sequence>
                    </loop>
                    <call function="'logSTAXMsgVerbose'">"Clearing 
Application Instances"</call>
                </sequence>
            </if>
        </sequence>
    </function>

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
staf-users mailing list
staf-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/staf-users

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
staf-users mailing list
staf-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/staf-users

Reply via email to