ODI, Jython ve Bağlantı Testi

advertisement
ODI, Jython ve Bağlantı Testi
Başar Gülcü tarafından yazıldı.
Pazartesi, 12 Eylül 2011 15:06 - Son Güncelleme Pazartesi, 05 Aralık 2011 21:04
ODI’de Jython kodu yazarken sorun yaşandığı konusunda birçok sorun iletildi. Özellikle Jython
kurulup kodun denenmesine rağmen yaşanan sorunlar epey var. ODI, Jython’un 2.1
versiyonunu kullanıyor. Bu, ODI’nin kullandığı kütüphanelere doğrudan entegre edilmiş bir
versiyondur. Jython’un ise 2.2 versiyonundan itibaren baya köklü değişikliklere uğradığı aşikar.
Haliyle v2.2'de çalışan kodlar v2.1'de çalışmıyor.
Jython kodlarını test etmek için aslında bilgisayarınıza Jython’u kurmanız dahi gerekmiyor.
$ODI_HOME/bin klasörünün altında bildiğiniz gibi tüm çalıştırılabilir ODI programları bulunuyor,
designer, operator gibi. Bunları çalıştırmak için nasıl ki designer[.bat|.sh] kullanıyorsak, aynı
şekilde komut sisteminden jython[.bat|.sh]‘ı çalıştırırsak bize jython interpreter’ını getirir.
Buradan satır satır kodumuzun çalışıp çalışmadığını test edebiliriz. Tek ufak sorun, v2.2 kadar
gelişmiş olmaması nedeniyle silme, yazılanı editleme vb. Işlemlerde sorunlar yaşayabilirsiniz.
Bu nedenle kodu yazıp satır satır kopyalayarak ilerlemek ilk başlarda işinizi kolaylaştıracaktır.
***
ODI, hata belirtme konusunda oldukça sıkıntılı bir programdır. Nerede hata yaşadığını
söylemekten çok, hata olduğunu söyler ki bu da sorun çözümü için yeterli değildir. Özellikle
yeni bir sistemle bağlantı kurarken sorunun birçok kaynağı bulunabilir. Bunlardan en temel iki
nokta hedef sisteme erişimimiz olup olmadığı ve bulduğumuz driver’ın sistemde çalışıp
çalışmadığıdır. Bu iki temel sorun varsa zaten ilerlememiz mümkün olmadığı için, onların test
edilmesi önceliklidir. Özellikle driver’ların yeni olduğu durumlarda, repository’nin bulunduğu
makinaya driver’ları kopyaladıktan sonra agent’ların yeniden başlatılması gerektiği için
öncelikle test etmek güvenli bir yöntemdir.
Bu aşamada Jython kodu kullanarak bağlantımızı test edersek, satır satır ilerleyebildiğimiz
için ODI’nin hata belirtme sıkıntısının üstesinden gelmiş oluruz. Biz bu iş için aşağıdaki kodu
kullanıyoruz.
{kodgna class="brush:java;"}
import java.lang as lib_lang
import java.sql as lib_sql
jdriver
= "oracle.jdbc.driver.OracleDriver" # Java source driver
url
= "jdbc:oracle:thin:@192.168.1.101:1521:ORCL" # jdbc url
user_name = "ODS" # Source user name
password
= "password" # Source user password
1/2
ODI, Jython ve Bağlantı Testi
Başar Gülcü tarafından yazıldı.
Pazartesi, 12 Eylül 2011 15:06 - Son Güncelleme Pazartesi, 05 Aralık 2011 21:04
lib_lang.Class.forName(jdriver)
# Register the driver
jdbc = lib_sql.DriverManager.getConnection(url, user_name, password)
stmt = jdbc.createStatement()
# Create java statement
dyn_task = "select sysdate from dual"
result_set = stmt.executeQuery(dyn_task)
while result_set.next() > 0:
print result_set.getString(1)
{/kodgna}
Driver’da bir sorun varsa driver’ı tanımlarken (9. satır) hata ile karşılaşırız. Bu noktada ya jdriver
değişkenini kontrol etmeli ya da driver’ın kendisinde bir hata olup olmadığını araştırmalıyız.
Eğer bağlantıda sorun varsa 10. satırdan sonra sorun çıkacaktır. Buradaki sorunun kaynağı
doğrudan bağlantıysa url değişkenini, login hatası geliyorsa da bize verilen kullanıcı adını ve
şifreyi kontrol etmemiz gerekir.
jdriver ve url değişkenlerini uygun şekilde değiştirerek başka sistemlere, database’lere de
bağlantılar test edilebilir.
2/2
Download