Author Topic: Koneksi MySQL Terputus  (Read 5979 times)

0 Members and 1 Guest are viewing this topic.

Offline WardiePNiron

  • Senior Member
  • *
  • Posts: 427
  • ..Pak ajari saya biar pinter dong..!
Koneksi MySQL Terputus
« on: November 16, 2010, 04:44:07 PM »
Bagi pengalamannya dong  Pak...
Apa penyebabnya ya kalau koneksi ke mysql terputus jika komputer yang sedang menjalankan aplikasi lamaaaaa ditinggalkan, begitu kembali dipakai kok koneksi terputus....
Mungkin ada cara biar koneksi tetep manteng ga putus, biarpun komputer ditinggal tidur ampe pagi sama si operator..?

Makasih..


Anti Rokok, Anti Narkoba, Anti Boros, Anti Anarkisme

Offline urip.darmayasa

  • Newbie
  • *
  • Posts: 29
Re: Koneksi MySQL Terputus
« Reply #1 on: November 16, 2010, 05:16:17 PM »
punya ku ga peneh kayak gt... mungkin yg dibawah lebih tau..
ribet membuat itu simple

Offline rnd

  • Hero Member
  • *
  • Posts: 1.284
Re: Koneksi MySQL Terputus
« Reply #2 on: November 16, 2010, 06:03:00 PM »
Sama dengan pa Urip, saya juga ngak ketemu masalah putus ini, tapi saya sediakan juga tombol khusus untuk reconnect,setelah konek jangan lupa matikan koneksi sebelumnya karna koneksinya masih tercatat dalam mysql. Ato pake cara lain buka tutup

Offline onytoo

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 1.032
Re: Koneksi MySQL Terputus
« Reply #3 on: November 16, 2010, 06:19:13 PM »
@WPN:
Kayaknya nyambung nih sama topik (thread anda) yg di sebelah.

Karena sering mengalami hal yg anda alami itulah maka saya lalu memutuskan untuk memakai class.
Coba diperhatikan logikanya

DEFINE CLASS CConnection AS Custom
  nHandle=0
  cConnectionString=[]

  FUNCTION Connect
    this.Disconnect()
    ...
    this.nHandle = SQLSTRINGCONNECT(this.cConnectionString)
  ENDFUNC
 
  FUNCTION Disconnect
  ENDFUNC

  FUNCTION Execute(cSQLString, cOutputCursor)
    LOCAL lnResult, lnODBCError
    ...
    lnResult = SQLEXEC(this.nHandle, cSQLString, cOutputCursor)
    IF lnResult < 0
      =AERROR(laError)
      lnODBCError = laError[5]
      *!*
      *!* tangkap errornya dan coba untuk re-koneksi
      *!*
      IF (lnODBCError = 14) AND this.Connect()
        lnResult = SQLEXEC(this.nHandle, cSQLString, cOutputCursor)
        ...
      ENDIF
    ENDIF
    ...
  ENDFUNC

ENDDEFINE


Dari potongan kode diatas bisa kita lihat bahwa, apapun kejadiannya yg menyebabkan error maka object akan mencoba melakukan ulang koneksi, itu makanya melalui class diatas kita tidak perlu berhubungan langsung dgn 'HANDLE' koneksi, hanya merujuk ke objek nya saja. Urusan handle, ya si objeck yg meng'handle'nya.  :icon_biggrin:


CMIIW
 :thumbsup:
Long life Visual FoxPro...

Offline rnd

  • Hero Member
  • *
  • Posts: 1.284
Re: Koneksi MySQL Terputus
« Reply #4 on: November 16, 2010, 06:38:28 PM »
pa Ony, apa tidak ada masalah dengan jumlah koneksi kalo putus terus ?

Offline onytoo

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 1.032
Re: Koneksi MySQL Terputus
« Reply #5 on: November 16, 2010, 07:34:33 PM »
@rnd:
Putus terus? Jumlah koneksi?
Coba perhatikan lagi kodenya, koneksi akan dilakukan ulang hanya jika terjadi kesalahan pada saat perintah SQLEXEC() dilaksanakan.
Dan itupun koneksi sudah dicoba ditutup kembali sebelum dilakukan koneksi ulang (lihat fungsi Connect diatas).

Jadi intinya jumlah koneksi akan tetap sama, meskipun dilakukan berulang2.

try disconnect first. (jml_koneksi = jml_koneksi - 1)
then try to make a new connection. (jml_koneksi = jml_koneksi + 1)

 :thumbsup:
Long life Visual FoxPro...

Offline WardiePNiron

  • Senior Member
  • *
  • Posts: 427
  • ..Pak ajari saya biar pinter dong..!
Re: Koneksi MySQL Terputus
« Reply #6 on: November 16, 2010, 08:25:23 PM »
@Pak Ony... makasih class-nya...
Sebenernya tombol rekonek kaya punya pak rnd sudah disediakan sih.. tapi yg otomatis memang belum..
Kejadian putusnya koneksi itu masih belum dipastikan sebabnya. misal saya amati apakah putusnya saat komputer idle dan screen saver jalan...setelah dicoba ternyata belum tentu dari sebab itu...

Oke sekali lagi makasih Pak Ony akan saya perdalam script classnya...
Anti Rokok, Anti Narkoba, Anti Boros, Anti Anarkisme

