Thursday, March 19, 2009

The current transaction cannot be committed when using service broker

The current transaction cannot be committed when using service broker
=================================================================
when we use service broker queue to comunicate biztalk and sql sever we might get error meaasgae in some cases.To avoid this use xact_state(). Is a scalar function that reports the user transaction state of a current running request. XACT_STATE indicates whether the request has an active user transaction, and whether the transaction is capable of being committed.
The current request has an active user transaction. The request can perform any actions, including writing data and committing the transaction.

1 - The current request has an active user transaction. The request can perform any actions, including writing data and committing the transaction.
0 - There is no active user transaction for the current request.
-1 - The current request has an active user transaction, but an error has occurred that has caused the transaction to be classified as an uncommittable transaction. The request cannot commit the transaction or roll back to a savepoint; it can only request a full rollback of the transaction.
SET XACT_ABORT ON;
BEGIN TRY
BEGIN TRANSACTION;
-- A FOREIGN KEY constraint exists on this table. This
-- statement will generate a constraint violation error.
DELETE FROM Production.Product WHERE ProductID = 980;
-- If the delete operation succeeds, commit the transaction. The CATCH
-- block will not execute.
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
-- Test XACT_STATE for 0, 1, or -1.
-- If 1, the transaction is committable.
-- If -1, the transaction is uncommittable and should
-- be rolled back.
-- XACT_STATE = 0 means there is no transaction and
-- a commit or rollback operation would generate an error.
-- Test whether the transaction is uncommittable.
IF (XACT_STATE()) = -1
BEGIN PRINT 'The transaction is in an uncommittable state.' + ' Rolling back transaction.'
ROLLBACK TRANSACTION;
END;
-- Test whether the transaction is active and valid.
IF (XACT_STATE()) = 1
BEGIN PRINT 'The transaction is committable.' + ' Committing transaction.'
COMMIT TRANSACTION;
END;
END CATCH;
GO

Sunday, March 15, 2009

AJAX is an acronym for Asynchronous JavaScript and XML. JavaScript is a scripting language that is supported by all of the major browsers. With AJAX, an application running in the browser can use JavaScript to send an XML message to the server, the server works on the request and sends an XML response back to the browser client, and the browser uses JavaScrip to process the response.
The AJAX Page Life Cycle
pageLoad Called after page is loaded from the Web server
pageUnload Called when page redirects, posts back, or makes an asynchronous call to the server
The UpdatePanel Control
The UpdatePanel enables partial-page updates, which is one of the most compelling reasons to use AJAX. It is responsible for eliminating the page flicker and scrolling back to the top of the page after postback—experience that people have become accustomed to but are still uncomfortable with all the same.
The UpdateProgress Control
Sometimes a partial-page postback takes longer than normal. Instead of making the user sit there wondering what is happening, it would be better to give the user some type of status. The UpdateProgress control helps in this area by letting the user know that progress is being made.



Saturday, March 14, 2009

Silverlight

Silverlight is a combination of different technologies, working harmoniously together to make it easier to build RIAs. Essentially, you can take parts of what you know about Extensible Application Markup Language (XAML), Windows Presentation Foundation (WPF), ASP.NET,
JavaScript, and AJAX combined with a lightweight runtime to create incredible browser experiences that were once only the domain of Flash.