First Few Attempts To Synchronize A Merge Subscribtion Fail
Jun 27, 2007
Hello everybody!
I have a publisher running SQL 2005 and subscribers running SQL EXPRESS in a merge replication. The subscriptions are pull subscriptions using web synchronization. Every time I do a new release of the database schema on publisher and drop/recreate replication I seem to have a problem.
When a subscriber tries to synchronize first time after this (the datbase on subscriber is dropped/re-create prior to this syncronization) it always results in a error saying something about "unrecognized or invalid response" after sitting there for some time. Several subsequesnt tries give "another job for this subscriber is already running on publisher", and finaly after a few minutes it synchronizes correctly and from this point on everything works perfectly until the next release. This happens with every single subscriber.
As far as I understand, what is happening is that when the merge agent connects to the publisher from the subscriber via web replication the publisher kicks off a job to generate initial dynamic snapshot for this subscriber. This is taking long time. During this time the web request times out, which results in the first error I see. When I try to connect several mre times, the job is still running, which gets me the subsequesnt errors. And finally when creating of the initial dynamic snapshot is finished, I can run the synchronization successfully.
The question is: Is there anything I can do on the publisher in automated manner prior to the first synchroniztion that would help me top resolve this problem? My guess would be that if I run jobs
dyn_PUBLISHER-DATABASE-PUBLICATION-num__SUBSCRIBER_anothernum for each subscriber and wait until they've finished before starting sinchronization from the subscriber, it would solve my problem. How ever I'm not sure how to run these jobs in automateed manner (because their name may differ) and how can I make sure that all the jobs are finished.
There may be other way to achive what I want also, please let me know what you think.
EDIT:
Also using this method http://technet.microsoft.com/en-us/library/ms151260.aspx I guess underneath, it starts all the same jobs that I mentioned above, but then again, this is neither automatic nor there is an apparent way to tell when all theses job are finished. What I want to do is to run a script and be sure that once the script has finished all the snapshots are there and I can start synchronizing from the subscribers without fear of failure.
I have made numberous attempts to install SQL 2005 SP2 on my Developer version. When using windows update, it runs for about 30 minutes then fails. When I click the Failed Icon in WU panel, it returns a blank window.
I have googled this but found no pertinent solution.
Transactional replication allows updatable subscriptions where changes at the subscriber are replicated up to the publisher, this can happen via Immediate Updating subscriptions, Queue subscriptions and P2P (new in SQL 2005), all forms of Transactional replication.
Any compared document between merge replication and Transactional with updatable subscribtion ?
To test synchronization with this tier I do the following:
1. Update data on SrvA
2. Push changes to SrvB (there are transactions that replicated)
3. Run RMO Merge Agent (.NET application) on Client and get messsage "No data needed to be merged", although there were changes made on publisher SrvA and SrvB
I saw the thread where similar problem have been discussed (http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=664153&SiteID=17). The sugestion there was to create subscription using wizard rather then T-SQL script. But all my clients are remote and have only HTTPS connection to the IIS over 443. And in the MSDN there was the script that I used to create pull subscription for web synchronization.
Guys, HELP! I almost gave up - do not see the reason for the case in the documentation, settings and code.
Does somebody know if it's possible to ban an IP address in the sql server, from somebody who makes 5 attempts to log in ? Because I saw in my computer management / windows logs / application that somebody is trying to guess the password of 'sa'. Every second I get 5 attempts to login ...
I'm trying to handle errors in SSIS package. I created Scrip task where I do following:
-----------
If CInt(Dts.Variables("BADROWSFILE").Value) <> 0 Then
Dts.Variables("ERROR_MSG").Value = "Errors in input file. Error count: " + CStr(Dts.Variables("BADROWSFILE").Value) + ". See log table and file for more info."
Dts.TaskResult = Dts.Results.Failure
Else
Dts.TaskResult = Dts.Results.Success
End If
---------
Then in package level OnError I added Execute SQL Script task where I pass ERROR_MSG as Input Parameter.
The flow gets to the SQl task and this is what I'm getting:
Error: 0xC001405B at Log error: A deadlock was detected while trying to lock variable "User::ERROR_MSG" for read access. A lock could not be acquired after 16 attempts and timed out.
Error: 0xC00291EA at Log error, SQL Task: Variable "User::ERROR_MSG" does not exist.
The first time I run it in the SQL query analyzer it sits there for about 30 seconds and then gives me "Timeout expired (error - 2147217871)." After the first query attempt I can run it as many times as I want and it will work fine (no errors) ... But if I wait for about 30 minutes and then try it again, it will give the error again just on the first try. I've tried using search words that exist and ones that don't exist in the db and they both give the same error, so it's not that it's trying to return too many rows.
I'm using Microsoft SQL Server 2005. The code I'm writing is pretty basic so maybe it's the way that the database is set up or the way I initiated the full text tables? Any help would be greatly appreciated. Thank you.
I'm running into a problem with Full-Text searching. I have a procedure which uses a full-text search. When I run it in SQL query analyzer €“ it runs immediately. I exec this procedure from my ASP page and it returns timeout error. After the first query attempt I can run it (executing the ASP-page) as many times as I want with different search words and it will work fine (no errors) ... But if I wait for about 30 minutes and then try it again, it will give the error again just on the first try. I've tried using search words that exist and ones that don't exist in the db and they both give the same error, so it's not that it's trying to return too many rows.
I'm using Microsoft SQL Server 2005. Any help would be greatly appreciated. Thank you.
Trying to set up a tranform task between a mysql db using and ADO.NET connection and sql server. My query to pull from the mysql db is something like "select x,y,z from table where last_updated" > @User::LastUpdated. This command is set up as an expression for the Data Flow Task and is the value for the [DataReader Source].[SqlCommand]
I have two questions.
Why does the package attempt a query against the mysql database all the time? And Why is the query attempting to pull the entire table instead of having any regards for my where clause?
I've even added where last_updated > greatest('2006-08-15', '" + @User::LastUpdated to attempt to get it a where clause even when the parameter isn't set yet.
What is the trick? This is not feasible when pulling from multi-million row tables.
Error: The Script returned a failure result. Task SCR REIL Data failed
OnError - Task SQL Insert Error Msg Error: A deadlock was detected while trying to lock variable "System::ErrorCode, System::ErrorDescription, System::ExecutionInstanceGUID, System::StartTime, User::FEED_ID, User::t_ProcessedFiles" for read access. A lock could not be acquired after 16 attempts and timed out. Error: The expression ""EXEC [dbo].[us_sp_Insert_STG_FEED_EVENT_LOG] @FEED_ID= " + (DT_WSTR,10) @[User::FEED_ID] + ", @FEED_EVENT_LOG_TYPE_ID = 3, @STARTED_ON = '"+(DT_WSTR,30)@[System::StartTime] +"', @ENDED_ON = NULL, @message = 'Package failed. ErrorCode: "+(DT_WSTR,10)@[System::ErrorCode]+" ErrorMsg: "+@[System::ErrorDescription]+"', @FILES_PROCESSED = '" + @[User::t_ProcessedFiles] + "', @PKG_EXECUTION_ID = '" + @[System::ExecutionInstanceGUID] + "'"" on property "SqlStatementSource" cannot be evaluated. Modify the expression to be valid.
Warning: The Execution method succeeded, but the number of errors raised (4) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
And how did I get 4 errors? - I only set my script task result to failure
I have two customer tables in SQL Server, but some of the field names are not the same, that I need to synchronize. Here is how they are structured: (Table 1 is old and Table 2 is new)
1. First I need to find out what records exist in Table 1 but not in Table 2 and add them to Table 2.
2. Secondly, I need to then find all records in Table 1 that match the records in Table 2 and update the Email address in Table 2 with the data from Table 1.
I am tryign to sync two tables that are in two different databases. It is suppuse to update the record in the [orgloc] table if the customer ship to name has changed in the [opcshto] table. The cust_code would be the unique identifier. in both tables.
this is what I have:
UPDATE [r2lprospector].[dbo].[orgloc] SET [r2lprospector].[dbo].[orgloc].[custshiptoname] = [cimpro1].[dbo].[OPCSHTO].[cust_shipto_name] from [cimpro1].[dbo].[OPCSHTO], [r2lprospector].[dbo].[orgloc] WHERE [cimpro1].[dbo].[OPCSHTO].[cust_code] = [r2lprospector].[dbo].[orgloc].[custcode]
I keep getting an error though. The error is: Server: Msg 8152, Level 16, State 9, Line 1 String or binary data would be truncated. The statement has been terminated.
I have a SQL database in my server. One Software is using this database for editing /add / remove items in the database. I would like to put this database in the net (using ASP).
How can I synchronize the SQL database in my server with the same one in remote?
Hello, I have 3 tables with their columns: [Articles] > ArticleId, ArticleText [Categories] > CategoryId, CategoryText [CategoriesInArticles] > ArticleId, CategoryId I created a stored procedure that has the following inputs: ArticleId, ArticleCategories ArticleCategories is of type NVARCHAR(Max) and has categories in CSV format: "Category A, Category B, Category C" I have a function, CSVTable, that creates a table with all the categories. I need to make a kind of synchronization: > Update all categories for the given ArticleId. If any Category is no longer associated with any ArticleId (In CategoriesInArticles) then remove it from table Categories.
Note: Since Business category is no longer used by any other article then it is also deleted from Categories.
The new Tech category is then created and associated with the updated article as well as the existing category Sports.
Finally I would delete it:
EXEC DeleteArticle @ArticleId = "3"
The tables would become:
Articles Table
ArticleId ArticleText
1 Game ended 1-1
2 Book Review
Categories Table CategoryId CategoryText
1 Sports
2 Entertainment
CategoriesInArticles Table
ArticleId CategoryId
1 1
2 2
Note: Since Tech category is no longer used by any other article then it is also deleted from Categories.
The Sports category is not deleted from Categories since it is used by Article with Id=1
Well, I hope I didn't miss anything and I explained it well.
I have been trying my code, either by creating a separate procedure named SynchronizeCategories or inside the Create, Delete and Update procedure.
Until now I was not able to make this work.
Here is the code I use in my SynchronizeCategories procedure:
INSERT INTO CategoriesInArticles(CategoryId, ArticleId) SELECT c.CategoryId, @ArticleId FROM Categories c INNER JOIN CSVTable(@ArticleCategories) ac ON c.CategoryText = ac.String LEFT JOIN CategoriesInArticles cia ON c.CategoryId= cia.CategoryId WHERE cia.CategoryId IS NULL
INSERT INTO Categories(CategoryId, CategoryText) SELECT cia.CategoryId, NULL FROM CategoriesInArticles cia JOIN [Categories] c ON c.CategoryId = cia.CategoryId INNER JOIN CSVTable(@ArticleCategories) ac ON ac.String = c.CategoryText WHERE c.CategoryId IS NULL
DELETE c FROM Categories c INNER JOIN CSVTable(@ArticleCategories) ac ON ac.String = c.CategoryText LEFT JOIN CategoriesInArticles cia ON c.CategoryId = cia.CategoryId WHERE cia.CategoryId IS NULL
Our company has an enterprize site (a very large one). From time to time we need to make changes in it. In other words, we had to synchronize one database (local where we make all changes) and database on hosting. So, we did it manually (wrote scripts and inserted them in database on hosting). But as the databases grew it became impossible to synchronize everything manually. So we need some tool which could cope with this task. The problem is that, as I know, there are many tools which can do it, but we are tight in time and can't evaluate them all. Please share your ideas on what tool is worth evaluating?
Please we need help in the next Scenario:- - Head office SQL Server 2000 including main database (huge db for about 8 systems). - 8-10 branches with small database (for 3 systems only). - No connection available between all offices. 1- In daily basis we need to transfer all transaction updates done in all offices to update the main database in head office. 2- After updating head office we need to transfer the last case in 2 or 3 tables to all offices again. 3- There are some common tables, managed in head office only (usually not changed), in case this tables changed for enhancement or anything else, we need to transfer this change to all offices.
NOTE: No connection available every where, therefore we need hand carry solutions as soon as possible and please tell me in details as you can because the time is too short.
Using a web interface, I am placing text into a SQL database. From timeto time, I would like to synchronize one of my other tables in thedatabase with the table that I am inserting content into. What is theSQL command to synchronize these tables? I will be initiating thiscommand through a web interface, so I cannot use enterprise manager.Thank you very much!
I want to replicate my database with table like this:+-----------------+ | Table | +-----------------+ | ID | | Distributor ID | | Total Sales | | ... | +-----------------+
At table above you can see that I have a field called Distributor ID. The scene like this, I have 4 distributor that have replication of my database. Each day they synchronize database from distributor (lets call they A, B, C, D) into my server. So at the server have data with Distributor ID A, B, C, D. But if an distributor want to download its data from my server, they only have data with their ID, for example distributor A have synchronize their data with me and now want to download the data from me, so I only send data that only contains Distributor ID A, so that A can not see data from other distributor (B, C, D) that rule also applied for B, C, and D.
The summary simple like this, I have all Distributor data (data from A, B, C, D) but each distributor only have their own data if they download from me, A only have A data, B only have B data, so on).
I have an Access database that updates each 5 minutes with data from a weather station. As you can imagine the access database is becomming huge, so I would like to get that data into SQl Express to make queries faster and better connectivity with visual webdeveloper.
There is no way I can get the data directly into the SQL Express database, as the vendor only supplies a tool for MySQL and access through odbc.
Is there a way to sync the access database and my SQL Express each 5 minutes? And off course not manual
I am attempting to follow the example from VB.NET 2005 on synchronizing and SQL Database and an SQL Mobile 2005 db.
I have verified that the PALM device (Treo running WM 5) when the device is connected to my desk top by using IE on the Palm to browse to the shared Folder I set up with IIS and the Configuration Web Synchronization Wizard.
The error I get is "An incorrect or unsupported HTTP function call was made." and I have not been able to find any referiences to this error directly related to SQL M 05.
I have a little problem. I need to synchronize data from two tables with different table structures meaning they may or may not have the same column name and/or table name. I have read a lot of midware tools which I can use but is there a way inside sql server where I can do this? And this synchronization should be automated. Like when I update one table, it will automatically update the other table with the data that was changed. I know I can manually update the records but is there an automated way that I can do this? I have also read about integration technologies supported by sql server like ssis and replication but it seems complicated and I dont have the luxury of time to learn these. But if these can be the answer to my questions then I guess I dont have a choice. Please help. Newbie in sql. Thanks!
I made application (using .NET) to transfer data using PDA via GPRS and then upload data to database server. The data not update old data but make new insert new data to database server.
If we use USB to synchronize data from PDA to database server, we can use merge replication. But i still confused how to synchronize data, if we transfer data from PDA via GPRS, then insert to database server???
I made application (using .NET) to transfer data using PDA via GPRS and then upload data to database server. The data not update old data but make new insert new data to database server.
If we use USB to synchronize data from PDA to database server, we can use merge replication. But i still confused how to synchronize data, if we transfer data from PDA via GPRS, then insert to database server???
First post on the site, yippee! So first of all I'm not a DB pro but occasionally need to hire someone, and to do this properly I need to understand the basic workflow.
Could really use some advice on comparing and synchronizing 2 different SQL databases in different geographical locations..... need updates from website A SQL database to be automatically updated to website B in as close to real time as possible. The whole database doesn't need to be transferred every time, only specific information regarding personal profiles and their activity on the other site. The end result would be that users can login to their profiles any time on either website and see up-to-date reports on their activities/results.
I know it would be much easier to host both databases on the same server but for various reasons this is not an option.
The past day was research into all the various SQL DB synch software. Having a hard time finding unbiased viewpoints...
First of all is there any reliable and secure open source alternatives? I searched sourceforge and found 'SQL Server DB Compare and Synchronize', but it doesn't seem to have full automation.
Also found a few paid for solutions through other forums such as 'Red Gate' products but they would cost upward of $3-500
I need something that is secure and reliable, don't mind a bit of customization but would prefer a solution out of the box.
any advice/articles/reading material/recommendations would be greatly appreciated
I have the following scenario: There are 3 web applications in a local network which all have a local copy of the same database. Each of them can alter their local database (just the data, not the structure), and every time that happens the databases of the other applications should be updated immediately. Are there any solutions out there for that? I found that most tools like slony only mirror one master database to multiple slaves, but I want every database to be able to be the starting point. There could also be a central sync server, like in subversion..
I have a scenario which I need to implement at my work.
I need to maintain one Central SQL Server DB and multiple non central SQL Server DBs at different locations. Here the same DB schema is maintained at Center & non Central SQL Servers. The requirement is: each non central DB has to synchronize with the central DB and has to update the Central DB with the changes made locally.
Here the challenge is the intermittent connectivity between the DBs. The connection is not guaranteed to be alive 24 hours a day. It may go down frequently also. I would like to know the possible ways to handle my situation (i.e. synchronization). And also please suggest me if there is any support with the SQL Server DB itself.
db1 gets 150k records every hour. db2 is like the backup of db1. db2 is used to retrieve records to create reports using reporting services. what is the best way to synchronize db2 with db1? is it to create a dts package and set up a job that runs every hour?
off topic question. what kind of language does reporting services use to create the reports?
i have 2 db's that are totally different except that they both have a table users and I want to make it that anytime the user table is updated or added to in one db - that it is copied over to the other db.
Hi, anybody can help me.How can i synchronize 2 tables on 2 different sql servers 2000i mean TABLE1(col1, col2, col3, col4) andTABLE1(col1, col2, col3, col4, col5, col6)the first 3 colums are the same in rwo tables.Thanks--Message posted via http://www.sqlmonster.com
What is the easiest way to synchronize all data and database objects between my development machine and hosting server? Is there any SSIS free script I can use?
I have decided to use CLR Triggers to synchronize data between two different tables but I have a problem. The scenario is this. I do an insert in Table1. Table1 firest the trigger which then inserts a record in Table2. The trigger in Table2 fires a trigger which does an insert to Table1 again.
I need to find a way to disable the trigger so that it will not go in an infinite loop when I insert a record in either of the tables. What I have done so far is to disable Table2's trigger before I commit my insert to Table2 so that Table2's trigger won't fie. I will then enable the trigger after the insert is committed. Also, I have a webservice which manages the inserts/updates/deletes. I call webmethods from this webservice in my clr triggers.