Showing posts with label Weblogic 12c. Show all posts
Showing posts with label Weblogic 12c. Show all posts

Tuesday, November 15, 2016

WebLogic 12.2.1'de Kümeleme (2. Bölüm)


WebLogic 12c 12.2.1'de kümeleme yazısının ilk bölümüne bu bağlantıdan ulaşabilirsiniz. Yazının devamında, ikinci bölümde, kümeleme yöntemlerini inceleyeceğiz. 

1. Kümeleme Yöntemleri

WebLogic 12c 12.2.1'de kümeleme için iki ayrı yöntem bulunuyor:

  • Durağan (=Configured) Kümeleme
Durağan kümelemede, kümeyi oluşturan yönetilen sunucular (=managed servers) teker teker tanıtılır ve ayrı ayrı yapılandırılır. 

  • Devingen (=Dynamic) Kümeleme
Devingen kümelemede, kümedeki sunucular için önce bir şablon yaratılır. Daha sonra, yönetilen sunucular bu şablondan, kümedeki sunucu sayısı kadar, otomatik olarak yaratılır. Bu yöntemde, kümedeki sunucuların yapılandırılması tek bir yerden, şablondan yönetilir. 
Üstelik kümedeki sunucu sayısı dinamik olarak değiştirilmesi sağlanabilir:

Şimdi sırayla bu iki yöntemi kullanarak birer küme yaratalım.


2. Yönetim Panelinden Durağan Kümeleme Kurulumu

4 adet yönetilen sunucunun yer aldığı bir durağan kümeleme çözümünde, yönetim paneli kullanarak gerçekleştirilen kurulumun adımlarını aşağıda bulabilirsiniz:
Kuruluma Lock & Edit butonuna basarak başlıyoruz.

Küme adını cluster1 olarak tanımlıyoruz. Dört düğümlü bir küme için Unicast haberleşmeyi tercih edebiliriz. Kümedeki sunucu sayısı arttığında Unicast haberleşme yerine Multicast haberleşme tercih edilmelidir. Ok butonuna basarak kümeyi yaratmış olduk.
Kümelerin listesinde cluster1 isimli kümemiz yerini aldı. Ancak henüz kümede sunucu bulunmuyor. Sunucu eklemek üzere cluster1 kümesinin tanımına gidelim.

cluster1 ekranında Configuration sekmesi altında servers sekmesini ziyaret ediyoruz. Add butonuna basarak yönetilen sunucu ekleyeceğiz. Bunu dört kere takrarlamamız gerekecek!

İlk yönetilen sunucuyu ekliyoruz. Sunucu adı cluster1-server1, ağ adresi host01.example.com ve port numarası 8100. 

İkinci yönetilen sunucuyu ekliyoruz. Sunucu adı cluster1-server2, ağ adresi host02.example.com ve port numarası 9100.
Üçüncü yönetilen sunucuyu ekliyoruz. Sunucu adı cluster1-server3, ağ adresi host01.example.com ve port numarası 8200.

Dördüncü ve son yönetilen sunucuyu ekliyoruz. Sunucu adı cluster1-server4, ağ adresi host02.example.com ve port numarası 9200.

Sunucuları doğru eklediğimizden emin olmak için tekrar listesini bu tablodan kontrol ediyoruz.
cluster1 kümesindeki ilk sunucuyu (cluster1-server1) machine1 isimli fiziksel makinaya atıyoruz ve değişikliği Save butonuna basarak kaydediyoruz. 


