24 Mart 2010 Çarşamba

weblogic 10.3 starts slow

Kaynak:http://www.itonguard.com/20090313/weblogic-starts-slow/



I had a lot of troubles starting Oracle Weblogic 10.3g under linux (CentOS 5.2). It took anywhere between 5 to 20 minutes from the time I ran startup script to the point when Weblogic actually started. Here is typical log:




Turns out Weblogic uses random number generator during start up. Because of the bug in java it reads ‘randomness’ from /dev/random. /dev/random is very good random numbers generators but it is extremely slow. It takes sometimes 10 minutes or more to generate one number. /dev/urandom is not that good, but it is instant.
Java somehow maps /dev/urandom file to /dev/random. That’s why default settings in $JAVA_HOME/jre/lib/security/java.security are useless.

Possible solutions:
1) Add “-Djava.security.egd=file:/dev/./urandom” (/dev/urandom does not work) to java parameters.

Worse but working solution is:
2) mv /dev/random /dev/random.ORIG ; ln /dev/urandom /dev/random

3) Best solution is to change $JAVA_HOME/jre/lib/security/java.security
Replace securerandom.source with

securerandom.source=file:/dev/./urandom

This problem does not happen under windows because it uses different implementation of /dev/random.

It takes seconds to start weblogic server now.

23 Ocak 2010 Cumartesi

Thread warning

weblogic te en büyük sorunumun çözümünü buldum sonunda.
sürekli thread ler sıkışıp isteklere cevap veremiyordu ve bpelconsole cevap veremez hale geliyordu.bu sorunun çözümü ise çok basit

sıkışan managed server ın start parametrelerine aşağıdaki satırı eklemek.

-Dweblogic.threadpool.MinPoolSize=100

ben burda 100 thread olarak belirledim fakat sunucunun gücüne göre bunu arttırabilirsiniz.bu işlemi yapıp managed serverı yeniden başlattıktan sonra monitoring den threads tabına geldiğinizde artık warning uyarı almadığınızı görecek siniz :)

kaynak: http://m-button.blogspot.com/2009/02/tuning-default-workmanager-on-weblogic.html

8 Ocak 2010 Cuma

security random hatası

weblogic managed server start ederken random security hatası alıyorsan

./jdk160_05/jre/lib/security/java.security
./jrockit_160_05/jre/lib/security/java.security
bu dosyalarda aşağıdaki gibi değişiklik yap

/dev/urandom => /dev/./urandom

23 Aralık 2009 Çarşamba

weblogic Dump thread

Weblogic te bir sıkıntı yaşadığımızda yapacağımız ilk iş dump thread olmalıdır.

Unix sistemlerinde ps -ef | grep java ile listelenen listeden dump almak istediğini weblogic sürecinin numarasını (pid) alın. yada direk ps -ef|grep SoaServer3 şeklinde weblogic managed serverın direk adını yazabilirsiniz.

kill -3 komutunu çalıştırdığınızda o anki thread durumunu çıktı dosyasına(weblogic.out) veya standart çıkışa basar.

Eğer Nodemanager nodeları başlatmış ise çıktı dosyaları weblogic in nodemanager dizini altında bulunur.

örneğin /opt/weblogic/weblogic81/common/nodemanager/NodeManagerLogs
altında

buradaki logları

yusuke.homeip.net/samurai/?english

adresinde Samurai jar uygulamasını kullanarak gözlemleyebilirsiniz.


Windows da thread dump almak için weblogic in çalıştığı komut satırı penceresi üzerinde Ctrl + Break yapılır. Çıktı büyük olacağı için pencereden akıp gidecektir. Pencerenin ayarlarından satır sayısını arttırabilirsiniz.

16 Kasım 2009 Pazartesi

cluster da JMS tanımlama

referans: http://biemond.blogspot.com/2009/02/high-available-weblogic-cluster.html

12 Kasım 2009 Perşembe

Configuring the boot.properties File

weblogic user ve password değiştirdiysen

boot.properties dosyasını açıp yeni kullanıcı adı ve şifreyi girdikten sonra kaydedip çıkıyoruz.
sonra
./startManagedWebLogic.sh OracleSOAServer3 gibi consoledan başlatıyoruz

ilgili link
http://www.oracle.com/technology/obe/fusion_middleware/wls103/InstallConfig/enable_auto_login/Boot_identity_file.htm

Weblogic Üzerinde DBAdapter için Connection Factory Ayarlama

Weblogic üzerinde SOA Suite 10.1.3.x için DBAdapter'e Connection factory yapmanın adımlarını aşağıda bulabilirsiniz

