Deb's SQL Blog

This is where the subtitle goes :)

<November 2008>
SuMoTuWeThFrSa
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456


Navigation

Subscriptions



The state of things (a reflection on outsourcing)

This is a ranting vent post.  So if you choose not to read further I will understand :).

My job has been outsourced....and me along with it wierdly enough. I was lucky enough to land a position in less than seven days with another firm that offered me more money than the outsourcing firm did.  I was in order: shocked, pissed, angry, mad, depressed, shocked, resigned, and finally resolved.

They did me a favour.  The new position is doing things I enjoy (asp.net, sql server, conversions of old vb code) for more money and my commute goes from 35 miles to 15.  The reason I was able to land a new job so quickly could be many things, but I think the main things I had going for me:

Skills. I have an in-demand skillset of C#, VB.Net, ASP.Net and *lots* of database experience.

Communication skills.  I was told by at least three interviewers, including one over the phone that I was able to communicate well. I also like to think they liked my jokes. ;)  Of course there is a reason my job is not defined as 'entertainer' ;).   

Analysis skills.  One can't just be a code monkey or system hacker these days.  There needs to be some understanding of how business works. 

I do feel lucky. Not so many people, including some I have worked with are finding this as easy to deal with.  Its a tough market and this trend is showing no signs of slowing.  At least I went with my outsourced job. I think this is unusual.  I've not heard of anyone else being in this situation.

I start the new position in a few weeks.  Of course due the stress, i've managed to land a headcold. Figures.

I promise my next post is SQL related...really!

--deb

posted Wednesday, March 03, 2004 3:21 PM by orfda

One very annoying error...."General network error. Check your network documentation"

First of all I am sorry that I am not able to go to PDC. It sounds like a blast :) I always seem to not make the list of those whom work will pay to send and its a little high for me to pay for it out-of-pocket.

The past few weeks I have been programming a web service in c# that utilizes a few nice things.  I'm passing around authentication tickets created by the forms.authentication class into all of the methods in order to exploit  a role-based security model that the service is implementing.

After running through my role-discovery algorithm that is based on information from the windows network, and  a special roles table in the SQL server 2k database that the service can connect too, the permissions on the database are set by activating application roles.  This part works as designed.  I have SQL server application roles activating for the right reasons and the permissions are set on the connection correctly.  However I have spent the better part of three days hunting down the source problem behind the intermittant error that I reference in the title.

My environment for developement is MSDE (sp3), .net framework 1.1 and IIS (exact version forgotten).  All running on the same machine. The test client would be able to call the methods of the webservice fine 1 time, maybe a second time, and then boom!--General network error blah blah blah. I noticed right away I had extra connections on SQL server after the client disconnected. First though I had was 'ok--forgot to call a close() on a connection somewhere'.  Traced though the webservice and yes--close() was being called. Second thought--maybe the connection object needs to be disposed so i called dispose(), tested the client, same results, worked first pass, failed randomly on subsequent runs.  Started the IDE in debug mode and stepped through the webservice line by line and yes--the close() and dispose() were actually being called.  So I called the garbage collector and forced it to collect garbage for all generations. Reran the client--”general network error”.  At this point I decided I needed something chocolate....others would have probably gone for beer :) or to smoke. It was getting pretty frustrating.  I finally started commenting out steps of the webmethod's logic.  After commenting out the call to “sp_setapprole”,the client worked. Ok, w/o permissions to anything, but it was working and I was getting normal 'permission denied' errors. Hmmm.

Found this case on the knowlege base:

http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q229/5/64.asp&NoWebContent=1

Turned off resource pooling on the connection string as the case suggested and my problems have for now gone away. No more ghost connections. No more “General Network Error” gremlins.

Considering this is my first real webservice application, I was almost euphoric that i finally got around this demon.   I did some research on this error and it seems that one definitely needs to have the MSDE at service pack 3 for other reasons that cause the same-named error. The thing is a catch-all for sure and has many causes. I have also found that I needed to be careful about dispose()'ing of objects dealing with SQL server 2000.

So I wrote this up hoping that it might help someone else who might be visited by this demon. I think problems like this are what is turning my hair grey :(.

--debora

posted Wednesday, October 22, 2003 7:26 PM by orfda with 0 Comments

Designing a secure database application...well trying too :)

Well I thought i would be blogging on the wonderful new world of learning OLAP, but that is not the case.  Right now I am trying to design a secure n-tier application with a asp.net pages as as its front end, and a data access layer thar runs as a either a windows service or web service that connects to a layer of stored procedures on SQL Server 2000.

