Bagikan melalui


Poll Oracle Database menggunakan perintah SELECT

Anda dapat mengonfigurasi adaptor Oracle Database untuk menerima pesan perubahan data berkala dengan menggunakan pernyataan SELECT untuk memantau terus menerus tabel dan tampilan di database Oracle. Anda dapat menentukan pernyataan SELECT sebagai pernyataan polling yang dijalankan adaptor secara berkala untuk melakukan polling database Oracle. Secara opsional, Anda juga dapat menentukan blok kode PL/SQL pasca-polling yang dijalankan adaptor jika ada perubahan data. Blok ini sering digunakan untuk memperbarui bidang pada rekaman yang dikueri di target atau untuk memindahkan rekaman yang dikueri ke tabel atau tampilan lain.

Untuk mengaktifkan ini, Anda harus menentukan properti pengikatan tertentu pada adaptor Oracle Database. Anda juga dapat mengubah namespace layanan target untuk operasi POLLINGSTMT dengan mengatur properti PollingId di URI koneksi. Untuk informasi selengkapnya, lihat Dukungan untuk Menerima Pesan yang diubah Data berbasis Polling di Oracle Database dan Menerima pesan yang diubah data berbasis polling di adaptor Oracle Database. Untuk informasi tentang struktur pesan SOAP untuk operasi polling, lihat Skema Pesan untuk Operasi Polling2.

Mengonfigurasi Operasi Polling dengan Properti Pengikatan Adaptor Database Oracle

Tabel berikut ini meringkas properti pengikatan adaptor Oracle Database yang Anda gunakan untuk mengonfigurasi adaptor untuk menerima pesan perubahan data. Anda harus menentukan properti pengikatan ini saat mengonfigurasi port penerima di konsol Administrasi BizTalk Server.

Properti Pengikatan Deskripsi
InboundOperationType Menentukan apakah Anda ingin melakukan operasi polling atau operasi pemberitahuan masuk. Defaultnya adalah Polling.
PolledDataAvailableStatement Menentukan pernyataan SQL yang dijalankan adaptor untuk menentukan apakah ada data yang tersedia untuk polling. Hanya jika rekaman tersedia, pernyataan SELECT yang Anda tentukan untuk properti pengikatan PollingStatement akan dijalankan. Defaultnya adalah SELECT 1 FROM DUAL, yang menyiratkan bahwa adaptor harus melanjutkan polling terlepas dari apakah tabel yang dijajaki memiliki data atau tidak.
PollingInterval Menentukan interval, dalam detik, di mana adaptor Oracle Database menjalankan pernyataan yang ditentukan untuk properti pengikatan PolledDataAvailableStatement . Defaultnya adalah 500 detik. Interval polling menentukan interval waktu antara dua polling yang berurutan. Jika pernyataan dijalankan dalam interval yang ditentukan, adaptor tidur selama waktu yang tersisa dalam interval.
PollingStatement Menentukan pernyataan jajak pendapat. Untuk melakukan polling menggunakan pernyataan SELECT, Anda harus menentukan pernyataan SELECT untuk properti pengikatan ini. Defaultnya adalah null.

Anda harus menentukan nilai untuk properti pengikatan PollingStatement untuk mengaktifkan polling. Pernyataan polling dijalankan hanya jika ada data yang tersedia untuk polling, yang ditentukan oleh properti pengikatan PolledDataAvailableStatement .
PollingAction Menentukan tindakan untuk operasi jajak pendapat. Anda dapat menentukan tindakan polling untuk operasi tertentu dari metadata yang Anda buat untuk operasi tersebut dengan menggunakan Add-in Konsumsi Layanan pada Adapter.
PostPollStatement Menentukan blok pernyataan yang dijalankan setelah pernyataan yang ditentukan oleh properti pengikatan PollingStatement dijalankan.
PollWhileDataFound Menentukan apakah adaptor Oracle Database mengabaikan interval polling dan terus menjalankan pernyataan polling, jika data tersedia dalam tabel yang sedang dijajaki. Jika tidak ada data yang tersedia dalam tabel, adaptor akan kembali menjalankan pernyataan polling dengan interval polling yang sudah ditentukan. Secara default adalah false.

Untuk deskripsi properti ini yang lebih lengkap, lihat Membaca tentang properti pengikatan adaptor Oracle Database. Untuk deskripsi lengkap tentang cara menggunakan adaptor Oracle Database untuk melakukan polling database Oracle, lanjutkan membaca.

