Monday, March 19, 2012
Microsoft Class 2591
I need to give a two day tutorial to some of the poeple I work with in
Operations on Replication and came across the course outline for this class.
The outline was perfect - I could eliminate some of the modules (merge
replication, tuning).
Does anyone know where I may be able to get a look at the actual course
materials to give me at least an idea of how they structure their modules? I
wouldn't be reproducing the materials ver batim, but just getting some ideas.
Thank You!
I used to teach this course at Pygmalion in London. It's fairly wideranging
and the material is well written. To get a look at the material you could
buy the manual from a local CTEC. If you're lucky they also teach the course
and will have it in house, otherwise they'll have to order it and this could
take a week or so. Certifies trainers have access online to the PDFs for the
course but you wouldn't be allowed to look at these, so buying the manual is
your only option. It'll cost ~100 ($150) and of course it is covered by
copyright and you could only really use it loosely. For the student manual,
also you'll not get the PowerPoint presentation - that's in the teacher
manual, but once you've decided on your content it's not too difficult to
create your own presentation.
BTW don't underestimate the amount of work to create a course like this,
especially if it is to contain practicals. The coursewriters at Learningtree
are extremely well paid for this material because it takes ages to produce
well.
Cheers,
Paul Ibison SQL Server MVP, www.replicationanswers.com
(recommended sql server 2000 replication book:
http://www.nwsu.com/0974973602p.html)
|||I completely understand the amount of work required of a class like this.
This isn't going to be a class perse...more or less to give the people in
operations a vedry high level overview of replication.
Edssentially, will be showing them the components of replication, how to set
up publishers, subscribers, etc., creating a pulication, trouble shooting.
In no way is what I'm going to be doing menat to take the place of occicial
Microsoft curriculum...
This is just menat to be an overview for people who are inoperations but are
not database guys.
"Paul Ibison" wrote:
> I used to teach this course at Pygmalion in London. It's fairly wideranging
> and the material is well written. To get a look at the material you could
> buy the manual from a local CTEC. If you're lucky they also teach the course
> and will have it in house, otherwise they'll have to order it and this could
> take a week or so. Certifies trainers have access online to the PDFs for the
> course but you wouldn't be allowed to look at these, so buying the manual is
> your only option. It'll cost ~£100 ($150) and of course it is covered by
> copyright and you could only really use it loosely. For the student manual,
> also you'll not get the PowerPoint presentation - that's in the teacher
> manual, but once you've decided on your content it's not too difficult to
> create your own presentation.
> BTW don't underestimate the amount of work to create a course like this,
> especially if it is to contain practicals. The coursewriters at Learningtree
> are extremely well paid for this material because it takes ages to produce
> well.
> Cheers,
> Paul Ibison SQL Server MVP, www.replicationanswers.com
> (recommended sql server 2000 replication book:
> http://www.nwsu.com/0974973602p.html)
>
>
Friday, March 9, 2012
method call works from .Net form and not from SQL CLR - EnterpriseLibrary used
Hello
I created a wrapper class for a function, and exposed it through CLR. However, if I call this function form SQL it blows up but if I call directly from a test Windows Form the call works fine.
The blow up is related to EnterpriseLibrary.Data, where my Queue class uses that library to do all data access call ops
Here's my wrapper class:
namespace inlineCLRsql{
public static class Wrapper{
public static void CallQueueEntry(int queueId, int deskNo, int missed){
inLineLib.Queue oQueue;
inLineLib.QueueEntry oQueueEntry;
oQueue = new inLineLib.Queue(queueId);
oQueueEntry = oQueue.callQueueEntry(deskNo, false);
Microsoft.SqlServer.Server.SqlContext.Pipe.Send(oQueueEntry.queueNum.ToString());
}
}
And this is my CLR SQL creation code:
CREATE PROC sp_CallQueueEntry
@.queueId int,
@.deskNo int,
@.missed int
AS
EXTERNAL NAME inLineLib.[inlineCLRsql.Wrapper].CallQueueEntry
GO
sp_CallQueueEntry 4,2,0
Here is what I get as a result
System.NullReferenceException: Object reference not set to an instance of an object.
System.NullReferenceException:
at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseConfigurationView.get_DefaultName()
at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseMapper.MapName(String name, IConfigurationSource configSource)
at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.ConfigurationNameMappingStrategy.BuildUp(IBuilderContext context, Type t, Object existing, String id)
at Microsoft.Practices.ObjectBuilder.BuilderBase`1.DoBuildUp(IReadWriteLocator locator, Type typeToBuild, String idToBuild, Object existing, PolicyList[] transientPolicies)
at Microsoft.Practices.ObjectBuilder.BuilderBase`1.BuildUp(IReadWriteLocator locator, Type typeToBuild, String idToBuild, Object existing, PolicyList[] transientPolicies)
at Microsoft.Practices.ObjectBuilder.BuilderBase`1.BuildUp[TTypeToBuild](IReadWriteLocator locator, String idToBuild, Object existing, PolicyList[] transientPolicies)
at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp[T](IReadWriteLocator locator, IConfigurationSource configurationSource)
at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp[T](IConfigurationSource configurationSource)
at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.NameTypeFactoryBase`1.CreateDefault()
at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.CreateDatabase()
at inLineLib.Queue.getNextQueueEntry(Int32 servedBy)
at inLineLib.Queue.callQueueEntry(Int32 servedBy, Boolean callMissed)
at inlineCLRsql.Wrapper.CallQueueEntry(Int32 queueId, Int32 deskNo, Int32 missed)
What can I do to fix this?
Cheers
M
This is almost a total guess - I've never used EntLib. However, I found some one else hit this issue when EntLib was not able to find the database in the application config file: http://www.experts-exchange.com/Programming/Programming_Languages/C_Sharp/Q_21833370.html
This is likely to be the same problem you're facing. I believe you can solve this by running the Enterprise Library Config tool and specify your config file as sqlservr.exe.config in the same directory as sqlservr.exe. Or you can try copying and renaming the config file your Windows Form app is using.
Hope this works.
Steven