cluster1 kümesindeki ilk sunucuyu (cluster1-server2machine2 isimli fiziksel makinaya atıyoruz ve değişikliği Save butonuna basarak kaydediyoruz. 

cluster1 kümesindeki ilk sunucuyu (cluster1-server3machine1 isimli fiziksel makinaya atıyoruz ve değişikliği Save butonuna basarak kaydediyoruz. 

cluster1 kümesindeki ilk sunucuyu (cluster1-server4machine2 isimli fiziksel makinaya atıyoruz ve değişikliği Save butonuna basarak kaydediyoruz. 

Her Save butonuna bastığımızda üst alanda işlemin başarılı olduğunu gösterir iletiyi okumamız gerekir.

Activate changes butonuna basmadan önce sunucuların özelliklerini tablodan kontrol edelim.


Artık Activate changes butonuna basabiliriz. 
İşlemin başarılı olduğunı, "All changes have been activated" iletisinden okumamız gerekir.


Servers menüsündeki Control sekmesinden cluster1 kümesindeki tüm sunucuları seçip Start butonuna basıyoruz.
Seçili sunucuları başlatma işlemine onay vermek üzere Yes butonuna basalım.

Onayın ardından sunucuların durumu STARTING durumuna geçecektir. 
cluster1 kümesini oluşturan sunucular bir süre sonra RUNNING durumuna gelecektir.




3. WLST ile Durağan Kümeleme Kurulumu

Yönetim paneli üzerinden 4 sunuculu bir durağan kümeleme kurulumu epey bir işlem gerektirdi. Aynı işi basitçe WLST kullanarak ve Python betiği yazarak gerçekleştirebiliriz. Aşağıda yönetim paneli kullanılarak gerçekleştirilen kümeleme kurulumundaki yapının aynısı bu kez WLST ve Python kullanılarak gerçekleştirilmiştir:

create_cluster2.py:
url = 't3://host01.example.com:7001'
username = 'admin'
password = 'Secret_1234'
clustername = 'cluster2'
servers   = [ 'cluster2-server1'  , 'cluster2-server2'  , 'cluster2-server3'  , 'cluster2-server4'   ]
addresses = [ 'host01.example.com', 'host02.example.com', 'host01.example.com', 'host02.example.com' ]
ports     = [ 4100                , 5100                , 4200                , 5200                 ]

connect(username, password, url)
try:
        cd('/Clusters/' + clustername)
        print '>>>The cluster ' + clustername + ' already exists. Exiting...'
        exit()
except WLSTException:
        pass

edit()
startEdit()

cd('/Machines')
cd('machine1')
machine1 = cmo
cd('/Machines')
cd('machine2')
machine2 = cmo
machines = [ machine2, machine2 , machine1, machine2 ]

cd('/')
thecluster = cmo.createCluster(clustername)
print '>>>Created cluster ' + clustername + '.'

for i in range(len(servers)):
        server= servers[i]
        addr = addresses[i]
        port= ports[i]
        machine= machines[i]
        cd('/')
        create(server, 'Server')
        cd('Servers/' + server)
        set('ListenAddress', addr)
        set('ListenPort', port)
        set('Machine', machine)
        set('Cluster', thecluster)
        print server + ' is created.'

save()
activate(block='true')
print 'Cluster and its servers are created successfully.'

exit()

Yukarıdaki Python betiğini, komut satırından aşağıda verildiği şekilde çalıştırabiliriz:

[oracle@host01]$ source /u01/app/fmw/wlserver/server/bin/setWLSEnv.sh
[oracle@host01]$ java weblogic.WLST create_cluster2.py
CLASSPATH=/u01/app/jdk/lib/tools.jar:/u01/app/fmw/wlserver/modules/features/wlst.wls.classpath.jar:

PATH=/u01/app/fmw/wlserver/server/bin:/u01/app/fmw/wlserver/../oracle_common/modules/org.apache.ant_1.9.2/bin:/u01/app/jdk/jre/bin:/u01/app/jdk/bin:/home/oracle/bin:/u01/app/jdk/bin:/home/oracle/bin:/u01/app/jdk/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/u01/app/fmw/wlserver/../oracle_common/modules/org.apache.maven_3.2.5/bin

Your environment has been set.

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

Connecting to t3://host01.example.com:7001 with userid weblogic ...
Successfully connected to Admin Server "AdminServer" that belongs to domain "wlsadmin".

Warning: An insecure protocol was used to connect to the server. 
To ensure on-the-wire security, the SSL port or Admin port should be used instead.

No stack trace available.
Location changed to edit tree.   
This is a writable tree with DomainMBean as the root.   
To make changes you will need to start an edit session via startEdit(). 
For more help, use help('edit').
You already have an edit session in progress and hence WLST will 
continue with your edit session.

Starting an edit session ...
Started edit session, be sure to save and activate your changes once you are done.
>>>Created cluster cluster2.
MBean type Server with name cluster2-server1 has been created successfully.
cluster2-server1 is created.
MBean type Server with name cluster2-server2 has been created successfully.
cluster2-server2 is created.
MBean type Server with name cluster2-server3 has been created successfully.
cluster2-server3 is created.
MBean type Server with name cluster2-server4 has been created successfully.
cluster2-server4 is created.
Saving all your changes ...
Saved all your changes successfully.
Activating all your changes, this may take a while ... 
The edit lock associated with this edit session is released once the activation is completed.
Activation completed
Cluster and its servers are created successfully.


Exiting WebLogic Scripting Tool.

cluster2 kümesindeki sunucuları WLST kullanarak Python betiği ile kolayca başlatabiliriz:

start_cluster2.py:

url = 't3://host01.example.com:7001'
username = 'weblogic'
password = 'Welcome1'
target = 'cluster2'

connect(username, password, url)

print '>>>Starting the cluster ' + target
start(target,'Cluster')

Yukarıdaki Python betiğini, komut satırından aşağıda verildiği şekilde çalıştırabiliriz:

[oracle@host01]$ source /u01/app/fmw/wlserver/server/bin/setWLSEnv.sh

CLASSPATH=/u01/app/jdk/lib/tools.jar:/u01/app/fmw/wlserver/modules/features/wlst.wls.classpath.jar:
PATH=/u01/app/fmw/wlserver/server/bin:/u01/app/fmw/wlserver/../oracle_common/modules/org.apache.ant_1.9.2/bin:/u01/app/jdk/jre/bin:/u01/app/jdk/bin:/home/oracle/bin:/u01/app/jdk/bin:/home/oracle/bin:/u01/app/jdk/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/u01/app/fmw/wlserver/../oracle_common/modules/org.apache.maven_3.2.5/bin

Your environment has been set.

[oracle@host01]$ java weblogic.WLST start_cluster2.py
Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

Connecting to t3://host01.example.com:7001 with userid weblogic ...
Successfully connected to Admin Server "AdminServer" that belongs to domain "wlsadmin".

Warning: An insecure protocol was used to connect to the server. 
To ensure on-the-wire security, the SSL port or Admin port should be used instead.

>>>Starting the cluster cluster2

Starting the following servers in Cluster, cluster2 : cluster2-server4,cluster2-server1,cluster2-server2,cluster2-server3
...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
All servers in the cluster cluster2 are started successfully.
[oracle@host01]$ 

cluster2 kümesindeki sunucuları kapatmak için aşağıdaki Python betiği yeterli olacaktır:

url = 't3://host01.example.com:7001'
username = 'weblogic'
password = 'Welcome1'
target = 'cluster2'

connect(username, password, url)

print '>>>Shutting down the cluster ' + target
shutdown(target,'Cluster')

Herhangi bir an cluster2'deki sunucuların durumunu aşağıdaki Python betiğini kullanarak izleyebilirsiniz:

url = 't3://host01.example.com:7001'
username = 'weblogic'
password = 'Welcome1'
target = 'cluster2'

connect(username, password, url)

state(target,'Cluster')


4. Yönetim Paneli Kullanarak Devingen Kümeleme Kurulumu

Devingen kümelemede, kümeyi oluşturan sunucular bir şablondan üretilirler. Yönetim paneli ile devingen küme yaratırken ya yeni bir şablon yaratırız ya da mevcut şablonlardan birini kullanırız. Şimdi yönetim paneli kullanarak yine dört düğümden oluşan, ancak bu kez devingen bir küme yaratacağız. Aşağıda bu işlemin adımlarını bulabilirsiniz:


Lock & Edit butonuna basarak bir oturum açıyoruz.


Devingen bir kümeleme oluşturmak için listeden "New Dynamic Cluster" başlığını seçiyoruz.

Kümenin adını cluster3 olarak adlandırıyoruz.
Devingen kümede 4 adet düğüm olmasını istiyoruz. Kümemiz elastik, ihtiyaç durumunda 16 düğüme kadar  genişleyebilir.
Yönetilen sunucuların makinalara atanması gerekiyor. Bunun için üç seçeneğimiz bulunuyor: 

  i) Alandaki tüm makinaları kullanmak 
 ii) Makinalardan sadece birini kullanmak. Listeden kullanacak makina seçilebilir. 
iii) Alandaki makinaların bir alt kümesi makina adına göre yazılacak bir ifade ile seçilebilir. Örneğin machine* ile makina adı machine ile başlayan makinaları seçiyoruz.