Cara Topik Ini Menunjukkan Polling

Dalam topik ini, untuk menunjukkan bagaimana adaptor Oracle Database mendukung penerimaan pesan perubahan data menggunakan pernyataan SELECT, buat proyek BizTalk dan hasilkan skema untuk operasi POLLINGSTMT dengan mengatur properti pengikatan PollingStatement ke yang berikut:

SELECT * FROM ACCOUNTACTIVITY FOR UPDATE  

Tabel ACCOUNTACTIVITY dibuat saat Anda menjalankan skrip SQL yang disediakan dengan sampel untuk membuat objek ini dalam database.

Nota

Orkestrasi dalam topik ini melakukan pengambilan data tabel ACCOUNTACTIVITY, yang merupakan tabel database dasar yang dibuat dengan menjalankan skrip yang disertakan dalam contoh. Anda harus melakukan prosedur serupa seperti yang dijelaskan di topik ini untuk mengolah tabel lain.

Untuk menunjukkan operasi polling, kami melakukan hal berikut:

  • Tentukan pernyataan SELECT untuk properti pengikatan PolledDataAvailableStatement untuk menentukan di mana tabel dijajaki (ACCOUNTACTIVITY) memiliki data apa pun. Dalam contoh ini, Anda dapat mengatur properti pengikatan ini sebagai:

    SELECT COUNT (*) FROM ACCOUNTACTIVITY  
    

    Ini memastikan bahwa adaptor menjalankan pernyataan polling hanya ketika tabel ACCOUNTACTIVITY memiliki beberapa rekaman.

  • Tentukan pernyataan SELECT seperti yang dinyatakan sebelumnya untuk properti pengikatan PollingStatement . Instruksi ini mengambil semua baris dalam tabel ACCOUNTACTIVITY.

  • JALANKAN blok PL/SQL sebagai bagian dari properti pengikatan PostPollStatement . Pernyataan ini akan memindahkan semua data dari tabel ACCOUNTACTIVITY ke tabel lain dalam database. Setelah ini terjadi, lain kali pernyataan yang ditentukan untuk PollingStatement akan dijalankan, pernyataan tersebut tidak akan mengambil data apa pun.

  • Hingga lebih banyak data ditambahkan ke tabel ACCOUNTACTIVITY, Anda tidak akan mendapatkan pesan polling apa pun. Jadi, Anda harus mengisi ulang tabel ACCOUNTACTIVITY dengan rekaman baru. Anda dapat melakukannya dengan menjalankan skrip more_activity_data.sql yang disediakan dengan sampel. Setelah Anda menjalankan skrip ini, operasi polling berikutnya akan mengambil rekaman baru yang disisipkan ke dalam tabel.

Cara Menerima Pesan Perubahan Data dari Oracle

Melakukan operasi pada database Oracle menggunakan adaptor Oracle Database dengan BizTalk Server melibatkan tugas prosedural berikut yang dijelaskan dalam Blok Bangunan untuk mengembangkan Aplikasi BizTalk dengan Oracle Database. Untuk mengonfigurasi adaptor agar mengambil data dari database Oracle menggunakan pernyataan SELECT, tugas-tugas ini adalah:

  1. Buat proyek BizTalk, dan hasilkan skema untuk operasi POLLINGSTMT untuk tabel yang ingin Anda jajak pendapat.

  2. Buat pesan di proyek BizTalk untuk menerima pesan dari database Oracle.

  3. Buat orkestrasi untuk menerima pesan dari Oracle dan simpan ke folder.

  4. Bangun dan sebarkan proyek BizTalk.

  5. Konfigurasikan aplikasi BizTalk dengan membuat port kirim dan terima fisik.

    Penting

    Untuk skenario polling masuk, Anda harus selalu mengonfigurasi port penerima satu arah. Port penerima dua arah tidak didukung untuk operasi masuk.

  6. Mulai aplikasi BizTalk.

    Topik ini menyediakan instruksi untuk melakukan tugas-tugas ini.

Menghasilkan Skema

Anda harus membuat skema untuk operasi POLLINGSTMT . Lakukan tugas berikut saat membuat skema menggunakan Add-in Layanan Konsumsi Adaptor.

Menentukan Pesan dan Jenis Pesan

Skema yang Anda buat sebelumnya menjelaskan "jenis" yang diperlukan untuk pesan dalam orkestrasi. Pesan biasanya merupakan variabel, jenis yang ditentukan oleh skema yang sesuai. Setelah skema dibuat, Anda harus menautkannya ke pesan dari tampilan Orkestrasi proyek BizTalk.