Offline rnd

  • Hero Member
  • *
  • Posts: 1.284
Re: Koneksi MySQL Terputus
« Reply #7 on: November 16, 2010, 09:14:58 PM »
Dan itupun koneksi sudah dicoba ditutup kembali sebelum dilakukan koneksi ulang (lihat fungsi Connect diatas).

Sorry pa Ony, mungkin saya kurang pengalaman kali,
Saya cobanya dengan server kantor yang terhubung via inet, waktu posisi koneksi terputus, saya tidak bisa menutup koneksi, dan saya lihat di server connections tetap statusnya sleep, setelah saya coba buat koneksi kembali, baru saya bisa menutup koneksi yang lama.

thx
rnd

Offline rnd

  • Hero Member
  • *
  • Posts: 1.284
Re: Koneksi MySQL Terputus
« Reply #8 on: November 16, 2010, 09:28:54 PM »
Pa Ony, nanya lagi, soalnya saya pikir selama ini tutup koneksi di server dengan perintah kill  idkonek yang sebelumnya idkoneknya telah saya ambil dengan connection_id(). Sorry kalo saya salah persepsi dalam hal ini.

thx
rnd

Offline onytoo

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 1.032
Re: Koneksi MySQL Terputus
« Reply #9 on: November 16, 2010, 10:01:56 PM »
@rnd:
hmm.. apakah anda menggunakan perintah MySQL -> KILL CONNECTION_ID() melalui sql string di VFP?

Saya sendiri tidak begitu paham pengaruhnya seperti apa, yg jelas saya selalu mengandalkan perintah internal VFP -> SQLDISCONNECT(), dan sudah pasti driver ODBC akan mengaturnya keperluannya untuk kita.
Dan saya gak perlu mikirin apakah id connection sedang di lock atau tidak.

Dan apakah server database sekondang MySQL tidak punya kemampuan semacam Garbage Collector yang bisa membersihkan 'sampah' yg tak terpakai dalam hal ini id connection?.
Saya sendiri juga gak tahu.

Mudah2an ada master2 fox-id yg jago MySQL yang mau memberikan penjelasannya untuk kita.


CMIIW
 :thumbsup:
Long life Visual FoxPro...

Offline rnd

  • Hero Member
  • *
  • Posts: 1.284
Re: Koneksi MySQL Terputus
« Reply #10 on: November 17, 2010, 06:06:31 AM »
Ya pa Ony, saya gunakan Kill & Connection_ID melalui sql string di VFP

Offline rnd

  • Hero Member
  • *
  • Posts: 1.284
Re: Koneksi MySQL Terputus
« Reply #11 on: November 17, 2010, 06:38:14 AM »
Barusan saya coba cari informasi tentang masalah saya dan saya ketemukan penjelasan kurang lebih seperti ini

"you can reduce the wait_timeout and interactive_timeout variables. The wait_timeout affects non-interactive connections and interactive_timeout affects interactive connections (if you don't know what these are, you're not alone). The defaults of these are fairly high (usually 480 minutes) and you can drop them to something more reasonable, like 30-60 seconds.


Offline cahe.dhewe

  • Junior Member
  • *
  • Posts: 180
  • Jape Mete
Re: Koneksi MySQL Terputus
« Reply #12 on: November 17, 2010, 08:02:08 AM »
sekedar urun rembug...
di tempat saya, satu user hanya bisa konek sekali dalam waktu bersamaan (max_user_connection = 1). setiap kabel LAN putus / dicabut, ternyata koneksi masih tercatat (show procceslist , masih ada) akhirnya untuk bisa nyambung lagi harus KILL dulu koneksi user tersebut terlebih dulu.
Jape Mete

Offline onytoo

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 1.032
Re: Koneksi MySQL Terputus
« Reply #13 on: November 17, 2010, 08:21:01 AM »
@rnd:
IMHO: kekhawatiran yg anda alami, itu terjadi jika kita menggunakan persistent connection seperti yg bisa dilakukan oleh fungsi2 di PHP ex. mysql_pconnect(). Dimana fungsi2 tsb akan meninggalkan 'jejak' atau membiarkan koneksi selalu terbuka meskipun script telah selesai dijalankan.

Sedangkan fungsi2 VFP SQLCONNECT() / SQLSTRINGCONNECT() selalu menggunakan statement handle daripada connection handle. Dan dari VFP kita tidak bisa langsung mengambil nilai connection handle, karena itu adalah urusan dari driver odbc.

Bisa saja sih anda menambahkan perintah KILL sebelum melakukan koneksi ulang:
IF this.nConnectionID != 0
  lnConnectionID = this.nConnectionID
  =SQLEXEC(this.nHandle, [KILL ?lnConnectionID])
ENDIF
=SQLDISCONNECT(this.nHandle)


@cahe:
koq pelit amat.  :icon_biggrin:


CMIIW
 :thumbsup:
Long life Visual FoxPro...

Offline rnd

  • Hero Member
  • *
  • Posts: 1.284
Re: Koneksi MySQL Terputus
« Reply #14 on: November 17, 2010, 08:37:34 AM »
Ya itu yang saya lakukan selama ini, matiin koneksi lama waktu buka koneksi baru