26 Şubat 2009 Perşembe

Struts - Jakarta Struts

Struts Java/JSP ile hazırlanan web uygulama temelli bir fremawork tür. J2EE platformunda uygulama geliştirmek için oldukça kullanışlıdır.Open Source olduğundan herhanbir ücret söz konusu değildir.

Struts Neden Kullanmalıyız?

Open source olduğundan bir çok kişi tarafından kullanıldığı için, bug ları çabuk bulunup düzeltilmektedir. Uygulamaların geliştirilmesini hızlandırır.

Struts - > Framework

Framework bir tanım getirirsek "Bir şeylerin yapımına başlanmasında , yapının oluşmasına yardımcı olan iskelettir." gibi basitleştirebiliriz.

Sturts Nasıl Çalışıyor?
Strust Model-View-Controller (MVC) dizayn temeline dayanmaktadır.

Model : Model yapısı ilişkili datalar, iş mantığı için kullanılabilir modeller sunmaktadır. Model yapıları programla database arasında ilişkileri sağlıyor. Örneğin HR için çalışanların bilgilerine eriştikleri bir arayüz desteği gibi bişi, bende hakim değilim. Hakim oldukça daha detaylı bilgi girerim artık ;)

Google sayesinde edindiğim bir bilgi de Model Kavramı için ;

"Model components are generally standard Java classes. There is no specifically required format for a Model component, so it may be possible to reuse Java code written for other projects."

View : Model yapısı tarafından sağlanan bilgilerin ekranda gösterilmesi kısmıyla ilgilenen yap. Genelde JSP sayfaları tarafından sağlanmaktadır.

Controller : Gelen datalara göre ne yapılacağına karar veren yapı gibi düşünülebilir.

Çok sığ oldu biliyorum :( Yazıyı yazarken faydalandığım kaynak -> http://www.developer.com/java/ent/article.php/10933_1495931_1 burdan daha faydalı bilgilere erişilebilir.

16 Şubat 2009 Pazartesi

Red Hat 4 Telnet servisi

Linux dağıtımlarından Redhat ta kurulu bir makinaya uzaktan erişim problemi, telnet servisi sistemin boot edilmesi ile başlamamakta imiş. Bu nedenle sistem çalıştıktan sonra telnet servisini en azından bir kereye mahsus manuel elle başlatılması gerekebilir.

12 Şubat 2009 Perşembe

Oracle Servisleri Başlatma

Veri tabanını kapatıp açtığımızda yada yeni kurulum yapıldıktan sonra servislerin ve veritabanının başlatılması gerekebiliyor.

su - oracle
sqlplus / as sysdba

sqlplus bağlandıktan sonra ;
"Connected to an idle instance" diye bir yazı ile karşılaşırsak database ayakta olmadığını ve çalıştırmamız gerektiğini anlıyoruz.

11g modsql de çalıştığı için emctl ile , 10g için opmnctl ile servisleri ayağa kaldırıyoruz.

11g için;


lsnrct start
emctl start dbconsole
sqlplus / as sysdba
startup (in sqlplus session)

Localhosta çalışanlar için makineyi sık sık kapatmak söz konusu olduğunda bu işlemlerin sistem yeni başlatıldığında çağrılan bir script tarafından yapılması oldukça faydalı olacaktır.

11 Şubat 2009 Çarşamba

Linux işletim sistemi üzerine Oracle kurulumu

Linux üzerine program kurmak çoğu zaman Windowstaki gibi kolay olmuyor. Oracle kurulumu için de aynı şey söz konusu. Kurulum öncesinde bir çok hazırlık yapılması gerekiyor. Sonrasında da bazı scriptlerin çalıştırılması gerekiyor.

Faydalı olması açısından bu yazıyı Red Hat Enterprise Linux 4 üzerine Oracle 11g kurulumu diye adlandırmak daha doğru olacaktır.
Fakat linuxun diğer dağıtımları veya Oracle'ın diğer sürümleri için de çoğu zaman aynı adımlar uygulanıyor.

Kurulum Öncesi Hazılık

Önce Linux üzerinde tüm haklara sahip olan root kullanıcısı ile sisteme girilmesi gerekiyor ki rahat rahat yeni paketler kuralım, istediğimiz dosyanın içine girip çıkalım, kısaca ortamda tüm yetkilere sahip olmanın özgürlüğünü kullanabilmemiz için
(çok uzattım, blog yazma konusunda çok yeniyim toparlamakta çoğu zaman güçlük çekebilirim :) Herneyse )

--> root kullanıcısı gibi login oluyoruz.

Ve gerekli donanımsal ortam ihtiyaçlarını şöyle bir gözden geçiyoruz.

