Hurriyet

16 Temmuz 2013 Salı

Oracle E-Business Suite: Concurrent Manager Nedir? - What Is A Concurrent Manager?

Concurrent Manager isminden de anlaşılacağı gibi concurrent request’leri yöneten programdır. Buradan tek istek veya batch işleri ya da bir seri istek girilebilinir.

Concurrent Processing:Kullanıcı arayüzde işlerini sürdürürken arkaplanda da çalışan işlerin tamamlanmasıdır.

Concurrent Request: Kullanıcı program çalıştırmak istediğinde, bu isteğe concurrent request denir.

Concurrent Manager: Concurrent manager concurrent request'leri çalıştıran programdır.

Concurrent Manager’lar Nasıl Açılır\Kapatılır? – Start\Stop İşlemleri

Concurrent Manager’ları açıp kapamak için kullanılan script Web Server açıp kapamak için kullanılan klasörün altında adcmctl.sh script’idir. Bu script’in açılımı ad(application dba), cm (Concurrent Manager) ve ctl (control) anlamına gelmektedir. Bu script çalıştırıldığında adcmctl.txt adlı dosya da bu komutun çalıştırılma kayıtları tutulur. Bu loglar da  $COMMON_TOP/admin/log/$CONTEXT_NAME aşağıdaki örnek mekana yerleştirilir. 