Yönetilen sunuculara port atamak için iki yöntem bulunuyor: i) Başlangıç portunu tanımlamak. Sistem birer artımlarla sırayla sunuculara port atamasını otomatik olarak yapacaktır. ii) Tüm sunuculara aynı port numarası vermek. Bunun için her sunucunun ayrı bir adreste yer alması gerekir. 
cluster3'ün tanımlanması süreci bitmek üzere,  Finish butonuna basmak kaldı!



cluster3 kümeler tablosunda yerini almış durumda, ancak henüz gerçekten yaratılmadı.

Activate Changes butonuna basarak tanımlamalarımızı kalıcı hale getiriyoruz.

İşlem başarı ile gerçekleşti.

Sunucu şablonları listesinde cluster3 ile birlikte yaratılan şablonu (cluster3-serverTemplate) görebiliyoruz. 
Şimdi cluster3'deki sunucuları başlatabiliriz.



Yes butonuna basarak onay verdiğimizde cluster3'ü oluşturan sunucular Düğüm Yöneticisi (=Node Manager) yardımı ile uzaktan başlatılacaktır.

Sunucular başlatılıyor.

Bir süre sonra cluster3'ü oluşturan tüm sunucular başlamış görünüyor!


5. WLST ile Devingen Kümeleme Kurulumu