--> 1 GB ram database instance kontrolü için
--> 1.5 GB disk alanı swap space için
--> 400 MB disk alanı /tmp klasörü için
--> 1.5 - 3 GB disk alanı Oracle yazılımı için
--> 1.2 GB database kurulum öncesi gerekli yazılımları için (tabi daha öncesinde kurulu olması söz konusu olduğu için gerekli olmayadabilir.)
--> 2.4 GB Flash Recorvery Area
(Burda biraz Flash Recorvery Area'dan Bahsetmek gerekirse; Oracle 10g ile gelen yeni bir özellik. Çok fazla datanın kullanıldığı veritabanlarında düzenli olarak gerçekleştirilen recorvery işlemlerin data kaybını önleyen güçlü bir tool.)

Yazılımsal İhtiyaçlar

Gerekli paketlerin kurulu olup olmadığını öğrenmek için rpm(Red Hat Package Manager) komutunu kullanacağız.

rpm -q binutils compat-db control-center gcc gcc-c++ \
glibc glibc-common gnome-libs libstdc++ libstdc++-devel \
make pdksh sysstat xscreensaver

aynı anda bir çok pakedin kontrolünü yapıyoruz bu komutla , sistemde yüklü değilse paket uyarı veriyor. Olmayan paketlerin yüklenmesinden sonra kuruluma devam ediyoruz.

Oracle Kullanıcı gruplarının ve kullanıcısının oluşturulması

root kullanıcısı olarak sisteme giriş yaptığımız için yeni bir grup yada kullanıcı oluşturmada sıkıntı yaşamayız.

-->/usr/sbin/groupadd oinstall
-->/usr/sbin/groupadd dba
-->/usr/sbin/useradd -m -g oinstall -G dba oracle

useradd komutunun -g ve -G parametreleri için
-g (primary group assigned to the users)
-G (Other groups the user belongs to)

oracle kullanıcısı için şifre oluşturuyoruz

-->passw oracle

Kurulumun yapılacağı dosya ve dosya yolunu oluşturup , sahiplendirme ve yetkilendirme işlemini yapıyoruz

-->mkdir -p /u01/app/oracle
-->chown -R oracle:oinstall /u01/app/oracle
-->chmod -R 775 /u01/app/oracle

Kernel parametrelerinin Yapılandırılması

Kernel parametrelerinin yeniden yapılandırılması; Oracle'dan en iyi şekilde performans sağlamak için yapılıyor. 60 ' tan fazla farklı OS 'de koşan Oracle'ın tümüyle örtüşmesi mümkün değil. Performansı açısından büyük farklılıklar var. Konuyla ilgili daha detaylı bilgi için:

http://www.dba-oracle.com/oracle10g_tuning/t_ios_kernel_parameters.htm



cat >> /etc/sysctl.conf << EOF
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 658576
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 1048536
net.core.wmem_max = 1048536
EOF



Değişen paremetrelere göre sistemin çalışması için;

/sbin/sysctl -p

Shell Limit Yapılandırması

Oracle kullanıcısı ve database ortam araçlarını (memory gibi) kullanım kısıtlamaları getiriyoruz ki kafasına göre takılmasın diye :P


cat >> /etc/security/limits.conf << EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
cat >> /etc/pam.d/login << EOF
session required /lib/security/pam_limits.so
EOF
cat >> /etc/profile << EOF
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
cat >> /etc/csh.login << EOF
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
EOF

Hangcheck Timer Yapılandırılması


modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
cat >> /etc/rc.d/rc.local << EOF
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
EOF

Burdaki parametreleri biraz açarsak;


hangcheck_tick ; sistemin sağlıklı bir şekilde çalışıp çalışmadığının kontrol edilme periyodunu tutuyor. Varsayılan değer 60 saniyedir.

hangcheck_margin ; maximum gecikme süresi ; varsayılan değer 30 saniyedir.

Çevresel Ayarların Yapılması

oracle user olarak yapılandırıyoruz. Çünkü oracle userı sisteme girdiğinde sadece kendisi için tanımlı değişkenlere ve path ayarlarına ihtiyacı var.

su oracle


cat >> /home/oracle/.bash_profile << EOF
# User specific environment and startup programs
umask 022
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
export LD_LIBRARY_PATH=/usr/lib:/usr/X11R6/lib
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/11.1.0/db_1
export ORACLE_SID=orcl
PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/jdk/jre/lib/i386/server:\
\$ORACLE_HOME/rdbms/lib:\$ORACLE_HOME/lib:\$LD_LIBRARY_PATH:\
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/sbin:\
/usr/sbin:/root/bin:\$PATH
PATH=\$PATH:\$HOME/bin
export PATH
unset USERNAME
EOF


Bu değerlerin aktif olabilmesi için;

--> source ~/.bash_profile

KURLUMA BAŞLAYABİLİRİZ

oracle kullanıcısının okuma hakkına sahip olduğu klasörde olduğunu varsayıyoruz 11g Setup dosyasının ve oracle kullanıcısı olarak kurulumu gerçekleştiriyoruz.

http://www.oracle.com/technology/obe/11gr1_db/install/dbinst/dbinst.htm

Bağlantısında screenshot ile oldukça faydalı anlatılmıştır. (Birazcıkta üşendim kabul ediyorum :D )