Business Logic Handler Question

Oct 25, 2007

Hi,

I am performing the Merge Replication of Timesheet table between SQL server 2005 and SQL CE on the Pocket PC. For one of the article, I would like to perform web synch for only those rows which have certain field set to true.

I am trying to use Business Logic Handler to implement this logic. I am using following code out of sample on MSDN web site. However I am not sure if this code gets executed for each row for a table during synch or does this get executed once for each table? The answer would help me write logic on applying synch changes only for few rows.

Thanks

public override ActionOnDataChange UpdateHandler(SourceIdentifier updateSource,
DataSet updatedDataSet, ref DataSet customDataSet, ref int historyLogLevel,
ref string historyLogMessage)
{
if (updateSource == SourceIdentifier.SourceIsPublisher)
{
//check the approved status of the timesheet
if (updatedDataSet.Tables["tbl_timesheets"].Rows[0]["ts_approved"] == true)
{
// Set the reference parameter to write the line to the log file.
historyLogMessage = updatedDataSet.Tables["tbl_timesheets"].Rows[0]["ts_id"].ToString();
// Set the history log level to the default verbose level.
historyLogLevel = 1;

// Accept the updated data in the Subscriber's data set and apply it to the Publisher.
return ActionOnDataChange.AcceptData;


}

else
{
return ActionOnDataChange.RejectData;

}



}
else
{
return base.UpdateHandler(updateSource, updatedDataSet,
ref customDataSet, ref historyLogLevel, ref historyLogMessage);
}
}

Any Help is appreciated.

Thanks

View 1 Replies


ADVERTISEMENT

Business Logic Handler Not Loading

Nov 7, 2006

I'm trying to implement a custom conflict resolver by inheriting from

Microsoft.SqlServer.Replication.BusinessLogicSupport.BusinessLogicModule.  The replication is between a SQL Server 2005 Express subscriber and a SQL Server 2005 publisher/distributer.

The problem is that the resolver class in the DLL will not load; although, it does appear to find the DLL.  (If I rename the DLL I get a "file not found error").  The exact error message is:


Microsoft.SqlServer.Replication.ComErrorException

 "Error loading custom class "MergeConflictHandler" from custom assembly "MergeConflictHandler",

Error : "Could not load type 'MergeConflictHandler' from assembly 'MergeConflictHandler, Version=1.0.2502.22393, Culture=neutral, PublicKeyToken=0403e50cc4dc27fa'."."} 

I placed the DLL in the directory of the program that calls SynchronizationAgent.Synchronize and tried it with and without being registered in the GAC.  There was no change.  Interestingly, when I move the file out of that location, but register it in the GAC, the file is not found.  Thinking it may be a security problem, I gave Everyone Read & Execute and Read privileges.  I believe the class is actually instantiated by replmerge.exe, an apparantly unmanaged app, so I tried marking it ComVisible.  No Luck.
I registered the resolver with the following T-SQL code:


sp_registercustomresolver @article_resolver = 'eClinical Notes Conflict Resolver'

, @is_dotnet_assembly = 'true'

, @dotnet_assembly_name = 'MergeConflictHandler'

, @dotnet_class_name = 'MergeConflictHandler'

, @resolver_clsid = Null
The resolver I've created is not much more than a shell at this point.  It is pasted below, but I tried using the code found on MSDN character-for-character and had the same problem.

using System;


using System.Text;

using System.Data;

using System.Data.Common;

using Microsoft.SqlServer.Replication.BusinessLogicSupport;

namespace MergeConflictHandler

{


public class MergeConflictHandler :

Microsoft.SqlServer.Replication.BusinessLogicSupport.BusinessLogicModule

{


// Variables to hold server names.

private string m_PublisherName;

private string m_SubscriberName;

private string m_Artical_Name;

public MergeConflictHandler()

{

}

// Implement the Initialize method to get publication

// and subscription information.

public override void Initialize(string publisher, string subscriber, string distributor, string publisherDB, string subscriberDB,string articleName)

{


m_PublisherName = publisher;

m_SubscriberName = subscriber;

m_Artical_Name = articleName;

}

// Declare what types of row changes, conflicts, or errors to handle.

public override ChangeStates HandledChangeStates

{


get

{

return ChangeStates.UpdateConflicts;

}

}

public override ActionOnUpdateConflict UpdateConflictsHandler(DataSet publisherDataSet, DataSet subscriberDataSet, ref DataSet customDataSet, ref ConflictLogType conflictLogType, ref string customConflictMessage, ref int historyLogLevel, ref string historyLogMessage)

{


if (m_Artical_Name == "PatientAllergies")

{

// Accept the updated data in the Subscriber's data set and apply it to the Publisher.

}

return ActionOnUpdateConflict.AcceptPublisherData;



}

}

}

 
Does anyone have any thoughts or advice?  (Help!)

