Tuesday, October 12, 2010

SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred

Code: 0xC0202009
Source: Connection manager ""
Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Cannot generate SSPI context".

I got this error recently, and could find almost no useful posts about what caused it and how to solve it, so here's what I found. It's simple!
When the "domain guy" in our company setup the domain account that SQL Server Agent runs under up, he didn't check "password never expires", so the account's password had expired, causing all the Integration Services packages that connect to Windows Authentication connections to fail. I modified the account in Active Directory Users and Computers to never expire, reran the packages, and they succeeded.
So, to summarize, make sure the account you're using for SQL Server Agent is in a good state as your first level of troubleshooting!

If this helps you out, leave a comment to help encourage me to post more often!

Cheers,
Rick

Monday, July 12, 2010

ibm system i access error 1327

Where I work we (like most companies, I would imagine) have our My Documents folder automatically mapped to a drive on a network. I'm not sure if it's expressly this, or the fact that the drive is on Network Attached Storage, but either way we get:
Error 1327.Invalid Drive: :\
from the IBM System i Access for Windows Installer InstallShield Wizard when it's trying to computer space requirements.
Here's the fix:
  1. Save any open documents!
  2. Open regedit
  3. (insert warning about the risks of modifying your registry here!)
  4. Browse to HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal
  5. You should find the offending drive letter here
  6. Change it to a local drive (double click "Personal" and type in "C:\" without the quotes, for example, but if you don't know how to do that, call your IT professional)
  7. Install iSeries Access
  8. Repeat steps 4-6 above, but change it back to the offending drive
  9. Enjoy convenient access to your iSeries!
Hope that helps someone out!

Rick

Monday, January 4, 2010

Dealing with attributes that appear in more than one parent group

Sometimes you have an attribute in your dimension where the values appear in more than one grouping or category above it. Like the following:
Product     Product Category
Apple          Fruit
Apple          Snack

When you build this attribute in Analysis Services, you need to make the key for the Product attribute either a compound key, or build it off of something else that is unique, such as the business key. I don't happen to have the BK for Product, so I setup a composite key of Product Category and Product. If I didn't Analysis Services would choose one of the Product Categories and put all the measures in that Category when I was at that level of aggregation.
So, seems simple enough. The problem is that if I just setup the Product to have a composite key, I now get 2 Apple rows when I use Product as an attribute on a report outside of the Product Category->Product hierarchy. Note: if Product were 3 levels deep in a hierarchy, you would need to include all 3 levels. I also would get sorting based on Product Category and Product. I can switch the sorting pretty easily by having the sort based on Name instead of Key, but my users certainly don't want Apple to appear twice on the report.
The solution
Create an attribute with the composite key (don't forget the all important Attribute Hierarchies!), or base it on something unique like the business key, and give it a name such as Product for Hierarchy. Then create a second attribute (easily accomplished by dragging the field from the Data Source View pane of the Dimension Structure page to the Attributes pane) with the default settings (Product as KeyColumn, (none) as Name Column). Use the Product For Hierarchy for the Hierarchy, and rename it in the Hierarchy itself to Product. Then set the AttributeHierarchyVisible property to False, so it can't be seen outside of the hierarchy.
I routinely do this for many attributes so that I'm not forcing an analyst to use an attribute only via the hierarchy.

Hope this helps someone,
Rick