Poison Message Sample In BOL
Oct 4, 2005Hi,
View 8 RepliesHi,
View 8 RepliesIn the "Example: Detecting a Poison Message" section, it reads: This Transact-SQL example shows a simple, stateless service that includes logic for handling poison messages. Before the stored procedure receives a message, the procedure saves the transaction. When the procedure cannot process a message, the procedure rolls the transaction back to the save point. The partial rollback returns the message to the queue while continuing to hold a lock on the conversation group for the message.
View 1 Replies View RelatedHallo,
I have some problems to handle the poison messages.
Messages are exchanged between 2 databases on the same SQL Server instance.
I created a Trigger on the insert , that call the sp that begin the conversation(10 minutes Timeout) and send the message to the target queue.
On the target queue I activated a SP and the main code is:
BEGIN TRANSACTION
WAIT FOR (Receive (1) ..) timeout 5000
IF (@ErrorSave <> 0)
BEGIN
INSERT INTO [TestSender].[dbo].[tblErrorXMLMessages] VALUES ();
END
ELSE
if (@messagetypeName = N'Message')
BEGIN
exec [dbo].[sp_ProcessMessage] @message_body
END
ELSE IF (@messagetypeName = N'EndOfStream')
BEGIN
END CONVERSATION @dialog
END
COMMIT TRANSACTION
My communication has a strange behaviour:
if I type
Begin
insert into TriggerTable values(XMLMessage)
insert into TriggerTable values(XMLMessage)
....
insert into TriggerTable values(XMLMessage)
end
Everything work fine but If I write an insert of 1000 message coming from an another table and I use the
cursor login after I while the transmission stop because the Target queue become inactive.
I can see my messages stuck in the Initiator transmission_queue so I think that there is some Poison message that cause 5 rollback and disable the receiver queue.
First I would like to isolate the wrong message and carry on with the insert, my application doesn't have to stop the conversation or return any error, but If I use the Sql server Debugger I'm not able to debug the Target queue's stored procedure.
I suppose that some error happens on the Target queue's stored procedure but how can I first at all find it out?
Maybe it has something to do with the transition wrapped around the RECEIVE command?
thank you for any helps!
Marina B.
I know I have to build in some ability to deal with a posion message. I was thinking that (sort of mentioned in the article http://msdn2.microsoft.com/en-us/library/ms166137.aspx) I would write a special stored procedure that would handle this situation. I don't know how I could activate this. I don't want to poll of course in a waitfor.
Does anyone have a good idea on this?
Hi!
I have crl stored procedure with distributed transaction in it. I really need such transaction. When a poison message occurs 5 time my queue is turned off.
I've read about handling poison messages in msdn (save transaction and rollback part of it), but it works only with local transaction. What should I do?
An important point is that messages shoold be processed in right order, I can't receive message and put it to the end of queue.
I want to try process poison message constantly.
I doesn't want to stop receiving messages in that queue.
Thanks.
kostya
Hi,
I'm using the Service Broker to parallize my processes (I know that the Service Broker was not designed for that purpose), however it's working quite well.
I use the broker procedure to start procedures which all process all a part of the workload. When the procedure fails because of a lock timeout (or for that concern, for whatever reason), I rollback the transaction (which also roll back my message received on the queue so that it can be retried at a later time.). And this is where my problem lies, if there are 5 sequential rollbacks of messages then the poison message detection kicks in and disables the queue, stopping all the processing. :(
Is there a way to disable poison message detection? I have implemented my own stop-mechanism through a counter system on a per sub-task system so if I could disable poison message detection that would be ideal.
If this is not possible is there a way to turn the queue back on automatically so that it will continue processing the messages on the queue?
Cheers,
Peter.
Hi,
View 1 Replies View RelatedI am getting the following Error and I can't find it in the Manual.
Failure to send an event notification instance of type 'BROKER_QUEUE_DISABLED' on conversation handle '{5D273374-E84F-DB11-B3BC-0004239AB15C}'. Error Code = '8429'.
I have checked the service name for the notification and it appears to be okay.
Any ideas would be welcomed,
Gary
Hi all, i searched everywhere but couldn't find any info on the following error that i'm currently receiving:
"The conversation endpoint is not in a valid state for SEND. The current endpoint state is 'DI'."
I understand that this is due to some problem in my send/receive protocol but how do i fix this problem so that i can continue with my testing? Right now i'm forced to drop my entire test database and reinstall everytime this message shows up because i can't send/receive any messages at that point. Is there anyway to get rid of it?
Thanks in advance. This is driving me nuts.
Hi
Books online mention the existence of sample code for several custom tasks, including the one mentioned in the title. But, when I try to find this code in the location mentioned it is nowhere to be found.
I have run a search on the rest of my drive and come up empty.
Can anyone tell me where to find this?
Thanks
Im trying to use VB.net 2005 to write a sample app to access a DB. Are there any samples for this and any samples of how I go about making the DB in the first place?
View 1 Replies View RelatedHello again,
I have some poison message detection in place, based on the BOL sample. My problem is that after the 5th message retry my queue goes down - that is the fifth retry on any message. In actuallity, the first message is retried 3 times and it is taken off the queue [for real], the second message comes in and on the second retry - pooof - the queue is down.
I though the poison mechanism should work on a per message basis. It there a setting for the queue I missed? Is my only chance for to fix this: re-enable the queue upon BROKER_QUEUE_DISABLED event notification?
Thanks,
Lubomir
In my SQL Server, I see the below message in the Application Event Viewer
"18265 :
Log backed up: Database: HSD, creation date(time): 2007/01/06(05:05:05), first LSN: 1439:495055:1, last LSN: 1439:496675:1, number of dump devices: 1, device information: (FILE=1, TYPE=DISK: {'D:MSSQLBACKUPHSDHSD_tlog_200707141300.TRN'})."
When I save the application event viewer and open it in another server, I do not see the above message, instead I get the following message:
" Can't find or load message DLL. Message DLL must be in path or in current directory."
Any thoughts to overcome this problem is appreciated.
Thanks
Santhosh
I run SB between 2 SQL servers. In profiler on an initiator side I see next error: 'This message could not be delivered because its message timestamp has expired or is invalid'. For the conversation we use best practice, i.e. target closes a conversation. Target side succeed to close conversation, but initiator still stay in DO (disconnect_outbound).
What is a reasone for the error? What to do?
I see in profiler this error: "This message could not be delivered because its message timestamp has expired or is invalid"
What is a reason for error?
Hello,
I am having trouble specifying a message body that is valid. I mean for the client to send. If I leave it as null then everything is ok but if I create a memorystream and add a line of text it reports back it did not pass validation. I do not understand this and am not sure what to do. I need to send a message based on a code and text but do not know the format of the body that is allowed. The code I am refering to comes out of HelloWord_CLR because that is what I am formating my sample after. I call it the same way it calls the return message done in ServiceProc. I need to know the message format including body since this does not seem to work. A sample of the call is bellow.
// Create an empty request message
string Msg = "Hello";
MemoryStream body = new MemoryStream(Encoding.ASCII.GetBytes(Msg));
Message request = new Message("Request", body);
Thanks,
Scott Allison...
Hi!
This concerns SQL errors showing up unexpectedly and a "Sample" application.
I am running Windows XP Pro SP2 on a Dell 8600 Laptop. It is the only computer I own (or want to own) therefore, home networking not an option. A simple, stand alone computer is all I need or want, yet sometime around September or October '05 whenever I booted up, I was getting SQL error messages (e.g., missing SQLsvc file). While trying to find the problem, I was seeing indications in various places that Windows NT was my OS (what happened to Windows XP as my OS?). I'm not sure how all that happened, I certainly did not intend to make any such change.
I'm not a computer techy, nor do I have such an aspiration. However, I'm quickly discovering that in order to use a computer in any capacity, one must indeed become somewhat of a techy - like it or not!
So, I got rid of the SQL error messages from popping up at bootup and things seemed to be a bit more normal, but now (for the past 2 or 3 months), everytime I shut down, I get the pop up window that indicates a program is not ending properly and I have the option to "end now" or "cancel" to return to windows. The name in the title box of this popup is simply "Sample" -- no extension such as .exe (although I assume that's what it should be). I have no clue what this is and have searched every possible source to find the answer but to no avail. I suspect it has something to do with that blasted SQL thing that seemed to take over my computer. I searched the web for "sample.exe" and found that it may be a virus
"Virus Alert: W32.Nimda.E@mm
The attachment received has been changed to: Sample.exe ... Emails itself out as Sample.exe Shared drives: Infects open network shares."
After reading the above link, I checked and, sure enough, I have this "W32nimda" file. A search as to how to eliminate it, led me to the Symantec website, which has a removal tool to download, along with 7 pages of instructions (did I mention that I did NOT want to be a computer techy?). I used Symantec antivirus 2 years ago and was glad to be rid of it, however getting completely rid of it seems to be another story and I truly wish I knew the secret to that (any hints?). I did not download this tool yet and not sure if I want to. Surely, there's an easier way! I have run my antivirus software (Trend Micro PC-Cillin), which finds nothing.
I seem to be getting away from the subject, although it all seems related, so I'll get back to the SQL question(s) which is, do I need it? If not, how can I get rid of it? Probably more information is required to answer this question such as how I use the computer, what applications, etc. Briefly, I do not create web pages and do not have a web page; no home network; do not play games or download music (afraid of that!); don't visit "taboo" websites. I do not have MS Word or any of the MS office line - Word Perfect 12 is my word processor. In November last year (at the same time all this started) my modem ceased to function, which I attributed to, unknowingly, plugging into a digital telephone jack at my office. I bought and installed another modem - which I could not get to work - took it back and bought wireless modem and router, which I installed and setup myself (with telephone assistance from router manufacturer, Linksys).
My web related usage is mainly research and email (a necessary evil, apparently). I also use the computer for photo storage and enhancement, graphics and Windows Media Player 9.
I apologize for this post being so lengthy, but I wanted to explain the problem with enough detail in the hope of getting a substantially beneficial answer (other attempts at other sites have been answered basically with "I dunno!" - and here's a surprise, I got the same "I dunno" from The Geek Squad at Best Buy!).
Thanks for taking the time to read all this - hope you can help!
Newbie in sql. Is the adventure works db sample compatible with the free sql compact edition, or is there a sample db for the compact edition? A link if possible could help. Was searching on microsoft' s website and was getting the sample for sql server and i have the compact ed. Downloaded the sample, tried to run it but nothing.
Hello All,
I have two tables
SCDTest1
id stdt enddt price
1 01/04/2006 09/09/9999 900
2 01/04/2006 09/09/9999 200
and
SCDTest2
id stdt enddt price
1 01/04/2006 09/09/9999 100
I want to create a package that will:
check to see if id and stdt from SCDTest1 exists in SCDTest2,
if yes, I would like to expire that row in SCDTest2 (change the enddt to today) and then insert a new record into SCDTest2 with stdt = today and enddt = 09/09/9999.
If no then I want to insert the row with stdt = today, enddt = 09/09/9999.
SCDTest2 will look like this after the run is complete.
SCDTest2
id stdt enddt price
1 01/04/2006 01/10/2006 100
1 01/10/2006 09/09/9999 900
2 01/04/2006 09/09/9999 200
I have come close by using the SCD wizard, but have been unable to figure out how to get the proper date updates to occur.
Any help would be greatly appreciated.
Thanks
I'm looking for a sample database for a big company, organization,... to build my db project as a part of my db system courses. Can anybody help me?
Thanks anyway.
Hai
I have one amount field in my table. I need the query to get the record where the amount field must be +/-15%.
for SQL Server 2005 express (no northwind or pubs sample databaes only adventureworks). Please correct me.
View 1 Replies View RelatedHey guys,
Does anyone know of a site or a link which gives you sample SQL questions (mostly related to SQL queries) and answers?:) I am not a developer so I don't get problems (to solve) that easily:)
If its already available here, my apologies, I haven't explored that much.
Thanks.
i have a query that uses the adventure works sample database am working on sql server 2000 can i install this sample database to this sql2000 server?
Best Regards
Hello,I am a very complex problem in front of me. Kindly help me outin acheiving the same.Say I have a table called InfoName with two columns Name and IDInfoNameName IDOS 1SP 2Driver 3fasdf **** ***** ****(I AM INTERESTED IN ONLY FIRST THREE ROWS )I have another table Infotxt which uses the ID of InfoName asforeign key. It stores the value of this ID as shownInFotxtID Value UnitNAME1 Win 2000 raj2 SP 4 raj3 40 GB raj1 Win xp jay2 SP 2 jay3 20 GB jayNOw I need to present it with unitname's configuration of OS,Sp and disk capacity like below.name OS SP DriveRaj win2000 sp4 40 GBJay winxp sp2 2o GBThat is, the rows of the InfoName table (first 3 rows) shouldbe the columns of my resultant query.How can I achieve the same.Please give me some ideas, and if the question is silly, I amvery sorry, because I am new to database queries...Thanks,cspekcspek*** Sent via Developersdex http://www.developersdex.com ***Don't just participate in USENET...get rewarded for it!
View 2 Replies View RelatedHello,Im brand new and trying to learn SQL Server 2000, I have purchased a bookand been reading it for a few weeks.I'm tring to find an ASP script that would let me know if my connection tomy database is working.I use DSN, i created a DSN name "mail"anyone have any scripts?--Message posted via http://www.sqlmonster.com
View 4 Replies View RelatedIs anyone is familiar with the HelloWorldCS solution that is available for download at www.SQLServiceBroker.com?
View 5 Replies View Related
Forgive me for my programming ignorance, but how to i find the microsoft.sqlserverce.samples.accesssync.editdata reference?
Thanks
I have installed MS SQL Server 2014. When I try to attach the pubs database that I downloaded, I'm getting an error saying that its non-release version (539) is not supported by this version of SQL Server.
My question is: Is there a way that I can either get an updated version of the database from Microsoft, or update the one I have?
Hello,
I just installed the FormsAuthentication Sample and when I goto http://localhost/reports I get the logon page and I can register the user id ok, but after that when go back and type my username and password and click logon it gives me this:
The request failed with HTTP status 401: Access Denied.
Any help would be greatly appreciated.
Hello,
Can you give me complete sample of using your own class implemented IReportViewerMessages interface in ASP.NET Application?
I have problems with this task.
Thanks!
Hi
We want to replace Access/ SQL Server Express/MSDE with a lightweight server with a small footprint, and I've got the assignment to evaluate SQL Server 2005 Everywhere using MFC. The application we want to replace the database in is MFC and not yet converted to VS 2005. I have no previous experience with OLE DB, and a very limited experience using MFC. I was hoping someone could provide me with a sample application using SQL/e with OLE DB, and some good references to getting started. If anyone knows of any good Libraries to simplify the implementation of OLE DB for me, that would be great. I'm currently looking into Express OLE DB Library from Sypram, but having some compilation issues.
I've tried to read the OLE DB tutorial at msdn library, but so far it feels very abstract and seems quite complex compared to ADO providers in C# which most of my exprience is from.
I tried using the MFC Wizard in VS2005 to create a single document application. When selecting the SQL Server 2005 Everywhere OLE DB Provider for Windows and then selecting a table from the data source, Visual Studio crashes with an unhandeled win32 exception (I've reported this bug at labs.msdn.microsoft.com). So I haven't really gotten a good idea on how to use the OLE DB driver for SQL/e.
Does anyone know if there are any plans on providing an ODBC driver for SQL/e? I haven't been able to find any so far.
Best regards
Bjørnar Sundsbø
I am new to reports and worked on few but a single report using 1 stored procedure.
Any sample or webcast.
now i have a requirement creating report within a report(subreport)
first stored procedure will bring few records and now using a id of each row i need to bring there child records(from child table)
is it possible to show master record and then its related child records.
and then number 2 master record and its related child records
Please help thank you very much for the information.