Previous
Next

IBM Websphere 8.5.5 kurulumu

by Cem Kefeli 4. Haziran 2015 04:46

IBM Websphere ürününü kurabilmek için öncelikli olarak IBM Installation Manager (IM)'dan faydalanabilirsiniz. IM, Websphere için kurulum aşaması ve sonrasında oluşabilecek upgrade&patch işlemlerini yönetmektedir. IM kurulumu için buradaki linkten faydalanabilirsiniz.

IM kurulumu sonrası yüklemek istediğiniz Websphere versiyonunu IBM download sayfalarından indirerek, IM yardımıyla aşağıdaki adımları takip eerek kurulumunu gerçekleştirebilirsiniz.

[websphere@localhost was855]$
[websphere@localhost was855]$ pwd
/u01/app/websphere/installations/was855
[websphere@localhost was855]$
[websphere@localhost was855]$ ls -lrt
total 2909896
-rw-rw-r--. 1 websphere websphere 1054717615 Dec 23 11:52 WASND_v8.5.5_1of3.zip
-rw-rw-r--. 1 websphere websphere 1022550691 Dec 23 11:53 WASND_v8.5.5_2of3.zip
-rw-rw-r--. 1 websphere websphere  902443241 Dec 23 11:54 WASND_v8.5.5_3of3.zip
[websphere@localhost was855]$
[websphere@localhost was855]$
[websphere@localhost was855]$ mkdir WASND_v8.5.5
[websphere@localhost was855]$
[websphere@localhost was855]$ unzip WASND_v8.5.5_1of3.zip -d WASND_v8.5.5
[websphere@localhost was855]$ unzip WASND_v8.5.5_2of3.zip -d WASND_v8.5.5
[websphere@localhost was855]$ unzip WASND_v8.5.5_3of3.zip -d WASND_v8.5.5
[websphere@localhost was855]$
[websphere@localhost WASND_v8.5.5]$
[websphere@localhost WASND_v8.5.5]$ pwd
/u01/app/websphere/installations/was855/WASND_v8.5.5
[websphere@localhost WASND_v8.5.5]$
[websphere@localhost WASND_v8.5.5]$ ls -lrt
total 36
-rw-r--r--.  1 websphere websphere  380 May 14  2013 Copyright.txt
drwxr-xr-x.  3 websphere websphere 4096 May 14  2013 disk2
drwxr-xr-x.  3 websphere websphere 4096 May 14  2013 disk3
drwxr-xr-x.  5 websphere websphere 4096 May 14  2013 disk1
drwxr-xr-x.  2 websphere websphere 4096 May 14  2013 lafiles
drwxr-xr-x. 10 websphere websphere 4096 May 14  2013 readme
drwxr-xr-x.  3 websphere websphere 4096 May 14  2013 Remote_Installation_Tool_for_IBM_i
drwxr-xr-x.  3 websphere websphere 4096 May 14  2013 responsefiles
-rw-r--r--.  1 websphere websphere   81 May 14  2013 repository.config
[websphere@localhost WASND_v8.5.5]$
[websphere@localhost eclipse]$
[websphere@localhost eclipse]$ pwd
/u01/app/IBM/InstallationManager/eclipse
[websphere@localhost eclipse]$
[websphere@localhost eclipse]$ ls -lrt
total 572
-rw-rw-r--.  1 websphere websphere  10776 Sep 16  2014 readme.html
-rwxrwxr-x.  1 websphere websphere 266168 Nov 26  2014 libcairo-swt.so
-rwxrwxr-x.  1 websphere websphere  63050 Nov 26  2014 launcher
-rwxrwxr-x.  1 websphere websphere  63050 Nov 26  2014 IBMIM
-rw-rw-r--.  1 websphere websphere    144 Dec 23 11:46 repository.config
drwxrwxr-x.  3 websphere websphere   4096 Dec 23 11:46 atoc
drwxrwxr-x. 11 websphere websphere 118784 Dec 23 11:46 plugins
drwxr-xr-x.  3 websphere websphere   4096 Dec 23 11:46 jre_7.0.7001.20140909_1712
-rw-rw-r--.  1 websphere websphere    291 Dec 23 11:47 launcher.ini
drwxrwxr-x. 13 websphere websphere   4096 Dec 23 11:47 documentation
drwxrwxr-x.  3 websphere websphere   4096 Dec 23 11:47 lib
-rw-rw-r--.  1 websphere websphere    291 Dec 23 11:47 IBMIM.ini
drwxrwxr-x.  4 websphere websphere   4096 Dec 23 11:47 web
-rw-rw-r--.  1 websphere websphere    343 Dec 23 11:47 silent-install.ini
drwxrwxr-x.  2 websphere websphere   4096 Dec 23 11:47 tools
drwxrwxr-x.  4 websphere websphere   4096 Dec 23 11:47 extra
drwxrwxr-x.  2 websphere websphere   4096 Dec 23 11:47 native
drwxrwxr-x.  7 websphere websphere   4096 Dec 23 11:48 configuration
[websphere@localhost eclipse]$
[websphere@localhost eclipse]$
[websphere@localhost eclipse]$
[websphere@localhost eclipse]$ ./launcher