1- $BEA_HOME/user_projects/apps/soaApps/DBAdapter/META-INF dizinine gidin.
2- ra.xml dosyasını açın ve adı xADataSourceName özelliğinin value kısmına jdbc/XADataSourc yazın. Adı dataSourceName özelliğin de value kısmına jdbc/DataSource yazın. Yeni dosya şu şekilde olmalıdır:
[ad#metin]
<config-property>
<config-property-name>xADataSourceName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>jdbc/XADataSource</config-property-value>
</config-property>


<config-property>
<config-property-name>dataSourceName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>jdbc/DataSource</config-property-value>
</config-property>


3- WebLogic Console'a gidip Change Center'daki Lock & Edit butonuna tıklayın.
4- Domain Structure altındaki Deployments'a tıklayın.
5- Deployments list kısmında DBAdapter'ü seçin ve Update'e tıklayın.
6- "Redeploy this application using the following deployment files" seçeneğini seçin ve Next'e tıklayın.
7- Finish'e tıklayın.
8- Activate Changes butonuna tıklayın.
9- Deployments list'e tekrar gelip DBAdapter'ü seçin, stop ve yes butonlarına tıklayın.
10- Lock & Edit butonuna tıklayın.
11- Domain Structure tree'de Services > JDBC'yi açın ve Data Sources seçin.
12- Data Sources sayfasında New butonunu tıklayın.
13- JDBC Data Source Properties sayfasında, aşağıdaki bilgileri girin:

Name - JDBC data source için bir adı.
Örnek: SOATurkiyeDataSource
JNDI Name - Data source'un olacağı yerdeki JNDI name'ini girin. Örnek: jdbc/SOATurkiyeDataSource
Database Type - Bağlanmak istediğiniz veritabanının tipini seçin. Örnek: Oracle.
Database Driver - Veritabanına bağlanmak için kullanacağınız database driver'ını seçin. Örnek: oracle için Thin XA.

14- Sonraki iki sayfada Next'e tıklayın.
15- Connection Properties sayfasında aşağıdaki değerleri girin:

Database Name - Bağlanmak istediğiniz veritabanının adını yazın. O veritabanının SID'si olabilir örneğin.
Host Name - Veritabanı sunucusunun IP'si.
Port - Veritabanı sunucusunun portu.
Database User Name - Veritabanı kullanıcı adı.
Password/Confirm Password - Veritabanı şifresi.

16- Sonra Next'e tıklayın.
17- Sonraki sayfada Test Configuration'a tıklayıp bağlantıyı kontrol edin. Düzgün bir şekilde bağlanmışsa Next'e tıklayın. Yoksa önceki adımları kontrol edip hatanın nerden kaynaklandığını bulmaya çalışın.
18- Targets sayfasında OracleSOAServer seçin.
19- Finish deyip Activate Changes yapın.
20- Lock & Edit yapın.
21-Soldaki menüden Deployments'ı seçin.
22- DBAdapter'ü tıklayın. Gelen menüde Configuration/Outbound Connection Pools'a girin.
23- New butonuna tıklayın ve avax.resource.cci.ConnectionFactory seçip Next deyin.
24- JNDI name'inizi girin ve Finish'e tıklayın. Örnek: eis/DB/SOATurkiye.

25- META-INF seçip Finish'e tıklayın.
26- javax.resource.cci.ConnectionFactory'deki + işaretine tıklayın. Oluşturmuş olduğunuz eis/DB/SOATurkiye'yi tıklayın.
27- connection string, dataSourceName, password and username değerlerini silin, boş bırakın. Değerleri sildikten sonra Enter'a basmazsanız yaptığınız değişiklik kaydedilmez.

Farklı veritabanları için platformClassName değerleri
































DatabasePlatformClassName
Oracle9+ (including 10g)oracle.toplink.platform.database.Oracle9Platform
Oracle8oracle.toplink.platform.database.Oracle8Platform
Oracle7oracle.toplink.platform.database.OraclePlatform
DB2oracle.toplink.platform.database.DB2Platform
Informixoracle.toplink.platform.database.InformixPlatform
Sybaseoracle.toplink.platform.database.SybasePlatform
SQLServeroracle.toplink.platform.database.SQLServerPlatform
Any other databaseoracle.toplink.platform.database.DatabasePlatform



28- Next'e tıklayın sonrasında xADataSourceName'da BPELSamplesDataSource'u seçin ve Save butonuna tıklayıp kaydedin.
29-Activate Changes yapın, sonra Deployments/DBAdapter'ü seçin ve Start butonuna basın.

Connection factory kullanılmaya hazır. Artık jdeveloperda oluşturduğunuz projeleri weblogic'e deploy ederken, partnerliklerin wsdl'lerindeki connection tanımlarını(mcf) silebilirsiniz, çünkü o değerleri bu yaptığımız değişiklikler sonucu buradan alacaktır.

iyi günler diliyorum
<table width="552" border="0">
<tr>
<td><strong>Database</strong> </td>
<td><strong>PlatformClassName</strong></td>
</tr>
<tr>
<td>Oracle9+ (including 10g) </td>
<td>oracle.toplink.platform.database.Oracle9Platform</td>
</tr>
<tr>
<td>Oracle8 </td>
<td>oracle.toplink.platform.database.Oracle8Platform</td>
</tr>
<tr>
<td>Oracle7 </td>
<td>oracle.toplink.platform.database.OraclePlatform</td>
</tr>
<tr>
<td>DB2 </td>
<td>oracle.toplink.platform.database.DB2Platform</td>
</tr>
<tr>
<td>Informix</td>
<td>oracle.toplink.platform.database.InformixPlatform</td>
</tr>
<tr>
<td>Sybase </td>
<td>oracle.toplink.platform.database.SybasePlatform</td>
</tr>
<tr>
<td>SQLServer </td>
<td>oracle.toplink.platform.database.SQLServerPlatform</td>
</tr>
<tr>
<td>Any other database</td>
<td>oracle.toplink.platform.database.DatabasePlatform</td>
</tr>
</table>