View 4 Replies View Related

Cannot Debug 'business Logic Handler'

Jul 10, 2006

hi,

i'm following steps described at: http://msdn2.microsoft.com/en-us/library/ms365150.aspx

all goes fine until step 6. of paragraph "To debug a business logic handler on a Web server using Web synchronization, or for a SQL Server Mobile Subscriber".

in my case when attaching to w3wp.exe i can only debug t-sql or native code. when i forcibly check 'managed' i get: "Unable to attach to the process. Access is denied". error picture:

http://img156.imageshack.us/my.php?image=debuggingerror7bp.jpg

i KNOW that the business logic handler gets loaded and executed because i am logging some info in it. i would be grateful for any suggestions.



TIA, kamil nowicki

View 3 Replies View Related

Business Logic Handler Called In Which Direction?

May 17, 2007

When running a business logic handler at the subscriber, you can override SubscriberInserts, SubscriberUpdates and SubscriberDeletes. Are these methods called when data is changed coming from the server to client, from the client to the server, or in both directions?



Thanks,

Bryan

View 1 Replies View Related

Multiple Tables In Business Logic Handler

Oct 25, 2007

Hi,

I have 2 related tables in SQL 2005. I am using Business Logic Handler on one of those tables during Merge Replication to reject data for few rows during web synchronization. Once a row is rejected, I would like to run the Business Logic Handler for the related table to reject changes for the row with same foreign key as the rejected row in first table.

Not sure if I need to create separate Business Logic Handlers for each table or can it be achieved in a single Handler.

Also is it possible to get a list of rejected rows back from the handler?

Thanks for help.

View 1 Replies View Related

Custom Business Logic Handler Question

Mar 1, 2007

I am currenly have a simple merge replication topology. The publisher-distibutor is SQL Server 2005 and the subscriber is a SQL Server Express. The type of subscription is non anonymous pull.

I made a custom business logic handler class that is trying the following:

When a new record is inserted in a published table on the pubsliher, some additional records are added in a differenct table in subscriber. Then the "InsertHandler" method returns "AcceptData" in order to allow the agent to add the new record in current table also.

So I am establishing a new connection to the subscriber and I am trying to add the additional recs in the different table. The problem is that this different table is also published as read-only on the subscriber. So my insert fails saying that table is not updatable.

Is there any way to bypass this problem?

In fact I realised in general that when my custom logic handler performs some DML operations on the subscriber, these are NOT considered as part of the replication e.g. the NOT FOR REPLICATION constraints and triggers are active for these operations.

Is this normal?

View 1 Replies View Related

Merge Replication – Bug In Business Logic Update Handler

Nov 17, 2006

I have got a business logic update conflict handler working, but I have had to work round what appears to be a bug.

Please can someone confirm if this is indeed a bug €“ and if it is a known bug?

My conflict handler needs to take some columns from the publisher row and some from the subscriber row in the event of conflict.

I can quite happily generate a custom dataset which contains the winning row that I want €“ I can see that because I can step through the conflict handler with debug when a conflict occurs.

However, just returning ActionOnUpdateConflict.AcceptCustomConflictData from the UpdateConflictsHandler method does not set the publisher and subscriber columns correctly. I end up with different values on the two databases.

I have found that the only way to get the correct rows on both publisher and subscriber is to create a new ADO connection to the publisher and actually perform an update €“ updating all the modified columns. This now works reliably in my testing.

Fortunately, due to business rules the frequency of update conflicts are likely to be very infrequent, but I would very much like to avoid having to do the €˜unnecessary€™ update.

Notes:

I am using column level tracking €“ but I have seen the problem with row level tracking too
I have mainly been using SP1 but have repeated the test on a configuration using the SP2 CTP €“ and the problem occurs there too
The problem is not due to complex logic in my code. If the method just sets customDataSet = publisherDataSet.Copy and then returns ActionOnUpdateConflict.AcceptCustomConflictData, the changed and winning publisher values are not sent to the subscriber

Any thoughts would be much appreciated

View 5 Replies View Related

Issues About Deploy Business Logic Handler To A Web Server For Web Replication.

Jul 23, 2007

Pocket PC 2003, SQL Compact Edition, SQL2005, IIS6.0



I implemented a business logic handler to deal with conflicts. When I deploy it on the SQL server which is also the web replication server, the logic handler seems working fine. However, if I deploy this handler to another web server. The logic handler failed to be loaded.

My enviroment settings are desribed as below.



Machine A, distributor, with database and publication. The business logic handler is deployed at C:Program FilesMicrosoft SQL Server90COMBusinessLogicHandler.dll. It's registered by using sp_registercustomresolver. The @assembly is specified as @assembly=C:Program FilesMicrosoft SQL Server90COMBusinessLogicHandler.dll';



Machine B, IIS server. The same business logic handler is deployed at C:Program FilesMicrosoft SQL Server90COMBusinessLogicHandler.dll on the Machine B itself.



When I ran the web replication, the Merge Agent reported the error as below.

Error loading custom assembly "C:Program FilesMicrosoft SQL Server90COMBusinessLogicHandler.dll", Error: "Could not load file or assembly 'C:\Program Files\Microsoft SQL Server\90\COM\BusinessLogicHandler.dll' or one of its dependencies. The given assembly name or codebase was invalid.



It seemed that the Merge Agent had trouble to find my logic handler because the path reported in the error log has two backward slashes. I have no idea where did that came from. I am not sure if that's the cause of the error. Without business logic handler. I had successfully finished web replication of Machine B to sync with Machine A. If I setup web replication directly on Machine A with business logic handler, I can successfully sync as well.



Does anyone has any idea about how to correctly deploy business logic handler on a web server?



Thanks,

Nigel

View 1 Replies View Related

Business Logic File Needs Something...

Feb 26, 2008

Or maybe it can't find something it's looking for to make my additional symetrical with everything else. This is from one of my businesslogic files.  What causes Visual Studio to not allow me to add something here and have it behave like the other parameters/  I'm talking about ShortDesc.  Visual studio inserted () and the Get instead of GET like all the others.  It would not allow me to capitalize the "get". There has to be a reason for this. Currently my program is adding all of the fields except the ShortDesc to the table in my database. Does anyone have any thoughts as to why this is the case?
 
 #Region "Pvt Members"        Private _ArticleID As System.Int32        Private _UserID As System.Int32        Private _WebSiteID As System.Int32        Private _ArticleTitle As System.String        Private _Author As System.String        Private _ShortDesc As System.String        Private _ArticleText As System.String        Private _AnchorText As System.String        Private _ShowInDirectory As System.Boolean        Private _Active As System.Boolean        Private _DateAdded As System.DateTime#End Region#Region "Properties"        Public Property ArticleID As System.Int32            GET                Return _ArticleID             End Get             Set(ByVal Value As System.Int32)                _ArticleID= Value             End Set         End Property         Public Property UserID As System.Int32            GET                Return _UserID             End Get             Set(ByVal Value As System.Int32)                _UserID= Value             End Set         End Property         Public Property WebSiteID As System.Int32            GET                Return _WebSiteID             End Get             Set(ByVal Value As System.Int32)                _WebSiteID= Value             End Set         End Property         Public Property ArticleTitle As System.String            GET                Return _ArticleTitle             End Get             Set(ByVal Value As System.String)                _ArticleTitle= Value             End Set         End Property         Public Property Author As System.String            GET                Return _Author             End Get             Set(ByVal Value As System.String)                _Author= Value             End Set         End Property        Public Property ShortDesc() As System.String            Get                Return _ShortDesc            End Get            Set(ByVal value As System.String)            End Set        End Property        Public Property ArticleText As System.String            GET                Return _ArticleText             End Get             Set(ByVal Value As System.String)                _ArticleText= Value             End Set         End Property         Public Property AnchorText As System.String            GET                Return _AnchorText             End Get             Set(ByVal Value As System.String)                _AnchorText= Value             End Set         End Property         Public Property ShowInDirectory As System.Boolean            GET                Return _ShowInDirectory             End Get             Set(ByVal Value As System.Boolean)                _ShowInDirectory= Value             End Set         End Property         Public Property Active As System.Boolean            GET                Return _Active             End Get             Set(ByVal Value As System.Boolean)                _Active= Value             End Set         End Property         Public Property DateAdded As System.DateTime            GET                Return _DateAdded             End Get             Set(ByVal Value As System.DateTime)                _DateAdded= Value             End Set         End Property #End Region