IBM Websphere InstallationFazlası...

Etiketler: ,

JAVA - Thread kavramı ve Thread Dump

by Cem Kefeli 15. Mayıs 2015 05:50

Tüm java makalelerime buradan ulaşabilirsiniz...Java

Daha önce çok kanallı programlama nedir ve ne işe yarar türünden soruların cevabını bulabilmek amacıyla buradaki (Çok kanallı/Multi-Threaded programlama) yazımda daha çok konsept olarak ele almıştık thread kavramını. Bu yazıda ise bir java uygulaması ayakta ve çalışır durumdayken thread'ler ile ilgili başımıza gelebilecekler problemli senaryoları nasıl yorumlamamız gerektiği karşımıza çıkıyor olacak.

Uygulamada oluşturulan her bir thread'in tabiki uygulama sunucuda da bir karşılığı olmak durumunda. Yani bir yazılım içerisinde oluşturulan thread'lerden her birisi uygulama sunucusu tarafından da yönetilebilir ve takip edilebilir olmalı. Kurumsal uygulamaların çok çok büyük bir kısmı aynı anda birden çok iş yapabilecek şekilde dizayn ediliyorlar. Hal böyle olunca da birçok thread aynı anda çalışmak durumunda kalıyor. Aynı anda çalışan bu iş parçacıkları ise yaptıkları işlerin niteliğine göre farklı sürelerde işlerini tamamlayabiliyorlar. İşlerini tamamlayan thread'ler üzerine düşeni yapmış olmanın sevinciyle köşelerine çekiliyorlar ve başka thread'lere yer bırakıyorlar.

İşte tam bu aşamada gerçek hayatımıza geri dönecek olursak, thread'ler ile ilgili belki de en problematik durumun köşelerine çekilemeyen, bir nedenle işlerini tamamlayamayan kod parçacıkları olduğunu göreceğiz. Kod parçacığı diyorum çünkü problematik durumlar için bir kusur aramak gerekirse bunun kusurlusu thread mantığı ya da thread'in ta kendisi değildir. Thread nihayetinde içerisinde bulunan kod parçacıklarının işlevini yerine getiriyor. Asıl önemli olan, iş yapan kod parçacığının ne kadar kaliteli dizayn edildiğidir.

Gerçek hayattan bir sorun anını ele alalım. Örneğin bir iş parçacığı yaptığı işin bir bölümünde bir WEB servise istek yapıyor ve cevap bekliyor olsun. Burada biz cevap beklediğimiz için kendimize müşeri diyebiliriz. Herşey yolundayken, cevap beklenilen servis tıkır tıkır cevap veriyorken uygulamacının yani müşterinin hayatını kaotik olarak etkileyen pek birşey yoktur. Ama işler ters gitmeye başladığı ve cevap beklenilen servis cevap veremez hale geldiği zaman, siz de bir anda cevap veremez hale gelebilirsiniz, sizin de müşterilerininiz artık beklemeye başlar. Bir anda bakmışsınız servis alınan hat boyunca herkes birbirini bekliyor...

Java Thread Life CycleTam da "Biz acaba neyi bekliyoruz?" sorusuna cevaptır "Neden thread dump'a ihtiyacım var?" konusu. Uygulama thread'lerinin anlık bir görüntüsüdür, thread dump. O an hangi thread'ler aktif, hangi class'lar iş yapıyor, nerede bekleniyor sorularının yüzelsel olarak cevaplarını verebilir. Oluşan dump dosyasının içeriği ve formatı kullanılan JVM'in versiyonuna, sağlayıcısına göre değişecektir. Unix/Linux temelli sistemlerde basit bir şekilde "kill -3 <Process ID>" komutu yardımıyla oluşturulabilir. Oluşan dump içeriği genellikler 'out' loga yazılıyor olur ama yine uygulama sunucusuna ve JVM'e göre değişiklik gösterecektir. Örneğin Websphere için farklı bir dosya olarak profil altına atılacaktır.

Aldığınız dump dosyasını bir 'Thread Dump Editor' ile inceleyecek olursanız thread'lerin statülerinin yandaki şekilde gösterilenlerden birisi olduğunu görürsünüz. İsimleri yine JVM'den JVM'e değişebilir ama anlamları aynı olacaktır. Dump incelenirken asıl odaklanılması gereken 'Blocked' ya da 'Stuck' olarak bahsedilen bir süredir işini yapmaya çalışana ama bir türlü bitiremeyen thread'ler olmalıdır. 

