Home > Ngoprek > kbmMW ServeRequest Arguments Problem

kbmMW ServeRequest Arguments Problem


Ceritanya, ketika gw sedang bereksperimen dengan RequestArguments nya kbmMW, ada iterasi argument yang bikin error aplikasi, bahkan gw kira ini error akibat tidak cocoknya kbmMW, ADO dan ODBC mySQL karena:

  • gw pake mySQL 5.11-beta
  • gonta ganti komponen database, dari ADO, Zeos, MyDAC
  • gonta-ganti myODBC dari versi 3.51.06 ke 3.51.12 ke 5-Alpha ke 3.51.12 ke 3.51.06 dan akhirnya baru bisa jalan stabil di 3.51.12 (setelah beberapa kali install/uninstall)

Di log ApplicationServer kayak begini:
kbmmw1

Nah di Client / RemoteApp kayak begini:
kbmmw2

Lama banget gw debugging, karena terlalu fokus di rutin database dan koneksinya.. sampai akhirnya iseng2 fokus ke method OnServeRequest, dan menemukan bug-nya. Bug ini mungkin diakibatkan kesalahan konversi tipe data di dalam argument sehingga tidak dapat ditampilkan dengan benar:
kbmmw3

Untuk lebih jelasnya di kode ini:

  for Index := Low(Args) to High(Args) do
    Memo.Lines.Add('    --> Argument[' + IntToStr(Index) + '] : ' + Args[Index]);

Dan akhirnya ApplicationServer dapat menyajikan informasi sesuai request dari client, walaupun log yang tercatat kurang terperinci:
kbmmw4

Dan ini grid berisi data pada client:
kbmmw5

Tapi saya sendiri masih penasaran tuh, gimana ya biar OnServeRequest dapat nampilin semua argument dengan benar.

Categories: Ngoprek
  1. KaKaDeLpHi
    September 13, 2006 at 1:57 pm

    Mas kok blom ada skrinsyutnya … 😀
    BTW …. udah pernah pake Indy ga …. ? gimananya kinerjanya dibanding dengan yang laen …. ?

  2. KaKaDeLpHi
    September 13, 2006 at 2:02 pm

    Wah … kok sekarang muncul yach ….. 😀

  3. bprasetio
    September 14, 2006 at 3:11 pm

    mungkin loading page nya belum 100% atau proses render image nya belom selesai, jadi belom nongol deh.. 🙂

  4. September 15, 2006 at 11:44 am

    Weew …. knapa kok error gitu yach …. 😀 tapi diriku coba yang free, aman tuch … 😛 apa Argumennya dikit kalee …

    Ato coba pake Fungsi (klo ga salah) VarLowBound() dan VarHighBound(). Hasilnya sama ga yach …. ?

    Ternyata kbmMW juga pake Indy yach … 😀

  5. bprasetio
    September 16, 2006 at 7:20 am

    yang free kalo gak salah gak support koneksi ke DB, sementara yg saya pake versi yg Enterprise….Untuk request yg tidak berkaitan degan database, aman2 aja, nah rutin tersebut langsung error begitu saya request fungsi yang berkaitan dengan retrieval record..

    kbmMW bisapake Indy, DXSocks dan protokol bikinan kita. 😀

  6. July 10, 2007 at 9:39 am

    args di kbmMW bertipe variant, jadinya tinggal lihat apa dia null atau memiliki data, kalau ada datanya kemudian tinggal lihat aja tipe datanya apa, toh kan variant menyimpan informasi tersebut.

    kemudian sedikit saran, karena ini sifatnya dijalankan sebagai middletier, lebih baik ganti DAC-nya pake DBExpress, atau komponen DAC yang mensupport unidirectional. Hal ini karena adapter dataset kbmMW sendiri merupakan turunan dari memtable, dengan demikian tidak terjadi double buffering yang mengakibatkan borosnya memory yang dikonsumsi. hati-hati dengan memory manager yang dipake, paling tidak gunakan fastMM dan tune-up konfigurasinya untuk kebutuhan multithread server.

    terakhir gunakan Log4Delphi untuk logging, melakukan logging make Memo itu menyedihkan karena sifatnya yang menggunakan memory sebagai buffer, sayang memory server yang berharga kalau dipake jadi buffer log.

  7. bprasetio
    July 10, 2007 at 11:12 am

    Walaupun sekarang saya tidak menggunakan kbmMW (karena ternyata bos lebih memilih ASTA dengan melalui berbagai pertimbangan, yah jadilah selama setahun ini saya bergelut dengan ASTA), namun saya setuju dengan saran Anda, dan saya sudah menggunakan beberapa diantaranya.

    Thnx.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: