This discussion is archived
1 Reply Latest reply: Nov 11, 2013 2:32 PM by epecson RSS

Tracing Java Processes that spawns child process

epecson Newbie
Currently Being Moderated

I hope I'm posting this in the correct group. If not, please let me know where to direct this question:

 

In our 12.1.3 Applications, we installed a plugin called 'Org Chart' by Applaud Solutions.  It is a flash component that graphically displays the employee hierarchy of an organizations and is accessed via responsibility.  This tool also has a feature to 'export' the chart as a  Microsoft Word or PowerPoint to the users desktop.  When this occurs, a 'java' process is kicked off on the applications server to process this request.  Now, here's the issue: The performance of this export is terrible!  It takes roughly about 2-3 minutes to complete, and sometimes never completes.  Here is the java process that gets kicked off for one user which i figured out how to run manually:

 

[applprod1@aspapp012 ~]$ java -jar OpenOfficeGenerator.jar /u01/applprod1/PROD1/apps/apps_st/appl/xxas/1.0.1/out/orgchart-f78b7a67-a379-4f7d-9dcf-5f13b22e03e4.xml /tmp/ed.pptx docx NameandTitle letter Y normal

 

When I kick this off, I'm able to get the linux PID :

 

9056 22523 24779 62 16:21 pts/000:00:06 java -jar OpenOfficeGenerator.jar /u01/applprod1/PROD1/apps/apps_st/appl/xxas/1.0.1/out/orgchart-f78b7a67-a379-4f7d-9dcf-5f13b22e03e4.xml /tmp/ed.pptx docx NameandTitle letter Y normal

 

Then, I run an 'strace -f -p 22523' and notice these timeout issues from child processes that is spawns:

 

[pid 22524] read(3, "\n", 1)        = 1

[pid 22524] _llseek(3, 18642588, [18642588], SEEK_SET) = 0

[pid 22524] read(3, "\0", 1)        = 1

[pid 22524] _llseek(3, 18642589, [18642589], SEEK_SET) = 0

[pid 22536] <... futex resumed> )   = -1 ETIMEDOUT (Connection timed out)

[pid 22524] read(3,  <unfinished ...>

[pid 22536] futex(0x972b728, FUTEX_WAKE_PRIVATE, 1) = 0

[pid 22536] gettimeofday({1384208528, 131781}, NULL) = 0

[pid 22536] clock_gettime(CLOCK_MONOTONIC, {33657710, 707532536}) = 0

[pid 22536] gettimeofday({1384208528, 131844}, NULL) = 0

[pid 22536] clock_gettime(CLOCK_REALTIME, {1384208528, 131892000}) = 0

[pid 22536] futex(0x965d2bc, FUTEX_WAIT_PRIVATE, 1, {0, 49952000} <unfinished ...>

 

My question is does anyone know how i can determine what is causing these timeouts?  It seems the java process spawns off child processes and this is where the timeouts are occurring.  Upon further investigation the child processes are throwing the following errors as well:

 

futex(0x905f1b4, FUTEX_WAIT_PRIVATE, 67, NULL) = 0

futex(0x905ed28, FUTEX_WAKE_PRIVATE, 1) = 0

futex(0x906345c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x9063458, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1

futex(0x905f1b4, FUTEX_WAIT_PRIVATE, 69, NULL) = -1 EAGAIN (Resource temporarily unavailable)

futex(0x905ed28, FUTEX_WAKE_PRIVATE, 1) = 0

 

However, I am unable to determine the cause of the timeout and resource issue. Any ideas or help is greatly appreciated! thanks.

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points