Monday, June 10, 2013

Konfigurasi JPA dengan JDBC Data Source pada WebLogic 10.3

Sekilas tentang Connection Pooling

Connection Pool merupakan sebuah teknik untuk membuat aplikasi langsung dapat menggunakan koneksi database tanpa harus menangani pembuatan atau pemutusan koneksi tersebut.

Sekilas tentang JDBC Data Source

Data Source menyediakan koneksi ke database melalui connection pooling, dan dapat me-manage koneksinya. Umumnya sebuah data source memiliki JNDI name, yang akan digunakan oleh aplikasi untuk me-lookup data source lalu kemudian dapat mengambil koneksi dari connection pooling.

Keuntungan dari penggunaan connection pooling dan data source antara lain ialah :
  • Aplikasi tidak lagi perlu mengurus bagaimana membuat/memutus koneksi ke database.
  • Apabila ada perubahan koneksi database, aplikasi tidak perlu berubah. Karena perubahan terjadi pada konfigurasi data source.
  • Jumlah koneksi database yang digunakan oleh aplikasi dapat terkontrol sesuai dengan konfigurasi pada data source, misal maximum jumlah koneksi 10 pada konfigurasi, maka dengan jumlah yang sama koneksi akan dibuat oleh data source.

Konfigurasi persistence.xml

<persistence-unit name="samplePersistenceUnit" transaction-type="JTA">
 
 <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
 <jta-data-source>jdbc/sampleDS</jta-data-source>
 <non-jta-data-source>jdbc/sampleDS</non-jta-data-source>
 <class>com.nostra.um.domain.User</class>
 <exclude-unlisted-classes>true</exclude-unlisted-classes>
 
 <properties>
 <property name="eclipselink.ddl-generation" value="create-tables" />
 <property name="eclipselink.logging.level" value="FINEST" />
 <property name="eclipselink.target-server" value="WebLogic_10" />
 </properties>
</persistence-unit>

  • Jika di-deploy pada container JEE (seperti WebLogic) default transaction-type-nya ialah JTA.
  • Isi elemen jta-data-source dan non-jta-data-source dengan JNDI Name pada Home -> Summary of JDBC Data Sources 
  • Pada property eclipselink.ddl-generation, jika berisi : 
    • create-tables : jpa akan melakukan proses create tabel sesuai dengan object model yang terdaftar di persistence.xml
    • drop-and-create-tables : jpa akan melakukan proses drop dan create tabel sesuai dengan object model yang terdaftar di persistence.xml
    • none : jpa tidak akan melakukan proses create/drop tabel.
  • Dan jika ingin merubah koneksi database pada JDBC Data Source seperti host, username, password dan lainnya, maka server harus di-restart. Karena proses pembuatan koneksi pada connection pooling terjadi saat server di-start.


Semoga bermanfaat, Cheers!

No comments:

Post a Comment