The question I am having trouble answering is what sort of security model to use on the database itself.  My preference is database roles with registered user groups from the windows network. This ties the user to the role and the role's permissions in the database. If the user changes role, and they change groups, the group registered on the database will  not need to be changed.

The suggestion from a dba colleage was application roles. The problem I have with app roles is the maintenance module now required to be built into the application. The application will now have to manage role changes, additions and deletions. Seems like a lot of overhead that could be managed on the network. The dba basically does not want any access to the database except via the application. My argument is that with the services layer, and role-based security, they will never really go 'outside' the application and they will not see anything they don't already have rights to see to begin with. This is all 'read' situations mind you, not update situations. I can almost buy the argument of locking the update routines to the application role.

So so far I have a planned mish-mash of network security, database roles, and application roles. Haven't even given thought to what I can lock down on the services layer ;).

I would appreciate any thoughts you might have for this situation.

--dao

posted Tuesday, September 30, 2003 6:42 PM by orfda with 1 Comments

the entire world is not a single cube....(or why i won't let them talk me into putting 20 dimensions on one cube)

Business process analysis.  Definitely needed before building multidimensional database objects. The problem i've had on the project i'm working on now is a lack of that knowlege on the user's part. They don't know what they need so they think they need EVERYTHING.  Problem is, using MOLAP storage, hanging more than 15 dimensions on a large fact table makes it like--SLOW. Haven't tried making large lummoxes using ROLAP or HOLAP, so can't tell you how that would perform. 

Techies gotta sometimes play business analyst. So last pass, i built them four cubes out of the same data and did some guesswork on logical reporting and analysis needs. Built one cube just for reports, and one just for analysis. Different ways of looking at the data. Had the last two cubes built along related-data rules. For example, one cube was all about financial-related stuff, and another about human resource-related stuff.   So basically i said, 'yes you can have the 20 different slicers and you can mix and match them, but you can't have all 20 of them at once.'  I put these cubes on the test database and let them have it, in a week or so of banging on them, we will all have a better idea what everybody needs/wants/wishes to have. 

So far they love the technology. I keep hearing things like 'wow--this takes me 5 minutes in Excel to put together something that took me 4 hours with regular query tool stuff'.

The other big data problem is the wish list. There is this wish to see this data sliced in a way that is not easily extracted out of the system. Sometimes, this is based on someone's spreadsheet where they do all this by hand, or even an Access database. If they can manage to show me their rules and I can automate them, we are in business, but sometimes, you just can't split the data the way they want because the information in the source data just isn't that flexible. This can lead to frowns.  Users always know what they don't have, but hey--sometimes miracles happen right? If i manage to pull off 'spreadsheet slicher # 45' i have an extremely happy camper. For now. hehehe

l8r,

--deb

posted Thursday, August 21, 2003 11:27 AM by orfda with 1 Comments

Hello Hello

Hello,

I suppose I should say something about why I wanted to start this about AS.

For the past 14 years i've worked on databases.  In the beginning, we had file systems with pointers from the files into each other as location access points. I had to maintain the home-grown software on this miniframe environment that distributed the indexes, assigned new entries into each file, deleted entries and handled updates. With only one other programmer in the shop, we wrote everything that handled the data to the user's interface via dumb terminals.

So when we reengineered this system into the client-server world I got to know Microsoft SQL Server 6.5, and like wow man, it did everything for you! No more low-level data management code! Just some stored procs, triggers, and making new tables was simple.  I realized we had been doing everything the hard way.  Along the way I picked up a working knowlege of Visual Basic 4, 5, 6 and now dot-net.

Dot-net is cool--so far i've not had to do any windows api calls to do get around the stuff VB doesn't let you do.

Recently I've been working on a project at work to look a creating OLAP cubes. Lot to learn!  I've just finished about a 2 month dive into the deep end of the pool with this technology.  Figured out some things that work, and many that don't.  So by now if you read this far you know I”m no expert at OLAP, but am very willing to learn the technology and do it right.

So far i've created DTS scripts to copy data down from different sources, and developed a sequence of stored procs to scrub the data into a form olap'able :).  Used that data to create cubes and for the most part the data has been matching its source.

Enough for now...i'm thinking about finally getting some certifications too. I just need to get past the fact i really HATE tests!

--dao, one of a rare breed--the Girl Geek.

posted Wednesday, August 06, 2003 5:35 PM by orfda with 1 Comments




Powered by Dot Net Junkies, by Telligent Systems