adsense

29.09.2014

Weblogic Admin Console Timeout Süresi Nasıl Değiştirilir? (How to on Weblogic Admin Console Timeout)


Merhaba

Daha önce karşılaştığımız Admin Console’a girerken timeout’a düşme sürelerini değiştirme gereksinimi konusunda araştırmalar yaptık. Sizlerle de paylaşmak istedik.

İsteğe göre bu timeout sürelerini değiştirebiliriz.

Aşağıdaki path’in altında weblogic.xml açıp, işaretli olan parametreyi isteğe göre artırıp, azaltabiliriz.

$ORACLE_HOME /wlserver_10.3/server/lib/consoleapp/webapp/WEB-INF


"<session-descriptor>
<timeout-secs>3600</timeout-secs>
<invalidation-interval-secs>60</invalidation-interval-secs>
<cookie-name>ADMINCONSOLESESSION</cookie-name>
<cookie-max-age-secs>-1</cookie-max-age-secs>
<cookie-http-only>false</cookie-http-only>
<url-rewriting-enabled>false</url-rewriting-enabled>
</session-descriptor>"

Weblogic 12C "Identity key store file not found" Hatası



Merhaba

Weblogic 12.1.2.0 kurulumu yaparken karşımıza çıkan hatalardan birini sizlerle paylaşmak istiyoruz. İnternette araştırdığımızda bir çok kullanıcının cevap alamadığını gördük.

Öncelikle Weblogic kurulumumuzu tamamlayıp, nodemanager’ı çalıştırdığımızda en aşağıdaki hatayı almamızın sebebi normalde;

nodeManagerStart_server_name.sh scriptimiz

$ORACLE_HOME /wlserver_12.1/server/bin/startNodeManager.sh path’inden çalıştırırken 12C de

$DOMAIN_HOME /bin/startNodeManager.sh path’inden çalıştırması. 


Yani nodeManagerStart_server_name.sh scriptimizin path’ini yukarıdaki gibi güncellersek bir problemimiz kalmıyor. Kolay gelsin.


+ /data/weblogic/java/jdk1.7.0_55/bin/java -client -Xms32m -Xmx200m -XX:MaxPermSize=128m -Dcoherence.home=/data/weblogic/Oracle/Middleware/Oracle_Home/wlserver/../coherence -Dbea.home=/data/weblogic/Oracle/Middleware/Oracle_Home/wlserver/.. -Xverify:none -Djava.endorsed.dirs=/data/weblogic/java/jdk1.7.0_55/jre/lib/endorsed:/data/weblogic/Oracle/Middleware/Oracle_Home/wlserver/../oracle_common/modules/endorsed -Djava.security.policy=/data/weblogic/Oracle/Middleware/Oracle_Home/wlserver/server/lib/weblogic.policy -Dweblogic.nodemanager.JavaHome=/data/weblogic/java/jdk1.7.0_55 weblogic.NodeManager -v

<Sep 29, 2014 3:40:45 PM EEST> <INFO> <Loading domains file: /data/weblogic/Oracle/Middleware/Oracle_Home/oracle_common/common/nodemanager/nodemanager.domains>

<Sep 29, 2014 3:40:46 PM EEST> <INFO> <Loading identity key store: FileName=/data/weblogic/Oracle/Middleware/Oracle_Home/oracle_common/common/nodemanager/security/DemoIdentity.jks, Type=jks, PassPhraseUsed=true>

<Sep 29, 2014 3:40:46 PM EEST> <SEVERE> <Fatal error in NodeManager server>

weblogic.nodemanager.common.ConfigException: Identity key store file not found: /data/weblogic/Oracle/Middleware/Oracle_Home/oracle_common/common/nodemanager/security/DemoIdentity.jks
at weblogic.nodemanager.server.SSLConfig.loadKeyStoreConfig(SSLConfig.java:170)

at weblogic.nodemanager.server.SSLConfig.access$000(SSLConfig.java:32)

at weblogic.nodemanager.server.SSLConfig$1.run(SSLConfig.java:111)

at java.security.AccessController.doPrivileged(Native Method)

at weblogic.nodemanager.server.SSLConfig.<init>(SSLConfig.java:108)

at weblogic.nodemanager.server.NMServer.<init>(NMServer.java:121)

at weblogic.nodemanager.server.NMServer.main(NMServer.java:383)

at weblogic.NodeManager.main(NodeManager.java:31)

25.09.2014

Weblogic Data Source Konfigürasyonu



Bu yazıda bir weblogic server üzerinden database (JDBC for Database Connection) ayarlarının nasıl yapılacağı anlatılacaktır.


