Penjawab teratas
Masalah dengan ICallbackEventHandler

Pertanyaan
-
Alow rekan programmer....
Saya sedang membangun sebuah web yang banyak menggunakan metoda ICallbackEventHandler. Web yang dibangun menunggu jawaban (respon) yang masuk ke database dari program desktop. Pada saat program desktop bekerja yang memakan waktu kurang dari 1menit, sehingga web aplikasi hrs menunggu. Selama menunggu itulah saya menggunakan ICallbackEventHandler yaitu pembacaan secara periodik (setiap 5detik). Jika hasil dari proses program dekstop telah terdapat dalam database, maka web akan menampilkan hasil nya ke tampilan web. Disamping itu juga saya menggunakan System.Threading.Thread.Sleep secara bersamaan selama proses ICallbackEventHandler berlangsung. Seluruh program baik Web, Desktop maupun Database berada dalam server yang sama.
Masalah muncul dimana terkadang pembacaan periodik ke Database tidak berhasil dilakukan walaupun respon data telah tersedia di Database. Hal ini membuat penggunaan resource memory dan mengakibatkan server menjadi lambat.
Adakah contoh metoda terbaik berikut source dalam VB, agar saya dapat menyelesaikan masalah ini?
Saran dan bantuan dari rekan akan sangat membantu sekali dalam penyelesaian pekerjaan saya
Terimakasih sebelumnya
Jawaban
-
Hi Ferdi
Selamat datang di Forum MSDN
Selama proses pembacaan berkala ICallbackEventHandler (setiap 5 detik), saya sarankan saya sarankan tambahkan boolean dengan type variable untuk menyimpan status yang menunjukkan apakah program desktop sudah me reply
Jika variabel berubah kemudian periksa hasil dari program desktop yang telah dimasukkan dalam database. (Key)Setelah di implementasikan, langkah tersebut akan mengurangi penggunaan memori
Berikut pembelajaran ICallbackEventHandler
Referensi:
http://msdn.microsoft.com/en-us/library/system.web.ui.icallbackeventhandler% 28v = vs.110% 29.aspxContoh penggunaan ICallbackEventHandler:
http://www.codeproject.com/Tips/254530/How-to-Implement-ICallBackEventHandler-calling-ser
http://www.codeproject.com/Articles/27172/The-ICallbackEventHandlerJadi saran saya workflow nya seperti ini
(client) CallServer () -> (Server) ICallbackEventHandler.RaiseCallbackEvent (string eventArgument) -> (Server) ICallbackEventHandler.GetCallbackResult () -> (client) ReceiveServerData (string Value).Terima kasih
Andy Nugraha
TechNet Community Support
- Disarankan sebagai Jawaban oleh Andy NugrahaModerator Rabu, 25 September 2013 08.03
- Ditandai sebagai Jawaban oleh Andy NugrahaModerator Jumat, 27 September 2013 01.31
Semua Balasan
-
Hi Ferdi
Selamat datang di Forum MSDN
Selama proses pembacaan berkala ICallbackEventHandler (setiap 5 detik), saya sarankan saya sarankan tambahkan boolean dengan type variable untuk menyimpan status yang menunjukkan apakah program desktop sudah me reply
Jika variabel berubah kemudian periksa hasil dari program desktop yang telah dimasukkan dalam database. (Key)Setelah di implementasikan, langkah tersebut akan mengurangi penggunaan memori
Berikut pembelajaran ICallbackEventHandler
Referensi:
http://msdn.microsoft.com/en-us/library/system.web.ui.icallbackeventhandler% 28v = vs.110% 29.aspxContoh penggunaan ICallbackEventHandler:
http://www.codeproject.com/Tips/254530/How-to-Implement-ICallBackEventHandler-calling-ser
http://www.codeproject.com/Articles/27172/The-ICallbackEventHandlerJadi saran saya workflow nya seperti ini
(client) CallServer () -> (Server) ICallbackEventHandler.RaiseCallbackEvent (string eventArgument) -> (Server) ICallbackEventHandler.GetCallbackResult () -> (client) ReceiveServerData (string Value).Terima kasih
Andy Nugraha
TechNet Community Support
- Disarankan sebagai Jawaban oleh Andy NugrahaModerator Rabu, 25 September 2013 08.03
- Ditandai sebagai Jawaban oleh Andy NugrahaModerator Jumat, 27 September 2013 01.31
-
Terimakasih mas Andy atas responnya
Saran mas Andy untuk memberikan Status Flag jika respon Desktop berhasil sangat berguna sekali. Namun untuk itu saya menggunakan pendekatan sedikit berbeda. Dimana saya menggunakan 2 tabel yang berbeda yaitu INBOX dan OUTBOX. Yang mana tabel inbox berisikan request dari Aplikasi Web, sedangkan Outbox berisikan respon dari Aplikasi Dekstop. Dan setiap kali request baru akan di input ke tabel Inbox, maka Aplikasi Web selalu meng-create Nomor Session baru yang unik dan berbeda untuk setiap request. Sehingga dengan Nomor Session unik itulah Aplikasi Web memeriksa setiap 5detik ke tabel Outbox. Dan jika tabel Outbox terdapat data dengan Nomor Session yang telah disepakati, maka tugas terakhir adalah menampilkan (render) data tsb ke Browser. Pekerjaan render ini lah yang terkadang gagal, padahal di database sudah terdapat data respon.
Saya akan mempelajari link url yang mas Andy berikan. Tentu hal ini akan menambah wawasan saya dalam mempelajari ICallbackEventHandler.
Terimakasih
-
Oh ya... mungkin ada yg penasaran dgn source yang saya gunakan. Saya mengambil contoh dari link berikut: http://www.codeproject.com/Articles/15933/Another-Simple-Wait-Page
Dimana sample tersebut saya modifikasi sesuai kebutuhan, sehingga dapat melakukan Long Running Job sambil membaca database secara periodik.
Akan tetapi, seperti yg saya sebut diawal bahwa pembacaan database sesekali gagal menghentikan proses Long Running Jobs tersebut. Yang pada akhirnya gagal me render hasil ke browser yang berakibat proses terus berjalan sehingga membebani server dan menjadikan server lambat