Yönetim paneli üzerinden 4 sunuculu bir devingen kümeleme kurulumu oldukça kolay bir şekilde gerçekleştirdik. Aynı işi basitçe WLST kullanarak ve Python betiği yazarak da gerçekleştirebiliriz. Aşağıda yönetim paneli kullanılarak gerçekleştirilen kümeleme kurulumundaki yapının aynısı bu kez WLST ve Python kullanılarak gerçekleştirilmiştir:

create_dynamic_cluster4.py:

url = 't3://host01.example.com:7001'
username = 'weblogic'
password = 'Welcome1'
clustername = 'cluster4'
listenport = 5299
ssllistenport = 4299
servercount = 4
serverprefix = 'cluster4-server'
templatename = serverprefix + '-template'

connect(username, password, url)

try:
        cd('/Clusters/' + clustername)
        print '>>>The cluster ' + clustername + ' already exists. Exiting...'
        exit()
except WLSTException:
        pass

edit()
startEdit()

cd('/')
template = cmo.createServerTemplate(templatename)
cd('/ServerTemplates/' + templatename)
cmo.setListenPort(listenport)
cmo.setListenPortEnabled(true)
cd('SSL/' + templatename)
cmo.setListenPort(ssllistenport)
cmo.setEnabled(false)

print '>>>Created server template ' + templatename + '.'

cd('/')
cluster = cmo.createCluster(clustername)
servers = cluster.getDynamicServers()
servers.setServerNamePrefix(serverprefix)
servers.setMaximumDynamicServerCount(servercount)
servers.setServerTemplate(template)
servers.setCalculatedMachineNames(true)
print '>>>Created dynamic cluster ' + clustername + ' with ' + str(servercount) + ' servers.'

save()
activate(block='true')
print '>>>Dynamic cluster created successfully.'

exit()

Yukarıdaki Python betiğini komut satırından çalıştırarak cluster4 isimli devingen kümeyi yaratabiliriz:


[oracle@host01]$ java weblogic.WLST create_dynamic_cluster4.py 

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

Connecting to t3://host01.example.com:7001 with userid weblogic ...
Successfully connected to Admin Server "AdminServer" that belongs to domain "wlsadmin".

Warning: An insecure protocol was used to connect to the server. 
To ensure on-the-wire security, the SSL port or Admin port should be used instead.

No stack trace available.
Location changed to edit tree.   
This is a writable tree with DomainMBean as the root.   
To make changes you will need to start an edit session via startEdit(). 
For more help, use help('edit').