1) Admin console kullanılarak weblogic arayüzüne giriş yapılır.

          http://hostname:port/console


 2) Services > Messaging > Data Sources sekmeleri takip edilir.




3) New sekmesine tıklanarak yeni bir database bağlantısı kurma işlemine başlanılır.




4) Öncelikle Generic Data Source kurma işlemi gerçekleştirilecektir.

Generic Data Source üzerinden database ayarları düzenlenerek uygulamaların daha efektif çalışması sağlanabilir. Ayrıntılı bilgiyi aşağıdaki linkte bulabilirsiniz.

http://middleware-appteam.blogspot.com.tr/2014/07/weblogic-data-source-alannda-yer-alan.html




5) Name kısmına herhangi tekil bir isim girilebilir. JNDI NAME kısmı ise database tarafına ait bir bilgidir ve uygulamalara birbirinden bağımsız birer kaynak sağlama işlevini görür. Gerekli bilgiler girildikten sonra Next'e tıklanır.


6) Bir sonraki adımda databasee ait driver bilgisi kaydırma cubuğunadaki menüden seçilir ve Next'e tıklanır.



6) Support Global Transaction seçeneği tiklenir ve Next'e tıklanır.



7) Daha sonra gelen ekranda Database Name , databasein üzerinde çalıştığı sunucuya ait Host Name bilgisi, databasee ait Database Username ve Password bilgileri girilerek Next'e tıklanır.
 
 

 
 8) İstenirse girilen bilgilerin doğruluğunu kontrol etmek amacı ile Test Confguration butonuna tıklanarak database bağlantısı test edilebilir.





 
 9) Ardından bu database'e hangi sanal sunucuların bağlanacağı seçilerek Next ile bir sonraki adıma geçilir.

 
 
 
 10) Son adımda değişikliklerin aktif olması için Activate Changes butonu kullanılır.


 
 
   Generic Data Source kurulumundan sonra şimdi de Multi Data Source kurulumunun nasıl yapılacağını aşağıdaki adımlardan takip edebilirsiniz.Multi Data Source  birden fazla Generic Data Source barındıran bir gruptur. Bu şekilde konfigüre edilen databasede yük dağılımı (load balancing) veya yük devretme (failover) gibi özellikler kullanılabilir.


1) New sekmesinden Multi Data Source seçilerek Next'e tıklanır.

 
 2) Name ve JNDI Name  bilgileri girilir. Algorithm kısmından ise Failover veya Load Balancing seçeneklerinden biri seçilir.

Failover seçildiğinde Multi Data Source altında tanımlanan Generic Data Source'lardan birisi down olursa diğer Generic Datasource üzerinden işlemler devam eder.

Load Balancing seçilirse de her bir Generic Datasource'a yük eşit olarak dağıtılır.



3) Bu datasourcea bağlanacak olan sanal sunucular seçilir.


4) Bu adımda sizden Data Source tipini seçmeniz istenir. Uygulamanızın yapısına göre bu seçeneklerden birini seçebilirsiniz.

XA Driver: Bu opsiyonun seçilebilmesi için database'in de XA özelliğini destekliyor olması gerekir. Kısaca bu özellik birden fazla database ile bağlantı kuruluyorsa ve burdaki işlemlerin senkron olması (aynı anda commit veya basarısız olursa aynı anda rollback) gerekiyorsa tercih edilir.

Non-XA Driver: Bu opsiyonda ise birden fazla database olsa da herhangi birisindeki işlem için diğer databasedeki işlemlerin basrılı olup olmaması dikkate alınmaz.


5) Multi Data Source içinde yer almasını istediğimiz Generic Datasource'ları seçerek Chosen ekranına atıyoruz.Ardından Finish ve değişikliklerin aktif olması için Activate Changes butonlarına tıklanır.





Bu işlemlerin ardından datasource konfigürasyon işlemi tamamlanmış olur.

 

Yapmakta ısrar ettiğimiz şey gitgide kolaylaşır, işin niteliği değişmez; ama bu işi yapma yeteneğimiz artar.

                                                                                                                                        M. T. Cicero

 
 

 
 
 
 
 
 
 
 
 

Namenotfoundexception Hatası




Uygulamalarımızda her şey normal seyrinde devam ederken Weblogic loglarında bazı hatalar görebiliriz. Her şey yolunda olduğu için çoğu zaman bu loglar görmezden gelinir. İşte bu loglara örnek olarak aşağıdaki log gösterilebilir:



javax.naming.NameNotFoundException: Unable to resolve 'weblogic.wsee.DefaultQueue'. Resolved 'weblogic.wsee'; remaining name 'DefaultQueue'
at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)
at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:252)
at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:171)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:269)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:367)




Weblogic in internal olarak kullanacağı bazı asenkron webservisler ile request response oluşturabilmek için, internal bir uygulama default olarak yüklenmekte ve JMS transport kullanarak asenkron bir queue aramaktadır..

Mevcut uygulamamızda bu queue olmadığı zaman; JMS queue, 'weblogic.wsee.DefaultQueue' objesini bulamaz ve "Namenotfoundexception" hatası ile karşılaşılır.


Bu hatanın alınmamasını sağlamak için; aşağıdaki parametre, startup parametrelerine eklenerek, instance lar ayağa kaldırıldığı sırada bu internal uygulamanın yüklenmemesi temin edilebilir

-Dweblogic.wsee.skip.async.response=true 

Weblogic Managed Server Çalıştıramama Sorunu

Weblogic konsol üzerinde yaptığımız bir çok konfigürasyon değişikliği sonrası managed server ların restart edilmesi ihtiyacı olabilir. Bazı durumlarda instance ları start ederken aşağıdaki gibi bir hata ile karşılaşabiliriz:

Unable to obtain lock on /data/weblogic/Oracle/Middleware/user_projects/domains/test_domain\servers\test_server/tmp/test_server.lok. Server may already be running

Bu hatanın üç nedeni olabilir:
1) Instance (managed server) gerçekten çalışıyor olabilir. Weblogic konsoldan ya da ps -ef|grep test_server komutuyla kontrol etmek gerekir.
2) Server ı kapattıktan sonra yapılan bir konfigürasyon değişikliği ile halihazırda aynı server üzerinde başka bir instance tarafından kullanılan portun bu instance a tanımlanması (bir sunucu üzerinde bir port sadece bir managed server tarafından kullanılabilir)
3) Instance düzgün kapatılmamış olabilir.

Konsoldan ya da komutla kontrol ettiğimizde kapalı görünen sunucunun bu hatayı vermesinin nedeni olarak 2.maddeyi göz önünde alırsak girip öncelikle port konfigürasyonunu değiştirmemiz gerekir.

3.madde için instance ın düzgün kapatılmadığını düşünürsek ki en yüksek olasılık budur, kendi weblogic ortamınız tanımlarına göre ilgili managed server ın aşağıdaki dizinine giderek belirtilen dosyayı silip tekrar start etmeniz durumunda sorun çözülecektir:

cd /data/weblogic/Oracle/Middleware/user_projects/domains/test_domain\servers\test_server/tmp/
rm test_server.lok


Teşekkürler.


5.09.2014

Weblogic Monitoring - DomainHealth Yazılımı

Weblogic ortamlarımızı kurmak kadar monitor etmek de oldukça önem arz etmektedir. Admin konsol üzerinden ilgili sekmelerde gezerek her bir uygulamanın, managed server ın ve diğer resource ların monitor edilmesi mümkündür. Ancak bu çok da efektif olmayan bir yöntemdir.
Domain resource larının ve sunucuların monitör edilmesi için bir çok APM tool bulunmaktadır. Bunlardan piyasada isim yapmış olanları başlıca HP Diagnostics, Wily, Appdynamics, Dynatrace ve OPNET'tir. Hangi APM ürününün seçileceği ihtiyaca göre değişlik gösterecektir.

Biz,bu makalemizde yukarıda saydığımız APM ürünleri kadar komplex olmayan ama weblogic konsol üzerinden yapılan bir çok monitoring işlemini bir arada toplayıp gösteren bir uygulamadan bahsedeceğiz; DomainHealth...

Uygulamanın son sürümüne http://sourceforge.net/projects/domainhealth/  adresinden erişebilirsiniz.
Yaklaşık 2mb büyüklüğündeki war dosyasını indirmemiz ve Admin sunucusuna deploy etmemiz yeterlidir.

Tarayıcınızdan http://AdminServerIP:PORT/domainhealth linkini açıp, admin kullanıcısı ile giriş yapmanız yeterli.

Sayfadan bir çok performans metriğine ulaşmanız mümkün. Heap kullanımı, açık soket sayıları, çalışan/boşta duran/bekleyen threadler, transactionlar, detaylı jdbc ve jms performans metrikleri, workmanagerların durumu vs.



İşinize yarayacağını düşünüyoruz...

Not: Bu uygulamayı şirketinizde/bölümünüzde hala kullanan yoksa tam da yıl sonuna yaklaşmışken performans döneminde artı bir kazanç olması açısından lehinize kullanabilirsiniz :)