Açmak için:
adcmctl.sh start apps/******

Kapamak için:
adcmctl.sh stop apps/******

Kaç Tip Concurrent Manager Bulunmaktadır?

3 tip concurrent manager bulunmaktadır. 

1-ICM - Internal Concurrent Manager: ICM ile diğer concurrent manager'ların açılıp kapanması sağlanır.
2-SM - Standard Manager: SM eğer bir concurrent request için concurrent manager tanımlanmadıysa concurrent request'i alıp çalıştırır.
3-CRM - Conflict Resolution Manager Concurrent Manager'larda yaşanabilecek herhangi bir sorunun çözülmesinde rol alırlar.

ICM Nedir?

Internal Concurrent Manager diğer concurrent manager'ların açılıp kapanmasını sağlar. ICM kapansa da diğerleri çalışmaya devam eder; ancak en başta açılmazlarsa o zaman sorun oluşur.

ICM Log'u Nerededir?

$APPLCSF/$APPLLOG klasörü altındadır. Log dosyasının adı _MMDD.mgr şeklindedir. veritabanının adını gösterir. 

ICM log = .mgr
Concurrent Manager Log = w.mgr
Request Log = l.req
Request Output = o.out
Concurrent Manager'ların Açık Olduklarını Nereden Görebilirim?

"ps -ef | grep -v grep | grep FNDLIBR" komutuyla açık olan concurrent manager process'lerini görebiliriz. Eğer concurrent manager'lar çalışmıyorsa hiçbir process görülmez.

Concurrent Manager’da Sorun Giderilmesi

Eğer Oracle Apps Dba olarak bir Concurrent Manager başlatıldıysa  ve bir sorunla karşılaşılmışsa yine ilk bakılacak yer Concurrent Manager log dosyasıdır. Bu log dosyası  $APPLCSF/$APPLLOG dizininde bulunur.

Concurrent Request Akışı:

1-FND_CONCURRENT_REQUESTS tablosu request ile birlikte güncellenir.

2-Request'in incompatibility değerlerinin olup olmadığı kontrol edilir.

3-CRM eğer incompatibility varsa concurrent'ın ne zaman çalıştırılıp çalıştırılmayacağını kontrol ediyor.

4-Incompatibility yoksa bunun için tanımlanmış özel bir concurrent manager var mı diye kontrol edilir. Yoksa Standard Manager çalıştırılır.

5-İş bitince de fnd_concurrent_request tablosu güncellenir.

Concurrent Manager Nasıl Yaratılır?


Concurrent Manager yaratmak için System Administrator>Concurrent>Manager>Define yolunu inceleriz.

Manager kısmına manager adını yazarız.

Type: Concurrent manager tanımlıyorsak  concurrent manager seçeneğini yoksa ne tanımlayacaksak onu seçeriz.

Cache Size: Cache size ile queue'dan bir kere de kaç tane concurrent request alabileceğimizi belirleriz. Başka concurrent almadan önce bunların bitmesi beklenir. Workshift process'i 2  cache size'ı 4 ise 4 request okunur ama sadece 2'si aynı anda çalıştırılır. Best practise olarak cache size'ın workshift process'inin en az 2 katı olması beklenir.

Consumer Group: Consumer group ile belirlenen kullanıcılar çok kaynak tüketen ya da az kaynak tüketen gruplara atanarak sonrasında concurrent manager ile eşlenebilirler. Özetle eğer bir grup çok kaynak tüketiyorsa onlara özel bol kaynaklı belirli saatlerde çalışan concurrent manager tanımlanabilir.
Specialization Rules: Hangi tip concurrent request'lerin çalışacağı specialization rules ile belirlenir.

Concurrent Manager Performans Ayarları:

Manager'ın performans ile ilgili 3 tane ayarını inceleyebiliriz. Process sayısı,sleep süresi, cache size ayarı. Concurrent manager'ı performans için tune ederken bilmemiz gereken şey var olan belirlenmiş SQL'leri ya da çalışan process'ler ile oynamadığımızdır. Amacımız concurrent request'lerin bir an önce çalışmaya başlamasıdır. Bu yüzden concurrent'ların bekleme zamanını azaltmaya çalışırız.

Concurrent request'imiz çalışmaya başlamadan önce ilk önce incompatibility'lerle ilgili bir çakışma durumu var mı diye bekletilir. Bunu bu işe bakan CRM(Conflict Resolution Manager) yapar. Ertesinde tanımlı olan özel concurrent manager'a bakar. Sonuç olarak kendisine atanan concurrent manager tarafından çalıştırılmayı bekler.

-Process Sayısı: İşletim sistemi tarafından bir workshift içerisinde aynı anda çalıştırılacak process sayısı. Her process bir concurrent request çalıştırabilir.

-Sleep Süresi: Bu zaman aralığında belirtilen durum ICM'in çalışacak request'lere bakma aralığıdır. Eğer bu süre daha az olursa daha fazla request'ler incelenir ve request'lerin bekleme süresi azalır.

-Cache Size Ayarı: Cache size ile queue'dan ne kadar request alınacağı belirtilir. Yüksek olması önemlidir. Tavsiye edilen değer var olan process sayısının 2 katıdır. Bu değerin ayarlanmasının nedeni concurrent manager'ın sürekli fnd_concurrent_requests tablosuna bakmasıdır. Bu miktar ne kadar az olursa concurrent request'lerın çalışmaya başlaması daha erken gerçekleşir.

Concurrent Manager İçin Önemli Scriptler:

Concurrent manager ile ilgili scriptler $FND_TOP/sql altındadır.

1. afimchk.sql = ICM ve PMON'un statusunu gösterir.
2. afcmstat.sql = Manager ile ilgili aktif process'leri gösterir.
3. afrqscm.sql = Manager'ların log dosyaları listelenir.
4. afimlock.sql = ICM'ın beklediği lock'lar gösterilir.

Concurrent Manager Status Codes

Çeşitli önemli Concurrent tabloları:

FND_CONCURRENT_QUEUES 
FND_CONCURRENT_PROGRAMS 
FND_CONCURRENT_REQUESTS 
FND_CONCURRENT_PROCESSES 
FND_CONCURRENT_QUEUE_SIZE



Ayrıca FND ile ilgili aşağıdaki tablolarda kullanılabilinirler.

FND_APPL_TOPS 
FND_LOGINS 
FND_USER 
FND_DM_NODES 
FND_TNS_ALIASES 
FND_NODES 
FND_RESPONSIBILITY 
FND_DATABASES 
FND_UNSUCCESSFUL_LOGINS 
FND_LANGUAGES 
FND_APPLICATION 
FND_PROFILE_OPTION_VALUES



Referans:

Concurrent Processing (CP) / APPS Reporting Scripts [213021.1]

How to Create a Custom Concurrent Manager [170524.1]



Hiç yorum yok:

Yorum Gönder