Starting an edit session ...
Started edit session, be sure to save and activate your changes once you are done.
>>>Created server template cluster4-server-template.
>>>Created dynamic cluster cluster4 with 4 servers.
Saving all your changes ...
Saved all your changes successfully.
Activating all your changes, this may take a while ... 
The edit lock associated with this edit session is released once the activation is completed.
Activation completed
>>>Dynamic cluster created successfully.


Exiting WebLogic Scripting Tool.

Yönetim panelinden cluster4'ün yaratıldığını izleyebiliriz:


Yazının üçüncü bölümünde ise son olarak kümelemenin çalışma şeklini ve yük dengeleyici konularını inceleyeceğiz.

Sunday, March 13, 2016

WebLogic 12.2.1'de Kümeleme (1. Bölüm)


Oracle orta katman uygulamalarının hemen hemen hepsi Java ve Weblogic uygulama sunucusu üzerinde koşuyor. Bu nedenle Oracle'ın Java SE ve Java EE platformlarına yatırım yapmak ve platformun gelişmesine öncülük etmek zorunda. Java SE platformunun en son sürümü olan Java SE 8, 2014 yılı Mart ayında çıktı. Java SE 8 getirdiği önemli yenilikler ile Java geliştiricilerini heyecanlandırmışa benziyor. Kurumsal uygulama geliştirmek için tasarlanan Java EE platformunun en son sürümü Java EE 7 ise 2013 yılı Haziran ayında çıktı. Oracle Java EE 7 uyumlu uygulama sunucusunu nihayet 2015 yılı sonuna doğru duyurdu: Oracle WebLogic 12.2.1. Weblogic 12.2.1 sürümü hem Java EE 7 uyumlu hem de Java SE 8 üzerinde çalışıyor olması açısından önemli bir sürüm. Java EE 7Java EE 5 ile gelen yeni programlama modelinin devam ettirildiği en olgun sürümdür. Ayrıca Java EE 7HTML 5 ile gelen yeni nesil web mimarilerini destekleyen API'ler içeriyor: Java API for WebSocket, Java API for JSON Processing, JAX-RS 2.0
Bu yazıda WebLogic 12cR2 sürümünün kurulumunu ve kümeleme çözümünü inceleyeceğiz. Kümleme çözümünün kurulumu için Weblogic 12cR2'nin ve yazılımsal yük dengeleyici olarak kullanacağımız Oracle HTTP Server (OHS)'nin kurulum dosyalarına ihtiyacımız bulunuyor. Bu kurulum dosyalarını Oracle'ın edelivery sitesinden indirebiliriz: edelivery.oracle.com.
http://www.edelivery.com giriş ekranında "Sign In" butonu ile giriş yapmamız gerekiyor
Ücretsiz olarak oluşturulabilecek Oracle hesabı ile giriş yapmalısınız.
Oracle'ın tüm ürünlerine Oracle Software Delivery Cloud üzerinden sorgulayıp, ulaşmak mümkündür. Arama alanına weblogic yazdığımızda listede gözüken Oracle Weblogic Suite başlığını seçiyoruz.
Ürünün adını seçtikten sonra kurulum yapmayı planladığımız platformu seçiyoruz: Linux x86-64.
Yazılım ve platform seçildiğinde seçilen ürün listede gözükecektir: Oracle Weblogic Suite ve Linux x86-64. Artık "Continue" butonuna basarak ilerleyebiliriz.
Toplam yaklaşık 11GB boyutunda kurulum paketlerine ulaşmak için "Continue" butonuna basmalısınız. 
Kurulum dosyalarını indireceğimiz sayfaya gelmeden önce "mutlaka baştan sona" kadar okumamız gereken  bir sayfa bulunuyor. Aldığım hızlı okuma eğitimi sayesinde bir çırpıda okuyup "Continue" butonuna basıyorum!
Burada kırmızı çerçeve içine aldığım iki dosyayı indirmemiz gerekiyor: i) OHS 12.2.1 için V78157-01.zip ii) WebLogic 12.2.1 için V78155-01.zip

WebLogic 12cR2'nin kurulumu