Untuk topik ini, Anda harus membuat satu pesan untuk menerima pesan dari Oracle.

Lakukan langkah-langkah berikut untuk membuat pesan dan menautkannya ke skema.

  1. Tambahkan orkestrasi ke proyek BizTalk. Dari Penjelajah Solusi, klik kanan nama proyek BizTalk, arahkan ke Tambahkan, lalu klik Item Baru. Ketik nama untuk orkestrasi BizTalk lalu klik Tambahkan.

  2. Buka jendela tampilan orkestrasi proyek BizTalk, jika belum terbuka. Klik Tampilkan, arahkan ke Windows Lain, lalu klik Tampilan Orkestrasi.

  3. Di Tampilan Orkestrasi, klik kanan Pesan, lalu klik Pesan Baru.

  4. Klik kanan pesan yang baru dibuat, lalu pilih Jendela Properti.

  5. Di panel Properti untuk Message_1, lakukan hal berikut:

    Gunakan ini Untuk melakukan ini
    Pengidentifikasi Ketik Terima.
    Jenis Pesan Dari daftar drop-down, perluas Skema, dan pilih TablePolling.OracleDBBinding, di mana TablePolling adalah nama proyek BizTalk Anda. OracleDBBindingSchema adalah skema respons yang dihasilkan untuk operasi POLLINGSTMT pada tabel ACCOUNTACTIVITY.

    Penting Karena polling adalah operasi satu arah, skema yang dihasilkan oleh adaptor tidak berisi simpul respons, dan karenanya hanya ada satu simpul akar dalam skema. Jika Anda menggunakan skema tersebut untuk jenis pesan, Anda harus mengidentifikasi skema dengan nama file skema yang dihasilkan.

    Misalnya, jika Anda membuat skema untuk operasi dua arah, simpul dalam file skema dengan nama OracleDBBindingSchema mungkin terlihat seperti "Permintaan" dan "Respons". Jika Anda ingin membuat pesan dalam orkestrasi yang memetakan ke skema permintaan, Anda dapat mengidentifikasi skema dalam daftar dengan mencari OracleDBBindingSchema.Request. Namun, dalam kasus operasi polling, karena satu-satunya simpul adalah "POLLINGSTMT", tidak mudah untuk mengidentifikasi skema yang ingin Anda petakan karena skema dengan simpul tunggal tidak terdaftar sebagai <skemafilename>.<rootnodename>. Sebaliknya, skema tersebut hanya dicantumkan oleh nama file. Dalam kasus seperti itu, satu-satunya cara untuk mengidentifikasi skema adalah dengan nama file skema, misalnya, OracleDBBindingSchema.

Menyiapkan Orkestrasi

Anda harus membuat orkestrasi BizTalk untuk menggunakan BizTalk Server untuk menerima pesan perubahan data berbasis polling dari Oracle. Dalam orkestrasi ini, adaptor menerima respons dengan menjalankan pernyataan SELECT yang ditentukan untuk properti pengikatan PollingStatement . Pesan respons untuk pernyataan SELECT disimpan ke lokasi FILE. Orkestrasi umum untuk polling database Oracle akan berisi:

  • Komponen Terima dan Kirim digunakan untuk menerima pesan dari Oracle dan mengirimkannya masing-masing ke port FILE.

  • Port penerima satu arah untuk menerima pesan dari database Oracle.

    Penting

    Untuk skenario polling masuk, Anda harus selalu mengonfigurasi port penerima satu arah. Port penerima dua arah tidak didukung untuk operasi masuk.

  • Port pengiriman satu arah yang digunakan untuk mengirim respons polling dari database Oracle.

    Contoh orkestrasi serupa dengan berikut ini.

    Orkestrasi untuk kueri pemungutan suara untuk Oracle

Menambahkan Bentuk Pesan

Pastikan Anda menentukan properti berikut untuk setiap bentuk pesan. Nama yang tercantum dalam kolom Bentuk adalah nama bentuk pesan seperti yang ditampilkan dalam orkestrasi yang baru saja disebutkan.

Rupa Tipe Bentuk Karakteristik
TerimaPesan Menerima - Atur Nama ke ReceiveMessage

- Atur Aktifkan ke True
SaveMessage Kirim - Atur Nama ke SaveMessage

Menambahkan Port

