Application Dba araçları (adpatch,adadmin,autoconfig) çalışırken, bu araçlar yapacakları her işlem için "worker" dedikleri bir process oluştururlar. Eğer bu worker'lardan herhangi birisi kapanırsa bunların kapandığına dair manager'a haber vermek, bunları tekrardan çalıştırmak için adctrl komutunu çalıştırırız. Bu komut ile karşımıza bazı seçenekler çıkar. Ad controller ile karşımıza çıkan seçenekler aşağıdaki gibidir.
Adcontroller'ın loglarını $APPL_TOP/admin/$SID/log klasörü altında bulabiliriz. Bu dosya alıtnda adcontroller tarafından gözelenen worker'ların ne yaptıklarıyla ilgili loglar tutulmaktadır. Adworker'ların işleri güncellendikçe buradaki loglara yazılırlar.
Show Worker Status Ekranı:
1. seçenek seçildiğinde çalışan worker'lar ve bunların durumları gösterilir. Bu worker'lar failed olabilirler. 1. seçenek sayesinde patch'in ne durumda olduğunu görebiliriz. Eğer patch normalden uzun sürüyorsa yukarıda belirttiğimiz gibi $APPL_TOP/admin/$SID/log klasöründen çalışan worker'ların loglarına bakarız.Eğer burada timeout ya da takılma gibi bir sorundan bahsediliyorsa bu durumda worker'ımızı restart ederiz.
Tell Worker To Restart a Failed Job Ekranı:
2. seçenek seçildiğinde 1. ekranda görüp de fail etmiş bir job'ı tekrar çalıştırabiliriz. O fail eden job'ın numarasına göre burada fail etmiş worker olarak tekrar çalıştırabiliriz.
Tell Worker To Quit Ekranı:
3. seçenek ile herhangi bir worker kapatılabilir. Eğer birden fazla worker aynı işle uğraşıyorsa patch'te kilitlenmeler olabilir. Bu oluşan durumu engellemek için bazı worker'ları çıkmaya zorlayabiliriz.
Restart A Worker On The Current Machine:
Bu seçenekte de zaten çalışan, durumu "Running" olarak gözüken bir worker'ı tekrar çalıştırmaya zorlayabiliriz.
Ad Controller Interactive Olarak Nasıl Çalıştırılır?
Ad controller çalıştırmak için ilk önce $APPL_TOP/$APPLFENV ortam dosyasını çalıştırıp ardından adctrl komutunu çalıştırırız.
Adctrl'daki Gizli Opsiyon - Menu'deki Gizli 8.Seçenek:
Failed olan Worker'ları atlayıp sonradan tekrar çalıştırmak için konulmuş 8. opsiyon bulunmaktadır.
Bunun gizlenmesinin nedeni Oracle'ın çalışmayan Worker Log'larının incelenmesini ve düzeltilmesini sonradan da tekrardan çalıştırılmasını istemesinden dolayıdır. Eğer hızlıca bu konu geçilirse o zaman sorunun ana kaynağı öğrenilemez. Bu amaçlarla gizlidir. Oracle Support tarafından da önerilmedikçe kullanılması tavsiye edilmez.
31 Ekim 2013 Perşembe
Oracle E-Business Suite: AD Job Timing Report Nedir? - Ne İşe Yarar?
AD Job Timing raporu Autopatch(adpatch) veya AD Administration(adadmin) tool'ları çalıştırıldığında otomatik olarak çalıştırılır. Bu rapor içerisinde çalıştırılan process'lerle ilgili bilgiler, session'la ilgili istatistikler depolanır. Ayrıca çalıştırılan porgramların zamanla ilgili istatistikleri de kaydedilir. Bu istatistikler $APPL_TOP/admin/(SID)/out klasörü altında "adt.lst" dosyası içerisinde kaydedilir.
AD Job Timing Raporu Nasıl Çalıştırılır?
Bu rapor çalıştırılmadan önce ortam parametreleri dosyası çalıştırılır. "$APPL_TOP/$APPLFENV." Bu komut çalıştırıldıktan sonra sqlplus ile veritabanına bağlanıp "$AD_TOP/admin/sql/adtimrpt.sql" scriptini çalıştırırız ve çalıştırırken de 2 tane parametre veririz.
sqlplus apps/apps @$AD_TOP/admin/sql/adtimrpt.sql \ (session id) (output file)
Etiketler:
ad,
ad araçları,
e-business suite,
EBS,
Oracle
Oracle E-Business Suite: Parametreli PL\SQL Concurrent Program Örneği - PL\SQL Concurrent Program Example With Parameters
PL\SQL concurrent programı yaratmak için ilk önce veritabanına girip pl\sql prosedürümüzü yaratırız. Bu örneğimiz için deneme_berke1 adında bir prosedür yaratacağız. Bu prosedür veritabanında zamanı sorgulayıp sonrasında parametreyi alıp scott şeması altındaki deneme1 tablosunu belirli değerlerle doldurmaktadır.
Bu işlemi yaparken E-Business Suite Concurrent programlarına özel 2 tane parametre ekleriz. Bunlar eklenmezse bu hata oluşur.
Bu 2 parametreyi ekledikten sonra programımızda kullanacağımız parametreyi de ekleyip prosedürümüzü derleriz.
Prosedürümüz tamamlanınca concurrent program oluşturma safhasına geçeriz.
Concurrent Program Oluşturulması:
Concurrent Program oluşturmak için " System Administrator>Concurrent:Program>Executables " ekranına gideriz. Ekranda pl/sql program adını gireriz. Execution Method olarak "PL\SQL Stored Procedure" seçilir.
Concurrent Program executable'ını yarattıktan sonra concurrent program'ı define ederiz. Bunun için " System Administrator>Concurrent:Program>Define " seçeneğine gireriz.
Concurrent Program'ımızı yarattıktan sonra bu concurrent'ı çalıştırmak için "System Administrator>Security:Responsibility>Request" formuna girilip concurrent'ımızı gerekli sorumluluk'un içerisine tanımlarız.
Bu tanımlamaları yaptıktan sonra concurrent programımızı system administrator sorumluluğundaki request'lerden çalıştırabiliriz.
Not: Buradaki concurrent program örneği aşağıdaki yazıda tekrar kullanılmıştır. "Request Set Oluşturulması"
procedure deneme_berke1
(errbuf out NOCOPY varchar2, retcode out NOCOPY varchar2,app_name in varchar2)
is
x date;
z varchar2(100);
begin
select sysdate into x from dual;
dbms_output.put_line(x);
dbms_output.put_line(app_name);
insert into scott.deneme1 values(app_name,'FAILURE',x);
END deneme_berke1;
Bu işlemi yaparken E-Business Suite Concurrent programlarına özel 2 tane parametre ekleriz. Bunlar eklenmezse bu hata oluşur.
Bu 2 parametreyi ekledikten sonra programımızda kullanacağımız parametreyi de ekleyip prosedürümüzü derleriz.
Prosedürümüz tamamlanınca concurrent program oluşturma safhasına geçeriz.
Concurrent Program Oluşturulması:
Concurrent Program oluşturmak için " System Administrator>Concurrent:Program>Executables " ekranına gideriz. Ekranda pl/sql program adını gireriz. Execution Method olarak "PL\SQL Stored Procedure" seçilir.
Concurrent Program executable'ını yarattıktan sonra concurrent program'ı define ederiz. Bunun için " System Administrator>Concurrent:Program>Define " seçeneğine gireriz.
Concurrent Program'ımızı yarattıktan sonra bu concurrent'ı çalıştırmak için "System Administrator>Security:Responsibility>Request" formuna girilip concurrent'ımızı gerekli sorumluluk'un içerisine tanımlarız.
Bu tanımlamaları yaptıktan sonra concurrent programımızı system administrator sorumluluğundaki request'lerden çalıştırabiliriz.
Not: Buradaki concurrent program örneği aşağıdaki yazıda tekrar kullanılmıştır. "Request Set Oluşturulması"
Oracle E-Business Suite: Patch Impact Analysis - Patch'lerin Uygulanmasının Sonuçları - Etkilerinin Analizi
Oracle DBA'lerinin en genel işleri arasında veritabanı ortamlarına patch'lerin geçilmesi yer almaktadır. Bu geçilen patch'lerin etkilerinin analiz edilmesi, herhangi bir sorun durumunda hangi dosyaların etkilendiğinin görülmesi çok önemlidir. Bunun için aşağıdaki sorguyu kullanabiliriz.
Bu sorguda bizden patch numarası istenir. Bunun sonucunda bize etkilenen dosyalar gösterilir.
Oracle E-Business Suite Console'dan Patch Impact Analysis Nasıl Yapılır?
Bu işlem için Oracle Application Manager'a bağlanılır. Oradan "System Administrator" sorumluluğuna tıklayıp karşımıza çıkan ekranda "Site Map">"Maintenance">"Patch Wizard" seçeneklerine tıklayıp "Recommend Patches" işine tıklarız. Buradan da araştırdığımız patch numarasını girip araştırma "Patch Impact Analysis" yapabiliriz.
select f.bug_number "BUG_NBR",
a.filename "FILE_NAME",
substr(c.version,1,20) "PATCH_VERSION",
substr(d.version,1,20) "SITE_VERSION",
b.executed_flag,
b.creation_date "PATCH_DATE"
from
ad_files a,
ad_patch_run_bug_actions b,
ad_file_versions c,
ad_file_versions d,
ad_patch_run_bugs e,
ad_bugs f
where a.file_id=b.file_id
and c.file_version_id=b.patch_file_version_id
and d.file_version_id=b.onsite_file_version_id
and b.executed_flag = 'Y'
and e.bug_id=f.bug_id
and e.patch_run_bug_id=b.patch_run_bug_id
and f.bug_number='&Patch_number'
order by b.creation_date desc;
Bu sorguda bizden patch numarası istenir. Bunun sonucunda bize etkilenen dosyalar gösterilir.
Oracle E-Business Suite Console'dan Patch Impact Analysis Nasıl Yapılır?
Bu işlem için Oracle Application Manager'a bağlanılır. Oradan "System Administrator" sorumluluğuna tıklayıp karşımıza çıkan ekranda "Site Map">"Maintenance">"Patch Wizard" seçeneklerine tıklayıp "Recommend Patches" işine tıklarız. Buradan da araştırdığımız patch numarasını girip araştırma "Patch Impact Analysis" yapabiliriz.
30 Ekim 2013 Çarşamba
Oracle E-Business Suite: Error - "Concurrent Requests'de Request'lerin Inactive - Nomanager" Gösterilmesi
Concurrent Request Manager'da Developer'lardan gelen bir çağrı üzerine kontrol ettiğim bir request'in "Inactive - Nomanager" olarak gözüktüğünü fark ettim. İlk aklıma gelen düşünce concurrent request'in atandığı bellirli bir concurrent manager olabilirdi. O yüzden o concurrent manager'ı bulup, sonra o concurrent manager'ın ayakta olup olmadığını kontrol ettim.
Bunun için "adapcctl.sh status" komutunu girdim ve ICM (Internal Concurrent Manager'ın) açık olup olmadığına baktım.
Açık olduğunu gördükten sonra Concurrent Manager'ı kapattım ve cmclean.sql dosyasını çalıştırdım ve tekrar açtım.
Cmclean.sql dosyasını aşağıdaki path'de bulabilirsiniz.
"/orappl/(SID)/apps/apps_st/appl/ad/12.0.0/admin/template/install/template/db/adcmclean.sql"
Yukarıda takip ettiğim adımların sonucunda sorunun çözüldüğünü gördüm.
25 Ekim 2013 Cuma
Oracle E-Business Suite: Patch'ler Nasıl Merge Edilir? - Patch Merge Etmek
AD Merge Patch aracıyla(admgrpch) birden fazla application patch'i tek bir patch haline getirilir. $AD_TOP/bin altında bulunur.
-Patch'leri merge etmeden önce dikkatlice okumak gerekir. Patch'lerin içindeki readme dosyaları dikkatlice incelenerek içinde özel talimatlar olup olmadığına bakılır. Eğer varsa o patch merge edilmez. Elle kendimizin patch geçmesi gerekir.
-Merge edilecek patch'ler için bir klasör oluşturulur.
-Patch'lerin zip dosyaları oluşturduğumuz klasör içerisine konulur. (Zip dosyalarının açılması)
-Patch'ler unzip edildikten sonra AD Merge Patch komutu çalıştırılır.
Örnek kullanım:
admrgpch patch'lerin_unzip_edildiği_klasör merge_patch'ın_yaratılacagı_yer \ -merged_name merge'lü_patch'in_ismi
-Patch merge edildikten sonra herhangi bir sorun ihtimaline karşı log dosyası kontrol edilir.(admrgpch.log)
-Sonrasında patch'imiz normal bir şekilde apply edilir.
-Patch'leri merge etmeden önce dikkatlice okumak gerekir. Patch'lerin içindeki readme dosyaları dikkatlice incelenerek içinde özel talimatlar olup olmadığına bakılır. Eğer varsa o patch merge edilmez. Elle kendimizin patch geçmesi gerekir.
-Merge edilecek patch'ler için bir klasör oluşturulur.
-Patch'lerin zip dosyaları oluşturduğumuz klasör içerisine konulur. (Zip dosyalarının açılması)
-Patch'ler unzip edildikten sonra AD Merge Patch komutu çalıştırılır.
Örnek kullanım:
admrgpch patch'lerin_unzip_edildiği_klasör merge_patch'ın_yaratılacagı_yer \ -merged_name merge'lü_patch'in_ismi
-Patch merge edildikten sonra herhangi bir sorun ihtimaline karşı log dosyası kontrol edilir.(admrgpch.log)
-Sonrasında patch'imiz normal bir şekilde apply edilir.
Etiketler:
ad,
ad araçları,
e-business suite,
EBS,
Oracle
Oracle E-Business Suite: Application Dba(AD) Araçları - AD Tools
Oracle Applications yönetim araçları olarak "ad" kısaltması ile başlayan birden fazla araç vardır. Bu araçlar ile uygulamaları terminalden yönetebiliriz. Bu araçlar sayesinde kurulum, upgrade, update, patch ve maintenance gibi işlemleri gerçeleştirebiliriz.
Ana olarak kullanılan Application Dba(AD) araçları AD Administration(adadmin), AutoUpgrade(adaimgr), AutoPatch(adpatch) 'dir. Bunlar arasında birbirleriyle iletişim olabilir. Bir araç diğer bir aracı çağırabilir.
Özet olarak bulunan programlar aşağıdaki gibidir:
-Adadmin: AD Administration aracı ile Oracle Applications üzerinde maintenance işlemlerini gerçekleştiririz.
-Adpatch: AutoPatch ile patch'ler uygulanır.
-Adaimgr: AutoUpgrade, Oracle Applications upgrade aracıdır. Son versiyona yükseltir.
-Adctrl: AD Controller ile AutoUpgrade, AD Administration veya AutoPatch uygulamalarının "worker"'ları izlenir. Eğer bir programın worker'ları bozulursa bunları tekrar çalıştırıp, programa haber verir.
-Adutconf.sql: AD Configuration ile Oracle Application uygulamaları hakkında bilgi edinebiliriz. Örnek olarak modüllerin versiyonları,durumları gibi bilgileri bu sql'i çalıştırarak edinebiliriz. - (Adutconf için buradan daha fazla bilgi edinebilirsiniz.)
-Adident: Dosyaların versiyonlarını görmek için kullanabiliriz. Bu bilgi genellikle Oracle Support tarafından kullanılır. (AD File Identification)
-Adrelink: Oracle Executable programları Oracle Server Product Library'leriyle bağlar. (Adrelink)
-Admrgpch: Birden fazla patch'i tek bir patch haline getirir. (Admrgpch)
-AutoConfig: Sistem konfigürasyon dosyalarının ayarlanmasını sağlar. (Autoconfig)
Ortamın Ayarlanması:
Herhangi Application DBA aracı kullanmadan önce ortam değişkenlerinin ayarlanması tavsiye edilir. Eğer bu ayarlar bash_profile'a veya .profile'a atanmıyorsa her açılan session'da tekrar girilmesi gerekir. (Linux Unix Ortam Bash'lerin Rolü)
Ayarların set edilmesi için applmgr kullanıcısıyla makineye bağlanılır. $APPL_TOP/APPLFENV.env dosyası çalıştırılır.
AD Araçlarının Çalıştırılması:
Yukarıda belirttiğimiz araçlar çalıştırıldığında örnek olarak adpatch,adadmin,adctrl kullanıldığında bu programların log dosyaları yaratılır. Böylece eğer programdan "ctrl+c" denerek çıkıldığında veya program çalışması abort edildiğinde, program eğer tekrar çalışırsa eski log dosyası belirtilerek oradan tekrar çalıştırılması sağlanabilir.
Ana olarak kullanılan Application Dba(AD) araçları AD Administration(adadmin), AutoUpgrade(adaimgr), AutoPatch(adpatch) 'dir. Bunlar arasında birbirleriyle iletişim olabilir. Bir araç diğer bir aracı çağırabilir.
Özet olarak bulunan programlar aşağıdaki gibidir:
-Adadmin: AD Administration aracı ile Oracle Applications üzerinde maintenance işlemlerini gerçekleştiririz.
-Adpatch: AutoPatch ile patch'ler uygulanır.
-Adaimgr: AutoUpgrade, Oracle Applications upgrade aracıdır. Son versiyona yükseltir.
-Adctrl: AD Controller ile AutoUpgrade, AD Administration veya AutoPatch uygulamalarının "worker"'ları izlenir. Eğer bir programın worker'ları bozulursa bunları tekrar çalıştırıp, programa haber verir.
-Adutconf.sql: AD Configuration ile Oracle Application uygulamaları hakkında bilgi edinebiliriz. Örnek olarak modüllerin versiyonları,durumları gibi bilgileri bu sql'i çalıştırarak edinebiliriz. - (Adutconf için buradan daha fazla bilgi edinebilirsiniz.)
-Adident: Dosyaların versiyonlarını görmek için kullanabiliriz. Bu bilgi genellikle Oracle Support tarafından kullanılır. (AD File Identification)
-Adrelink: Oracle Executable programları Oracle Server Product Library'leriyle bağlar. (Adrelink)
-Admrgpch: Birden fazla patch'i tek bir patch haline getirir. (Admrgpch)
-AutoConfig: Sistem konfigürasyon dosyalarının ayarlanmasını sağlar. (Autoconfig)
Ortamın Ayarlanması:
Herhangi Application DBA aracı kullanmadan önce ortam değişkenlerinin ayarlanması tavsiye edilir. Eğer bu ayarlar bash_profile'a veya .profile'a atanmıyorsa her açılan session'da tekrar girilmesi gerekir. (Linux Unix Ortam Bash'lerin Rolü)
Ayarların set edilmesi için applmgr kullanıcısıyla makineye bağlanılır. $APPL_TOP/APPLFENV.env dosyası çalıştırılır.
AD Araçlarının Çalıştırılması:
Yukarıda belirttiğimiz araçlar çalıştırıldığında örnek olarak adpatch,adadmin,adctrl kullanıldığında bu programların log dosyaları yaratılır. Böylece eğer programdan "ctrl+c" denerek çıkıldığında veya program çalışması abort edildiğinde, program eğer tekrar çalışırsa eski log dosyası belirtilerek oradan tekrar çalıştırılması sağlanabilir.
Etiketler:
ad,
ad araçları,
e-business suite,
EBS,
Oracle
Oracle E-Business Suite: Admrgpch Nedir? - Ne İşe Yarar?
AutoPatch (adpatch) uygulaması her çalıştığında bir sürü bilgi talep eder ve uygulamaya bağlanmaya çalışır. Bu bilgilerin tekrar tekrar girilmesini engellemek için bazı generic ve birleştirilmeye uygun patch'ler birleştirilerek programların uygulama süresi kısaltılabilinir.
$AD_TOP/bin altında executable olarak bulunur; ama genellikle daha önceden PATH klasörüne eklendiği için herhangi bir klasör altından çalıştırılabilinir.
$AD_TOP/bin altında executable olarak bulunur; ama genellikle daha önceden PATH klasörüne eklendiği için herhangi bir klasör altından çalıştırılabilinir.
Etiketler:
ad,
ad araçları,
e-business suite,
EBS,
Oracle
Oracle E-Business Suite: Adrelink Nedir? - Ne İşe Yarar?
Adrelink uygulaması Oracle Applications'da tanımlı executable program'ları Oracle Server Product Library'leriyle tekrar bağlantısını sağlar.
Adrelink.sh'ının yaptığını yapan benzer bir araç adadmin aracının içinde yer almaktadır. Ancak bu yolla ad executable'ları bağlanamadığı için ad relink elle çalıştırılmalıdır. Eğer bir hata çıkarsa $APPL_TOP/admin/log dizini altında dosyaya kaydedilir.
Gerekirse log dosyası silinebilir. Çünkü program her çalıştığında yoksa çalışır varsa da üzerine ekler.
Çalıştırılma Syntax'ı:
Not: Eğer Oracle Applications ürünlerinden bir tanesi relink edilecekse Concurrent Manager'lar kapatılmalıdır.
Adrelink.sh'ının yaptığını yapan benzer bir araç adadmin aracının içinde yer almaktadır. Ancak bu yolla ad executable'ları bağlanamadığı için ad relink elle çalıştırılmalıdır. Eğer bir hata çıkarsa $APPL_TOP/admin/log dizini altında dosyaya kaydedilir.
Gerekirse log dosyası silinebilir. Çünkü program her çalıştığında yoksa çalışır varsa da üzerine ekler.
Çalıştırılma Syntax'ı:
$ adrelink.sh force={y | n} [] \
[]
Not: Eğer Oracle Applications ürünlerinden bir tanesi relink edilecekse Concurrent Manager'lar kapatılmalıdır.
Etiketler:
ad,
ad araçları,
e-business suite,
EBS,
Oracle
Oracle E-Business Suite: AD File Identification Nedir? - Ne İşe Yarar?
Adident ile Oracle Application'daki dosyaların versiyon ve diğer bilgilerini görebiliriz. Bu program genelde Oracle Support'tan bir sorun üzerine açtığımız SR'lar sonucunda gelen bilgi isteklerini karşılamak için kullanılır.
Kullanım Şekli:
ya da
Eğer dosyada versiyon bilgisi varsa gösterilir; yoksa hata verir.
Kullanım Şekli:
$ adident $AD_TOP/sql/adutconf.sql
adutconf.sql: 115.13 (0)
ya da
$ adident Header $AD_TOP/sql/adutconf.sql
/orappl/EBSUAT/apps/apps_st/appl/ad/12.0.0/sql/adutconf.sql:
$Header adutconf.sql 120.0.12010000.2 2008/10/14 11:14:48 bbhumire ship $
Eğer dosyada versiyon bilgisi varsa gösterilir; yoksa hata verir.
Etiketler:
ad,
ad araçları,
e-business suite,
EBS,
Oracle
Oracle E-Business Suite: AD Configuration Nedir? - Ne İşe Yarar?
AD Configuration aracı adutconf kısa adıyla geçer. Bu program bir sql script'idir. Oracle Uygulamaları hakkında standart bilgileri gösterir. Bu araç ile Oracle EBS database'imizin o anlık bir snapshot'ını çıkarabiliriz. Adutconf.sql'ini çalıştırdığımızda adutconf.lst adlı bir rapor dosyası çıkar. Bunun içerisinde de:
- Ürün Grupları
- Lisanslı Ürünler
- Lisanslı Ürünlerin Bilgileri
- Kurulu Diller
- İnit.ora Ayarları
gibi bilgiler yer alır.
Adutconf.sql $AD_TOP/sql klasörü içerisinde yer alır. Çalıştırmak için aşağıdaki komutu uygulayabiliriz.
cd $AD_TOP/sql
sqlplus apps/ @adutconf.sql
Etiketler:
ad,
ad araçları,
e-business suite,
EBS,
Oracle
9 Ekim 2013 Çarşamba
Oracle E-Business Suite: Custom Application Top Yaratılması - Custom Top Nasıl Yaratılır?
Custom Application Top bize farklı bir modül yaratacağımız zaman gerekir. Custom olarak yaratacağımız formların,programların, ayrı bir iş kolu için yaratacağımız bir modülde depolanması gerektiğinde bunlardan yaratabiliriz.
1. Öncelikle yaratacağımız custom top için dizin hiyeraşisini oluştururuz. Burada oluşturacağımız örnek modülümüzün adı "xxabc" olsun. Buna göre aşağıdaki klasörler $APPL_TOP altında yaratılır.
2. Bu dizinler yaratıldıktan sonra bu yeni yarattığımız modül "environment" dosyasına eklenir.
Eklendikten sonra $APPL_TOP/admin altında bulunan topfile.txt dosyası değiştirilir ve içine aşağıdaki örnekteki satır eklenir. Burada $APPL_TOP dizini direk olarak verilmelidir. Aşağıdaki gibi parametre olarak verilmelidir. Aşağıda sadece xxabc'den sonra hangi dizin gelmesi gerektiği gösterilmektedir. $APPL_TOP/admin/topfile.txt içine bakılırsa anlaşılabilinir.
xxabc $APPL_TOP
$INST_TOP/appl/admin/$CONTEXT_NAME.xml 'e uygun giriş yapılır. Bu örneğimiz için aşağıdaki bilgiyi gireriz.
3. Tablespace yaratılır.
4. Kullanıcı yaratılır.
Gerekli yetkiler de verilir.
5. Application'a schema'mız kaydedilir.
System Administrator sorumluluğunda Application>Register diyerek orada uygun alanlar aşağıdaki gibi doldurulur.
Application : XXABC Custom Application
Short Name : XXABC
Basepath : XXABC_TOP
Description : XXABC Custom Application
6. Oracle kullanıcımız kaydedilir.
System Administrator sorumluluğunda Security>Oracle>Datagroup seçeneğine gidilerek kullanıcımız kaydedilir.
Database User Name : XXABC
Password : XXABC
Description XXABC Custom Application User
7. En son Application tarafında Autoconfig çalıştırılır. (Autoconfig Nedir? Nasıl Çalıştırılır?)
1. Öncelikle yaratacağımız custom top için dizin hiyeraşisini oluştururuz. Burada oluşturacağımız örnek modülümüzün adı "xxabc" olsun. Buna göre aşağıdaki klasörler $APPL_TOP altında yaratılır.
cd $APPL_TOP
mkdir XXABC
mkdir XXABC/12.0.0
mkdir XXABC/12.0.0/admin
mkdir XXABC/12.0.0/admin/sql
mkdir XXABC/12.0.0/admin/odf
mkdir XXABC/12.0.0/sql
mkdir XXABC/12.0.0/bin
mkdir XXABC/12.0.0/reports
mkdir XXABC/12.0.0/reports/US
mkdir XXABC/12.0.0/forms
mkdir XXABC/12.0.0/forms/US
mkdir XXABC/12.0.0/lib
mkdir XXABC/12.0.0/out
mkdir XXABC/12.0.0/log
mkdir XXABC/12.0.0/help
mkdir XXABC/12.0.0/html
mkdir XXABC/12.0.0/java
mkdir XXABC/12.0.0/mds
mkdir XXABC/12.0.0/media
mkdir XXABC/12.0.0/mesg
mkdir XXABC/12.0.0/patch
2. Bu dizinler yaratıldıktan sonra bu yeni yarattığımız modül "environment" dosyasına eklenir.
export XXABC_TOP=$APPL_TOP/XXABC/12.0.0
Eklendikten sonra $APPL_TOP/admin altında bulunan topfile.txt dosyası değiştirilir ve içine aşağıdaki örnekteki satır eklenir. Burada $APPL_TOP dizini direk olarak verilmelidir. Aşağıdaki gibi parametre olarak verilmelidir. Aşağıda sadece xxabc'den sonra hangi dizin gelmesi gerektiği gösterilmektedir. $APPL_TOP/admin/topfile.txt içine bakılırsa anlaşılabilinir.
xxabc $APPL_TOP
vi $APPL_TOP/admin/topfile.txt
xxabc /orappl/........
$INST_TOP/appl/admin/$CONTEXT_NAME.xml 'e uygun giriş yapılır. Bu örneğimiz için aşağıdaki bilgiyi gireriz.
/oracle/$SID/apps/apps_st/appl/xxabc_top/12.0.0
3. Tablespace yaratılır.
CREATE TABLESPACE TSXXKR DATAFILE
'+DATA' SIZE 50M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
4. Kullanıcı yaratılır.
CREATE USER XXABC
IDENTIFIED BY XXABC
DEFAULT TABLESPACE TSXXABC
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;
Gerekli yetkiler de verilir.
grant connect, resource to XXABC;
5. Application'a schema'mız kaydedilir.
System Administrator sorumluluğunda Application>Register diyerek orada uygun alanlar aşağıdaki gibi doldurulur.
Application : XXABC Custom Application
Short Name : XXABC
Basepath : XXABC_TOP
Description : XXABC Custom Application
6. Oracle kullanıcımız kaydedilir.
System Administrator sorumluluğunda Security>Oracle>Datagroup seçeneğine gidilerek kullanıcımız kaydedilir.
Database User Name : XXABC
Password : XXABC
Description XXABC Custom Application User
7. En son Application tarafında Autoconfig çalıştırılır. (Autoconfig Nedir? Nasıl Çalıştırılır?)
Oracle E-Business Suite: Autoconfig Nedir? - Nasıl Çalıştırılır?
Autoconfig Nedir?
Autoconfig Oracle Applications'da konfigürasyon aracı olarak kullanılır. Ne zaman konfigürasyonda bir değişiklik yapılırsa ya da bir patch readme'sinde yazılırsa autoconfig script'i çalıştırılır. Application instance'ındaki standart değişikliklerin yapılması için kullanılan, kurulum,konfigürasyonve patch'leme işlemlerinde çalıştırılan ana araçtır.
APPL_TOP konfigürasyonları ile ayarların tutulduğu ve Application'ın çalışması ile ilgili bilgilerin barındırıldığı ana merkez "Applications Context" olarak belirtilir. Autoconfig çalıştığında Context dosyasındaki bilgileri kullanarak konfigürasyon dosyalarını oluşturur ve veritabanındaki profilleri günceller.
Autoconfig ile context dosyası değiştirilir(xml dosyası). Değiştirilen bu context dosyasıyla ilgili konfigürasyon modifikasyonuula ilgili bilgiler toplanır. Bunlar uygun konfigurasyon dosyasına yazılır ya da gerekli dosyalar yaratılır. Buna göre uygun process'ler çalıştırılır. Belirli konfigürasyon dosyalarına ek olarak httpd.conf, jserv.properties, appsweb.cfg dosyaları da konfigüre edilir. Veritabanında tutulan çeşitli ayarların değiştirilmesi mümkündür.
Applications context file'ı $INST_TOP/appl/admin/$CONTEXT_NAME.xml 'dir. Bu context file içinde
Autoconfig Nasıl Çalıştırılır?
Application tarafında: $ADMIN_SCRIPTS_HOME altında database tarafında: $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME dizinlerinde bulunur.
Not: $ADMIN_SCRIPTS_HOME=$INST_TOP/admin/scripts
Adautocfg.sh, $AD_TOP/bin altındaki adconfig.sh'ı çağırır. O da yine $AD_TOP/bin altındaki adconfig.pl'i çağırır.
Application tarafındaki aşamalar Sırasıyla:
6. Application açılır.
$ADMIN_SCRIPTS_HOME altındaki ./adstrtall.sh çalıştırılır.
Autoconfig Oracle Applications'da konfigürasyon aracı olarak kullanılır. Ne zaman konfigürasyonda bir değişiklik yapılırsa ya da bir patch readme'sinde yazılırsa autoconfig script'i çalıştırılır. Application instance'ındaki standart değişikliklerin yapılması için kullanılan, kurulum,konfigürasyonve patch'leme işlemlerinde çalıştırılan ana araçtır.
APPL_TOP konfigürasyonları ile ayarların tutulduğu ve Application'ın çalışması ile ilgili bilgilerin barındırıldığı ana merkez "Applications Context" olarak belirtilir. Autoconfig çalıştığında Context dosyasındaki bilgileri kullanarak konfigürasyon dosyalarını oluşturur ve veritabanındaki profilleri günceller.
Autoconfig ile context dosyası değiştirilir(xml dosyası). Değiştirilen bu context dosyasıyla ilgili konfigürasyon modifikasyonuula ilgili bilgiler toplanır. Bunlar uygun konfigurasyon dosyasına yazılır ya da gerekli dosyalar yaratılır. Buna göre uygun process'ler çalıştırılır. Belirli konfigürasyon dosyalarına ek olarak httpd.conf, jserv.properties, appsweb.cfg dosyaları da konfigüre edilir. Veritabanında tutulan çeşitli ayarların değiştirilmesi mümkündür.
Applications context file'ı $INST_TOP/appl/admin/$CONTEXT_NAME.xml 'dir. Bu context file içinde
- Database Bilgisi
- Form ve Web Servis Bilgileri
- Port Numaraları
- Application Bilgileri
yer alır.
Not: $CONTEXT_NAME=$SID_$HOSTNAME 'dir.
Database context file'ı ise $ORACLE_HOME/appsutil/$CONTEXT_NAME.xml 'dir. Database tarafında autoconfig çalıştırıldığında bu dosya değişir.
Application tarafında çalıştığında application context file'ını kullanıp konfigürasyon dosyalarını oluşturup database profillerini güncelleştirirken, database tarafında çalıştığında database context file'ını kullanır.
Autoconfig Nasıl Çalıştırılır?
Application tarafında: $ADMIN_SCRIPTS_HOME altında database tarafında: $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME dizinlerinde bulunur.
Not: $ADMIN_SCRIPTS_HOME=$INST_TOP/admin/scripts
Adautocfg.sh, $AD_TOP/bin altındaki adconfig.sh'ı çağırır. O da yine $AD_TOP/bin altındaki adconfig.pl'i çağırır.
Application tarafındaki aşamalar Sırasıyla:
- Application kullanıcısıyla bağlanılır. (Genelde applmgr oalrak)2.
2. $APPL_TOP/$SID_$MAKINE_ADI.env adlı environment dosyası çalışıtırılır.
3. Application kapatılır.
./$ADMIN_SCRIPTS_HOME/adstpall.sh apps/password
4. $ADMIN_SCRIPTS_HOME altındaki ./adautocfg.sh çalıştırılır.
5. Autoconfig. çalıştırıldıktan sonra bulunduğumuz klasörden afterconfig.sh çalıştırırız.
5. Autoconfig. çalıştırıldıktan sonra bulunduğumuz klasörden afterconfig.sh çalıştırırız.
6. Application açılır.
$ADMIN_SCRIPTS_HOME altındaki ./adstrtall.sh çalıştırılır.
Log Dosyası:
Autoconfig'in log dosyası $INST_TOP/admin/log/$(date) dizinindedir. Bununla birlikte
$INST_TOP/admin/install altında install scriptleri $INST_TOP/admin/scripts altında control script'leri bulunur.
$INST_TOP/admin/install altında install scriptleri $INST_TOP/admin/scripts altında control script'leri bulunur.
Context File:
Autoconfi dosyası $INST_TOP/appl/admin/$CONTEXT_NAME.xml adlı dizindedir.
Bu dosyada değişiklikler yapılır.
Etiketler:
ad,
ad araçları,
autoconfig,
e-business suite,
EBS,
Oracle
8 Ekim 2013 Salı
PL\SQL Örnekleri
Burada bana gelen bazı isteklere göre pl\sql örnekleri koyacağım.
1- PL\SQL'de tabloya veri yazdırma:
Bu örneğim için ilk olarak bir deneme tablosu yarattım.
Sonrasında hemen tablo içerisinde var olan bilgiyi tabloya tekrar koyan bir pl\sql kodu yazdım.
Burada bir değişken yaratıp o değişkene tablomuz içindeki tek değer olan dummy tablosundaki x değerini "X" parametresine atıp o "X" parametresini de tablomun içine attım.
Sonuçları görmek için "commit" lemeyi unutmayın. Gözden kaçabilir. Insert yaptığınız için hemen sonuçlar kaydedilmemektedir.
2- PL\SQL'de bir tablodan gelen her sonucu işleyip ona göre başka bir tabloya yazmak, girmek.
Aynı zamanda "CURSOR FOR LOOP" örneği olarak da kullanılabilinir.
Önce geçen örnekte olduğu gib tekrar bir tablo yaratırız.
Sonra procedure'umuz yazarız.
Buradaki örneğimizde bize bir tablodan hem bir sürü sayıda sonuç hem de birden fazla bilgi gelmektedir. Örneğin "select * from scott.emp" için aşağıdaki sonuçlar gelmektedir.
Bu kadar sayıda gelen sonucu ayrı ayrı işlemek için bir for loop'una ihtiyacımız vardır. Burada bunun için bir cursor, bir de kullanacağımız rowtype tipinde değişken yaratırız. Ondan sonra cursorımıza çekeceğimiz değerlerin sorgusunu veririz. For loop'u içinde de aldığımız her değeri tekrar tablomuzu sokarız. Yani tablonunun içindeki verileri çoğaltmış oluruz. En son olarak commit'leyip "select count(*) from scott deneme1" 'den ne kadar kere verilerimizi çoğaltmış olduğumuzu görebiliriz.
3- Bu yazımızda da tablo geri döndürmenin PLSQL de nasil yapıldığını göstereceğiz.
1- PL\SQL'de tabloya veri yazdırma:
Bu örneğim için ilk olarak bir deneme tablosu yarattım.
create table scott.deneme as select * from dual;
Sonrasında hemen tablo içerisinde var olan bilgiyi tabloya tekrar koyan bir pl\sql kodu yazdım.
declare
x varchar2(10);
begin
select * into x from dual;
dbms_output.put_line(x);
insert into scott.deneme values(x);
end;
Burada bir değişken yaratıp o değişkene tablomuz içindeki tek değer olan dummy tablosundaki x değerini "X" parametresine atıp o "X" parametresini de tablomun içine attım.
Sonuçları görmek için "commit" lemeyi unutmayın. Gözden kaçabilir. Insert yaptığınız için hemen sonuçlar kaydedilmemektedir.
2- PL\SQL'de bir tablodan gelen her sonucu işleyip ona göre başka bir tabloya yazmak, girmek.
Aynı zamanda "CURSOR FOR LOOP" örneği olarak da kullanılabilinir.
Önce geçen örnekte olduğu gib tekrar bir tablo yaratırız.
create table scott.deneme1 as select * from scott.emp;
Sonra procedure'umuz yazarız.
declare
y SCOTT.EMP%ROWTYPE;
cursor z is select * from scott.emp;
begin
for a in z
loop
dbms_output.put_line(a.ename);
insert into scott.deneme1 values(a.empno,a.ename,a.job,a.mgr,a.hiredate,a.sal,a.comm,a.deptno);
end loop;
end;
Buradaki örneğimizde bize bir tablodan hem bir sürü sayıda sonuç hem de birden fazla bilgi gelmektedir. Örneğin "select * from scott.emp" için aşağıdaki sonuçlar gelmektedir.
7369 SMITH CLERK 7902 12/17/1980 800 20
7499 ALLEN SALESMAN 7698 2/20/1981 1600 300 30
7521 WARD SALESMAN 7698 2/22/1981 1250 500 30
7566 JONES MANAGER 7839 4/2/1981 2975 20
7654 MARTIN SALESMAN 7698 9/28/1981 1250 1400 30
7698 BLAKE MANAGER 7839 5/1/1981 2850 30
7782 CLARK MANAGER 7839 6/9/1981 2450 10
7788 SCOTT ANALYST 7566 12/9/1982 3000 20
7839 KING PRESIDENT 11/17/1981 5000 10
7844 TURNER SALESMAN 7698 9/8/1981 1500 0 30
7876 ADAMS CLERK 7788 1/12/1983 1100 20
7900 JAMES CLERK 7698 12/3/1981 950 30
7902 FORD ANALYST 7566 12/3/1981 3000 20
7934 MILLER CLERK 7782 1/23/1982 1300
Bu kadar sayıda gelen sonucu ayrı ayrı işlemek için bir for loop'una ihtiyacımız vardır. Burada bunun için bir cursor, bir de kullanacağımız rowtype tipinde değişken yaratırız. Ondan sonra cursorımıza çekeceğimiz değerlerin sorgusunu veririz. For loop'u içinde de aldığımız her değeri tekrar tablomuzu sokarız. Yani tablonunun içindeki verileri çoğaltmış oluruz. En son olarak commit'leyip "select count(*) from scott deneme1" 'den ne kadar kere verilerimizi çoğaltmış olduğumuzu görebiliriz.
3- Bu yazımızda da tablo geri döndürmenin PLSQL de nasil yapıldığını göstereceğiz.
Oracle E-Business Suite: Error - "Function Not Available To This Responsibility. Change Responsibilities or Contact System Administrator"
Aşağıdaki hatayı bir forms ekranında help>diagnostics>custom code>personalize ekranına giderken karşılaştım. Bu sorunun 12.1.3 versiyonuna yükseltildiğinde karşılaşıldığını öğrendim.
Bu sorunun çözümü ise görece basitti. İlgili sorumluluğa "Utilities:Diagnostics" profil değerini "YES" olarak atadım ve sorun çözüldü.
Bu sorunun çözümü ise görece basitti. İlgili sorumluluğa "Utilities:Diagnostics" profil değerini "YES" olarak atadım ve sorun çözüldü.
7 Ekim 2013 Pazartesi
Oracle Veritabanı: Log Miner Kurulumu - Ayarlanması - Kullanılması
LogMiner archived redo logs'ların kullanılmasını, analiz edilmesini, okunmasını sağlar. Bize tarihsel olarak bir ilerleme görüntüsü verir. Bununla birlikte undo operasyonları yapmamıza sağlar ve mantıksal hatalarda yapılmaması gereken işlemlerde geri dönüşü sağlar.
LogMiner özellikle yanlışlıkların ve hataların tespit edilmesinde yararlı olur. Redo log dosyaları incelendikten ve sonuçları anlamları bir bilgiye çevrildikten sonra v$logmnr_contents tablosundan inceleme yapabiliriz. Kullanılan Sql'lerle birlikte bunların undo sql'leri gösterilir ve bunlardan da geri çevirme işlemi yapılabilinir.
Bundan başka LogMiner ile bir tablonun değişikliklerinin takip edilmesi, b ir kullanıcı tarafından yapılan değişikliklerin izlenilmesi işlemleri de yapılabilinir.
LogMiner paketi database ile birlikte gelir. "Advanced" kurulum sırasında yüklenip yüklenmemesi opsiyon olarak sorulur.
LogMiner Kullanım Amaçları:
-Bir database olayını belirlemek için.
-Kullanıcılar tarafından gerçekleştirilen işlemleri bulmak için.
-Veri değişikliğine karşı undo transaction'ları gerçekleştirme.
-Veritabanında gerçekleştirilen operasyonların audit'lenmesi.
LogMiner Konfigürasyonu ve Dictionary File'ın Yaratılması:
LogMiner var olan verileri kullanmak için bir "dictionary file" kullanır. LogMiner'ın kullandığı veriler "raw data" olduğu için bu bilgileri daha anlamlı hale getirmek için bir dictionary file gerekir. Bu da bir parametrenin aktifleştirilmesiyle olur.
Yukarıda LogMiner için klasörümüzü belirttikten sonra aşağıda da kullanacağımız dictionary file dosyasını belirtiriz. Paketi çalıştırıp dosyamızı belirtilen klasörün altında yaratırız.
LogMiner Kullanacağı Logların Belirtilmesi:
Analiz edilecek loglar da paketin yardımıyla eklenmelidir. dbms_logmnr.new opsiyonu ile bir liste oluşturulur.
dbms_logmnr.addfile opsiyonu ile var olan listeye logfile eklenir.
dbms_logmnr.removefile opsiyonu ile log dosyaları kaldırılır.
LogMiner'ı Başlatmak:
LogMiner'ı başlatmak için birden fazla opsiyon bulunmaktadır. Belirli bir SCN numarası, zaman aralığı verilerek ya da bütün logları kullanarak analiz yaptırabiliriz.
SCN Aralığı:
Zaman Aralığı:
Analiz Edilen Loglarla İlgil Bilgilerin Sorgulanması:
LogMiner tarafından kullanılan başlıca tablolar aşağıdaki gibidir.
Bunlardan:
Referans:
http://www.oracle-base.com/articles/8i/logminer.php
http://www.oracle-class.com/?page_id=589
http://docs.oracle.com/cd/B19306_01/server.102/b14215/logminer.htm
http://www.oracleflash.com/24/How-to-read-or-analyze-redo-log-files-using-LogMiner.html
http://psoug.org/reference/dbms_logmnr.html
LogMiner özellikle yanlışlıkların ve hataların tespit edilmesinde yararlı olur. Redo log dosyaları incelendikten ve sonuçları anlamları bir bilgiye çevrildikten sonra v$logmnr_contents tablosundan inceleme yapabiliriz. Kullanılan Sql'lerle birlikte bunların undo sql'leri gösterilir ve bunlardan da geri çevirme işlemi yapılabilinir.
Bundan başka LogMiner ile bir tablonun değişikliklerinin takip edilmesi, b ir kullanıcı tarafından yapılan değişikliklerin izlenilmesi işlemleri de yapılabilinir.
LogMiner paketi database ile birlikte gelir. "Advanced" kurulum sırasında yüklenip yüklenmemesi opsiyon olarak sorulur.
LogMiner Kullanım Amaçları:
-Bir database olayını belirlemek için.
-Kullanıcılar tarafından gerçekleştirilen işlemleri bulmak için.
-Veri değişikliğine karşı undo transaction'ları gerçekleştirme.
-Veritabanında gerçekleştirilen operasyonların audit'lenmesi.
LogMiner Konfigürasyonu ve Dictionary File'ın Yaratılması:
LogMiner var olan verileri kullanmak için bir "dictionary file" kullanır. LogMiner'ın kullandığı veriler "raw data" olduğu için bu bilgileri daha anlamlı hale getirmek için bir dictionary file gerekir. Bu da bir parametrenin aktifleştirilmesiyle olur.
UTL_FILE_DIR=/u01/app/oracle/oradata/LogMıner
Yukarıda LogMiner için klasörümüzü belirttikten sonra aşağıda da kullanacağımız dictionary file dosyasını belirtiriz. Paketi çalıştırıp dosyamızı belirtilen klasörün altında yaratırız.
BEGIN
DBMS_LOGMNR_D.build (
dictionary_filename => 'dictfile.ora',
dictionary_location => '/u01/app/oracle/oradata/LogMıner');
END;
/
LogMiner Kullanacağı Logların Belirtilmesi:
Analiz edilecek loglar da paketin yardımıyla eklenmelidir. dbms_logmnr.new opsiyonu ile bir liste oluşturulur.
BEGIN
DBMS_LOGMNR.add_logfile (
options => DBMS_LOGMNR.new,
logfilename => '/u01/app/oracle/oradata/archive/berkeArchive00001');
/
dbms_logmnr.addfile opsiyonu ile var olan listeye logfile eklenir.
EXECUTE DBMS_LOGMNR.ADD_LOGFILE(
LOGFILENAME => '/u01/app/oracle/oradata/archive/berkeArchive00001', -
OPTIONS => dbms_logmnr.addfile);
dbms_logmnr.removefile opsiyonu ile log dosyaları kaldırılır.
EXECUTE DBMS_LOGMNR.ADD_LOGFILE(
LOGFILENAME => '/u01/app/oracle/oradata/archive/berkeArchive00001',
OPTIONS => dbms_logmnr.removelogfile);
LogMiner'ı Başlatmak:
LogMiner'ı başlatmak için birden fazla opsiyon bulunmaktadır. Belirli bir SCN numarası, zaman aralığı verilerek ya da bütün logları kullanarak analiz yaptırabiliriz.
BEGIN
-- Start using all logs
DBMS_LOGMNR.start_logmnr (
dictfilename => '/u01/app/oracle/oradata/LogMıner/dictfile.ora');
SCN Aralığı:
DBMS_LOGMNR.start_logmnr (
dictfilename => '/u01/app/oracle/oradata/LogMıner/dictfile.ora',
startscn => 98231321,
endscn => 98298845);
END;
Zaman Aralığı:
DBMS_LOGMNR.start_logmnr (
dictfilename => '/u01/app/oracle/oradata/LogMıner/dictfile.ora',
starttime => TO_DATE('01-JAN-2013 00:00:00', 'DD-MON-YYYY HH:MI:SS'),
endtime => TO_DATE('01-MAR-2013 10:00:00', 'DD-MON-YYYY HH:MI:SS'));
Analiz Edilen Loglarla İlgil Bilgilerin Sorgulanması:
LogMiner tarafından kullanılan başlıca tablolar aşağıdaki gibidir.
DBA_LOGMNR_LOG
DBA_LOGMNR_PURGED_LOG
DBA_LOGMNR_SESSION
GV$LOGMNR_CALLBACK Synonym for GV_$LOGMNR_CALLBACK
GV$LOGMNR_CONTENTS Synonym for GV_$LOGMNR_CONTENTS
GV$LOGMNR_DICTIONARY Synonym for GV_$LOGMNR_DICTIONARY
GV$LOGMNR_DICTIONARY_LOAD Synonym for GV_$LOGMNR_DICTIONARY_LOAD
GV$LOGMNR_LATCH Synonym for GV_$LOGMNR_LATCH
GV$LOGMNR_LOGFILE Synonym for GV_$LOGMNR_LOGFILE
GV$LOGMNR_LOGS Synonym for GV_$LOGMNR_LOGS
GV$LOGMNR_PARAMETERS Synonym for GV_$LOGMNR_PARAMETERS
GV$LOGMNR_PROCESS Synonym for GV_$LOGMNR_PROCESS
GV$LOGMNR_REGION Synonym for GV_$LOGMNR_REGION
GV$LOGMNR_SESSION Synonym for GV_$LOGMNR_SESSION
GV$LOGMNR_STATS Synonym for GV_$LOGMNR_STATS
GV$LOGMNR_TRANSACTION Synonym for GV_$LOGMNR_TRANSACTION
V$LOGMNR_CALLBACK Synonym for V_$LOGMNR_CALLBACK
V$LOGMNR_CONTENTS Synonym for V_$LOGMNR_CONTENTS
V$LOGMNR_DICTIONARY Synonym for V_$LOGMNR_DICTIONARY
V$LOGMNR_DICTIONARY_LOAD Synonym for V_$LOGMNR_DICTIONARY_LOAD
V$LOGMNR_LATCH Synonym for V_$LOGMNR_LATCH
V$LOGMNR_LOGFILE Synonym for V_$LOGMNR_LOGFILE
V$LOGMNR_LOGS Synonym for V_$LOGMNR_LOGS
V$LOGMNR_PARAMETERS Synonym for V_$LOGMNR_PARAMETERS
V$LOGMNR_PROCESS Synonym for V_$LOGMNR_PROCESS
V$LOGMNR_REGION Synonym for V_$LOGMNR_REGION
V$LOGMNR_SESSION Synonym for V_$LOGMNR_SESSION
V$LOGMNR_STATS Synonym for V_$LOGMNR_STATS
V$LOGMNR_TRANSACTION Synonym for V_$LOGMNR_TRANSACTION
Bunlardan:
- v$logmnr_dictionary: kullanılan dictionary dosyasını gösterir.
- v$logmnr_parameters: Logminer için geçerli parametreler.
- v$logmnr_logs: kullanılan logları gösterir. Bu loglara göre istediğimiz ayrımları, istediğimiz zaman aralıklarını yapabiliriz.
- v$logmnr_contents: incelenen log dosyalarının içeriklerini gösterir.
Aşağıdaki sorguyla hem gönderilen sorguyu hem de bunun redosunu görebiliriz.
SELECT scn, operation, sql_redo, sql_undo
FROM v$logmnr_contents;
LogMiner'ın kapatılması:
LogMiner'ın kullanımı bittikten sonra kapatılması gerekmektedir.
BEGIN
DBMS_LOGMNR.end_logmnr;
END;
/
Hangi tabloların ne zaman, ne kadar erişildiğini de LogMiner'ın v$logmnr_contents tablosunu sorgulayarak bulabiliriz.
SELECT seg_owner, seg_name, count(*) AS Hits FROM
v$logmnr_contents WHERE seg_name NOT LIKE '%$' GROUP BY
seg_owner, seg_name;
Referans:
http://www.oracle-base.com/articles/8i/logminer.php
http://www.oracle-class.com/?page_id=589
http://docs.oracle.com/cd/B19306_01/server.102/b14215/logminer.htm
http://www.oracleflash.com/24/How-to-read-or-analyze-redo-log-files-using-LogMiner.html
http://psoug.org/reference/dbms_logmnr.html
http://www.oracle-base.com/articles/11g/flashback-and-logminer-enhancements-11gr1.php
http://docs.oracle.com/cd/A87860_01/doc/server.817/a76956/archredo.htm#12680
http://turkceoracle.com/2011/05/log_miner-kurulumu-konfigurasyonu-ve-kullanimi.html
http://docs.oracle.com/cd/A87860_01/doc/server.817/a76956/archredo.htm#12680
http://turkceoracle.com/2011/05/log_miner-kurulumu-konfigurasyonu-ve-kullanimi.html
6 Ekim 2013 Pazar
Linux / Unix : Redhat Hostname Değişimi Nasıl Yapılır? - Hostname Değiştirmek
Redhat işletim sistemi /etc/sysconfig/network altındaki bilgileri okuyarak hostnam bilgisini belirtir. Bu kayıt işlemi her seferinde /etc/rc.d/rc.sysinit script'i ile yapılır.
/etc/sysconfig/network dosyasının içinde aşağıdaki gibi örnek bilgiler bulunur.
Hostname'in değiştirilmesi için root olarak buradaki dosyadaki "hostname" parametresinin değiştirilmesi gerekir.
Geçici olarak değiştirmek istiyorsak root olarak hostname komutunu kullanabiliriz.
Yukarıdaki şekilde kullanırsak hostname'in adını geçici olarak değiştirmiş oluruz. Halbuki /etc/sysconfig/network dosyasını root olarak değiştirirsek kalıcı olarak "hostname"'i değiştirmiş oluruz.
/etc/sysconfig/network dosyasının içinde aşağıdaki gibi örnek bilgiler bulunur.
NETWORKING=yes
HOSTNAME=”plain.domainname.com”
GATEWAY=”192.168.0.1?
GATEWAYDEV=”eth0?
FORWARD_IPV4=”yes”
Hostname'in değiştirilmesi için root olarak buradaki dosyadaki "hostname" parametresinin değiştirilmesi gerekir.
su - root
vi /etc/sysconfig/network
Geçici olarak değiştirmek istiyorsak root olarak hostname komutunu kullanabiliriz.
hostname berke
Yukarıdaki şekilde kullanırsak hostname'in adını geçici olarak değiştirmiş oluruz. Halbuki /etc/sysconfig/network dosyasını root olarak değiştirirsek kalıcı olarak "hostname"'i değiştirmiş oluruz.
Oracle Veritabanı: Rman - Backup Sets Nedir?
Backıp set'ler rman'e özel bir bir logical object'dir. Rman tarafından işlenilebilen bu backup türünde backup piece'leri bulunur.
Backup set'ler backup piece'lerin toplamından oluşur. Bu backup piece'ler backup komutu içinde yer alan datafile'ların, controlfile'ların ya da diğer database object'lerinin backup'larından oluşur.
Veritabanında datafile'ların, control file'ların, archived redo logs'larının ve server parameter file'ın backup'ları alınabilinir. Ayrıca diğer backup set'lerin de backup'ları alınabilinir.
-- Genel Backup'ları Alınan Dosyalar
Datafile'ların backup'ları alınırken, veritabanı open veya mount mod'da olmalıdır. Eğer database "archivelog" mod'da ise database'in açık veya kapalı olabilir. "Noarchivelog" modunda ise veritabanının düzgün bir şekilde kapanmış olması gerekir.
Backup Set Compression:
Backup Set'lerin ana özelliğidir. Boş olan data block'larının backup'lanmamasıdır. Image copy'lerde backup set'lerin tersine bütün datafile block'ları bulunur. Bu yüzden de daha büyüktür. Backup set'lerde image copy'lere göre farklı olarak sadece dolu bloklar alınır.
Backup set'ler backup piece'lerin toplamından oluşur. Bu backup piece'ler backup komutu içinde yer alan datafile'ların, controlfile'ların ya da diğer database object'lerinin backup'larından oluşur.
Veritabanında datafile'ların, control file'ların, archived redo logs'larının ve server parameter file'ın backup'ları alınabilinir. Ayrıca diğer backup set'lerin de backup'ları alınabilinir.
-- Genel Backup'ları Alınan Dosyalar
BACKUP DATABASE;
BACKUP TABLESPACE users, tools;
BACKUP (SPFILE) (CURRENT CONTROL FILE);
BACKUP BACKUPSET 12;
BACKUP DATAFILECOPY '/tmp/system01.dbf';
Datafile'ların backup'ları alınırken, veritabanı open veya mount mod'da olmalıdır. Eğer database "archivelog" mod'da ise database'in açık veya kapalı olabilir. "Noarchivelog" modunda ise veritabanının düzgün bir şekilde kapanmış olması gerekir.
Backup Set Compression:
Backup Set'lerin ana özelliğidir. Boş olan data block'larının backup'lanmamasıdır. Image copy'lerde backup set'lerin tersine bütün datafile block'ları bulunur. Bu yüzden de daha büyüktür. Backup set'lerde image copy'lere göre farklı olarak sadece dolu bloklar alınır.
Oracle E-Business Suite: FNDLOAD Nedir? - Örnekleri
Fndload Ne İşe Yarar?
Fndload bizim ebs makinaları arasında senkronizasyonumuzu sağlar. Fndload ile ana yapılar yani alert'ler, flexfield'lar, form'lar gibi bir sürü farklı bilgi diğer uygulamalara aktarılır. Geliştirme ortamlarından production ortamlarına da geçişler geliştirmelerin veya değişikliklerin fndload sonucunda oluşan ldt dosyalarının taşınması ile olur.
Genel Kullanım Amaçları:
- Kurulum'larda
- Upgrade'lerde
- Maintenance (Bakım) Çalışmalarında
Fndload aslında bir concurrent programdır. Oracle Application verilerini belirli bir formatta dosyaya yazar. Bu dosya yazmadan önce hangi verileri nasıl yazacağını, hangi verileri alıp almayacağıyla ilgili bir ayar dosyası okur. Bu konfigürasyon dosyasının adı lct'dir.
Genel olarak Fndload bir uygulama biriminden istenilen bilgileri indirebilir. Bu bilgiler text dosyasına yazılıp başka bir makinaya upload edilebilinir. Fndload ile hem upload hem de download yapılabilinir.
Fndload ile Yapılabilinecekler:
· Concurrent Programs, Executables
· Request Groups, Request Sets
· Profile Options
· Key and Descriptive Flexfields
· Menus and Responsibilities
· Forms and Form Functions/Personalizations
· Attachments
· Messages
· Value Sets and Values
· Lookup Types
· User Responsibilities
· Printer Definitions
· FND Dictionary
· Help Configuration
· Document Sequences
· Alerts
· Concurrent Manager Schedules
Fndload hem concurrent program olarak hem de komut satırından çalıştırılabilinir.
Fndload Syntax'ı:
Fndload apps/sifresi@SID 0 Y mode configurasyon_dosyası output_dosyası
-Kullanıcı adı mutlaka apps olmalıdır yoksa ORA-6550 hatası alınır.
-lct dosyaları modifiye edilmemelidir. Çünkü hem bu değişiklikler upload veya download sırasında sorun çıkartabilir hem de desteklenmemektedir.
-lct dosyaları modifiye edilmemelidir. Çünkü hem bu değişiklikler upload veya download sırasında sorun çıkartabilir hem de desteklenmemektedir.
-mode: Download veya Upload
Concurrent Program'lar için Fndload download örneği:
FNDLOAD apps/pwd@seeddb 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct xxaoa_file_name.ldt PROGRAM APPLICATION_SHORT_NAME="prod" CONCURRENT_PROGRAM_NAME="concurrent name"
Concurrent Program'lar için Fndload upload örneği:
FNDLOAD apps/pwd 0 Y UPLOAD ${FND_TOP}/patch/115/import/afcpprog.lct myfile.ldt - CUSTOM_MODE=FORCE
4 Ekim 2013 Cuma
Oracle Veritabanı: ORAPWD - Oracle Password File Komutu
Orapwd komutu Oracle Database için bir password yaratma aracıdır.
Orapwd komutunu çalıştırmadan önce remote_login_passwordfile parametresi set edilmelidir.
Remote_login_passwordfile parametresi ile Oracle şifre dosyasına bakılıp bakılmayacağını ve kaç tane database'in password file'ı kullanabileceğini bilir.
Değerler:
Bu parametre kullanılır hale getirilmezse uzaktaki bir makinadan sysdba olarak bağlanılamaz.
Bir Kullanıcı Orapwd Dosyasına Nasıl Atanır?
Orapwd dosyasına kullanıcının eklenmesi için sysdba yetkisi verilmesi gerekir.
Kaldırmak için
Password dosyasındaki kayıtlı kullanıcılar kimlerdir?
Orapwd nasıl kullanılır?
Kullanım syntax'ı yukarıdaki gibidir.
File argümanı; şifre dosyasına isim atamak için kullanılır.
Entries argümanı opsiyonel olarak kaç tane kullanıcı hesabına yer ayrılacağını gösterir. Yani bir şifre dosyasında kaç tane kullanıcının şifresi tutulacağı belirtilir.
Force argümanı eğer "y" ise varsa var olan şifre dosyasının silinip tekrar yaratılmasını sağlar.
Ignorecase argümanı da opsiyonel olup eğer değeri "y" ise şifrelerin büyük veya küçük harflerle yazılması önemli olmaz.
Orapwd komutunu çalıştırmadan önce remote_login_passwordfile parametresi set edilmelidir.
Remote_login_passwordfile parametresi ile Oracle şifre dosyasına bakılıp bakılmayacağını ve kaç tane database'in password file'ı kullanabileceğini bilir.
Değerler:
- None: Oracle şifre dosyalarını görmezden gelir. Kullanıcılar işletim sistemi tarafından onaylanmalıdırlar.
- Shared: Birden fazla database password dosyasını kullanabilir ama tek tanınan kullanıcı sys'dir.
- Exclusive: Password dosyası sadece bir database tarafından kullanılabilinir. Password dosyası sys'den başka kullanıcıları da tutabilir.
Bu parametre kullanılır hale getirilmezse uzaktaki bir makinadan sysdba olarak bağlanılamaz.
Bir Kullanıcı Orapwd Dosyasına Nasıl Atanır?
Orapwd dosyasına kullanıcının eklenmesi için sysdba yetkisi verilmesi gerekir.
GRANT SYSDBA TO Berke;
Kaldırmak için
REVOKE SYSDBA FROM Berke;
Password dosyasındaki kayıtlı kullanıcılar kimlerdir?
select * from v$pwfile_users;
Orapwd nasıl kullanılır?
orapwd file=orapwSID password=oracle entries=5 force=y
Kullanım syntax'ı yukarıdaki gibidir.
File argümanı; şifre dosyasına isim atamak için kullanılır.
Entries argümanı opsiyonel olarak kaç tane kullanıcı hesabına yer ayrılacağını gösterir. Yani bir şifre dosyasında kaç tane kullanıcının şifresi tutulacağı belirtilir.
Force argümanı eğer "y" ise varsa var olan şifre dosyasının silinip tekrar yaratılmasını sağlar.
Ignorecase argümanı da opsiyonel olup eğer değeri "y" ise şifrelerin büyük veya küçük harflerle yazılması önemli olmaz.
Oracle Veritabanı: DB_UNIQUE_NAME Parametresinin Değiştirilmesi
DB_UNIQUE_NAME Değiştirme Adımları:
- Sqlplus'a bağlanılır. Buradan parametremiz değiştirilir. Bu değişiklik spfile'ı etkileyecek şekilde olur.
>sqlplus "/ as sysdba"
SQL> SHOW PARAMETER db_unique_name;
SQL> ALTER SYSTEM SET db_unique_name=Berke SCOPE=spfile;
SQL> shutdown immediate;
SQL> startup;
Diagnostic_dest/diag/rdbms///trace/alert.log
Db_recovery_file_dest//archivelog/
Parametrenin değiştiğinden emin olmak için SQL olarak aşağıdaki sorguyu koyabiliriz.
SQL>show parameter unique_name ;
En son olarak da parametre dosyamızı yedekleriz.
SQL>create pfile from spfile;
Linux / Unix Komutu : Diff Komutu Kullanımı - Dosyaların Karşılaştırılması ve Aradaki Farkların Bulunması
Diff komutu ile 2 dosya birbirleriyle karşılaştırılırlar. En fazla 3 dosya karşılaştırılabilinir. Bu karşılaştırma sonucunda farklı olan satırları belirtir. Birbirleriyle karşılaştırıp farklılıkları gösterir.
En çok ne için kullanılabilinir?
1- Dosyalardeki değişiklikleri kontrol etmek için.
2- Konfigürasyon dosyalarındaki farklara bakmak için.
Nasıl Kullanılır?
Kullanımı çok basittir. diff komutu yanına 2 tane parametre alır dosya adı olarak.
Buradaki kullanımda abc ve abc1'i 2 farklı dosya adı olarak vermekteyiz.
En çok kullanılan argümanıysa -u'dur. Bu argüman ile de en son ne zaman değişiklik yapıldığı da görülür.
abc1 dosyası en yakın tarihte değiştirilmiş iken 1 den 6 ya kadar olan satırlarda sadece 2. ve 3. satırlarda farklılık bulunmaktadır.
En çok ne için kullanılabilinir?
1- Dosyalardeki değişiklikleri kontrol etmek için.
2- Konfigürasyon dosyalarındaki farklara bakmak için.
Nasıl Kullanılır?
Kullanımı çok basittir. diff komutu yanına 2 tane parametre alır dosya adı olarak.
diff abc abc1
Buradaki kullanımda abc ve abc1'i 2 farklı dosya adı olarak vermekteyiz.
En çok kullanılan argümanıysa -u'dur. Bu argüman ile de en son ne zaman değişiklik yapıldığı da görülür.
>diff -u abc abc1
--- abc 2013-10-04 11:11:54.000000000 +0300
+++ abc1 2013-10-04 11:15:56.000000000 +0300
@@ -1,6 +1,6 @@
a
- a
- a
+ ax
+ axd
a
a
a
abc1 dosyası en yakın tarihte değiştirilmiş iken 1 den 6 ya kadar olan satırlarda sadece 2. ve 3. satırlarda farklılık bulunmaktadır.
Oracle Veritabanı: Session_ID 'imizi Nasıl Buluruz?
Oracle Session_ID'yi nasıl bulabiliriz?
Bu sorunun cevabını ilk düşündüğümüzde v$session tablosu aklıma gelse de orada istediğim cevabı bulamadım.
v$session tablosunda bütün session'larla ilgili bilgiler bulunurken, bana kendi sistemimle ilgili bilgi-session id 'si gerekiyordu.
Bunun için hızlıca aşağıda sorgulardan bir tanesini kullanabiliriz.
select
sys_context('USERENV','SID')
from dual;
---------
select
sid
from
v$mystat
where
rownum <=1;
----------
select
to_number(substr(dbms_session.unique_session_id,1,4),'XXXX') mysid
from dual;
----------
select distinct
sid
from v$mystat;
3 Ekim 2013 Perşembe
Oracle E-Business Suite: OPatch Error - "Opatch failed after uncompleted/interrupted patch"
Buradaki hata karşıma Oracle Application Upgrade'i sırasında gelmişti. Oracle Application'a Database Patch'i geçerken patch lock sorunu oluştu. Bu soruna gerek olup olmadığını önce aşağıdaki yazımızda bulunan uygulama database'ine uygulanmış patchleri gösteren sorguyla inceleyebiliriz.
Uygulanan Patch'ler
ya da
Application'a uygulanan patch'leri $ORACLE_HOME klasöründe bulunan .patch_storage klasörüne giderek de görebiliriz.
Bahsettiğimiz Oracle Patch Hatası:
Bu hatayla karşılaşınca Opatch $ORACLE_HOME/.patch_storage klasöründe bir dosya oluşturup kurulumun önüne geçer. O zaman $ORACLE_HOME altındaki .patch_storage klasörü altındaki patch_locked dosyası silinir.
Uygulanan Patch'ler
ya da
Application'a uygulanan patch'leri $ORACLE_HOME klasöründe bulunan .patch_storage klasörüne giderek de görebiliriz.
Bahsettiğimiz Oracle Patch Hatası:
Problems with the lock file
Lock file exists, details are:
Interim Patch is holding the lock from xxxxxxx,
probably due to previous unsuccessful operation
ERROR: OPatch failed during pre-reqs check
Bu hatayla karşılaşınca Opatch $ORACLE_HOME/.patch_storage klasöründe bir dosya oluşturup kurulumun önüne geçer. O zaman $ORACLE_HOME altındaki .patch_storage klasörü altındaki patch_locked dosyası silinir.
rm -i $ORACLE_HOME/.patch_storage/patch_locked
Oracle Veritabanı: Database’in Otomatik Olarak Başlatılması ve Kapatılması - Automatic Startup and Shutdown
İşletim sistemimizi Oracle Database'i otomatik olarak açıp kapatacak hale getirmek için bazı adımlar atmamız gerekir. Sistemimizin otomatik olarak açılması ve kapanmasını sağlamak, bizim database'imizin beklenmedik bir kapanma sonrasında hemen açılmasını sağlar.
Burada dbstart ve dbshut dosyalarının klasörlerinin yerleri, $ORACLE_HOME ve $ORACLE_OWNER bilgileri yazılır. dbstart ve dbshut script'leri bütün $ORACLE_HOME/bin'lerinde bulunan bir script'dir.
3- Bu dosyaların çalıştırılması için sonrasında hak değişimi ve grup değişimi yapılır.
4- dbora dosyasını otomatik olarak çalışacak şekilde ayarlarız.
Yukarıdaki komut ile dbora servisini ekleriz. dbora dosyası init.d altında yaratıldığı için özel olarak klasör belirtmemiz gerekmez.
Bu şekilde ayarladıktan sonra artık database'imiz otomatik olarak açılıp kapanabilmektedir.
Database'in otomatik açılması ve kapanması için $ORACLE_HOME/bin altında bulunan dbstart ve dbshut script'lerini kullanacağız.
Sistemimizin ne kadar süredir açık olup olmadığını görmek için uptime komutunu kullanabiliriz.
>uptime
09:56AM up 152 days, 16:48, 1 user, load average: 3.23, 2.13, 1.96
1- /etc/oratab dosyası editlenir.
root kullanıcısıyla /etc/oratab dosyası düzeltilir. İstediğimiz SID'li instance'ın satırını bulup N'yi Y yaparız.
Burada $ORACLE_SID database'in adıdır. $ORACLE_HOME ise database home'umumuzdur. Sondaki Y:N seçeneği de Y'ye indirgenir.
Bu durumda ORCL:/oracle/app/product/11.2.0.3/dbhome_1:Y'e getirmemiz gerekir.
Bu işlemi yapmamızın amacı işletim sisteminin açılıp kapanmasıyla birlikte database'inde açılıp kapanmasıdır.
2- /etc/init.d/dbora dosyası yaratılır.
/etc klasörü altında yaratılıcak dosyalar da root izni gerektiği için su root yapılması gerekir.
$ORACLE_SID:$ORACLE_HOME:{Y|N}
Burada $ORACLE_SID database'in adıdır. $ORACLE_HOME ise database home'umumuzdur. Sondaki Y:N seçeneği de Y'ye indirgenir.
Bu durumda ORCL:/oracle/app/product/11.2.0.3/dbhome_1:Y'e getirmemiz gerekir.
Bu işlemi yapmamızın amacı işletim sisteminin açılıp kapanmasıyla birlikte database'inde açılıp kapanmasıdır.
2- /etc/init.d/dbora dosyası yaratılır.
/etc klasörü altında yaratılıcak dosyalar da root izni gerektiği için su root yapılması gerekir.
ORACLE_HOME=/oracle/app/product/11.2.0.3/dbhome_1
ORACLE_OWNER=oracle
case "$1" in
'start')
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
touch /var/lock/subsys/dbora
;;
'stop')
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
rm -f /var/lock/subsys/dbora;;
esac
Burada dbstart ve dbshut dosyalarının klasörlerinin yerleri, $ORACLE_HOME ve $ORACLE_OWNER bilgileri yazılır. dbstart ve dbshut script'leri bütün $ORACLE_HOME/bin'lerinde bulunan bir script'dir.
3- Bu dosyaların çalıştırılması için sonrasında hak değişimi ve grup değişimi yapılır.
chgrp dba /etc/init.d/dbora
chmod 750 /etc/init.d/dbora
4- dbora dosyasını otomatik olarak çalışacak şekilde ayarlarız.
/sbin/chkconfig --add dbora
Yukarıdaki komut ile dbora servisini ekleriz. dbora dosyası init.d altında yaratıldığı için özel olarak klasör belirtmemiz gerekmez.
Bu şekilde ayarladıktan sonra artık database'imiz otomatik olarak açılıp kapanabilmektedir.
Oracle E-Business Suite: OPatch Error - OPatch detects your platform as XX while this patch XXXXX supports platforms: 0 (Generic Platform)
Burada belirtilen hata genel bir hatadır. Bu hata bazı patch'lerin çalıştırılmasından önce OPATCH_PLATFORM_ID parametresinin set edilmesi gerektiği için çıkmaktadır.
Bu hatayla karşılaşıldığı zaman OPATCH_PLATFORM_ID=0 yani generic bir platform anlamına gelecek şekilde set edilirse bu hata geçilebilinir.
Creating log file "/oracle/berke/apps/tech_st/10.1.3/.patch_storage/XXXX/6702510_07-13-2009_10-52-56.log"
Invoking fuser to check for active processes.
OPatch detects your platform as XX while this patch XXXXXX supports platforms:
0 (Generic Platform)
This patch is not suitable for this operating system.
Please contact support for the correct patch.
Bu hatayla karşılaşıldığı zaman OPATCH_PLATFORM_ID=0 yani generic bir platform anlamına gelecek şekilde set edilirse bu hata geçilebilinir.
export OPATCH_PLATFORM_ID=0
2 Ekim 2013 Çarşamba
Oracle E-Business Suite: Form Compile Etmek - Form Compiling - Bozulan Formları Düzeltme
E-Business Suite'de üzerinde değişiklik yaptığımız veya bozulan form'ları compile etmek için 2 tane yol vardır.
1. yol:
- Application kapatılır.
- Application Maintenance Mode'una alınır. (Nasıl Alınır?)
- Adadmin komutu çalıştırılır. Oradan burada gösterdiğimiz yol izlenir. Adadmin > Generate Application Files > Generate Form Files yapılır.
2. yol:
Burada önemli olan compile edeceğimiz form'ların compilation sırasında kullanılmıyor olmasıdır.
- Bunun için Forms Server'a gidilir.Genelde Forms Server Concurrent Server'la birlikte aynı makinada bulunur.
- Applmgr kullanıcısı ile bağlanılır ve gerekli bütün ortam parametreleri set edilir(genelde zaten set edilmiştir.)
- $AU_TOP/forms/US klasörü altına gidilir.
- f60gen veya frmcmp_batch.sh komutu ile fmx dosyaları yaratılır. Fmx dosyaları sonra uygun yerlerine geri konur. f60gen ve frmcmp_batch.sh komutu Unix'tedir. ifcmp60.exe komutu windows'tadır.
Not: Daha çok frmcmp_batch.sh komutu çalıştırılır.
$ f60gen module=(form_ismi).fmb userid=apps/apps output_file=/forms/US/(form_ismi).fmx
Not: f60gen eski sistemlerde bulunabilinir. Yeni sistemlerde frmcmp_batch.sh komutunun kullanılması tavsiye edilir.
veya
Customized Form'lar için yani (Custom.pll) kullanılıyorsa
frmcmp_batch.sh module=/u01/oracle/berke/apps/apps_st/appl/au/12.0.0/forms/US/XXX.fmb userid=APPS/APPS output_file=/u01/oracle/berke/apps/apps_st/appl/inv/12.0.0/forms/US/XXX.fmx module_type=form compile_all=special
Yukarıdaki lokasyon $AU_TOP/resource/'tur.
Eğer Customized Form kullanmıyorsak:.
frmcmp_batch.sh module=/u01/oracle/berke/apps/apps_st/appl/au/12.0.0/forms/US/XXX.fmb userid=APPS/APPS output_file=/u01/oracle/berke/apps/apps_st/appl/inv/12.0.0/forms/US/XXX.fmx module_type=form
Yukarıdaki örnekte $AU_TOP altındaki bir form compile edilip $INV_TOP altına atılır. Yani bir form $AU_TOP altında compile edilip istenilen yere atılır. Bunun dışında eğer compile edilen object library ise olduğu yerde bırakılır.
Kaydol:
Kayıtlar (Atom)