IBM Installation Manager kurulumu

by Cem Kefeli 4. Şubat 2015 02:21

Sistemlerinize IBM Installation Manager (IM) kurarak Websphere ürününün kurulumunu ve kurulum sonrası oluşabilecek patch ihtiyaçlarını IM üzerinden yönetebilirsiniz. IM güncel versiyonu IBM download sayfalarında yer almaktadır. Kurulum aşamaları için hem görsel hem de gerekli örnek komutları içerecek şekilde aşağıdaki gibi bulabilirsiniz.

[websphere@localhost installations]$
[websphere@localhost installations]$ pwd
/u01/app/IBM/installations
[websphere@localhost installations]$
[websphere@localhost installations]$ ls -lrt
total 153496 
-rw-rw-r--. 1 websphere websphere 157177192 Dec 23 11:17 BASETRIAL.agent.installer.linux.gtk.x86.zip
[websphere@localhost installations]$
[websphere@localhost installations]$
[websphere@localhost installations]$ mkdir BASETRIAL.agent.installer.linux.gtk.x86
[websphere@localhost installations]$
[websphere@localhost installations]$ ls -lrt
total 153500
-rw-rw-r--. 1 websphere websphere 157177192 Dec 23 11:17 BASETRIAL.agent.installer.linux.gtk.x86.zip
drwxrwxr-x. 2 websphere websphere      4096 Dec 23 11:22 BASETRIAL.agent.installer.linux.gtk.x86
[websphere@localhost installations]$
[websphere@localhost installations]$ unzip BASETRIAL.agent.installer.linux.gtk.x86.zip -d BASETRIAL.agent.installer.linux.gtk.x86
[websphere@localhost installations]$ cd BASETRIAL.agent.installer.linux.gtk.x86
[websphere@localhost BASETRIAL.agent.installer.linux.gtk.x86]$ ls -lrt
total 588
-rwxr-xr-x.  1 websphere websphere  63050 Aug  9  2012 userinstc
-rwxr-xr-x.  1 websphere websphere  63050 Aug  9  2012 userinst
-rwxr-xr-x.  1 websphere websphere  63050 Aug  9  2012 installc
-rwxr-xr-x.  1 websphere websphere  63050 Aug  9  2012 install
-rwxr-xr-x.  1 websphere websphere  63050 Aug  9  2012 groupinstc
-rwxr-xr-x.  1 websphere websphere  63050 Aug  9  2012 groupinst
-rwxr-xr-x.  1 websphere websphere  10776 Sep 16  2014 readme.html
drwxr-xr-x.  2 websphere websphere   4096 Nov 26  2014 Offerings
drwxr-xr-x.  2 websphere websphere   4096 Nov 26  2014 features
drwxr-xr-x.  3 websphere websphere   4096 Nov 26  2014 jre_7.0.7001.20140909_1712
-rwxr-xr-x.  1 websphere websphere    232 Nov 26  2014 user-silent-install.ini
-rwxr-xr-x.  1 websphere websphere    178 Nov 26  2014 userinst.ini
-rwxr-xr-x.  1 websphere websphere    223 Nov 26  2014 userinstc.ini
drwxr-xr-x.  2 websphere websphere   4096 Nov 26  2014 tools
-rwxr-xr-x.  1 websphere websphere    225 Nov 26  2014 silent-install.ini
-rwxr-xr-x.  1 websphere websphere  10749 Nov 26  2014 repository.xml
-rwxr-xr-x.  1 websphere websphere    201 Nov 26  2014 repository.config
drwxr-xr-x. 11 websphere websphere 106496 Nov 26  2014 plugins
drwxr-xr-x.  2 websphere websphere   4096 Nov 26  2014 native
drwxr-xr-x.  2 websphere websphere   4096 Nov 26  2014 license
-rwxr-xr-x.  1 websphere websphere    174 Nov 26  2014 install.ini
-rwxr-xr-x.  1 websphere websphere    219 Nov 26  2014 installc.ini
-rwxr-xr-x.  1 websphere websphere    176 Nov 26  2014 groupinst.ini
-rwxr-xr-x.  1 websphere websphere    221 Nov 26  2014 groupinstc.ini
drwxr-xr-x. 13 websphere websphere   4096 Nov 26  2014 documentation
-rwxr-xr-x.  1 websphere websphere   2225 Nov 26  2014 consoleinst.sh
drwxr-xr-x.  3 websphere websphere   4096 Nov 26  2014 configuration
-rwxr-xr-x.  1 websphere websphere   1046 Feb 12  2015 install.xml
[websphere@localhost BASETRIAL.agent.installer.linux.gtk.x86]$
[websphere@localhost BASETRIAL.agent.installer.linux.gtk.x86]$
[websphere@localhost BASETRIAL.agent.installer.linux.gtk.x86]$ DISPLAY=172.24.36.86:0.0; export DISPLAY;
[websphere@localhost BASETRIAL.agent.installer.linux.gtk.x86]$ echo $DISPLAY;
172.24.36.86:0.0
[websphere@localhost BASETRIAL.agent.installer.linux.gtk.x86]$
[websphere@localhost BASETRIAL.agent.installer.linux.gtk.x86]$
[websphere@localhost BASETRIAL.agent.installer.linux.gtk.x86]$ ./userinst