View 1 Replies View Related

Business Logic In Store Procedure

Apr 5, 2006

Hey guys,I have to import a csv file to my database and then add
some values to other fields based on these values. At present I use a
store procedure that does a bulk insert and then I use an update and
fetch inside the sql to perform these updates. I am not sure if this is
the best way. Is this bad, since some amount of busniess logic is in
the store procedure?If it is, how can I do this better?Thanks for the answer.

View 1 Replies View Related

Stored Procedure Business Logic

May 21, 2008

I am working with stored procedures to provide conditional business logic for a customer based on triggers. Is it possible for a stored procedure to execute an external program ie opening or distributing a crystal report?

View 9 Replies View Related

SqlDataSource? What Happened To The Separation Of UI And Business Logic?

Mar 16, 2007

I guess I just don't get the reasoning behind the new SqlDataSource control.  Haven't we just spent the last decade or so evangelizing and learning how and why to separate business logic from the display in VB 6 and VS.NET?  In this age of programming for disparate devices (desktop, mobile, PocketPC, etc.) when this separation makes more sense than ever, why is MS pushing us to go back to putting our logic and data access rules and objects back in the display?  It doesn't make sense.  Why would anyone do this?  And why would all the experts and MVPs at ASP.NET, DevX, 4GuysFromRolla, etc., go along with this?

View 4 Replies View Related

Transact SQL :: Adding Constraint For Business Logic

May 27, 2015

ALTER TABLE [dbo].[bkrm_lendcoll] ADD CONSTRAINT
     ReqdCovgAmt_constraint33 CHECK     
( case 
  when CovgAmt = 0 and  ReqdCovgAmt = 0 then 1
  when CovgAmt = 0 and  ReqdCovgAmt = 1 then 1
  when CovgAmt = 1 and  ReqdCovgAmt = 0 then 1
  when CovgAmt = 1 and  ReqdCovgAmt = 1 then 0
end =1
)

This is my first attempt to add a constraint for business logic.  The desired behavior is that the two columns together have the same behavior as a radio button.  (one can be true, the other true, both can be false, but both cannot be true.) I get this error when I attempt to update it.

The ALTER TABLE statement conflicted with the CHECK constraint "ReqdCovgAmt_constraint33". The conflict occurred in database "Std", table "dbo.lendcoll".

So, basically my question is, when you have two bit columns and want them to have the truth table such as described, how can I set a Check constraint to enforce this?

View 14 Replies View Related

Running Custom Business Logic During Synchronization

Oct 30, 2006

I have a merge replication topology that allows some subscribers (clients) to retreive a number for certain columns (ie invoice number, order number, etc).

I have implemented a custom business logic handler to check for inserts from the subscriber and before updating the server, I call a stored proc on the server to generate a new number. I update the data set and call ActionOnDataChange.AcceptCustomData. This works great for the publication db but I am trying to get this new number back into the subscription db. I am using web synchronization so I really don't have a connection back to the subscriber database.

Any Ideas? I was thinking about keeping track of the updates myself and build a sql string and somehow get that back to the subscriber to run updates for those columns... I am wondering if I am pushing the limits of the business logic handler? Was it designed to do this? Of course the easy answer is to modify my client application but I am trying to avoid that at this point.

Any help/suggestions would be greatly appreciated!



View 6 Replies View Related

Business Logic In Stored Proc VS Aspx.vb Page

Jul 20, 2005

Hello,I stuck in a delimma.Where to put the business logic that involves only one updatebut N number of selects from N tables........with N where conditions

View 5 Replies View Related

Is There A Way We Can Implement Business Logic By Storing It In Colums Of A Table And Calling It?

Jul 20, 2005

What is the way we could implement a business logic from a Table bystoring it statemnnets in a colums and defining an execute sql toexecute it.Some legal requirements make it diffcult for us to createmodify stored procdures so Iwant to have a process where we create newrows in a table and execute it to execute business logic.All views are welcome.Havin g one table two tables different approaches to store ststementsand execute them....Case logic how to implement it?Flags in the tble colums in the tablesetcThanksAjay Garg

View 1 Replies View Related

Data Access :: Bulk Fetch Records And Insert / Update Same In Other Table With Some Business Logic

Apr 21, 2015

I am currently working with C and SQL Server 2012. My requirement is to Bulk fetch the records and Insert/Update the same in the other table with some  business logic? How do i do this?

View 14 Replies View Related

Installing VS2005 And Business Intelligence Report Projects On A Vista Business Workstation

Oct 23, 2007

Does anyone have a successful prescribed sequence for installing VS2005 and Business Intelligence Reports Projects on a Vista Business workstation to be used to create reports for a server?

I've looked through everything I can find here and I don't seem to see a clear solution without a lot of trial and error.

Fact is, I've not been successful getting just the reports to install on a plain XP box. Of course, the report creation looks fine on the server but I don't want to work directly on the server.


Thank you

View 1 Replies View Related

Synchronization Of Business Contacts In Outlook With Small Business Accounting

Jun 10, 2006

Can anyone take me through synchronization of contacts within Business Contacts Outlook into Microsoft Small Business Accounts?

I run a stand alone PC with NO network. When SBA came SQL was also installed. Apparently you can synchronise Contacts within Business Contacts with SBA but both SBA & Outlook should work through the same SQL server.

Has anyone tried this?

Can someone walk me through the process?

Thanks

Debbie

View 1 Replies View Related

Food Handler

Apr 24, 2008

how will i start with a food handler data model?
thanks

View 2 Replies View Related

Using Dts.LOG Within Event Handler

Feb 7, 2007

Hi, I am trying to Log my activities when OnError event handler fires

I have defined few tasks in OnError event handler section so when there is a failer on the main package my OnError task runs ( which it work fine)
now I am trying to add Dts.LOG from inside OnError evend handler task, and it seems like SSIS doens't give that function.
I can use dts.log outside on the main package but not inside OnError section! any ideas
Thanks

View 5 Replies View Related

Error Handler

Feb 18, 2008

2 questions:
1) if I place an Execute SQL Task in OnError event of the Error Handler at the Package level, will it catch all of my possible task errors? There's no need to add an Event Handler for each task in the Control flow?

2) A stupid one...I'd like to test my Event Handler (writing to custom log table in case there's an error in the Integration Service)...any ideas how to provoke an SSIS error to check my Error Handler ?

Thanx!

View 4 Replies View Related

Event Handler

Apr 8, 2008

HI, I'm implementing a custom error loggin using SSIS event handler, I succesfully catch the error and now I trying to retreave the value of this variables: System::ErrorCode and System::ErrorDescription.

The problem is that only the System::ErrorDescription retreave a value, the variable System::ErrorCode cames empty.

Is that correct?

Thanks.

View 1 Replies View Related

What Is "SIGNAL HANDLER" (SPID 1)?

Aug 8, 2000

What is "SIGNAL HANDLER" (SPID 1)?

And what is SPIDs 1-6 ?



Exec Sp_who:


SPID Status DBName Command
----- ------------------------------ ------ ----------------
1 sleeping master SIGNAL HANDLER
2 BACKGROUND master LOCK MONITOR
3 BACKGROUND master LAZY WRITER
4 sleeping master LOG WRITER
5 sleeping master CHECKPOINT SLEEP
6 BACKGROUND master AWAITING COMMAND

View 1 Replies View Related

Onerror Event Handler

Oct 19, 2006

Is the Onerror Event Handler from the tabbed window in the IDE the same as the red arrow paths that can be used in the control flows and Data Flows?

If yes, what and where is the best practice to use?



If not, can you elaborate?

Thanks,

View 4 Replies View Related

OnInformation Event Handler

Apr 28, 2006

I'm trying to log the information spit out by SSIS but only the rowcount part, e.g. "component xyz wrote 1000 rows", im currently using a execute sql task but that will log all information, any simple efficient way i can filter out that rows written line and log that into a sql server table?



