Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Проверка цикличности передачи информации  [new]
LexMinsk
Member

Откуда: Republic of Belarus
Сообщений: 451
Привет всем. Есть небольшая задачка: "Имееться несколько серверов. Между ними необходимо наладить передачу данных (данные для передачи выбирает пользователь). Как избежать зацикливание передачи информации, при условии, что отдельный сервер видит только тот сервер, на который передает информацию."

Например:
Передача данных идет с
сервер1 -> сервер2 -> сервер3 -> сервер2 (цикл пошел).


У меня только один вариант пока придумался - это на каждом сервере хранить всю цепочку передачи данных по другим серверам. Однако, тут тогда возникает проблема в своевременной обновлении информации по этой цепочки.

Может кто подскажет, какие еще есть механизмы?

P.S. Репликацию не предлагать, т.к. есть много причин по которым она рабоать не будет.
25 ноя 09, 10:41    [7974675]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
Glory
Member

Откуда:
Сообщений: 104760
И что плохого в этом цикле ? Раз уж "данные для передачи выбирает пользователь" ?
Раз пользователь хочет передать эти данные, то зачем ему мешать ?
25 ноя 09, 10:44    [7974712]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
LexMinsk
Member

Откуда: Republic of Belarus
Сообщений: 451
Glory
И что плохого в этом цикле ? Раз уж "данные для передачи выбирает пользователь" ?
Раз пользователь хочет передать эти данные, то зачем ему мешать ?


Получиться "вечный цикл" и все. На сколько я знаю, это плохо.
25 ноя 09, 11:00    [7974827]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
Glory
Member

Откуда:
Сообщений: 104760
LexMinsk
Glory
И что плохого в этом цикле ? Раз уж "данные для передачи выбирает пользователь" ?
Раз пользователь хочет передать эти данные, то зачем ему мешать ?


Получиться "вечный цикл" и все. На сколько я знаю, это плохо.

Т.е. пользователи-маньяки будут все время выбирать одни и теже данные и пересылать их между двумя серверами ?
25 ноя 09, 11:02    [7974844]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
LexMinsk
Member

Откуда: Republic of Belarus
Сообщений: 451
Плюс к этому будет идти дублирование информации, что "очень плохо" для моей системы.
25 ноя 09, 11:03    [7974856]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
Glory
Member

Откуда:
Сообщений: 104760
LexMinsk
Плюс к этому будет идти дублирование информации, что "очень плохо" для моей системы.

Откуда дублирование то ? У записей нет перичных ключей что ли ?
25 ноя 09, 11:05    [7974869]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
LexMinsk
Member

Откуда: Republic of Belarus
Сообщений: 451
Glory
LexMinsk
Glory
И что плохого в этом цикле ? Раз уж "данные для передачи выбирает пользователь" ?
Раз пользователь хочет передать эти данные, то зачем ему мешать ?


Получиться "вечный цикл" и все. На сколько я знаю, это плохо.

Т.е. пользователи-маньяки будут все время выбирать одни и теже данные и пересылать их между двумя серверами ?

Нет, пользователь выберет один раз ту информацию, которую он хочет переслать, а дальше данная информация будет синхронизироваться между серверами автоматически, без его участия.

Может я тут неверно выразился. Под информацией я имел ввиду - группу, к которой прикручены определенные записи (допустим автомобили). Если пользователь указывает, что данную группу необходимо переслать на другой сервер, то весь список автомобилей, находящихся в данной группе пепесылаеться на другой сервер и после этого синхронизируються любоые добавления/изменения/удаления в эту группу.
25 ноя 09, 11:09    [7974915]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
Glory
Member

Откуда:
Сообщений: 104760
LexMinsk

Нет, пользователь выберет один раз ту информацию, которую он хочет переслать, а дальше данная информация будет синхронизироваться между серверами автоматически, без его участия.


И откуда тогда циклы, если сервер всегда знает, какая информация пришла к нему с других серверов, а какая была введена локально ? Или ваши сервера этого не знают ?
25 ноя 09, 11:11    [7974939]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
LexMinsk,

добавить к сущностя атрибут "кто последний изменил" @@SERVERNAME + DB_NAME(). соответственнно такие сущности не импортировать на целевом сервере.
25 ноя 09, 11:13    [7974955]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
LexMinsk
Member

Откуда: Republic of Belarus
Сообщений: 451
Glory
LexMinsk
Плюс к этому будет идти дублирование информации, что "очень плохо" для моей системы.

Откуда дублирование то ? У записей нет перичных ключей что ли ?


В разных базах разные значения первичных ключей.
25 ноя 09, 11:29    [7975106]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
Glory
Member

