Asdfasf

Wednesday, August 15, 2012

Oracle'da Tablo uzerinde LOCK kullanimi

Bugunumden DB ogrenilerim asagidaki gibi.

1.) Ayni tablo uzerinde sadece 1 instance'in o anda calismasini garanti etmek istiyor isek tablo ustunde lock'lamayi SELECT FOR UPDATE komutu ile asagidaki sekilde yapabiliriz.



SELECT * FROM TABLE FOR UPDATE 

Bu komut sonrasinda, o session disinda baska session'dan bu tabloya yapilan istekler, lock'i alan connection'inin commit ya da rollback cagirmasina kadar bekleyeceklerdir. Lock'i alan session, bu sure boyunca bu tabloda istedigi select/update/delete islemlerini gerceklestirebilecektir.

2.) Peki tablolar uzerinde lock'lari nasil goruyor ve kaldiriyoruz:

 select oracle_username,object_id,session_id from v$locked_object

ilgili session'in serial numarasini aliyoruz:

 select sid,serial# from v$session where sid=<session_id>;

ve session'i oldurup manueal olarak lock'i kaldirma icin:

 alter system kill session '<sId>,<serial#>';

3.) Tablodaki ilk n kaydi almak icin ise:

SELECT * FROM TABLE where ROWNUM <= n

Saturday, August 11, 2012

Eclipse'de Mavenized Web Projesi Olusturmak

Asagidaki adimlar izlenir
1.) Eclipse'de New Maven Project with archtpe maven-archetype-webapp
2.) Dependency'ler pom.xml'e girilir.
3.) Maven dependency'lerinin eclipse classpath'ine eklenmesi icin mvn eclipse:eclipse calistirilir.
4.) Eclipse projesi refresh edilir.
5.) WTP (Web Tools Platform) yuklu oldugundan emin olun
Help ->Install menusunden http://download.eclipse.org/webtools/repository/helios repository'sinden yuklenebilir.
6.) Bu projeyi dynamic web project haline ceviren sihirli komut: mvn eclipse:eclipse -Dwtpversion=2.0
7.) Bu asamada proje Eclipse embedded Tomcat ustunde calisir hale gelmistir. Tomcat, projeyi yuklerken maven dependency'lerini goremiyor ise son care olarak:
8.) Proje uzerinden Properties -> Deployment Assembly -> Add -> Java Build Path Entries -> burdaki listeden maven dependency'leri secilerek Tomcat classpath'ine eklenmesi saglanir.