Table Name Is Not Valid Sqlceexception During Merge Replication Initialization
Apr 21, 2008
During merge replication initialization from SQL Server 2005 to SQL Server CE 3.5 on Windows Mobile 5.0
I am getting the following errors:
On Device
{"The table name is not valid. [ Token line number (if known) = 1,Token line offset (if known) = 21,Table name = COLLECTION ]"}
base {System.SystemException}: {"The table name is not valid. [ Token line number (if known) = 1,Token line offset (if known) = 21,Table name = COLLECTION ]"}
HResult: -2147217900
Message: "The table name is not valid. [ Token line number (if known) = 1,Token line offset (if known) = 21,Table name = COLLECTION ]"
NativeError: 26100
Source: "Microsoft SQL Server Compact"
{System.Data.SqlServerCe.SqlCeError: The SQL statement failed to execute. If this occurred while using merge replication, this is an internal error. If this occurred while using RDA, then the SQL statement is invalid either on the PULL statement or on the SubmitSQL statement. [ SQL statement = ALTER TABLE [dbo].[COLLECTION] ADD CONSTRAINT [PK_COLLECTION] PRIMARY KEY CLUSTERED ( [SERIAL_NUMBER], [STORE_CODE], [COLLECT_DATE] )WITH PAD_INDEX , FILLFACTOR = 90 ]}
Source: "Microsoft SQL Server Compact"
Server Logged:
...
2008/04/20 20:03:16 Thread=EA0 RSCB=5 Command=SCHK Hr=00000000 SyncCheck responding 0
2008/04/20 20:03:17 Thread=B90 RSCB=5 Command=OPNR Hr=00000000 End Of Data Set 1
2008/04/20 20:03:17 Thread=B90 RSCB=5 Command=OPNR Hr=00000000 Responding to Fetch, bytes = 50259
2008/04/20 20:03:17 Thread=970 RSCB=5 Command=CLOS Hr=00000000 Total Compressed bytes out = 50259
2008/04/20 20:03:17 Thread=970 RSCB=5 Command=CLOS Hr=00000000 Total Uncompressed bytes out = 390254
2008/04/20 20:03:17 Thread=970 RSCB=5 Command=CLOS Hr=00000000 Removing this RSCB 0
2008/04/20 20:03:19 Hr=00000000 Compression Level set to 1
2008/04/20 20:03:19 Hr=80004005 ACK:Error for DistributorSessionID = 80
2008/04/20 20:03:19 Hr=80004005 The SQL statement failed to execute. If this occurred while using merge replication, this is an internal error. If this occurred while using RDA, then the SQL statement is invalid either on the PULL statement or on the SubmitSQL statement. [,,,SQL stateme 28560
The same tables in a different on a different SQL box (test) replicate fine, but on this box (production) they do not. Any idea what would be the difference in the two environments?
I suspect that the "dbo." part in the "alter table" is what it is messing up on... how can I tell SQL CE not to include that schema prefix?
Thanks
when have had a problem in the initialization of a Merge replication of 3.600.000 rows on SQL Server 2014.The sp_MSmakegeneration was generating a large number of X locks and the replication process was unable to start.Finally we solved the issue modifying thegeneration_leveling_threshold parameter to 0..But, by knowledge this was a known issue with older SQL Server Version.if is mandatory to set it to 0 due to ininizialize large Relicas?
I'm getting a strange error. I have created a Datatable and in this table I have multiple Columns. I have given them all a name and now when I want to put data in the DataTable I get a error. All goes well until I try to Update the Datatable
We have a filtered publisher (SQL Server 2012) with several pull and push subscriptions that have been functioning fine for years.
We have just added a new pull subscriber from a remote server. We configured an alternate folder location on the subscriber (pointing to existing path on a remote server). We generated new snapshot and partitioned snapshot, and moved to subscribing server at alternate path.We're seeing a problem we've never seen before:
When the merge agent runs, it applies the schema and performs a few hundred bulk inserts, but then proceeds to 'download changes to subscriber' as though the snapshot is old (it is brand new and should have all transactions). We have never seen this before, i.e. all data is usually applied in bulk when creating a new or reinitializing an existing subscriber.
we marked the subscriber for re-initialization (from both the publishing and subscribing server) with a fresh set of snapshots. The same problem occurred.We have also tried in our test environment (which mirrors production) and the snapshot applies as expected (via bulk inserts).
(It might be relevant to note the publisher was recently upgraded in-place from 2005 to 2012.)
Microsoft SQL Server 2005 - 9.00.3159.00 (Intel X86) Mar 23 2007 16:15:11 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
40 subsribers. Adding new article. On any aubscribe need regenerate snapshot agent agent. The tables are very big. With filters. Regenerating process anew copy data in in ...ReplDataame.bcp, during 30-40 minutes for any subscriber! Full work to small correct of replication flow during 2-3 days....
Is it possible to initialize subscription without copying bcp data?
We had a healthy 2-way merge replication set up with a SQL 2005 publisher/distributor and a SQL 2000 subscriber which had been running for about a week. I re-created the publication so I could add automatic identity range management to an article. I sucessfully re-created a push subscription to a SQL 2005 subscriber but when I tried to create one to the same SQL 2000 machine that had been quite happy a few hours earlier, I kept getting this error during initialization: "bulk data stream was incorrectly specified as sorted". Nothing much has changed as far as I can see. Can anyone give me some pointers?
Hi,How to add new table to merge replication ?When I do this in Enterpriise Manager i got an error:Server: Msg 2758, Level 16, State 1, Procedure sp_addmergearticle,Line 466RAISERROR could not locate entry for error 20085 in sysmessages.What is wrong ?Thank for any helpLuk
I have configured three transactional replication one from DC - Data center & DB for database
DC1-DB1 to DC2-DB1 -- 1 DC2-DB1 to DC2-DB2 --2 DC2-DB2 to -DC2-DB3 --3
Before synching the data on DC2 databases I wanted to truncate / drop the objects on 1 and 2 setup as these are already participating in replication. Setup 1 and 2 are publisher as well as subscriber. I am not able to reinitialize these tables on these setup. I cannot use SSIS.
I have a table used in Merge Replication. If i add a new column in that table it gives me an error for tables in which either this table is a key or this table has key from other tables "Error validating the default for column 'rowguid'." Also for views i'm getting an error "View 'dbo.vw_TestCaseBasic': indexes and schema binding will be removed."
If i proceed further i get an error and m not able to add the column. "It is invalid to drop the default constraint on the rowguid column that is used by merge replication. The schema change failed during execution of an internal replication procedure. For corrective action, see the other error messages that accompany this error message. The transaction ended in the trigger. The batch has been aborted."
I tried with success to replicate a table_test_repl from my local server to an other server.
I used only one table for testing.
After that, i can't drop the 2 tables a_test_repl (on my local server and the other : I've got a message 'cannot drop the table because it is published for replication'
What can I do? I need absolutely to drop these tables to keep a clean model and I can't drop the database and try again.
I manage complete online system for two locations, connected via dialup lease line. I have to used merge replication for the same data should be at both locations. It is working fine, I don’t like disturbe it but current requirement is addition of two column in one table which one as also use in merge replication.
How I can add aforesaid columns in table x, column name c1 numeric , c2 character?
One of the table that is in a merge replication somehow is missing anindex. Strangely, only the table in one of the subscriber of the mergereplication is missing the index; another subscriber and the publisherof the merge replication don't have this problem.How should I add the missing index back to that table? My understandingis that making structural change on a table that is inmerge-replication is different from making change on a table that isnot merge-replicated. For example, when we need to add a column into atable that is being merge-replicated, we must add the column bychanging the attributes in the properties of the published article(table) instead of simply using CREATE INDEX command. I am wonderingwhether there is a similar restriction on adding an index onto a tablethat is merge replicated.I have already added the index back to the table anyway. I am askinghere just in case doing this may get me into a problem later on.Thanks in advance for any info.Jay Chan
Can someone point me to a resource for Table Design Considerations for Merge Replication? I have an ASP.Net/SQL2K5 app that I need to run on disconnected machines, then allow dfor data sync through merge replication. I assume that the first step is getting my tables indexed in a replication friendlt manner?
Many Thanks to anyone who can point me in the right direction!
I faced with strange problem. From time to time, during syncronization I get the following errors at the subscriber:
ERROR: -2147200992
SOURCE: Merge Replication Provider
TEXT: The merge process could not store conflict information for article 'Products'. Check the publication properties to determine where conflicts records are stored. When troubleshooting, restart the synchronization with verbose history logging and specify an output file to which to write.
ERROR: 2812
SOURCE: OFF1SQLEXPRESS TEXT: Could not find stored procedure 'MSmerge_cft_sp_49D28CEAFF8A4ACC5C5462B5027D4E4D'.
ERROR: -2147199481
SOURCE: Merge Replication Provider
TEXT: The Merge Agent was unable to update information about the last synchronization at the Subscriber. Ensure that the subscription exists at the Subscriber, and restart the Merge Agent.
After I refresh the snaphot at the publisher, these errors disappear and the syncronization is completed without any problem. And I can sync easy again week or two..
What is the problem? What is the right solution?
Yep, I can continue to refresh the snapshot each time when the error appears, but.. maybe there is another approach?
I am using transaction replication between a transaction and reporting database server. When I use a snapshot to initialize my subscribers, I currently get a lot of deadlocks during the snapshot creation. I am considering using a database backup instead. Can anyone tells me how to reduce the table locks that I am getting during snapshot creation or advice on using database backups?
I have a Data flow task with two OLE DB sources, which are both sorted by same columns (order by) and IsSorted, sortKeyPosition are both set.
Then I have a Merge join (left join) where I get validation error: The clolumn with the SortKeyPosition value of 0 is not valid. It should be 4. However this only happens if I include a join key column also as output. Can columns be both join keys and output?
2 Users in 2 locations issue updates to the same table. 1 updating 1 column and the other updating another column. Now in reality the actual Stored Procedure issuing the update statement is passed in all the possible columns that could change and builds an update statement that updates all columns even the ones that havent changed.
Will this break Merge Replications conflict tracking? Or does SQL Server 2005 Merge Replication pickup that in reality the 2 updates only in reality changed the values in 2 columns.
I am using merge replication with automatic identity range management
I want to be able to give a disconnected subscriber a warning message if a certain percentage of the allocated subscriber identity range has been used - so that they can make sure they reconnect soon to obtain a new identity range
I can get the current identity value OK, but I can't find a good way of finding the current permitted primary and secondary ranges
The information is available in the check constraint, but I don't really want to have to parse this!
CONSTRAINT [repl_identity_range_0DF907AC_40CF_4849_9BD0_2173C90A3805] CHECK NOT FOR REPLICATION (([ContactID]>(10000040000.) AND [ContactID]<=(10000050000.) OR [ContactID]>(10000050000.) AND [ContactID]<=(10000060000.)))
I can't find any system view which will provide this information
Hi all, I have a problem is that I cannot perform the transacional replication from one server (ms-sql2k) to other server (mssqlserver).
The error show below : Log Reader Agent - Is not a valid win32 application.
I try to setup another server (mssql2k) to do the same thing, there is no error appeared. Therefore, I have doubt that the name of the computer using "-" will have problem. Or the registry of (ms-sql2k) may have problem because it had wrongly installed personal edition and re-installed the standard verions afterwards.
Hi all, I have a problem is that I cannot perform the transacional replication from one server (ms-sql2k) to other server (mssqlserver).
The error show below : Log Reader Agent - Is not a valid win32 application.
I try to setup another server (mssql2k) to do the same thing, there is no error appeared. Therefore, I have doubt that the name of the computer using "-" will have problem. Or the registry of (ms-sql2k) may have problem because it had wrongly installed personal edition and re-installed the standard verions afterwards.
I'm trying to initialize a subscription for a transactional replication between Oracle9i and MS SQL Server 2005.
The snapshot agent runs succesfully, but I get an error when the distribution agent runs to apply the snapshots at the subscriber. I've pastet the job history from the Log File Viewer below.
Message 2006-06-08 09:27:25.516 Applied script 'ADDRESS_8.sch' 2006-06-08 09:27:25.516 Applied script 'ADDRESS_8.idx' 2006-06-08 09:27:25.516 Bulk copying data into table 'ADDRESS' 2006-06-08 09:27:25.641 Agent message code 20037. The process could not bulk copy into table '"ADDRESS"'. 2006-06-08 09:27:25.704 Category:NULL Source: Microsoft SQL Native Client Number: Message: Data conversion failed 2006-06-08 09:27:25.704 Category:NULL
Every column contaning null-values at the table in Oracle9i is allowing null-values at the destination table in the SQL Server.
I'm pretty lost here - does anyone know how to solve this problem?
OLEDB source 1 SELECT ... ,[MANUAL DCD ID] <-- this column set to sort order = 1 ... FROM [dbo].[XLSDCI] ORDER BY [MANUAL DCD ID] ASC
OLEDB source 2 SELECT ... ,[Bo Tkt Num] <-- this column set to sort order = 1 ... FROM ....[dbo].[FFFenics] ORDER BY [Bo Tkt Num] ASC
These two tasks are followed immediately by a MERGE JOIN
All columns in source1 are ticked, all column in source2 are ticked, join key is shown above. join type is left outer join (source 1 -> source 2)
result of source1 (..dcd column) ... 4-400-8000119 4-400-8000120 4-400-8000121 4-400-8000122 <--row not joining 4-400-8000123 4-400-8000124 ...
result of source2 (..tkt num column) ... 4-400-1000118 4-400-1000119 4-400-1000120 4-400-1000121 4-400-1000122 <--row not joining 4-400-1000123 4-400-1000124 4-400-1000125 ...
All other rows are joining as expected. Why is it failing for this one row?
I know that adding a column using ALTER TABLE to add a column automatically allows SQLSERVER 2005 to replicate the schema changes to the subscribers, however, I would like to add a new column to an existing article that is being used for merge replication, however, I don't want this column to be replicated. Re-initialising the subscriptions is not a option. Help would be appreciated.
I'm in the middle of developing some database independent code and I am surprised to find that the SqlCeException inherits from System.Exception not DbException. The argument I have seen is that DbException does not exist in the CE framework which I understand but this clearly breaks the model laid out by the other assemblies in the data namespace.
My issue is that I have a library which accepts an object implementing the IDBCommand. The execute command is wrapped in a try catch which is only interested in a DbException and allows all other exceptions through which therefore will allow and SqlCeException through.
I have three options available to me:
Catch all exceptions - This is not acceptable as other exceptions need to bubble up to the calling code.
Explicitly catch an SqlCeException - This too is not acceptable as it is a common library and not every application wants a reference to the SqlCe assembly
Explicitly catch an SqlCeException outside of the method call - As hideous as it is this is the only viable solution available to me meaning that any calling code using an SqlCeCommand must be aware of this "feature". If anyone else has a suggestion I am willing to listen otherwise I'm going to go back to banging my head against the wall.</rant>
I am working on bringing our disaster recovery site to be a live site. Currently we replicate to one of out servers (server B) with merge replication (from server A). Server A also does one way transactional replication form some table to several other servers including servers at the DR site.
This setup is not going to be fast enough for what we need so I am wondering if a table is receiving merge replication will the merge updates also replicate down the transaction path??
Example... Server B update a row and merges to Server A. With this update them replicate (via transactional) to Server C??
after migration my project to CF 3.5 and SQlCe 3.5 I got the following error message:
System.Data.SqlServerCe.SqlCeException - A parameter is missing. [ Parameter ordinal = 1 ]
I'm using the same code:
Public Sub Update(oSqlCEConn As SqlCeConnection, oSqlCEAdapter As SqlCeDataAdapter, dt As DataTable) ... Dim cmd As SqlCeCommand = New SqlServerCe.SqlCeCommand cmd.Connection = oSqlCEConn cmd.IndexName="UK_IVCTAMOBILE" cmd.CommandText="INSERT INTO IVCTAMOBILE(PKey,Status,Dfu,Lu,BusinessModified,BusinessModified_T,IvcTAMetaPKey,InitiationDate,IvcMainPKey,Accounted,Amount,SdoMainPKey,BpaMainPKey,PaymentMethod,InitiationDate_T) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" oSqlCEAdapter.InsertCommand=cmd oSqlCEAdapter.Update(dt) ... End Sub
I migrated the Database with this program:
Public Sub Upgrade(DB) Dim sPath As String Dim engine As System.Data.SqlServerCe.SqlCeEngine sPath = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase sPath = sPath.Substring(0, sPath.LastIndexOf("")) engine = New System.Data.SqlServerCe.SqlCeEngine("Data Source=" & sPath & "Test.sdf") engine.Upgrade() MsgBox("Finished") End Sub
I am getting the above error if i try to access sqlce3.0 database from an application which already uses sqlce2.0, this error happens while initializing the sqlcecommand object I hope the reason might be executing the the sqlcecommand through a sqlce2.0 engine on a sqlce3.0 database,
But I tried installing the sqlce3.0 in the PDA , still I am getting the same error
Hi everbody, I setup the Merge Replication , it is working perfectly. But i have one problem now it is updating both ways. I nedd one way. Any body tell me which parameter i have to change.
My production box is running on NT4.0,SP6, SQL Server7.0,SP2. We implemented Merge replication. Working fine last 7 months. Last weekend i disabled replication, Successfully removed Distributor and Publishor. After that try add new fileds but won't allowed me. It's give the error message. I Also found Some Conflict_tables found almost 20 tables. All system Tables. Can delete these these tables, if i delete any problem my database. I added filelds many times but this time i got errors.