Pastikan Anda menentukan properti berikut untuk setiap port logis. Nama yang tercantum dalam kolom Port adalah nama port seperti yang ditampilkan dalam orkestrasi.

Pelabuhan Karakteristik
OracleReceivePort - Atur Pengidentifikasi ke OracleReceivePort

- Atur Jenis ke OracleReceivePortType

- Atur Pola Komunikasi ke Satu Arah

- Atur Arah Komunikasi ke Terima
SaveMessagePort - Atur Pengidentifikasi ke SaveMessagePort

- Atur Tipe ke SaveMessagePortType

- Atur Pola Komunikasi ke Satu Arah

- Atur Arah Komunikasi ke Kirim

Tentukan Pesan untuk Bentuk Tindakan dan Sambungkan ke Port

Tabel berikut menentukan properti dan nilainya yang harus Anda atur untuk menentukan pesan untuk bentuk tindakan dan untuk menautkan pesan ke port. Nama yang tercantum dalam kolom Bentuk adalah nama bentuk pesan seperti yang ditampilkan dalam orkestrasi yang disebutkan sebelumnya.

Rupa Karakteristik
TerimaPesan - Atur Pesan ke Terima

- Atur Operasi ke OracleReceivePort.Polling.Request
SaveMessage - Atur Pesan ke Terima

- Atur Operasi ke SaveMessagePort.Polling.Request

Setelah Anda menentukan properti-properti ini, bentuk-bentuk pesan dan port tersambung, dan orkestrasi Anda selesai.

Anda sekarang harus membangun solusi BizTalk dan menyebarkannya ke BizTalk Server. Untuk informasi selengkapnya, lihat Membangun dan Menjalankan Orkestrasi.

Mengonfigurasi Aplikasi BizTalk

Setelah Anda menyebarkan proyek BizTalk, orkestrasi yang Anda buat sebelumnya tercantum di bawah panel Orkestrasi di konsol Administrasi BizTalk Server. Anda harus menggunakan konsol Administrasi BizTalk Server untuk mengonfigurasi aplikasi. Untuk panduan, lihat Panduan: Menyebarkan Aplikasi BizTalk Dasar.

Mengonfigurasi aplikasi melibatkan:

  • Memilih host untuk aplikasi.

  • Memetakan port yang Anda buat di orkestrasi ke port fisik di konsol Administrasi BizTalk Server. Untuk orkestrasi ini, Anda harus:

    • Tentukan lokasi pada hard disk dan port FILE yang sesuai di mana orkestrasi BizTalk akan menghilangkan pesan dari Oracle. Pesan-pesan ini akan menanggapi pernyataan polling yang Anda tentukan untuk port penerima.

    • Tentukan port penerima satu arah fisik WCF-Custom atau WCF-OracleDB. Port ini melakukan polling database Oracle. Untuk informasi tentang cara membuat port penerima, lihat Mengonfigurasi pengikatan port fisik secara manual ke Oracle Database Adapter. Pastikan Anda menentukan properti pengikatan berikut untuk port penerima.

      Properti Pengikatan Nilai
      InboundOperationType Atur ini ke Polling.
      PolledDataAvailableStatement Untuk contoh ini, atur properti pengikatan ini ke:

      SELECT COUNT (*) FROM ACCOUNTACTIVITY

      Ini memastikan bahwa adaptor menjalankan pernyataan polling hanya ketika tabel ACCOUNTACTIVITY memiliki beberapa rekaman.
      PollingStatement Untuk properti pengikatan ini, tentukan pernyataan SELECT untuk mengambil semua rekaman dari tabel ACCOUNTACTIVITY. Untuk contoh ini, atur properti pengikatan ini ke:

      SELECT * FROM ACCOUNTACTIVITY FOR UPDATE
      PostPollStatement Tentukan pernyataan pasca-polling untuk memindahkan semua data dari tabel ACCOUNTACTIVITY ke tabel lain. Untuk contoh ini, atur properti pengikatan ini ke:

      BEGIN ACCOUNT_PKG.PROCESS_ACTIVITY(); END;

      Untuk informasi selengkapnya tentang properti pengikatan yang berbeda, lihat Membaca tentang properti pengikatan adaptor Oracle Database.

      Nota

      Sebaiknya konfigurasikan tingkat isolasi transaksi dan batas waktu transaksi saat melakukan operasi masuk menggunakan adaptor Oracle Database. Anda dapat melakukannya dengan menambahkan perilaku layanan saat mengonfigurasi port penerima. Untuk instruksi tentang cara menambahkan perilaku layanan, lihat Mengonfigurasi tingkat isolasi transaksi dan batas waktu transaksi.

