Select Page

Monitor the X display for E-Business Suite

R Harwood | | January 28, 2009

Those running Oracle’s E-Business Suite on Linux/UNIX environments are probably familiar with a dependency on some X display technology to render graphics.  One could use a VNC Server or Xvfb, for example, to fill this need.  XML Publisher and OPP depend on an X display to create rich reports/documents with images & graphics such as AP Checks, Purchase Orders, Sales Orders, Pick/Pack Slips, or anything delivered as a PDF.  Given the critical nature of these documents, it’s probably a good idea to monitor X display availability.

What follows is a generic approach that will work with any X display server.  These instructions were developed using E-Business Suite 11i, but the same approach will work for R12.

1.  Select an existing report that creates very little output and does not pose a security concern, such as the Concurrent Program Details Report.  It runs out of the System Administrator responsibility by default, and Its output is about a page depending on the number of parameters defined for the concurrent program chosen.

2.  Define a new concurrent program using the Define Concurrent Program form:

Under the System Administrator responsibility, navigate to  Concurrent->Program->Define

Define a new concurrent program with the same executable name (FNDCPPGD in this example) and parameters (Application & Program) with the same values sets as the standard Concurrent Program Details Report. program.  Name the concurrent program something interesting, like “VNC Server Monitor.”  Switch the Output Format listbox from Text to PDF and save your changes.

3.  Add this concurrent program to request set of the appropriate responsibility of the user that will regularly execute this concurrent program:

Security->Responsibility->Request & query up the System Administrator Reports under the Application Object Library application

4.  Test that the user can successfully execute this concurrent program from the System Administrator responsibility.

Now you have a concurrent program redefined to crank out PDF output; If it fails for some reason, there is a good chance that if nothing else is going on (e.g. database down, etc.) something is wrong with the X display.  Let’s set this up to execute regularly.

5.  As the user (in the responsibility) that should regularly execute this going forward, schedule the “VNC Server Monitor” concurrent program to run every 5 minutes (or whatever you feel is appropriate for your environment.)

6.  Monitor the “VNC Server Monitor” execution for erroneous/bad conditions.  Covering a holistic E-Business Suite monitoring solution is out of scope for this post, but the following queries should fit into the capabilities of most monitoring solutions.

a.  This query will let us know if the “VNC Server Monitor” program might not be running normally.  If this query returns any records, there is likely a problem with the X display or the concurrent managers in general:

[code language=”sql”]select fcr.request_id, fcr.phase_code, fcr.status_code
from fnd_concurrent_requests fcr,
fnd_concurrent_programs_tl fcp
where fcr.concurrent_program_id fcp.concurrent_program_id
and fcp.user_concurrent_program_name = ‘VNC Server Monitor”
and request_date > sysdate – 1/96 — last 15 minutes
and fcr.status_code in (
‘E’,                   —     Error
‘G’,                   —     Warning
‘M’,                   —     No Manager
‘T’,                   —     Terminating
‘U’,                   —     Disabled
‘W’,                   —     Paused
‘X’                    —     Terminated
);[/code]

b.  The “VNC Server Monitor” should be very fast, and if the report hangs, the X display may not be working correctly.  The following query would will verify speed; if it repots poor performance, you may want to investigate:

[code language=”sql”]select fcr.request_id, fcr.phase_code, fcr.status_code
from fnd_concurrent_requests fcr,
fnd_concurrent_programs_tl fcp
where fcr.concurrent_program_id = fcp.concurrent_program_id
and fcp.user_concurrent_program_name = ‘VNC Server Monitor’
and (sysdate – fcr.actual_start_date) > 1/720 — running more than 2 minutes
and fcr.phase_code = ‘R’;  —  Running[/code]

One thing to consider in this approach is which concurrent manager will run this job.  Ideally, it will have it’s own queue or one that executes quick jobs (like reprint jobs, for example).  If left to execute in the standard manager, this job could get backed up, and our monitoring results could get stale.

c.  The following query is a starting point for monitoring for a job that was scheduled to start, but still hasn’t (presumably because it’s in line or there is a concurrent manager problem):

[code language=”sql”]select fcr.request_id, fcr.phase_code, fcr.status_code
from fnd_concurrent_requests fcr,
fnd_concurrent_programs_tl fcp
where fcr.concurrent_program_id fcp.concurrent_program_id
and fcp.user_concurrent_program_name = ‘VNC Server Monitor”
and (sysdate – fcr.requested_start_date) > 1/96 — pending more than 15 minutes
and fcr.status_code in (
‘I’,           —       Inactive
‘P’            —       Pending
);[/code]

One other note:  If FND_CONCURRENT_REQUESTS is not regularly trimmed, this query could become very expensive.  You should test this solution in a representative test environment for performance before production use.

Oracle EPM Cloud Vs. On-Premises: What’s the Difference?

EPM applications help measure the business performance. This post will help you choose the best EPM solutions for your organization’s needs and objectives.

Bobby Ellis | April 10, 2018

12c Upgrade Bug with SQL Tuning Advisor

This blog post outlines steps to take on Oracle upgrade 11.2 to 12.1 if you’re having performance problems. Oracle offers a patch and work around to BUG 20540751.

Megan Elphingstone | March 22, 2017

Scripting Out the Logins, Server Role Assignments, and Server Permissions

Imagine there are over one hundred logins in the source server and you need to migrate them all over to the destination server. Wouldn’t it be awesome if we could automate the process by generating the scripts for the required tasks?

JP Chen | October 1, 2015

Work with Us

Let’s have a conversation about what you need to succeed and how we can help get you there.

CONTACT US

Work for Us

Where do you want to take your career? Explore exciting opportunities to join our team.

EXPLORE JOBS