As discussed in last posts, concurrent programs in Oracle Apps allows submitting multiple concurrent programs. You can even submit multiple instances of the same program at the same time.



In such case, multiple runs of the same program can interfere with each other if underline logic is not defined to run in parallel. It may happen that data processed by one instance get overwritten/corrupted by the second instance.

How to avoid this?

You can submit one program (not possible in the real world) or change underline executable to handle it internally.

Concurrent Program Incompatibility

There is an inbuilt mechanism in Oracle Apps to handle this situation called Concurrent Program Incompatibility. You can define a concurrent program as incompatible to each other or itself.

When you define, Concurrent Manager and Conflict Resolution Manager make sure that only one instance of the program is running at a time. The incompatible program goes in Pending Standby phase.

Consider a concurrent program – Inventory Value Report – by Subinventory. Let’s submit multiple instances of the program.

See, all are running in parallel.

concurrent programs running-simultaneously

How to define concurrent program incompatibility?

To demonstrate it, I am going to make this program incompatible with itself. You can add different program also.

Navigate to Application developer->Concurrent program. Query respective concurrent program and click on Incompatibilities button.

query concurrent program

This opens Incompatibility Programs window to define incompatibility.

define incompatible programs

Application – Name of the application under which program defined or registered.

Name – Name of the incompatible concurrent program.

Scope – Define the scope of incompatibility.

  • Program  – Program incompatible with this program only.
  • Set – Program incompatible with this program and all its child request (set).

Type – Type of Incompatibility

  • Global – Program incompatible at the global level. Those programs can’t run together in an instance.
  • Domain –  Program incompatible at a domain level. You can define a custom domain conflict like Operating Unit, Inventory Organization, SOB, etc.

Enter all this information and click on save. You may get below warning message as a popup.

The parameters of concurrent program “CSTRINVR” of application “Bills of Material” use features which are only supported in Oracle Forms. This concurrent program may not be submitted from other environments such as OA Framework or PL/SQL APIs.

concurrent program error message

Just click on OK Button and incompatibility set.

Now submit 2 instances of the same program. You can clearly see only one is running and other is in pending standby status.

submit incompatible programs

Select the request and go to Tools – Manager. You can see a separate Conflict Resolution Manager is running. Its job is to determine and manage conflict of the running program.

conflict resolution manager

Click Manager Queue button. You can see 2 requests which are in the queue.

conflict Manager Queue

As soon as one program completes, you can see other request started to run.

incompatible program started

This is the way you can make a program incompatible with itself or some other concurrent program.

How to Define Concurrent Program Incompatibility in Oracle Apps

att

I am Oracle Certified Associate(OCA) working in Oracle Domain since last 15 Years. Started this blog to share knowledge about different Technologies mostly focussing on Oracle.