Memulai Aplikasi

Anda harus memulai aplikasi BizTalk untuk database Oracle polling. Untuk petunjuk tentang memulai aplikasi BizTalk, lihat Cara Memulai Orkestrasi.

Pada tahap ini, pastikan:

  • Port penerima satu arah WCF-Custom atau WCF-OracleDB, yang melakukan jajak pendapat Oracle menggunakan pernyataan SELECT yang ditentukan untuk properti pengikatan PollingStatement , sedang berjalan.

  • Port pengiriman FILE, yang menerima pesan dari database Oracle, sedang berjalan.

  • Orkestrasi BizTalk untuk operasi sedang berjalan.

Menjalankan Operasi

Setelah Anda menjalankan aplikasi, serangkaian tindakan berikut terjadi, dalam urutan yang sama:

  • Adaptor menjalankan PolledDataAvailableStatement yang mengembalikan nilai positif yang menunjukkan adaptor untuk menjalankan pernyataan yang ditentukan untuk properti pengikatan PollingStatement .

  • Adaptor menjalankan pernyataan SELECT untuk properti pengikatan PollingStatement dan mengembalikan semua baris dalam tabel ACCOUNTACTIVITY. Respons dari database Oracle seperti berikut ini:

    <?xml version="1.0" encoding="utf-8" ?>   
    <POLLINGSTMT xmlns="http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMT">  
      <POLLINGSTMTRECORD>  
        <POLLINGSTMTRECORD>  
          <TID>1</TID>   
          <ACCOUNT>100001</ACCOUNT>   
          <AMOUNT>500</AMOUNT>   
          <DESCRIPTION />   
          <TRANSDATE>2008-08-03T20:10:28</TRANSDATE>   
          <PROCESSED>n</PROCESSED>   
        <POLLINGSTMTRECORD>  
      <POLLINGSTMTRECORD>  
          ......  
          ......  
      </POLLINGSTMTRECORD>  
        ......  
        ......  
      </POLLINGSTMTRECORD>  
    </POLLINGSTMT>  
    
  • Adaptor menjalankan pernyataan pasca-polling, yang memindahkan semua data dari tabel ACCOUNTACTIVITY ke tabel lain.

  • Setelah jangka waktu polling, adaptor kembali menjalankan PolledDataAvailableStatement. Karena tabel ACCOUNTACTIVITY tidak memiliki rekaman sekarang, PolledDataAvailableStatement tidak mengembalikan nilai positif dan karenanya adaptor tidak menjalankan pernyataan yang ditentukan untuk properti pengikatan PollingStatement . Akibatnya, klien adaptor tidak mendapatkan pesan polling apa pun.

  • Klien adaptor tidak akan mendapatkan pesan polling lagi sampai beberapa rekaman secara eksplisit dimasukkan ke dalam tabel ACCOUNTACTIVITY. Untuk menyisipkan catatan lebih banyak, Anda bisa menjalankan skrip more_activity_data.sql yang disediakan dengan sampel. Setelah Anda menjalankan skrip ini, lain kali PolledDataAvailableStatement dijalankan, skrip mengembalikan nilai positif. Akibatnya, adaptor menjalankan pernyataan polling dan klien adaptor kembali menerima pesan polling.

Nota

Adaptor Oracle Database akan terus melakukan polling hingga Anda secara eksplisit menonaktifkan port terima dari konsol Administrasi BizTalk Server.

Kemungkinan Pengecualian

Untuk informasi tentang pengecualian yang mungkin Anda temui saat menjalankan kueri polling pada database Oracle menggunakan BizTalk Server, lihat Pengecualian dan penanganan kesalahan dengan adaptor Oracle Database.

Praktik Terbaik

Setelah menyebarkan dan mengonfigurasi proyek BizTalk, Anda dapat mengekspor pengaturan konfigurasi ke file XML yang disebut file pengikatan. Setelah membuat file pengikatan, Anda dapat mengimpor pengaturan konfigurasi dari file sehingga Anda tidak perlu membuat port pengiriman dan menerima port untuk orkestrasi yang sama. Untuk informasi selengkapnya tentang mengikat file, lihat Menggunakan kembali pengikatan Adaptor Database Oracle.

Lihat Juga

Poll Oracle Database menggunakan BizTalk Server