Oracle Application Architecture. Application Development Defining concurrent program. PL/SQL Stored Procedures, Host, SQL * Loader) Scheduling the Concurrent Program. Concurrent Program Incompatibilities. Inside the Oracle Concurrent. This article will explore some of the important techniques for monitoring and tuning the Oracle Apps Concurrent., fcr.actual Concurrent requests in Oracle Applications are queued. Concurrent Request Lifecycle Concurrent Request/Program can be under one of four Phases. Each phase has different Status. Phase : Pending, Running, Completed, Inactive Status : Pending - Normal, Standby. Queries Related to Concurrent Requests in 11i Applications. Checking the incompatibilities between the programs. The concurrent manager in Oracle EBS is a very important service. Oracle Concurrent Manager. Oracle Application Online Training Chandrasekhar Byna. You always remember your first (program) Marvin Li. Oracle EBS Sr Techno functional Consultant. Follow Unfollow Following Loading. DEFINING PROGRAM INCOMPATIBILITY RULES. Incompatibilities Allowed. Concurrent Program Executable Block. Oracle Ebs Concurrent Program Incompatibilities Of Dibasic CalciumOracle Concurrent Manager. Inside the Oracle Concurrent Manager. Terry Oakes & Donald K. Burleson. The concurrent. Oracle e- Business suite serve several important administrative. Foremost, the concurrent managers ensure that the applications are. This article. will explore tools that are used by experienced administrators to gain insight. We will explore. how the concurrent managers can be configured via the GUI, and also explore. The Master Concurrent Managers. There is a lot. of talk about . Actually, there. are many Concurrent Managers, each governing flow within each Oracle Apps. In addition there are . The Oracle e- Business. Concurrent Managers: Internal. Concurrent Manager — The master manager is called the Internal. Concurrent Manager (ICM) because it controls the behavior of all of the. ICM is the boss, it must be running before. The main functions of the ICM are to. Standard. Manager — Another important master Concurrent Manager is called the. Standard Manager (SM). The SM functions to run any reports and batch jobs. Examples. of specific concurrent managers include the Inventory Manager, CRP Inquiry. Manager, and the Receivables Tax Manager. Conflict. Resolution Manager — The Conflict Resolution Manager (CRM) functions to. However, the. ICM can be configured to take over the CRM's job to resolve. Now that we. understand the functions of the master Concurrent Managers, let's take a quick. Oracle Apps DBAs to monitor the tune the. Concurrent Managers. Tuning the. Concurrent Manager. All successful. Oracle Apps DBAs must understand how to monitor and tune each of the. Concurrent Managers. This article will explore some of the important. Oracle Apps Concurrent Manager. The topics will include: Tuning the. Concurrent Manager. Tuning the. Internal Concurrent Manager. Purging. Concurrent Requests. Troubleshooting Oracle Apps performance problems. Adjusting the. Concurrent Manager Cache Size. Analyzing the. Oracle Apps Dictionary Tables. Monitoring. Pending Requests in the Concurrent Manager. Changing the. dispatching priority within the Concurrent Manager. Let's start by. looking at tuning the ICM, and drill- down into more detail. Tuning the. Internal Concurrent Manager (ICM)The ICM. Oracle parameters PMON cycle. PMON cycle. — This is the number of sleep cycles that the ICM waits between the time it. You should. change the PMON cycle to a number lower than 2. Queue Size. — The queue size is the number of PMON cycles that the ICM waits between. The default for queue size. PMON cycle should be used. Sleep Time. — The sleep time parameter indicates the seconds that the ICM should wait. The default sleep. Pending/Normal). However, reducing this number to a very. All of the. concurrent managers, with the exception of the ICM and CRM, can be configured. However, the number of processes needed is dependent on each. An Applications DBA must monitor the concurrent. For a fresh. install of the applications, initially configure the standard manager to run. After the. applications have been in operation for a while, the concurrent managers. Purging. Concurrent Requests. One important area. Concurrent Manager tuning is monitoring the space usage for the subsets. When the space in FND. When you experience. This. request can be configured to purge the request data from the FND tables as. Adjusting the. Concurrent Manager Cache Size. Concurrent manager. The cache size specifies the. FND. Increasing the cache size will boost. Analyzing. Oracle Apps Dictionary Tables for High Performance. It is also very. important to run the request Gather Table Statistics on these tables: FND. Since the. APPLSYS user is the owner of these tables, so you can also just run the request. Analyze Schema Statistics for APPLSYS. To troubleshoot. performance, a DBA can use three types of trace. A module trace, such as PO or. AR, can be set by enabling the module's profile option Debug Trace from within. Second, most concurrent requests can be set to generate a. To enable trace for a specific. System Administrator responsibility. Query for the request that you. At the bottom right of the screen you can check the box. Enable Trace. This is done by setting the OS environment variable FNDSQLCHK to. FULL, and running the request from the command line. Monitoring. Pending Requests in the Concurrent Managers. Occasionally. you may find that requests are stacking up in the concurrent managers with a. This can be caused by any of these conditions: 1. The concurrent. managers were brought down will a request was running. The database. was shutdown before shutting down the concurrent managers. There is a. shortage of RAM memory or CPU resources. When you get a. backlog of pending requests, you can first allocate more processes to the. To allocate more. System Administrator. Navigate to Concurrent - > Manager - > Define. Increase the. number in the Processes column. Also, you may not need all the concurrent. Oracle supplies with an Oracle Applications install, so you can. Figure 2: Allocating more processes to the Concurrent Manager. However, you can. If the request remains in a phase of RUNNING and a status. TERMINATING after allocating more processes to the manager, then shutdown. APPLSYS. user to reset the managers in the FND. If a priority is not set for a request, it will have the same. Concurrent: Priority. Also, you can. specify that a request run using an SQL optimizer mode of FIRST. If several long running requests are. If this is occurring, try to schedule as many long running. Additionally, a concurrent manager. Using data. Dictionary Scripts with the Concurrent Manager. Few Oracle. Applications DBAs understand that sophisticated data dictionary queries can be. Concurrent Manager. Oracle. provides several internal tables that can be queried from SQL*Plus to see the. FND. Oracle supplies. FND. The process id can then be used with the ORADEBUG utility. Displays the. process id, terminal, and process id that may be causing locks that the. ICM and CRM are waiting to get. You should run this script if there are. ICM is in a. gridlock with another oracle process. In addition to. these canned scripts you can skill write custom Concurrent Manager scripts. The output from this query with. Here we can see. important details about currently- running requests, including the request ID. It is only by properly understand the functions and tuning of the. Concurrent Managers that the Oracle Apps DBA can be successful in keep their. Applications optimizer for high- performance. Oracle Applications Users Group - Concurrent Manager Express Lane: 1. Seconds or Less Please. Jeffrey Weiss, GE Digital. This article looks at the challenge of high- volume concurrent requests running in an Oracle EBS environment and presents a high- level solution of using a time- based queue model. Included are detailed steps on how to configure the new queues, monitoring and an extra discussion on purging. GE is a multi- national company that operates in 1. Problem Summary. How many times have you been standing in a checkout line that you thought would be fast, and it turns out to be the slowest lane? You wait and wait for your turn, thinking about switching lines, but unsure if that line will be slow as well. So you decide to jump to a different line, and that one becomes slow while the line you left now starts moving. Can you feel your blood pressure climbing? The same thing happens to our users who are submitting hundreds or thousands of concurrent programs each and every day. Their expectation, generally, is that their job is fast and critical to the business and needs to run immediately. In some cases that is very true, especially when it is something like printing shipping labels for a warehouse. Any delay in getting those labels printed could mean lost revenue for the business. To fix this, many junior system administrators will start to tweak the standard concurrent queues by either adding more workers, more custom queues or both. When they get more complaints from users that their programs are not running, they add even more in a never ending cycle. Maybe they create a custom queue for GL, one for AP, another for close jobs, yet another for warehouse label jobs, etc. The one problem with this approach is that they often do not take into account the resources on the server(s) and the current load on them. Nor do they think about the extra load on the concurrent manager system by having to manage dozens of custom queues with hundreds of workers. As an example, on one of my systems, there are 1. Our goal is to reduce this to about 1. Is there a better way? We would like to think so. Let us describe our approach and then get into how you can implement the same in your environment. A Better Way. Rather than think about adding dozens or hundreds of workers in one or more Standard Managers or adding dozens of custom managers specialized for certain applications, programs or users, our approach uses only five custom queues (maybe a sixth if users behave badly: we will go into details on this later). The basis for my approach is to ignore the type of program a user is running and instead concentrate on the time it takes for a program to complete. My goal is that fast running jobs should never be blocked by long running programs. Also, the number of resource- intensive, long- running jobs should have a limit as to the number that can run concurrently to avoid overloading the server resources (CPU & memory). To begin, we need to take a look at concurrent program history by looking into the concurrent request data. Depending upon the frequency with which you purge concurrent requests, you may need to look at the data over several time periods to get data for monthly, quarterly and annual jobs. It is rare that you get every program in the proper queue from the very beginning. This process is like any performance tuning activity: it is iterative and it never ends. Minor tweaks and adjustments will be required over time to get this system properly adjusted. A Better Way for Managing Concurrent Programs. How can we better organize our queues? Rules of the road. Normal probabilities generally fall into what is described as a bell curve. This is also known as the three sigma rule. If you wanted, you could take this out to six sigma, which should cover 9. To gather the data, I used a custom SQL script (See Figure 1) and ran it in Oracle SQL*Developer so I could easily save the data into an Excel spreadsheet. COUNT will show the number of times that concurrent program ran since the last purge date. DELAY will show you the amount of time between the requested start time and the actual start time. A large value for DELAY is not always a sign of a problem. It could be there are incompatibilities set for the program, so it had to wait for another program to finish first. Alternatively, it could indicate that the queues were backed up with multiple long running jobs. More research is required to determine if there is a problem. Ideally, this new queue design will limit programs with large delays. AVG3. STDDEV is the main column we will use and is the column on which we are sorting. You should also take into account MAXRUN, which is the longest run time. If it is significantly larger than the AVG3. STDDEV, you may want to look into reasons why it ran so long. It could be that someone submitted it incorrectly with wrong or missing parameters or there was some other performance issue in the database. Depending upon your preference, you may want to move certain specific jobs into a longer running queue based upon your findings. Analyzing the Data. Once you save your data into an Excel spreadsheet sorted on AVG3. STDDEV, you can start your analysis. The SQL results will fill out columns A- G. The query above returns the application short name. I used a second page in the spreadsheet with a breakdown of the application short name and the application long name to fill in Column A. Alternatively, you could modify the query to directly present the long application name. They columns from the SQL are in order: A – APPLICATION NAMEB – CONCURRENT. Using Excel functions, this becomes very easy: H – Standard Queue by Default - =IF($G2< =6. As you scroll down your spreadsheet, your programs are distributed based upon run time. Concurrent Managers and Specialization Rules. At this point, we should explain at a high level how concurrent managers work. This will be a very basic overview. For more detailed information, we suggest the following documents and My Oracle Support (MOS) notes. Oracle Applications System Administrator Guide 1. Oracle Applications Concept Guide for a good overview of Oracle EBS. Concurrent Processing - Best Practices for Performance for Concurrent Managers in E- Business Suite (Doc ID 1. At a high level, these are the following managers that we are concerned with for our discussion: Internal Manager – this is the manager of all the other managers. Conflict Resolution Manager – this manager resolves incompatibilities between concurrent programs. Standard Manager – unless customized, this is the catch- all manager that will run any program not specifically designed to run in other queues. We will not get into specialized managers like transaction managers, workflow, etc., in this article. The main configuration items that we will discuss for each manager are the following (see http: //docs. A6. 07. 25. Essentially, this allows you to spread the load across multiple servers and also provides failover in the event a host goes down. You are able to define a primary and secondary host for each manager, including the Internal Manager. The really nice feature of this is that you can use Oracle Application Manager (OAM) within the EBS to offline/online hosts. This is a great way to test that your PCP is properly configured. Defining Custom Rules. As mentioned earlier, rather than specifying Specialization Rules in the Concurrent Manager Definition screen, my preferred method is to use custom rules. The navigation patch is “Concurrent - > Manager - > Rule” under system administrator responsibility. The columns are as follows: Heading. Options. Include/Exclude. Include or Exclude. Type. Oracle ID, Program, Request Type, User. Application. Application Name (valid for Program or Request Type)Name. Concurrent Program Name or Request Set. For the purpose of this article, we will concentrate on two types: program and user. We will create five different rules: 1. TO5, 5. TO1. 5, 1. TO3. 0, 3. 0TO6. 0, OVER6. These rules, like any custom object, should be created under your custom application. All of the rules must be created under your custom application, not a standard Oracle delivered app. See Figure 2 for an example of our “OVER6. Figure 2. We get the data from the spreadsheet created earlier for the specific programs that run more than 6. Defining Custom Managers (Queues)Once the custom rules are defined, we can now create our custom queues. As with the rules, we are going to define five custom queues: 1. TO5, 5. TO1. 5, 1. TO3. 0, 3. 0TO6. 0, OVER6. The navigation path for custom managers is under the system administrator responsibility, “Concurrent –> Manager - > Define.”If you are using Parallel Concurrent Processing (PCP), which means you have multiple application nodes set up as concurrent manager servers, then you should also set Primary Node and Secondary Node for each of them. You can balance the workload by having some managers on one node and the rest on the second node. You should also set the Primary and Secondary node for all the remaining managers including the Internal Manager and the Conflict Resolution Manager. This will provide you with higher availability in the case a node goes down or is taken down for maintenance. Figure 3. The fields to enter are the Manager, Short Name, Application (use your custom application again here), Type is “Concurrent Manager”, Program Library is always “FNDLIBR”, Application is always “Application Object Library.” The Cache Size should be double the number of Processes under the Work Shift section. If you click the Enabled checkbox, the manager processes will start once you save the record (Figure 3). Once you finish the main screen, click on the Work Shifts button. This will open another form where you set the number of queues or Processes. Generally you would choose the “Standard” work shift that is available 2. The Processes column is the number of queues that will start, i.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
January 2017
Categories |