Sühan Erol (Oracle+PHP)

Mart 25, 2009

PHP ile OCI Client Result Cache (Sorgu sonuçlarının İstemci(webserver) tarafında tutulması)

Kategori: Oracle, PHP — suhanerol @ 8:38 pm
Tags:

İstemci tarafında sorgu sonuçlarının tutulması(result caching) Oracle 11g nin sunduğu yeni özelliklerden biridir. Bu özellik OCI (Oracle Call Interface) teknolojisini kullanan uygulamalar ve sürücüler tarafından kullanılabilmektedir. Bu makalede PHP özelinde incelenen konu OCI teknolojisini kullanan diğer programlama lisanlarında da geçerlidir.

(dahası…)

Mart 24, 2009

Ubuntu Linux üzerinde PHP , OCI8 ve Oracle Instant Client Kurulumu

Kategori: Oracle, PHP — suhanerol @ 9:55 am

Bu makale ile, günümüzün en yaygın ve kullanışlı linux dağıtımlarından olan Ubuntu üzerinde Oracle bağlantı destekli PHP kurulumu anlatılarak bir sonraki  “PHP ile ‘OCI Client Result Cache’  (Sorgu sonuçlarının İstemci(webserver)  tarafında tutulması)“  konulu makalenin uygulanabilmesi için hazırlık yapılması amaçlanmıştır.

(dahası…)

Mart 17, 2008

Oracle DRCP (Database Resident Connection Pooling) ile PHP için Connection Pooling

Kategori: Oracle, PHP — suhanerol @ 2:55 pm
Tags:

Oracle 11G ile birlikte gelen yeni özelliklerden biri de DRCP (Database Resident Connection Pooling) dir. Klasik 3 katmanlı mimarinin avantajlarından biri olan connection pooling(bağlantı havuzu) özelliğinin PHP gibi “Çalış ve sonunda bütün kaynakları kapat” mantığı ile çalışan betik lisanlarında bulunmaması veya 3ncü parti yazılımlarla giderilmeye çalışılsa da yeterli ve düzgün çalışır olmaması sorunu PHP gibi lisanların büyük hacimli projelerde tercih edilmemesine sebep olmaktadır. Bir uygulamanın en maliyetli kısmı veritabanına bağlantı ve yeni bir oturum açılması bölümüdür. Java gibi üst düzey uygulama geliştirme ortamları “Hibernate” gibi uygulama katmalarının “Connection Pooling” özellikleriyle bu sorunu çözmüşlerdir. DRCP ile birlikte Oracle 11g’de bu sorunun çözümü amaçlanmıştır.

DRCP nin kullanılması için Veritabanı ve Uygulama Katmanlarında yapılması gereken değişiklikler şunlardır :

  1. Veritabanı Katmanı :

Pool(Havuz) Özelliğinin Kullanıma açılması ve Ayarlanması : DRCP basit bir kullanıma sahip olan API ile yönetilebilmektedir. Her 11g vertabanı anının (instance) varsayılan bir havuzu mevcuttur. Bu havuz aşağıdaki örnekteki gibi ayarlanabilmektedir.

SQL>execute
dbms_connection_pool.configure_pool(null, minsize=>10,
maxsize=>100,
inactivity_timeout=>300,
max_think_time=>600, …);

Yukarıdaki komut ile birlikte varsayılan ayarların değiştirilmesi sağlanabilir. bu komut kullanılmaz ise varsayılan ayarlar geçerli olacaktır.

Aşağıdaki komut ile “Havuz” özelliği başlatılır ve istemciler bu özellikten yararlanmaya başlamaları sağlanmış olur.

SQL>execute dbms_connection_pool.start_pool;

Yukarıda komut çalıştırıldıktan sonra , veritabanı her açılışında bu özellik ile birlikte açılır. eğer bu özelliğin kapatılması istenirse aşağıdaki komut çalıştırılmalıdır.

SQL>execute dbms_connection_pool.stop_pool;

2. Uygulama Katmanı :

Uygulama bağlantılarının DRCP ye yönlendirilmesi :

Bağlantı cümleciklerinde SERVER=POOLED kullanırak DRCP özelliğinin kullanılmak istendiği belirtilir.

    dbserver.deneme.com:1521/finans:POOLEDYada(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=dbserver.deneme.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=finans)(SERVER=POOLED)))

    Bu düzenlemelerden sonra PHP veritabanı bağlantı istekleri Oracle 11G tarafından yönetilen bir havuz tarafından sağlanacak ve otomatik olarak yönetilecektir. Oracle 11G nin sağladığı bu özellik sayesinde PHP gibi betik lisanlarının yüksek hacimli projelerde kullanılabilmesinin yolu açılmış olmaktadır.

    WordPress.com'dan blog alın.