IBM Installation ManagerFazlası...

Weblogic application retirement

by Cem Kefeli 24. Mayıs 2014 21:47

SOAP vs. RESTFULBir uygulamanın ilk deployment sonrasında öylece bırakıldığı ve yaşamı süresince bir daha hiç güncellenmediği neredeyse hiç karşılaşılmayan bir durum. Uygulamalar da insan ihtiyaçlarıyla birlikte yaşayan ve bir ömürleri olan yapılar. Günün koşullarına göre ihtiyaçları karşılayabiliyorken bir süre sonra oluşan yeni iş ihtiyaçları doğrultusunda yeni geliştirmeler yapmak gerekebiliyor. Yapılan bu yeni geliştirmeler sonrasında da tabiki güncel uygulamaların tekrar deploy edilmesi gerekli oluyor.

Weblogic uygulama sunucusu bir uygulamanın silinip tekrar yüklenmesi ile aynı uygulamanın re-deploy ya da update edilmesini farklı şekillerde ele alıyor. Daha doğrusu bir uygulama update ediliyorsa iş anlamında da gerçekten yeni gelen bir özelliğin aktif edileceği konseptine bağlı kalmaya çalışıyor. Aslında pratik yaşamda bir uygulamanın silinmesi sonrasında yenisinin tekrar yüklenmesi ile uygulamanın update edilmesi arasında bir fark yok. Nihayetinde ikisinde de yeni uygulama hayatına başlamış oluyor. Ama asıl fark update özelliğinin sunmuş olduğu yenenekler kullanılırsa ortaya çıkıyor.

Weblogic, uygulama paketleri içerisinde yer alan manifest dosyaları sayesinde uygulama versiyonunu takip edebilme ve değişikliği anlayabilme yetisine sahip. Eğer aşağıdaki gibi bir manifest dosyasını uygulama içerisine olması gereken yere eklerseniz daha ilk deployment aşamasında uygulama versiyonlanmış olacaktır.

MANIFEST.MF (applicationRetirement - Version Blue - v1.0.0)  |  Gizle  |  Göster
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: Cem Kefeli (cemkefeli.com)
Weblogic-Application-Version: 1.0.0
Build-Timestamp: 2014-05-24 10:12:15 598

Eğer aşağıdaki gibi bir sonraki güncel uygulamada (Yani bu örnek için 'Version Red - v2.0.0') versiyon bilgisi değişirse, Weblogic bu durumdan da haberdar olacak ve hem mevcuttaki uygulamanın hem de güncel uygulamanın admin kontrolünde birlikte yaşamasına imkan tanıyacaktır.

MANIFEST.MF (applicationRetirement - Version Red - v2.0.0)  |  Gizle  |  Göster
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: Cem Kefeli (cemkefeli.com)
Weblogic-Application-Version: 2.0.0
Build-Timestamp: 2014-05-24 10:17:15 598

Aşağıdaki adımlar takip edilerek Weblogic uygulama sunucusunda nasıl versiyonlama ve update yapılabileceğini görebilirsiniz. Versiyonlanmış iki örnek uygulamayı da yazının bitimindeki linkleri kullanarak indirebilirsiniz;

Weblogic - Application RetirementFazlası...

Hakkımda...

Cem KEFELİ

Electronics and
Telecommunication Eng.
devamı...


Son yapılan yorumlar...

Comment RSS

Yasal bir uyarı...

Disclaimer"Bu web sitesinde görmüş olduğunuz bilgilerin, dokümanların ve diğer materyallerin kullanılmasından doğabilecek hiç bir sorumluluktan site sahibi sorumlu tutulamaz. Web sitesi içerisinde yer alan yazılar, yorumlar, resimler ve diğer tüm içerikler yalnızca sahibinin görüşünü yansıtmakta olup içeriğin sahibi kişilerin çalıştığı kurumları bağlayıcı hiç bir nitelik taşımamaktadır. Yapılan tüm alıntılar mutlaka kaynak gösterilerek verilmeye çalışılmaktadır. Web sitesi içerisinde bulunan ilgili materyaller, ilgili yasal kurumlar tarafından uygun görülmemesi durumda kaldırılacaktır."
General