Arsip: trouble network database
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!
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...
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.
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.
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.
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.
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:
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
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 4 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 5 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 12 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 12 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 12 years ago
Random Topic
- Konversi data dari Port serial
by sayidjunior in Enginering more 17 years ago - Kode dengan font beda style
by EkoIndri in Tip n Trik Pemrograman more 19 years ago - Tanya tentang enkripsi (baru belajar neh)
by goosemunk in Tutorial & Community Project more 18 years ago - Milih warna diantara 2 warna?
by ZeAL in Multimedia & Graphic Enhancement more 19 years ago - Ujian kayak UMPTN
by budi_bunga in Hal umum tentang Pascal Indonesia more 18 years ago - Report Builder Enterprise Export ke Excel
by IdrisZZ in Reporting more 16 years ago - Remote Button.Click Client-Server
by adit4it in Hal umum tentang Pascal Indonesia more 17 years ago - Error indy telnet
by nunkee in Network, Files, I/O & System more 13 years ago - delphi chat
by mlana21 in Tip n Trik Pemrograman more 17 years ago - Query SQL di delphi
by divanda in Lain-lain more 17 years ago