1. Weblogic 12cR2'nin kurulumuna geçmeden önce Java 8 kurmamız gerekiyor. Bunun için jdk 8 update 60'ı kuracağım:
[oracle@host01]tar xvf jdk-8u60-linux-x64.tar.gz -C /u01/app
[oracle@host01]mv /u01/app/jdk1.8.0_60 /u01/app/jdk8
[oracle@host01]export JAVA_HOME=/u01/app/jdk8
[oracle@host01]export PATH=$JAVA_HOME/bin:$PATH
Java kurulumunu test edelim:
[oracle@host01]$ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
Evet, artık Weblogic 12cR2'nin kurulumuna geçebiliriz!
2. edelivery sitesinden indirdiğimiz V78155-01.zip dosyasını açıyoruz. İçinden bir java arşiv dosyası (jar) dosyası çıkacaktır: fmw_12.2.1.0.0_wls.jar. Kurulum için bu jar dosyasını çalıştırıyoruz:
[oracle@host01]$ java -d64 -jar fmw_12.2.1.0.0_wls.jar
1. Adım: Karşılama ekranını "Next" butonuna basarak geçiyoruz.
2. Adım: Kurulumdan hemen sonra güncelleme almak isteyebilirsiniz. Bunun için Oracle destek hesap bilgilerini girmeniz gerekir. Ya da elle indirdiğiniz güncelleme dosylarının bulunduğu dizini verebilirsiniz. Biz güncellemeleri atlayacağız.
3. Adım: Kurulumu yapacağımız dizini tanımlıyoruz.Bu dizin "Oracle Home" olarak adlandırılır.

4. Adım: Kurulumun türünü seçiyoruz. Üç seçeneğimiz bulunuyor: a) WebLogic kurulumu b) Coherence kurulumu c) Örnek uygulamalarla birlikte WebLogic kurulumu. WebLogic kurulumu Coherence kurulumunu da içerir. Coherence Oracle'ın "Distributed Cache Server" çözümüdür.
5. Adım: Kurulum öncesi işletim sistemi ve Java versiyonu denetleniyor.
6. Adım: Oracle Support hesabı bilgileri isteniyor. Bu kurulumda Oracle Support hesabı bilgilerini girmek istemiyoruz. Bu nedenle "wish to receive security updates via My Oracle Support" seçimini kaldırıyoruz.
6. Adım: Evet, Oracle Support almak istemiyoruz. "Rahat ol Oracle! Ne yaptığımızın farkındayız!" anlamında Yes butonuna basıyoruz. 
7. Adım: Seçimlerimizi, daha sonra sessiz kurulum yapmak için "Response File" olarak kaydetmek isteriz. Bu amaçla Save Response File butonuna basıyoruz.
Response File" dosyasının adını veriyoruz: fmw.rsp. 
8. Adım: Kurulum nihayet başladı
8. Adım: Dosyalar kopyalanıyor.
8. Adım: Kütüphane dosyaları oluşturuluyor.
8. Adım: Kurulum yapılıyor.
8. Adım: Kurulum tamamlandı!
9. Adım: Kurulumun başarı ile tamamlandığını gösterir ekran. Bundan sonra domain oluşturacağız. Bunu için gerekli komutu elle çalıştırmak istediğimiz için "Automatically Launch the Quickstart Configuration Wizard" seçeneğini kaldırıyoruz. Finish butonuna basarak kurulumu tamamlayalım.

Alan (=Domain) Kurulumu

WebLogic sunucularını yönetebilmek için "alan" (=domain) oluşturuyoruz. Her alan mutlaka ve bir tane yönetim sunucusundan (Admin Server) oluşur. Bunun dışında herhangi bir sayıda "yönetilen" weblogic sunucuları yer alır. Yönetim sunucusu sunucuların yapılandırma bilgilerini saklar ve alandaki diğer yönetilen sunuculara iletir. Yönetilen sunuculara uzaktan ulaşmak ve yönetmek için makinalardan (=machine) yararlanıyoruz. Her yönetilen weblogic sunucuları bir makinada tanımlanır. Bir fiziksel makinada birden fazla makina ve bir makinada birden fazla yönetilen weblogic sunucusu bulunabilir. Ancak her alanda ancak bir tane yönetim sunucusu yer alır. Bu yazıda iki düğümlü bir küme (=cluster) kuracağız. Bunun için iki makina ve iki yönetilen weblogic sunucusu tanımlayacağız. Kuracağımız sistemin şemasını aşağıdaki şekilden inceleyebilirsiniz:
Kurulum şeması
Alan aslında bir şablondan yaratılır. Kurulumla gelen şablonlar /u01/app/fmw/wlserver/common/templates/wls
 dizininde yer alır. Weblogic kurulumunda wls.jar şablonunu kullanacağız. Alan yaratmak için aşağıdaki komutu çalıştırıyoruz:
[oracle@host01 ~]$ cd /u01/app/fmw/oracle_common/common/bin/
[oracle@host01 bin]$ ./config.sh 
Başlangıç ekranı ile alan yaratmaya başlıyoruz!
1. Adım: Alanı hangi dizine yaratacağımızı söylüyoruz.  
2. Adım: Alanı hangi dizine yaratacağımızı söylüyoruz.
3. Adım: Weblogic sunucuları için kullanıcı adı ve parolayı belirliyoruz.
4. Adım: Alanı üretim ortamı için düşünüyoruz. Java versiyonumuz ise HotSpot 1.8.0_60 olacak.
5. Adım: Yönetim sunucusu ve yönetilen sunucu ve kümeleme ayarı yapacağımızı bildirdik.
6. Adım: Yönetim sunucusu host01.example.com ağına 7001 numaralı port üzerinden hizmet verecek.
7. Adım: İki adet yönetilen sunucumuz var: server1 ve server2.
8. Adım: Kümeleme adını cluster1 olarak verdik. Yük dengeleyiciyi daha sonra tanımlayacağız.
9. Adım: cluster1 kümesinin sunucularını tanımladık.
10. Adım: Makinaların tanımları veriliyor.
11. Adım: Hangi sunucunun hangi makinada çalışacağının tanımı veriliyor.
12. Adım: Alanı yaratmadan önce seçimlerimizi gözden geçirebiliriz. Sonra Create butonuna basarak alanı yaratıyoruz.
13. Adım: Alan yaratıldı.
14. Adım: Alan başarı ile yaratıldı!
Alanı host01.example.com'da yarattık. Şimdi bu alanı paketleyip host02.com.example'da da oluşturalım. Bunun için pack.sh ve unpack.sh betiklerinden yararlanıyoruz. Bu betikleri /u01/app/fmw/oracle_common/common/bin dizininde bulabilirsiniz.
oracle@host01:~ >export JAVA_HOME=/u01/app/jdk
oracle@host01:~ >export PATH=$JAVA_HOME/bin:$PATH
oracle@host01:~ >java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
oracle@host01:~ >export ORACLE_HOME=/u01/app/fmw
oracle@host01:~ >export PATH=$ORACLE_HOME/oracle_common/common/bin:$PATH
oracle@host01:~ >pack.sh -domain /u01/domains/part1/wlsadmin -template=/home/oracle/managedserver.jar -template_name=wlsadmin_managed -managed=true
<< read domain from "/u01/domains/part1/wlsadmin"
>>  succeed: read domain from "/u01/domains/part1/wlsadmin"
<< set config option Managed to "true"
>>  succeed: set config option Managed to "true"
<< write template to "/home/oracle/managedserver.jar"
..........................................................................................
>>  succeed: write template to "/home/oracle/managedserver.jar"
<< close template
>>  succeed: close template
oracle@host01:~ >scp /home/oracle/managedserver.jar oracle@host02.example.com:/home/oracle 
managedserver.jar                                                           100%   62KB  62.5KB/s   00:00
Alanı paketleyip host02.example.com makinasına taşıdıktan sonra, bu makinada aşağıdaki komutu çalıştırıyoruz:
[root@host02 ~]# export JAVA_HOME=/u01/app/jdk
[root@host02 ~]# export PATH=$JAVA_HOME/bin:$PATH
[root@host02 ~]# export ORACLE_HOME=/u01/app/fmw
[root@host02 ~]# export PATH=$ORACLE_HOME/oracle_common/common/bin:$PATH
[root@host02 ~]# unpack.sh -domain=/u01/domains/part1/wlsadmin -template=/home/oracle/managedserver.jar 
<< read template from "/home/oracle/managedserver.jar"
>>  succeed: read template from "/home/oracle/managedserver.jar"
<< set config option DomainName to "wlsadmin"
>>  succeed: set config option DomainName to "wlsadmin"
<< write Domain to "/u01/domains/part1/wlsadmin"
..........................................................................................
>>  succeed: write Domain to "/u01/domains/part1/wlsadmin"
<< close template
>>  succeed: close template

