Конференция "Базы" » обрыв канала связи,выключение сервера
 
  • denis24 (15.05.09 16:58) [0]
    Здравствуйте,подскажите пожалуйста как решить этот момент.
    Приложение написано на VB но суть вопроса остаётся таже.
    В приложениее конекчусь через ADO и ODBC к Oracle серверу.
    Создаю рекордсет с помощью которого постоянно добавляю записи в таблицу на сервере.

    Dim conn As ADODB.Connection
    Dim rst As New ADODB.Recordset

    Set conn = New ADODB.Connection
    With conn

      .CursorLocation = adUseClient
      .Provider = "MSDAORA"
      '.Open = "dsn=aice10g"
      .Properties("Data Source").Value = "aice10g"
      .Properties("User ID").Value = "disegn"
      .Properties("Password").Value = "disegn"
      .Open
    End With
    rst.LockType = adLockOptimistic
    rst.Source = "select * from ats where ats.date_call is not null"
    Set rst.ActiveConnection = conn
    rst.Open
    rst.AddNew
    .
    .
    .
    rst.update


    записи добавляются очень часто.
    Связь с сервером иногда может прерываться.Как реализовать сохранение данных при обрыве связи или выключениии сервера?
    Ткните носом где читать?
  • Сергей М. © (15.05.09 17:02) [1]
    Сохранение где - на стороне сервера или на стороне клиента ?
  • Медвежонок Пятачок © (15.05.09 17:46) [2]
    зачем?

    транзакция бегин
    инсерт
    коммит

    не получилось - реконнект и снова повторяем транзакцию
  • denis24 (15.05.09 17:51) [3]

    > Сохранение где - на стороне сервера или на стороне клиента
    > ?

    на стороне сервера
  • Медвежонок Пятачок © (15.05.09 17:56) [4]
    а что сохранять на стороне сервера, если связь проервалась и на сервере еще нет того, чего нам надо сохранять на сервере?
  • denis24 (15.05.09 17:57) [5]

    > Медвежонок Пятачок ©   (15.05.09 17:46) [2]
    >
    > зачем?
    >
    > транзакция бегин
    > инсерт
    > коммит
    >
    > не получилось - реконнект и снова повторяем транзакцию

    а если нет связи с сервером несколько часов?
    при ошибке комита всё это время в цикле реконект?
    записи прибывают.Это логирование атс.
  • Медвежонок Пятачок © (15.05.09 17:57) [6]
    а если нет связи с сервером несколько часов?

    "А если бы он вез патроны?"
  • Медвежонок Пятачок © (15.05.09 17:59) [7]
    да хоть год не будет связи.
    складируй инсерты в очередь локально пока связист не наладит связь
  • denis24 (15.05.09 18:01) [8]

    > а что сохранять на стороне сервера, если связь проервалась
    > и на сервере еще нет того, чего нам надо сохранять на сервере?
    >

    данные получает клиент и сохраняет их в таблице сервера.это логирование.
  • denis24 (15.05.09 18:03) [9]

    > да хоть год не будет связи.
    > складируй инсерты в очередь локально пока связист не наладит
    > связь
    > <Цитата>
    >
    >

    а как "складировать"?Не соображу.Дай чтото поконкретней?
  • Медвежонок Пятачок © (15.05.09 18:04) [10]
    данные получает клиент и сохраняет их в таблице сервера.это логирование.

    Ну получил клиент данные.
    Связь пропала, данные до сервера не дошли.
    Их там еще нет.
    Что ты при этом собрался сохранять на сервере?
  • Медвежонок Пятачок © (15.05.09 18:06) [11]
    ... который еще как ты сказал может быть вообще выключен
  • Медвежонок Пятачок © (15.05.09 18:08) [12]
    а как "складировать"?Не соображу.Дай чтото поконкретней?

    Примерно так же как ты делаешь это на оракле.
    Только складывать не на оракле (который сейчас выключен), а в локальном файле access "ats.mdb"
  • denis24 (15.05.09 18:28) [13]
    ага
    > Медвежонок Пятачок ©   (15.05.09 18:08) [12]
    >
    > а как "складировать"?Не соображу.Дай чтото поконкретней?
    >
    >
    > Примерно так же как ты делаешь это на оракле.
    > Только складывать не на оракле (который сейчас выключен),
    >  а в локальном файле access "ats.mdb"
    >

    тоесть при ошибке коммита,сохранять данные в локальную бд а при появлении вікладывать на сервер?
  • Игорь Шевченко © (15.05.09 19:10) [14]
    вроде как для этого ClientDataSet придумали
 
Конференция "Базы" » обрыв канала связи,выключение сервера
Есть новые Нет новых   [134473   +33][b:0][p:0.001]