thanks

View 4 Replies View Related

Event Handler Refresh

Jan 8, 2007

I am current using Event Handlers in an SSIS package, but when adding a new EventHandler type eg. OnPreExecute, to an executable within the package, I am unable to see this new EventHandler defined in the hierarchical listing on the left hand combo box (named Executables).

Can't seem to find a Refresh option anywhere. I've only been able to see these newly created EventHandlers in the hierarchical listing by closing and re-opening the package.

Is this a 'feature' or am I missing a Refresh option somewhere.

Thanks.

View 6 Replies View Related

SSRS With Asp.net Ashx Handler

Mar 22, 2007

Hi,

Can SSRS 2005 support asp.net ashx handler file to display image ? if no, is there any work around to display image dynamically based on URL ?

Thanks.

View 1 Replies View Related

Event Handler Won't Work

Sep 13, 2007

Dear all,

Previously I've posted about precedence error that didn't work and now it works, thanks to John Welch for his support. But when I tried to use event handler, it won't work. When error occured it didn't redirect to the OnError event handler. And then I built another package but with Data Flow task only, put a simple Script task inside OnError event handler and strange..it worked fine. There is no differences between my first Data Flow task and the last Data Flow task, totally the same process. I've captured both execution result. This is the first failure Data Flow task and the last success Data Flow Task (failure and success herein means that OnError work or not)

And then I did some testing in my last package contains a success Data Flow task. I put a new Data Flow task by copy from the previous one, execute it and OnError won't work again. Then I delete it, execute the previous one and OnError worked fine. I really don't understand why by adding a new Data Flow Task then OnError event handler won't work ?

Any help would be appreciate. Thanks in advance.

Best regards,

Hery

View 7 Replies View Related

Error In Event Handler

May 22, 2008

will a package fail if an error occurs in a task inside an event handler?

View 3 Replies View Related

Is There An Error Handler In Sql Stored Procedures?

Dec 7, 2006

is there an error handler in sql stored procedures? For example if i want to do a drop something and there is a lock, i want to try return if it droped it or not and if not then try again later

View 1 Replies View Related

Ex_raise2 - No Handler Found For Exception

Oct 24, 2005

Hi, hope this is the right forum to post in.

I found the following in the logs this morning (SLQ2k Sp3, Win2k)

quote:ex_raise2 - No handler found for exception major 36 minor 24 severity 20 - Server terminating

Followed by

quote:Problem creating stack dump file due to internal exception2005-10-23 16:52:23.71 spid2304 SQL Server Assertion: File: <p:sqlumsincumslist.h>, line=317
Failed Assertion = 'el->m_next == 0'.

Then a SQL Server restart. Not a nice thing to see first thing in the morning I'm sure you'll all agree.

However I think this all started a second or so earlier:
quote:Using 'dbghelp.dll' version '4.0.5'
*Dump thread - spid = 65, PSS = 0x3643d228, EC = 0x3643d550
quote:SQL Server Assertion: File: <recbase.cpp>, line=1374
Failed Assertion = 'm_nVars > 0'.
quote:Error: 3624, Severity: 20, State: 1.

We see several of these earlier in the day, quite similar, caused by varying items of SQL.

Finally in the same second as the ex_raise2 - on a different spid again to the others
quote:Using 'dbghelp.dll' version '4.0.5'
*Stack Dump being sent to m:sql_datalogSQLDump1702.txt

quote:SqlDumpExceptionHandler: Process 161 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process..

quote:Error: 0, Severity: 19, State: 0

Half a second later on spid0 (!)
quote:Open of fault log m:sql_datalogexception.log failed.
* 00A09029 Module(sqlservr+00609029) (CSubRuleRemoveSubqInFOJN::`vftable'+00000019)


If anyone has any ideas, please let me know - I've seen various posts pointing at corruption, but dbcc checkdb seems to be clear.

View 12 Replies View Related

SSIS OnRestart Event Handler???

Mar 21, 2007

SSIS Checkpoint and restart event handling.

I am using checkpoints in my SSIS packages which determines the step at which the package failed the last time and restart at that step.
But i need some other task also to kickoff only during restart? There is not an OnRestart handler as OnError in SSIS.
How can i do this ?

View 1 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved