<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-10551424</id><updated>2011-04-21T12:57:55.693-07:00</updated><category term='TEST1'/><title type='text'>my place in NET world</title><subtitle type='html'>this blog moved to http://www.digitaldeposit.net/blog</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://saravanakumarmv.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10551424/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://saravanakumarmv.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Saravana Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10551424.post-1828941388209176342</id><published>2007-02-02T09:30:00.001-08:00</published><updated>2007-02-02T09:30:55.590-08:00</updated><title type='text'>Description of SQL Jobs used by Biztalk Server</title><content type='html'>MessageBox_DeadProcesses_Cleanup_BizTalkMsgBoxDb&lt;br /&gt;Detects when a BizTalk Server host instance (BTSNTSvc.exe) has stopped responding. The job then releases the work from the host instance so a different host instance can finish the tasks.&lt;br /&gt;&lt;br /&gt;MessageBox_Message_Cleanup_BizTalkMsgBoxDb&lt;br /&gt;Removes all messages that are not referenced by any subscribers in the BizTalk MessageBox (BizTalkMsgBoxDb) database tables.&lt;br /&gt;&lt;br /&gt;MessageBox_Parts_Cleanup_BizTalkMsgBoxDb&lt;br /&gt;Removes all message parts that are no longer referenced by a message in the BizTalkMsgBoxDb database tables. All messages are composed of one or more message parts that contain the message data.&lt;br /&gt;&lt;br /&gt;PurgeSubscriptionsJob_BizTalkMsgBoxDb&lt;br /&gt;Purges unused subscription predicates from the BizTalkMsgBoxDb database.&lt;br /&gt;&lt;br /&gt;TrackedMessages_Copy_BizTalkMsgBoxDb&lt;br /&gt;Copies the message bodies of tracked messages from the BizTalkMsgBoxDb database to the Tracking (BizTalkDTADb) database.&lt;br /&gt;&lt;br /&gt;TrackingSpool_Cleanup_BizTalkMsgBoxDb&lt;br /&gt;Purges inactive tracking spool tables to free database space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10551424-1828941388209176342?l=saravanakumarmv.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saravanakumarmv.blogspot.com/feeds/1828941388209176342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10551424&amp;postID=1828941388209176342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10551424/posts/default/1828941388209176342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10551424/posts/default/1828941388209176342'/><link rel='alternate' type='text/html' href='http://saravanakumarmv.blogspot.com/2007/02/description-of-sql-jobs-used-by-biztalk.html' title='Description of SQL Jobs used by Biztalk Server'/><author><name>Saravana Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10551424.post-1480861685478686382</id><published>2007-02-02T09:29:00.000-08:00</published><updated>2007-02-02T09:30:33.043-08:00</updated><title type='text'>System.Diagnostics.Process, RedirectStandardOutput process hanging</title><content type='html'>In one of our internal web app's developement, we were executing an console applications with certain arguments synchronously and were trying to display the results in the front-end.&lt;br /&gt;&lt;br /&gt;When we activate the process I can see the process getting kicked-off in the task manager and it never exits, after a time period (IIS timeout setting), the web app times out.&lt;br /&gt;&lt;br /&gt;At the end we figured out, the reason is due to an dead lock condition between the parent process (w3wp) and the child process(console app). &lt;br /&gt;&lt;br /&gt;Synchronous read operations introduce a dependency between the caller reading from the StandardOutput stream and the child process writing to that stream. These dependencies can result in deadlock conditions. When the caller reads from the redirected stream of a child process, it is dependent on the child. The caller waits on the read operation until the child writes to the stream or closes the stream. When the child process writes enough data to fill its redirected stream, it is dependent on the parent. The child process waits on the next write operation until the parent reads from the full stream or closes the stream. The deadlock condition results when the caller and child process wait on each other to complete an operation, and neither can proceed.&lt;br /&gt;&lt;br /&gt;Solution is really simple, look at the code snippet below.&lt;br /&gt;&lt;br /&gt;// Start the child process.&lt;br /&gt;Process p = new Process();&lt;br /&gt;// Redirect the output stream of the child process.&lt;br /&gt;p.StartInfo.UseShellExecute = false;&lt;br /&gt;p.StartInfo.RedirectStandardOutput = true;&lt;br /&gt;p.StartInfo.FileName = "Write500Lines.exe";&lt;br /&gt;p.Start();&lt;br /&gt;// Do not wait for the child process to exit before&lt;br /&gt;// reading to the end of its redirected stream.&lt;br /&gt;// p.WaitForExit();&lt;br /&gt;// Read the output stream first and then wait.&lt;br /&gt;string output = p.StandardOutput.ReadToEnd();&lt;br /&gt;p.WaitForExit();&lt;br /&gt;&lt;br /&gt;BTW, most of explanation is from MSDN, but it took me a while to figure out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10551424-1480861685478686382?l=saravanakumarmv.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saravanakumarmv.blogspot.com/feeds/1480861685478686382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10551424&amp;postID=1480861685478686382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10551424/posts/default/1480861685478686382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10551424/posts/default/1480861685478686382'/><link rel='alternate' type='text/html' href='http://saravanakumarmv.blogspot.com/2007/02/systemdiagnosticsprocess.html' title='System.Diagnostics.Process, RedirectStandardOutput process hanging'/><author><name>Saravana Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10551424.post-3714885564274789165</id><published>2007-02-02T09:28:00.000-08:00</published><updated>2007-02-02T09:29:45.641-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TEST1'/><title type='text'>GAC your assemblies with one click!!</title><content type='html'>We BizTalk developers often get frustrated with this assembly GACking stuff. Here is a cool registry setting which will make our life little bit easier. &lt;br /&gt;&lt;br /&gt;Copy and paste the code into a notepad file and save it with extension .reg. Double click on the file and its all done. &lt;br /&gt;&lt;br /&gt;------------------------------------------------------- &lt;br /&gt;&lt;br /&gt;Windows Registry Editor Version 5.00 &lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\dllfile\shell\GAC-It\command]&lt;br /&gt;@="c:\\windows\\Microsoft.NET\\Framework\\v1.1.4322\\gacutil.exe /i \"%1\"" &lt;br /&gt;&lt;br /&gt;------------------------------------------------------- &lt;br /&gt;&lt;br /&gt;Then open explorer and navigate to your dll, right click on it, for your surprise you'll see a shortcut called GAC-It as shown below. You can put whatever name you want as highlighted in RED in the above script.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10551424-3714885564274789165?l=saravanakumarmv.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saravanakumarmv.blogspot.com/feeds/3714885564274789165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10551424&amp;postID=3714885564274789165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10551424/posts/default/3714885564274789165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10551424/posts/default/3714885564274789165'/><link rel='alternate' type='text/html' href='http://saravanakumarmv.blogspot.com/2007/02/gac-your-assemblies-with-one-click.html' title='GAC your assemblies with one click!!'/><author><name>Saravana Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
