Arsip: trouble network database

 
user image
more 16 years ago

ImanD

ceritanya: database server ada di suatu kota misal kota A, sedangkan POS(Point of Sales) ada di kota lain misalkan Kota B dan kota C. di setiap komputer Client ada program POS untuk mensave data ke database local dan ada 1 program khusus u/ pengiriman data ke server dengan connection lgsg ke server. di program khusus itu cuman menerima parameter berupa perintah SQL dari client, sample: INSERT INTO TABLE VALUES(). tetapi klo jaringan ke server mati timbullah beberapa masalah! masalahnya: 1. bagaimana cara mendapatkan nilai balik dari perintah Query tersebut klo misalkan data itu sudah nyampe di server? 2. bagaimana caranya klo network database server sudah hidup dan auto relogin and send data ke server hanya yg belumnya saja? tengkiu!
user image
more 16 years ago

DelphiExpert

1. gunakan RPC (bisa XML-RPC) atau RMI (Remote Method Invocation) atau buat protocol sendiri, gampangnya pake HTTP protocol aja, server harus membalas REQUEST (RESPONSE) dng code2 yg ditentukan, misal; jika commited CODE = OK, jika tidak CODE = ERROR dll. 2. tandai daftar SQL yg telah ter-commit dan yg gagal berdasar response server, atau jika transaksi sukses, hapus saja record SQL tersebut, tinggalkan yg masih error utk kemudian di post ulang...
user image
more 16 years ago

mat_koder

baeknya anda gunain server yg memakai transaction control dan pastikan di server data ngga boleh duplicate. kira-kira logicnya begini: begin if not RemoteServer.Hidup then Relogin ke server Start transcation try baca data lokal yg belum di-replikasi -> ini memjawab pertanyaan no 2 insert data ke remote Post data ( atau ExecSQL). Commit set flag di local db bhw data sdh di-replikasi -> ini menjawab pertanyaan no 1; except check error message . jika err.msg='Connection Error string' then -> ini menjawab pertanyaan no 2 lakukan sesuatu Rollback end; end; exception bisa disebabkan oleh bermacam-macam sebab: - koneksi yg terputus - time out - data yg di-insert melanggar constraint di server ( misalkan harus not null, atau unique) setiap remote DB server mempunyai error message yg berbeda-beda ( tergantung client library ) dan anda harus coba-coba sendiri menemukan message string yg sebenarnya untuk DB server tsb dan lakukan tindakan yg sesuai untuk setiap exception yg timbul.
user image
more 16 years ago

ImanD

@DE n @mat_koder u/ no 2. yg saya gunakan INSERT kumpulan records karena pada saat network idup kembali di select mana yg tandanya masih flase kemudian di kumpulkan data dalam sebuah SQL dan posting. misal 100data sekaligus di kirim ke server dan saat pengiriman itu pun network putus juga jadi kadang baru 50 data yg ke simpen makanya di butuhkan pesan dari server bahwa yg masuk baru 50 records dan si server ga sempet ngasih pesan ke client karena putus tadi dan klo di rollback sql mmmmmhhh itu gimana ya justru kata lakukan sesuatu itu yg saya butuhkan klo logic-nya dah kena seperti itu! sample SQL yg dikirim

INSERT INTO TABLE VALUES(record1,record2,.........,record100);
mungkin salah satu jalannya pengiriman data harus satu record-satu record kah? sebelumnya banyak terima kasih.
user image
more 16 years ago

herux

mas iman pake SP gak ? seharusnya pakai
user image
more 16 years ago

ImanD

memang belum di buat jadi SP sich,oia ya terlalu memaksakan kehendak. ok dech tak ubah ke SP az. tengkiu bro.
user image
more 16 years ago

mat_koder

misal 100data sekaligus di kirim ke server dan saat pengiriman itu pun network putus juga jadi kadang baru 50 data yg ke simpen makanya di butuhkan pesan dari server bahwa yg masuk baru 50 records dan si server ga sempet ngasih pesan ke client karena putus tadi dan klo di rollback sql mmmmmhhh itu gimana ya justru kata lakukan sesuatu itu yg saya butuhkan klo logic-nya dah kena seperti itu!
disana gunanya transaction , sekalipun 99% data sdh masuk namun sebelum 'Commit' dilakukan dan client library belum menerima signal bhw commit tsb berhasil maka kode untuk memberi flag ke local db jangan dikerjakan. Dengan kata lain, signal keberhasilan yg anda butuhkan tsb sebenarnya sudah ada , yaitu bilamana code 'Commit' ngga mengakibatkan exception (artinya : proses pengiriman data dan penulisan ke remote db sudah berhasil 100%). Soal sekaligus 100 atau satu-satu , ngga jadi masalah mana yg dipilih. Itu menyangkut soal ekonomis biaya pemakaian jaringan dan frekuensi kejadian jaringan putus. Kalo emang jarang terjadi putus jaringan , sebaiknya sekaligus 100 data di-replikasi supaya bisa menghemat (biaya pulsa telepon dial-up / biaya gprs). Soal membuat proses insert lewat SP, saya rasa ngga banyak bedanya , kecualidi server remote membutuhkan validasi data input lewat SP tsb.
user image
more 16 years ago

DelphiExpert

@ImanD: saya kurang mencermati, ternyata dikau lakukan direct-connect ke database server ya :mrgreen: kalau begitu apa yg dipaparkan @mat_koder adalah benar adanya... :lol:
user image
more 16 years ago

ImanD

@mat_koder tengkiu penjelasannya sip dech. @DE tengkiu juga.
user image
more 16 years ago

juan81

Mestinya Bisa pake triger aja... di server... di bagian tabel di database yang penerima diserver... biar dia direct conect atau apa aja... jika ada transaksi dari tabel tersebut kirim suatu perinta aja dari server tersebut ke client2.. biar terjadi kesalahan input semua diatur di triger tersebut... sama bisa juga... untuk data yang belon masuk... jadi... di server ada temp tabel untuk penerima... dari client di pasang triger... terus kalo udah valid datanya di triger itu insert ke tabel yang asli... cuma ide... wkwkwk...
more ...
  • Pages:
  • 1
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com