Blog Home  Home |  Breeze Home RSS 2.0 Atom 1.0 CDF  
Mick's Breeze Blogs - Biztalk/Sharepoint/... - Tuesday, January 16, 2007
Things hard and not so hard....
# Tuesday, January 16, 2007

After upgrading a BTS 2006 B1 R2 vpc image to Win2003 R2 all was not good.

Services were not starting and erroring all over the place (worked fine before Win2003 R2) and they seemed to be centered around SQL.

So I thought I'd 're-apply' SQL 2005 SP1....and this fixed some of the problems....others still remained.

I was getting "Event ID 7000: Sql Server Integration Services did not start or respond to a control message in a timely fashion"

(I was also getting this with Analysis Services)

After much research here's the circumstances that cause the problem:

(1) machine running sql is not directly connect to the internet (data centers etc.) SSIS wants to go out to the internet to check the status of a certificate or two (crl.microsoft.com...) when it starts up.

(2) SQL 2005 SP1 applied.

Solution: There are alternatives but my good buddy AB came up trumps with Some SQL Hotfixes to apply 

(at the bottom of his article)

I'm on the road at the moment and when looking at the post SP1 SQL Hotfixes - the first one of a SQL Server 'hotfix' of 25MB scared my and my GPRS phone off :)

Thanks AB.

Direct link to HOTFIX HERE

Tuesday, January 16, 2007 3:17:04 PM (AUS Eastern Daylight Time, UTC+11:00)  #    Comments [0]   BizTalk  | 
# Thursday, January 11, 2007

I've been doing those 'getting round to it' things over the break and I had an interesting couple of questions with this exam.
I'm in the (never ending) process of updating my qualification to MCSD.NET 2.0...TS

The exam http://www.microsoft.com/learning/exams/70-553.mspx was pretty hard - 4 hours, 3 sections of around 30 questions each. Testing Web, Winforms and 'all other'.

A got a great question which went something like....
You drop an ASP.NET 2.0 Membership Control on to a web page....

The only problem with this question is - that there is NO ASP.NET 2.0 Membership control within normal ASP.NET 2.0. (not sure on 3.0)
There are however Membership Providers but no Membership Controls.

I did a quick search and bingo! Here's the control which I think was being referenced in the question
ASP.NET 2.0 Membership Control

Talk about upping the ante on exams :-)

Off to do some more.... :)

 

Thursday, January 11, 2007 2:05:41 PM (AUS Eastern Daylight Time, UTC+11:00)  #    Comments [3]   Training  | 
# Monday, January 08, 2007

Lee Graber (the man behind all things SQL and LOTS of other areas within Biztalk) has posted some great tips around the BTS Message box - interacting with and what's 'changeable'.

Check it out - thanks Lee (one for the bookmarks folks)

Monday, January 08, 2007 3:51:12 PM (AUS Eastern Daylight Time, UTC+11:00)  #    Comments [0]   BizTalk | Insights  | 
# Saturday, January 06, 2007

I thought I'd share this festive season laugh being Christmas and all.

For the home I bought a set of Solar Powered Christmas Lights. I returned home with my purchase and instantly got huge points with all and sundry (so I might, just might be in the positives now)

I hung them up around the yard and discovered.....
the problem about these lights......think about it....solar powered lights (usually come on at night).

Let me just say that there's not one Christmas photo with these lights ON......so much for the points...easy come...easy go :-)
Saturday, January 06, 2007 11:05:38 PM (AUS Eastern Daylight Time, UTC+11:00)  #    Comments [0]   Other  | 
# Friday, January 05, 2007

A great buddy of mine gives blood, sweat and (I'm sure) tears to helping the community getting stuck into in VSTS.

Anthony has run breakfasts in Brisbane and Sydney, seminars, labs etc...all in his own time and for the love of it.

It's great to see such an expert who is passionate and has now been rewarded from Microsoft by being awarded a MVP


Anthony works with Breeze Training to offer a comprehensive VSTS Workshop. He constantly is refining/updating the workshop to reflect the latest updates and additions capable within a VSTS based solution. (I'm sure he sleeps at some point)

Well done AB!!!! Keep up the good work.
Friday, January 05, 2007 10:46:28 PM (AUS Eastern Daylight Time, UTC+11:00)  #    Comments [0]   Other | Training  | 
# Thursday, January 04, 2007

It's going around and a bit like a 'who dunnit' (sort of). In short - someone 'tags' you and you then have to reveal 5 things about yourself you normally wouldn't.

VSTS Guru Anthony Borton did me the honours and now I'm tagged. (thanks!)

So here goes:
1. I won $300 dollars when I was 15 on a radio competition for the longest toe(5.5cms) in Wollongong (where I grew up) - the comp. was on for the day and you had to go into the radio station for them to measure. My record stood from 10.30am onwards.

2. During my school holidays I used to sell Watermellons on Bondi beach in the mornings - had something going there.....

3. When I was 7 my dad dressed me up as a girl with a wig (we have a womens fashion shop in the family) etc. and took my sister and I to the local circus - as girls got in for free. (My therapist says I'm doing well now and nearly over it)

4. I'm left handed - "left handers are the only ones in their right mind" (something like that - I had a t-shirt when I was 5 with this. Yes using right handed scissors all your life is tough)

5. For my very last exam at Uni I studied for nearly 4 weeks for this last exam. Rode my push bike into the exam - panicked as the exam room was locked and no one else was there. I was 1hr early!! Got into the exam and during reading time didnt recognise one question (it was going to be tough I thought).

I discussed the exam with one of the supervisors only to be told that my lecturer in this subject stream DIDNT HAVE FINAL EXAMS!! We were assessed during the term.........I was back riding my bike again at 9.30am!

Now which island did my friends go to....

My five people I've decided to tag

  1. David McGhee - great guy now with Microsoft with a passion for just about anything.
  2. Chris Vidotto - Microsoft Technical Specialist - BizTalk. He's whooping me on xbox live at the moment.
  3. Mark Daunt - fellow BizTalk/MOSS/SQL expert - found sleeping in some bizzar places.
  4. Clayton James - Loving Sharepoint and being a MCT
  5. Mark Burch - Biztalk Support Engineer, and co-founder of the Sydney BizTalk User Group.

Looking forward in seeing what you've got folks.

Thursday, January 04, 2007 6:20:49 PM (AUS Eastern Daylight Time, UTC+11:00)  #    Comments [4]   Other  | 
# Tuesday, December 26, 2006

All full up, eaten several families out of house and home and we all slept under the tree waiting for Santa...early mornings.....:|

Best wishes and see you all in 2007 for an even better year!

Tuesday, December 26, 2006 10:32:56 AM (AUS Eastern Daylight Time, UTC+11:00)  #    Comments [0]   BizTalk | Events | Other  | 
# Wednesday, December 20, 2006
I'm thinking this is a bad thing if you want dynamic resolution.

I've experienced this with both the XMLReceive and a Custom Flat File Receive Pipeline (I built).

1. Both worked a treat - '5 minutes ago' as I've been working away.
2. Went into the BizTalk Admin console and 'adjusted' a property on the pipeline at the receive location ->clicked on the '...' button next to the pipeline.
3. Even if you dont change anything and hit OK...you're affected.
4. XMLReceive + FlatFile both complain about 'blank document schema' which must be specified.
(as in this case I'd changed a few things coding....it took me AGES to come back to here)
I even explicitly supplied the correct schema as a property on the FFDASM component I was using and no go!
5. Resolution: go back to the pipeline within the receive location (or send port) and select another pipeline from the list. Click OK to close the property window, then repeat and add your original pipeline but dont go into the pipeline per instance properties pages

Why does this happen??? (yeah good question :)
Basically both the XMLDASM and the FFDASM take precedence with Per instance pipeline config properties than *anything* else you provide.
e.g. Dynamically processing a flat file - check the SDK example, but here's a pseduo version.
.....
//Flatfile schema resolver - normal technique.
DocumentSchema docSpec = ......determine which deployed schema to use.

//this line basically tells the Disassemblers which schema to apply.
msg.Context.write("DocumentSpecName","<system namespace xml-norm>",docSpec.DocSpecStrongName);  
_myFFDasm.Disassemble(msg);   // line - *

These above lines will work for a year and a day (I've tested this) and in both 2004 + 2006, but NOT when you add perinstance pipeline configs - it seems all 'dynamic-ness' has gone out the window.

When per instance pipeline config is specified, this config data is provided as a Message Context Property (ReceivePipelineConfig) and XMLDasm + FFDasm only look at this for their values - painful.

So as in my case, I hadnt specified a Document Schema within the pipeline config as this pipeline was dynamic (c.f. like the xmlReceive).
I explicitly assigned a Schema to the FFDasm.DocumentSchema property and still got the same error as before.

Removing the Config Data did the trick :)


Given that this is the case - I think when you hit 'OK' to save the pipeline config data a warning/message of some description should come up as you may be wanting to modify 'one' value - 'omit xml declaration' for example. The rest of the properties are written in as blanks.

Hopefully I've saved you a bit of pain from mine.

Wednesday, December 20, 2006 11:25:41 PM (AUS Eastern Daylight Time, UTC+11:00)  #    Comments [0]   BizTalk | Insights | Tips  | 

Making some headway with this issue I'm experiencing.

I can now go into the BizTalk Application and configure most of the resources found within the Application. I've ventured into Microsoft.BizTalk.ApplicationDeployment.Engine.dll (found in the GAC) and was able to enumerate all the resources etc.

The only thing I havent been able to do is 'an update' to the resource properties (metadata).
I can re-add the resource and overwrite the existing ones, this time with the correct settings, but the problem here is that resources that have dependenies fail. e.g. schemas, maps....

For better of for worse right now I've located the two tables in the BizTalkMgmtDB and modified those directly - all looks good.

The interesting thing is I used %BTAD_InstallDir% extensively throughout the DestinationLocation.

Setting that at deploy time use:
msiexec /i <package.msi> /quiet /log <logfile> TARGETDIR=<your location>

Somewhere within the MSI Installer component within the Package - TARGETDIR=%BTAD_InstallDir%
(Even though all the documentation talks about %BTAD_InstallDir% being an environment variable)

 

Wednesday, December 20, 2006 2:37:16 PM (AUS Eastern Daylight Time, UTC+11:00)  #    Comments [0]   BizTalk | Tips  | 
I was coming across some issues with my WCF Service Clients and not shutting down properly.
They were throwing exceptions for various reasons and while trawling the ether I came across a great helper class (and this is where I saw the c# where clause) from Erwyn van der Meer

The problem centers around calling proxy.Abort(); or proxy.Close(); at different stages in the client proxies lifecycle.

Microsoft explain why we have arrived where we have on this - great candid discussion from the internal crew.

He discusses the problem and provides a great WCF client proxy helper class.

Here's a snippet from the Microsoft Discussion

Why does ClientBase Dispose need to throw on faulted state? (Or, what's the difference between close and abort?)

ICommunicationObject (from which ServiceHost, ClientBase, IChannel, IChannelFactory, and IChannelListener ultimately derive) has always had two methods for shutting down the object: (a) Close, and (b) Abort.  The semantics are that if you want to shutdown gracefully, call Close otherwise to shutdown ungracefully you call Abort. 

 

As a consequence, Close() takes a Timeout and has an async version (since it can block), and also Close() can throw Exceptions. Documented Exceptions out of Close are CommunicationException (of which CommunicationObjectFaultedException is a subclass), and TimeoutException.

 

Abort() conversely is not supposed to block (or throw any expected exceptions), and therefore doesn’t have a timeout or an async version.

 

These two concepts have held from the inception of Indigo through today. So far, so good.

 

In its original incarnation, ICommunicationObject : IDisposable.  As a marker interface, we thought it would be useful to notify users that the should eagerly release this object if possible. This is where the problems begin. 

 

Until Beta 1, we had Dispose() == Abort().  Part of the reasoning was that Dispose() should do the minimum necessary to clean up.  This was possibly our #1 complaint in Beta 1. Users would put their channel in a using() block, and any cached messages waiting to be flushed would get dropped on the floor. Transactions wouldn’t get committed, sessions would get ACKed, etc.

 

Because of this feedback, in Beta 2 we changed our behavior to have Dispose() ~= Close(). We knew that throwing causes issues (some of which are noted on this thread), so we made Dispose try to be “smart”. That is, if we were not in the Opened state, we would under the covers call Abort(). This has its own set of issues, the topmost being that you can’t reason about the system from a reliability perspective. Dispose can still throw, but it won’t _always_ notify you that something went wrong.  Ultimately we made the decision that we needed to remove IDisposable from ICommunicationObject.  After much debate, IDisposable was left on ServiceHost and ClientBase, the theory being that for many users, it’s ok if Dispose throws, they still prefer the convenience of using(), and the marker that it should be eagerly cleaned up.  You can argue (and some of us did) that we should have removed it from those two classes as well, but for good or for ill we have landed where we have. It’s an area where you will never get full agreement, so we need to espouse best practices in our SDK samples, which is the try{Close}/catch{Abort} paradigm.

 

Brian McNamara [MSFT]



Wednesday, December 20, 2006 1:23:20 AM (AUS Eastern Daylight Time, UTC+11:00)  #    Comments [0]   .NET Developer | BizTalk  | 
Came across some interesting code the other day and I must admit I hadn't seen the Where clause used like this before:
using System;

class MyClassy<T, U>
where T : class
where U : struct
{
}
And according to the Microsoft Definition found here

where (C# Reference) 

The where clause is used to specify constraints on the types that can be used as arguments for a type parameter defined in a generic declaration. For example, you can declare a generic class, MyGenericClass, such that the type parameter T implements the IComparable<T> interface:

public class MyGenericClass<T> where T:IComparable { }


Wednesday, December 20, 2006 1:10:17 AM (AUS Eastern Daylight Time, UTC+11:00)  #    Comments [0]   .NET Developer  | 
# Tuesday, December 19, 2006

I recently came across an interesting page - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/BTS06CoreDocs/html/ea7038dc-4740-4c0a-b6a1-08bc22f42bc2.asp

That talks about what is allowed/not-allowed when consuming (and ultimately exposing) WebServices for use with BizTalk.

A handy reference - the interesting one is the 'Any' element not being allowed.
I suppose the alternative is to look at the BizTalk generated WSDL for WebServices that expose messages of Type XmlDocument and see what is in the actual WSDL.

Have fun - 6 more sleeps till Christmas!

Yay!

Tuesday, December 19, 2006 11:45:10 AM (AUS Eastern Daylight Time, UTC+11:00)  #    Comments [0]   BizTalk | Insights | Tips  | 
# Monday, December 18, 2006

Usually when referencing an external website we use http://...... and we lose all the security etc. information that comes back from our crawls. (In contrast to the File://c:/docs/... etc etc)

A handy tip you can do is IF you know the site is a sharepoint site you can use the SPS moniker so the indexing service uses the Sharepoint APIs to contact the site as opposed to the http:// protocol handler.
(1) for SPS v2 use SPS://.....
(2) for SPS v3 use SPS3://....


Enjoy.

Monday, December 18, 2006 3:39:49 PM (AUS Eastern Daylight Time, UTC+11:00)  #    Comments [0]   MOSS | Tips  | 

When I was onsite recently doing a sharepoint migration to MOSS 2007 from WSS V3 - for whatever reason all the servers (and databases) were blown away and all the client had was one content database of their site.

(Who said client sites werent exciting)

My solution here:
(1) install and configure the farm independent of the original content database
(2) Setup the the Shared Services for the Farm
(3) Extend 1 virtual server and create a new content database.
Here's the trick....
(4) From 'Application Management'->'Content Databases'....add another ContentDB
(5) Now select the original ContentDB as an additional one to add. At this point when you click 'OK' there should be two in the list
(I had to actually drop to the command line as this content database addition was going to take more time than the webinterface allowed.
stsadm -o addcontentdb -databasefile:..... -databaserver:..... -url:......)
(6) From the list of two Content Databases - take the non-original ContentDB offline and then remove it.
Viola! Worked a treak...I had to sort out a couple of things around links etc.

(I did try a few other techniques first and got a whole bunch of errors around 'object not in the correct state')

Cheers,

Mick.

Monday, December 18, 2006 3:34:43 PM (AUS Eastern Daylight Time, UTC+11:00)  #    Comments [0]   Office | Tips | MOSS  | 
Copyright © 2010 Breeze Training. All rights reserved.