Sunucuların Başlatılması

Yönetim sunucusunu startWebLogic.sh betiğini kullanarak başlatıyoruz:
gnome-terminal --title "Admin Server"-e "/u01/domains/part1/wlsadmin/startWebLogic.sh" 
Üretim ortamı için kurulum yaptığımızdan, weblogic sunucusu bizden kullanıcı adı ve parola isteyecektir:
Sunucuyu her başlatırken bunun olmasını istemeyiz. Çözüm için aşağıdaki adımları bir kez yapmanız ve kullanıcı adı ve parolayı içeren boot.properties dosyasını oluşturmalısınız:
[oracle@host01]$ cd /u01/domains/part1/wlsadmin/servers/AdminServer/
[oracle@host01] mkdir security
[oracle@host01] cd security/
[oracle@host01] touch boot.properties
[oracle@host01] echo username=weblogic > boot.properties 
[oracle@host01] echo password=Welcome1 >> boot.properties 
Bundan sonraki ilk açılışta dosyanın içeriğinin AES ile şifrelenmiş olduğunu göreceksiniz:
[oracle@host01 security]$ cat boot.properties 
#Tue Mar 08 11:51:03 EET 2016
password={AES}e9YzTK33FBYiEMG0P5iZ3oyBCE4+XLVlKiSv5bnylG4\=
username={AES}MxPQruwueQAdLQBd2rWd44yanML0BW1md3bznAUiaik\=
host01.example.com makinasında server1'i başlatmak için startManagedWebLogic.sh betiğini kullanıyoruz:
[oracle@host01]$ gnome-terminal --title "server1" "/u01/domains/part1/wlsadmin/bin/startManagedWebLogic.sh server1 host01.example.com:7001" &
host02.example.com makinasında server2'yi başlatmak için startManagedWebLogic.sh betiğini kullanıyoruz:
[oracle@host02]$ gnome-terminal --title "server2" "/u01/domains/part1/wlsadmin/bin/startManagedWebLogic.sh server2 host01.example.com:7001" &
Şimdi, weblogic yönetim ekranına (http://host01.example.com:7001/console) bağlanıp sunucuların çalıştığını doğrulayalım:


Düğüm Yöneticisi (=Nodemanager) Kullanımı

Sunucuları her seferinde çalıştıkları makinaya uzaktan bağlanarak çalıştırmak, durdurmak, yeniden başlatmak, istenmeyen bir şekilde sonlandığında yeniden ayağa kaldırmak işlemlerini elle yapmak yerine otomatikleştirmek isteriz. Bu işi bizim için düğüm yöneticisi (Node manager) gerçekleştirecektir. Her bir makinada bir düğüm yöneticisi çalışır. Şimdi host01.example.com'da düğüm yöneticilerini başlatalım:
[oracle@host01]$ gnome-terminal --title "Nodemanager @host01" "/u01/domains/part1/wlsadmin/bin/startNodeManager.sh" &
host02.example.com'da düğüm yöneticisini başlatmak için yine aynı betiği çalıştırıyoruz.

[oracle@host02]$ gnome-terminal --title "Nodemanager @host02" "/u01/domains/part1/wlsadmin/bin/startNodeManager.sh" &
Aynı makinada her alan için bir düğüm yöneticisi olabileceği gibi tek bir düğüm yöneticisi birden fazla alan için de hizmet verebilir. Düğüm yöneticisinin çalıştığını yönetim ekranından doğrulayabiliriz:
machine1'deki düğüm yöneticisi çalışır durumda.
machine2'deki düğüm yöneticisi çalışır durumda.
Yazının ikinci bölümünde kümeleme stratejileri, yapılandırılması ve çalışması ile ilgili detaylar ve yük dengeleme konuları yer alacaktır.