An excellent start to using and understanding SQL Server DMV’s and better still it’s available for FREE!!
The pdf book and scripts can be
downloaded from here:
http://www.red-gate.com/community/books/dynamic-management-views
An excellent start to using and understanding SQL Server DMV’s and better still it’s available for FREE!!
The pdf book and scripts can be
downloaded from here:
http://www.red-gate.com/community/books/dynamic-management-views
In order to use the Source Code Control feature of Team Foundation Server 2012 (including Express Edition) with Visual Studio 2005 or Business Intelligence Development Studio 2005 you need to install the following on your client machine:
Pre-requisites:
TFS 2012 Team Explorer
Download: http://www.microsoft.com/en-gb/download/details.aspx?id=30656
Microsoft Visual Studio Team Foundation Server 2012 MSSCCI Provider 32-bit
Download: http://visualstudiogallery.msdn.microsoft.com/b5b5053e-af34-4fa3-9098-aaa3f3f007cd
To enable the MSSCCI plug within Visual Studio 2005 / BIDS 2005 go to Tools > Options, find “Source Control” and select the “Team Foundation Server MSSCCI provider”.
Find out more and download TFS 2012 Express for free here:
http://www.microsoft.com/visualstudio/eng/products/visual-studio-team-foundation-server-express
Read more about TFS2012 and VS2005 / BIDS2005 Compatibility
When attempting to browse an Analysis Services Cube in the BIDS Browser the following error message is displayed:
The query could not be processed: |
o XML for Analysis parser: The LocaleIdentifier property is not overwritable and cannot be assigned a new value. |
Resolution:
The language will be set to ‘Default’
Select your language ( e.g. English (United Kingdom) ) from the language drop down box and you’ll be able be able to browse the cube.
** UPDATED 11/10/12 **
I’ve come across a more permanent fix for this issue:
1. Open Start – Control Panel, find Location Settings (or Regional Settings or Region and Language).
2. Find the Format setting (which determines date and time formats).
3. Change it from your normal setting (in my case English (United Kingdom)) to English (United States). Apply the change.
4. Straight away set it back to what it was before (in my case English (United Kingdom)). Apply the change.
5. You will need to restart the BIDS if you have it open.
The error should not appear again for that user on the machine the fix was applied to.
BIDS Helper Overview:
A Visual Studio add-in with features that extend and enhance business intelligence development functionality in SQL Server 2005, 2008, and 2008 R2 BI Development Studio (BIDS) and SQL Server 2012 SQL Server Data Tools (SSDT).
New Release
A new version of BIDS Helper (1.6.1) is available here: http://bidshelper.codeplex.com/releases/view/88092
Release Notes
Fixed Issues:
Find out the steps and actions needed to change the Business Connector Proxy account in Microsoft Dynamics AX after you have EP installed, and SSRS and SSAS configured for EP by reading this post on the AX Support Team’s blog.
Here’s two great posts which contains download links to free Microsoft eBooks that are available for SharePoint, Visual Studio, Windows Phone, Windows 8, Office 365, Office 2010, SQL Server 2012, Azure, and more.
Troubleshooting AX 2009 Performance Issues can be sometimes frustrating when you’ve got a lot of users using the system and you want to trace one particular users session.
One way that can ease this is to log the user onto an AOS where the service account it runs under is different to your other AOS’s and where they are the only user on the AOS. This means you can trace only their session using the “Microsoft Dynamics AX 2009 Server Configuration” application along with SQL Server Profiler (In Profiler you can specify the service account to be traced).
In order to set this up there are two different options, option 1 is the preferred option.
Option 1: Install a new AOS on an existing server that has the capacity or a new server – you can allocate specific CPU’s for each AOS Service on your server within the “Microsoft Dynamics AX 2009 Server Configuration” application, I will cover this in another article at a later date.
Option 2: Use an existing AOS Service
Option 1: New AOS Service
1. Create a new Active Directory Login
e.g. CONTOSO\PerfMonAosSvc
2. Add user to ‘Performance Log Users’ group
This is required so AOS Tracing can be started via the Tracing tab found within the
“Microsoft Dynamics AX 2009 Server Configuration” application.
3. Install a new AOS specifying the new Service Account login details when prompted, specify not to start service after the installation is completed, this ensures you can install Service Packs and Hotfixes on the new AOS service.
4. Ensure you install any Service Packs or Hotfixes to your current environments level. During each install specify not to start service after the installation is complete and ensure you only select to update the AOS.
5. You may need to add ‘EXECUTE‘ permissions on any additional custom Stored Procedures that you may have in your AX Database for your new account.
6. Start the new AOS Service and check the application event log to ensure no warnings/errors are reported.
Option 2: Changing an Existing AOS Service
If you already have an existing AOS Service you want to configure for Performance Monitoring there are different steps to complete:
1. Create a new Active Directory Login
e.g. CONTOSO\PerfMonAosSvc
2. Create a SQL Server Login
USE [master] CREATE LOGIN [CONTOSO\PerfMonAosSvc] FROM WINDOWS WITH DEFAULT_DATABASE=[MY_DAX09_DB]
3. Create the Database Login
USE [MY_DAX09_DB] CREATE USER [CONTOSO\PerfMonAosSvc] FOR LOGIN [CONTOSO\PerfMonAosSvc]
4. Grant Database Role Permissions
USE [MY_DAX09_DB] EXEC sp_addrolemember N'db_ddladmin', N'CONTOSO\PerfMonAosSvc' EXEC sp_addrolemember N'db_datawriter', N'CONTOSO\PerfMonAosSvc' EXEC sp_addrolemember N'db_datareader', N'CONTOSO\PerfMonAosSvc'
5. Grant Stored Procedure Permissions
USE [MY_DAX09_DB] GRANT EXECUTE ON [dbo].[CREATESERVERSESSIONS] TO [CONTOSO\PerfMonAosSvc] GRANT EXECUTE ON [dbo].[CREATEUSERSESSIONS] TO [CONTOSO\PerfMonAosSvc]
Note: You may need to add ‘EXECUTE’ permissions on any additional custom Stored Procedures that you may have in your AX Database.
6. Add user to ‘Performance Log Users’ group
This is required so AOS Tracing can be started via the Tracing tab found within the “Microsoft Dynamics AX 2009 Server Configuration” application.
7. Ensure the Service Account has Modify, Read & Execute, List folder contents, Read, Write permissions on the Application Folder
e.g. C:\Program Files\Microsoft Dynamics AX\50\Application
8. Ensure the Service Account has Read, Write permissions on the AOS Log folder
e.g. C:\Program Files\Microsoft Dynamics AX\50\Server\MY_NEW_AOS_02\Log
9. Change the AOS service account user in Services to the newly created service account
10. Restart the AOS Service.
Please as always try this setup in your Test / Dev environment prior to implementing it in your Production environment to ensure you understand the setup required and that it fits your requirements.
Additional Reading:
A great 3 part series on AX Tracing from the ‘Premier Field Engineering’ Team
http://blogs.msdn.com/b/axinthefield/archive/2010/12/28/dynamics-ax-tracing-part-1.aspx
http://blogs.msdn.com/b/axinthefield/archive/2011/03/25/dynamics-ax-tracing-part-2.aspx
http://blogs.msdn.com/b/axinthefield/archive/2011/06/25/dynamics-ax-tracing-part-3.aspx
If you ever find an AX user’s account has been accidently deleted from Active Directory then is recreated with the same user name but they cannot access AX this is because they now have a new Active Directory SID that doesn’t match the SID against their user in AX.
This can be resolved by updating their SID in AX with the newly recreated user’s SID.
The Problem:
“User1” was deleted in Active Directory, it was established that “User1” shouldn’t have been deleted, so “User1” was recreated. Unfortunately “User1” couldn’t access AX though, they were receiving an Access Denied message.
Resolution:
First of all run the following powershell script (replace “User1” with your user) to find their SID
$AdObj = New-Object System.Security.Principal.NTAccount('User1') $strSID = $AdObj.Translate([System.Security.Principal.SecurityIdentifier]) $strSID.Value
As you can see their SID is returned as S-1-5-21-1214440339-1788223648-682003330-48397
Using the SID returned by the Powershell script run the following SQL Script (replacing the Database Name, SID and ID with yours) to update the newly created login’s SID
UPDATE [MY_DAX09_DATABASE].[dbo].[USERINFO] SET SID = 'S-1-5-21-1214440339-1788223648-682003330-48397' WHERE ID = 'User1'
Note: ID is not usually the same as the users AD login name, in this example it happens to be. Doing a simple select statement on the [UserInfo] table will establish the users ID that you need to use in the above SQL Statement.
“User1” will now be able to access AX again.
If for whatever reason you have an AOS crash, you can set the AOS service to restart automatically. This will ensure your AOS is back up and running quickly and does not rely on manual intervention to restart the service which may not always be on hand to resolve at the time of failure.
Within Adminstrative Tools > Services
Right mouse click on your AOS Service and select ‘Properties’
Select the ‘Recovery’ tab
Change the settings to your requirements
The options shown in the example will attempt to restart the service twice in any one day of failure with a 1 minute interval before it attempts to restart the service. The fail count is reset every 1 day.
Future posts will cover how you can be notified instantly by email of AOS Service crashes and of AOS Services not running.
Is a login box prompt all of a sudden coming up every time you attempt to browse your Sharepoint site, did it previously work okay and works from a different machine with the same user credentials?
If so you could be experiencing a similar problem I have come across with cached credentials.
On Windows 7 browse to:
Control Panel\User Accounts and Family Safety\Credential Manager
Under the ‘Windows Credentials‘ heading remove the affected users login details that appear for your Sharepoint server.
Try browsing to your Sharepoint site and the login box should not appear.
Thanks to this article for pointing me in the right direction, it also contains other common issues/fixes relating to the login box appearing:
http://sharepointsolutions.blogspot.co.uk/2008/06/how-do-i-make-our-sharepoint-site-stop_17.html?m=0
Want to know instantly when a user has been granted ‘Admin’ or ‘All’ user rights in your Production or Non-Production environments?
Of course you do! Implementing the script available to download below gives you control over your AX Environment with regards to knowing when permissions could have been granted incorrectly.
The script will create a trigger on the [USERGROUPLIST] table, if the user group ‘Admin’ or ‘All’ is added to a users profile then an email notification will be sent to your AX Administrators.
Follow the instructions within the SQL Script on what needs to be changed to configure it in your environment. As always please setup and test in your Dev/Test Environment to ensure you understand the setup and that it works as intended in your environment.
I also always advise sending the email notifications to a distribution email group as opposed to individually named email addresses as it means you only need to change the distribution email group for Administrator leavers/starters as opposed to having to change numerous pieces of code/jobs/notifications.
If you experience data mismatches between AOS’s it could be because the table is being cached by the AOS but is not syncing between other AOS’s.
So for example a user updates some data logged onto AOS01, a user then queries the data on AOS02 and it’s not there. Even the automatic nightly flush of the AOS caches doesn’t update AOS02 the only way to get the caches in sync is to restart both AOS’s.
You might see the following error messages in the AOS Application Event Log:
110 Object Server 01: Dialog issued for client-less session 1: Cannot edit a record
in LastValue (SysLastValue). User ID: , AdminUserSetup.
The SQL database has issued an error.
If you have been experiencing this issue then you may need to apply Hotfix KB261128 to resolve the issue or apply SP1 RU8 which also contains this hotfix.
Want to know instantly by email when users are creating batch jobs in AX 2009. This saves you having to constantly go and check the Batch Job form and work out what’s new.
I have created a script which can be downloaded below which will create a SQL DML insert trigger on your database, so when a user submits a process to batch you can receive an email informing you of the submitter and name of job they have submitted.
There’s a couple of pre-requisites that need to be adhered to:
1. Database Mail must be configured and working in your environment
2. You need to know the following details:
With these details you can perform a find and replace on the defaults values in the script before running the script against your AX Database, full details are provided in the script itself on how to set it up.
Download AX Batch Jobs Added Script (541 downloads)
DISCLAIMER: As always please try setting this up first in your test environment to ensure you understand the setup and whether it provides the functionality you require.
As a minimum every SQL Agent Job should have an operator (or DBA) notification setup ideally for failure or completion.
How do I check which operators are setup against my Agent Jobs I hear you say!
Well run this query below to find out. If you have any agent jobs return as ‘No email notification configured’ in the [Notify_level_email] field then an email notification is not setup and you should look into these as a priority (unless you have other methods of monitoring Agent Jobs that is!)
SELECT SJ.NAME, SO.[name],SO.[email_address], [notify_level_email] = CASE notify_level_email WHEN '1' THEN 'When the job succeeds' WHEN '2' THEN 'When the job fails' WHEN '3' THEN 'When the job completes' ELSE 'No email notification configured' END FROM msdb.dbo.sysjobs SJ LEFT JOIN [msdb].[dbo].[sysoperators] SO ON SJ.notify_email_operator_id = SO.ID ORDER BY SO.ID, SJ.NAME
Download Finding-which-Operators-are-setup-against-SQL-Agent-Job-Notifications (355 downloads)
The example below shows the operators setup against Agent Jobs and the email address the notification will be sent to, the first row shows that no operator is setup on this job for email notifications, if this job fails no-one may be aware.
There’s a few pre-requisites that your need to ensure are setup first for Agent Email Notifications to work:
1. Database Mail should be configured and working (see this great article on SQL Server Central if you don’t know how to setup Database Mail)
2. Agent Operators should be setup with valid email addresses (see my post on recommended operators to setup)
3. Agent Jobs should have an email notification configured ideally for ‘When jobs the fails’