Откуда:
Сообщений: 104760
LexMinsk
Glory
LexMinsk
Плюс к этому будет идти дублирование информации, что "очень плохо" для моей системы.

Откуда дублирование то ? У записей нет перичных ключей что ли ?


В разных базах разные значения первичных ключей.

Т.е. вы пре передаче меняете эти ПК на значения из принимающей базы что ли ?
25 ноя 09, 11:30    [7975118]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
то LexMinsk
кто задаёт цепочку для передачи?
--------------------------------------------------------------
Дьявол кроется в деталях.
25 ноя 09, 11:38    [7975186]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
LexMinsk
Member

Откуда: Republic of Belarus
Сообщений: 451
Glory
LexMinsk
Glory
LexMinsk
Плюс к этому будет идти дублирование информации, что "очень плохо" для моей системы.

Откуда дублирование то ? У записей нет перичных ключей что ли ?


В разных базах разные значения первичных ключей.

Т.е. вы пре передаче меняете эти ПК на значения из принимающей базы что ли ?

Фактически да. У меня храняться значения как внутренние, так и внешние (из другой БД) первичного ключа.
25 ноя 09, 11:41    [7975208]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
LexMinsk
Member

Откуда: Republic of Belarus
Сообщений: 451
Дедушка
то LexMinsk
кто задаёт цепочку для передачи?
--------------------------------------------------------------
Дьявол кроется в деталях.

Пользователь указывает куда передавать данные. Но он не видит всей цепочки.
25 ноя 09, 11:43    [7975222]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
aleks2
Guest
LexMinsk,

Обеспечь для каждой записи уникальный идентификатор, передавай его вместе с данными и не парься.
25 ноя 09, 11:55    [7975340]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
Glory
Member

Откуда:
Сообщений: 104760
LexMinsk

Фактически да. У меня храняться значения как внутренние, так и внешние (из другой БД) первичного ключа.

Ну если у вас есть ПК "из другой БД", то какое дублирование может возникнуть пре передаче этих данных в эту "другую БД" ?
25 ноя 09, 11:57    [7975359]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
LexMinsk
Дедушка
то LexMinsk
кто задаёт цепочку для передачи?
--------------------------------------------------------------
Дьявол кроется в деталях.

Пользователь указывает куда передавать данные. Но он не видит всей цепочки.

что это значит в ваших терминах (сервер1,сервер2,сервер3)?
пользователь задал передать сервер1 -> сервер3?
откуда тогда взялся сервер2?
25 ноя 09, 11:57    [7975364]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
LexMinsk
Member

Откуда: Republic of Belarus
Сообщений: 451
Дедушка
LexMinsk
Дедушка
то LexMinsk
кто задаёт цепочку для передачи?
--------------------------------------------------------------
Дьявол кроется в деталях.

Пользователь указывает куда передавать данные. Но он не видит всей цепочки.

что это значит в ваших терминах (сервер1,сервер2,сервер3)?
пользователь задал передать сервер1 -> сервер3?
откуда тогда взялся сервер2?

Механизм такой:
Пользователь на сервер1 указывает например: передать Группу1 с сервера1 на сервер2.
Далее.
Когда наша Группа1 пришла на сервер2, то пользователь этого сервера может указать, что Группу1 нужно передать на сервер3.
Далее.
Когда Группа1 пришла на сервер3, то пользователь данного сервера может указать, что надо передать эту группу например на сервер1 или сервер2. В связи с этим, может получиться циклическое обновление информации.

Я вот тут подумал, может мне к Группе прикрутить GUID. Он же типа уникальный во всем мире. И по нему уже определать: действительно мне пришла новая группа или это ранее мной экспортированная.
25 ноя 09, 12:07    [7975460]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
Glory
Member

Откуда:
Сообщений: 104760
LexMinsk

Механизм такой:
Пользователь на сервер1 указывает например: передать Группу1 с сервера1 на сервер2.
Далее.
Когда наша Группа1 пришла на сервер2, то пользователь этого сервера может указать, что Группу1 нужно передать на сервер3.
Далее.
Когда Группа1 пришла на сервер3, то пользователь данного сервера может указать, что надо передать эту группу например на сервер1 или сервер2. В связи с этим, может получиться циклическое обновление информации.

Да откуда цикличное то, если у вас есть ПК ? Вы не можете сравнить по ПК имеющиеся и приходящие данные что ли ?
25 ноя 09, 12:13    [7975525]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
LexMinsk
Member

Откуда: Republic of Belarus
Сообщений: 451
Glory
LexMinsk

Механизм такой:
Пользователь на сервер1 указывает например: передать Группу1 с сервера1 на сервер2.
Далее.
Когда наша Группа1 пришла на сервер2, то пользователь этого сервера может указать, что Группу1 нужно передать на сервер3.
Далее.
Когда Группа1 пришла на сервер3, то пользователь данного сервера может указать, что надо передать эту группу например на сервер1 или сервер2. В связи с этим, может получиться циклическое обновление информации.

Да откуда цикличное то, если у вас есть ПК ? Вы не можете сравнить по ПК имеющиеся и приходящие данные что ли ?

Если зацикливание пошло с сервера3 на сервер1, то я никак не сравню по ПК, т.к. на сервере3 храняться значения внешних ключей с сервера2 (т.е. откуда пришли данные).
25 ноя 09, 12:20    [7975611]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
LexMinsk
Member

Откуда: Republic of Belarus
Сообщений: 451
Проблема в том, что один нет такого сервера, который бы видет все остальные сервера и поэтому я не могу создать уникальный идентификатор для всей системы либо сделать "центральное хранилице НСИ".
25 ноя 09, 12:22    [7975634]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
LexMinsk
Механизм такой:
Пользователь на сервер1 указывает например: передать Группу1 с сервера1 на сервер2.
Далее.
Когда наша Группа1 пришла на сервер2, то пользователь этого сервера может указать, что Группу1 нужно передать на сервер3.
Далее.
Когда Группа1 пришла на сервер3, то пользователь данного сервера может указать, что надо передать эту группу например на сервер1 или сервер2. В связи с этим, может получиться циклическое обновление информации.

что такое "Группа1"??
как вы её идентифицируете на разных серверах?
25 ноя 09, 12:25    [7975656]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
Glory
Member

Откуда:
Сообщений: 104760
LexMinsk
Проблема в том, что один нет такого сервера, который бы видет все остальные сервера и поэтому я не могу создать уникальный идентификатор для всей системы либо сделать "центральное хранилице НСИ".

Для "создания уникального идентификатор для всей системы" нужно всего лишь начать использовать GUID-ы
25 ноя 09, 12:26    [7975658]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
Glory
LexMinsk
Проблема в том, что один нет такого сервера, который бы видет все остальные сервера и поэтому я не могу создать уникальный идентификатор для всей системы либо сделать "центральное хранилице НСИ".

Для "создания уникального идентификатор для всей системы" нужно всего лишь начать использовать GUID-ы

есть вероятность, что после ещё нескольких вопросов автор поставит нас в известность о том что передаваемая информация в середине цепочки может изменится :)
25 ноя 09, 12:32    [7975717]     Ответить | Цитировать Сообщить модератору
 Re: Проверка цикличности передачи информации  [new]
LexMinsk
Member

Откуда: Republic of Belarus
Сообщений: 451
Дедушка
LexMinsk
Механизм такой:
Пользователь на сервер1 указывает например: передать Группу1 с сервера1 на сервер2.
Далее.
Когда наша Группа1 пришла на сервер2, то пользователь этого сервера может указать, что Группу1 нужно передать на сервер3.
Далее.
Когда Группа1 пришла на сервер3, то пользователь данного сервера может указать, что надо передать эту группу например на сервер1 или сервер2. В связи с этим, может получиться циклическое обновление информации.

что такое "Группа1"??
как вы её идентифицируете на разных серверах?

CREATE TABLE [dbo].[GROUPS](
	[ID_GROUP] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
	[NAME_GROUP] [varchar](50) NOT NULL,
           ....
 CONSTRAINT [PK_ID_GROUP] PRIMARY KEY CLUSTERED 
(
	[ID_GROUP] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [USER_FG]
) ON [USER_FG]

CREATE TABLE [dbo].[EXTERNAL_GROUPS](
	[ID_GROUP_EXTERNAL] [int] NULL,
	[TYPE_OPERATION] [int] NOT NULL CONSTRAINT [Default_Value_0_1163353681]  DEFAULT ((0)),
	[CREATE_DATE] [datetime] NULL CONSTRAINT [CURRENT_TIMESTAMP_1_1816222366]  DEFAULT (getdate()),
	[ID_CLIENT] [int] NOT NULL,
	[ID_GROUP] [int] NOT NULL,
 CONSTRAINT [XPKEXTERNAL_GROUPS] PRIMARY KEY CLUSTERED 
(
	[ID_CLIENT] ASC,
	[ID_GROUP] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [USER_FG]
) ON [USER_FG]

В таблице GROUPS я хнаю данные о самой группе, а в таблице EXTERNAL_GROUPS, храню данные о значении первичного ключа на другом сервере (ID_CLIENT), с которого мне эта группа пришла.
25 ноя 09, 12:42    [7975793]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить