Thursday, May 31, 2007

SQLEXPRESS Needed for VStudio for DB Professionals

Running on Vista 64bits, I get this error:

An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error:26 - Error Locating Server/Instance Specified)


I have read that SQL Express is no longer needed if you have SQL server installed locally. However, this error is getting to me. This error indicates that my surface configuration is no set up to allow remote connections. However, this is already setup to allow remote connections:




So far it looks like the Visual Studio for DB professionals does not support SQL 2005 64bits.




I have compare the installation of the VStudio for DB professionals with other developers in here , and they do not have SQL Express installed. So the SQL Express dependency is indeed gone now. However, I am not sure if this is a supported scenario, so I am forced to install SQL express on my machine to see if this solves the issue.



Whoahhh... SQL Express 64bits... ;) nice.
Once I clicked NEXT, Visual Studio wanted the correct version of the vs_setup.msi that I originally used to set the install Visual Studio.

It runs through the setup screens and it stops when it is checking for the Editions? I have originally setup Visual Studio Team System. Then added Biztalk, TFS. Then I added the Visual Studio for DB Professionals. Then I added SP1 in the mix. So I am guessing it is getting confused as to what edition I am running.

I get this error:
Error 1706. An installation package for the product Microsoft Visual Studio 2005 Team Suite - ENU cannot be found. Try the installation again using a valid copy of the installation package 'vs_setup.msi'.




No matter what I do, it is still giving me the error. So I went and download the Microsoft SQL Server Express Edition and installed that one instead.

After installing the SQLExpress, I still cant get VStudio to open a DB project. You will have to go into the surface area configuration tool and set the defaults in there.



Close all instances of Visual Studio. Bring up the SQL Server configuration Manager and enable remote connections. Another thing you need to do to get this working is to install the SQLExpress Service Pack 2 and there are some other goodies at http://msdn.microsoft.com/vstudio/express/sql/download.

Friday, May 11, 2007

Who is reading my blog?

So I have a confession to make....I am addicted to Google Analytics.. :(

I initially started blogging to keep my thoughts in one place. I have heard/read from Dr. Venkat Subramaniam that if you take the time to document the bugs that you find and how you solved them. Then it will be a lot easier to remember the next time you encounter them. Also, it helps re-enforce the information in your brain, since you actually take the time to document it.

I have been blogging mainly for myself. Then, someone mentioned Google Analytics. All of the sudden, this has opened a whole new world to me. LITERALLY.!

I have started tracking traffic to my blog for about a week now, and all of a sudden I have realized that someone else is actually interested in reading my thoughts? yikes.~!

Once you sign up for the Google Analytics, then under the Marketing Optimization Report, there is another category:Visitor Segment Performance reports, drill down and you will find 2 sub-reports that are just plain COOL.

Geo Map Overlay Report: this is comparable to ClustrMaps. However, it is interactive. You can hover your mouse over any point, and it will tell you the number of visitors and the country for that spot.


Geo Location Report: this give you a lot of information at a glance, but the best is that it tells you what country of the world the person viewing your blog comes from..!


Of course there a lot of other reports (90+ reports). I like how Google went and categorized the reports into 2 main areas: Marketing Optimization and Content Optimization. On the Content Optimization you can get more details of what pages visitors came to, browser used, screen resolutions, OS versions, hostnames, etc.

We are not alone, we are *connected*... ;)




Wednesday, May 09, 2007

How to change the NameSpace inside InfoPath 2007 Template

When you design an InfoPath 2003 or InfoPath 2007 from an existing schema. The namespace of the schema is going to be hardcoded inside the manifest.xsf of the XSN package. There is very litle you can do to change this namespace.

This namespace will be the one that is always going to be sent across when you submit the form to a web service. The namespace will be stored in the xmlns:ns1= node.

Even if you remove every single element from the InfoPath form, this reference will be still be inside the form. You can verify this by saving the files from the designer:

In InfoPath 2007: Select File, then select Save as Source Files. Select a directory where you will like to put those files and click on the OK button to execute it.



In InfoPath 2003: Select File, then select Extract Form Files.... Select a directory where you will extract the source files and click on the OK button.



In each directory you will find a bunch of files. The one we are after is the manifest.xsf. This manifest is the one that has the namespace hardcoded into it. However, there is not an easy way to change the manifest and then put it back into the InfoPath Template.

A little trick to try is to change the extension of the template. For instance, if the Infopath template name is Template.XSN, you can change it to Template.CAB. ;) Thanks Monish for this tip.!

Now you can see all of the files inside the CAB archive. You can extract the manifest file out of it and change it, then put it back into the archive. Rename file back to XSN, and you will be done.!




neat.

Tuesday, May 08, 2007

Vista and Dual Monitors

Ever since Vista Beta 1, I have been dealing with the dual monitor problem. However, once I got a new Dell laptop (D820) with the NVidia Quadro NVS 110M video card, little annoyance became a NUISANCE. Running Vista on a laptop, Vista always insist that the external monitor that you connect, HAS to be my primary monitor..!!

Every time I connect a new monitor, Vista goes and make it my primary monitor, and then I have to manually configure it every time to use the laptop monitor as my Primary. Things gets worse if you have a docking station. On my dual monitor setup I am used to keep my task bar on the right side and keep the left monitor as an extended area.

Issue with this is that every time a screen refresh happens, it seems to forget its configuration. By screen refresh I mean: Screen Saver comes up, you locked your workstation, you undock the laptop, etc, etc. I see it working fine and in about 10 seconds it flickers, and set the monitor to 1-2 instead of 2-1.

This is my saved lineup:


after I come back from a screen saver, or a locked state, this is what Vista sets it to be:


For a while, I thought on becoming left handed, so this will not affect me. Eventually, I got so used to start the nVidia Control pannel and fixing this all of the time, that I've got used to.

After hearing so many people complaining on this issue and no-one finding a good solution, I took it to find the source of this annoyance.!

Enter TMM. Transient Multimon Manager. This is a feature of Windows Vista that is designed specifically for mobile users (laptops, etc..). What this feature does, is that it keeps track any changes to your display settings and try to provide a best experience possible. Right...;)

The TMM runs as a scheduled task. In Vista, bring up the Task Scheduler, and under the Windows tasks, you will see the TMM entry:

UPDATE [5/12/07]: It is by default under the MobilePC hive. I have deleted the TMM entry and then imported, so my snapshot is wrong. [thanks Jim for pointing that out.. :D]



You can right click on it and select to either Disable it or Delete it.

After you disabled or deleted, then click on the actions panel and click on the Display All Running Tasks link to see if it still running.


If so, then select it and click on the End Task button.


That's it.!! This shuffling of monitors will never happen again.

Notes: The only downside to deleting the TMM task, is that if you have dual monitors, and you have some programs that are displaying on the secondary monitor. If you un-plug the external monitor, then Vista will NOT put those programs back into your main monitor. Which means that those programs are now displayed somewhere else that you can't see or access. A workaround this will be to manually put all of the programs back to the main monitor before un-docking your laptop.

Other than that, I can see no other negative impact on deleting the TMM task. If you prefer, you can export the TMM task and save it to an xml file.

Thursday, May 03, 2007

BTW, ThumbPosition DOES HAPPENS..!!

So my life revolves around DebugView. I used it constantly when debugging Biztalk or Web Services. It is a great tool to have.

Then one afternoon, I am running MOSS on a VirtualPC 2007 (64bit) of course, and doing some weird calls from Vista into my VPC, when out of the blue, I see this message showing up on my debugview console:

MSEnv extensibility IClassFactory::LockServer(TRUE), lock count: 1 MSEnv extensibility IClassFactory::LockServer(TRUE), lock count: 2 MSEnv extensibility IClassFactory::LockServer(TRUE), lock count: 3 MSEnv extensibility IClassFactory::LockServer(FALSE), lock count: 2 MSEnv extensibility IClassFactory::LockServer(FALSE), lock count: 1 %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s ThumbPosition got called! That never happens. %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s


That's very strange, or should I say WTF?... A search on Live.Com give me a link to the scroll event types, ScrollEventType Enumeration.

I wonder which developer wrote this assert.!!

Anyways, my environment is Vista Enterprise 64bits, VStudio Team Suite with SP1, MOSS 2007, in case someone finds the same error.

It's a conspiracy man..:S

Tuesday, May 01, 2007

Reading appSettings from BTSNTsvc.exe.config in Vista


I am not getting into all of the discussions on what's the best way to store and retrieve information at run time when running Biztalk 2006. For small things, I like to use the BTSNTsvc.exe.config file.

For Windows 2003 you will open the file and add the keys you need, i.e:
<appSettings>

<add key="xxx.newYear" value="2009"/>

<add key="xxx.newXSN" value="http://site.com/template.xsn"/>
</appSettings>
Then inside your orchestration you can have code like this inside your expression/message assignment shape:

sXSNPath = System.Configuration.ConfigurationSettings.AppSettings.Get("xxx.newXSN");
sYear = System.Configuration.ConfigurationSettings.AppSettings.Get("xxx.newYear");

and you can test the values by writting them out:

System.Diagnostics.Trace.WriteLine("bts- XSD:[" + sNewXSNPath + "]");
System.Diagnostics.Trace.WriteLine("bts- Year:[" + sYear + "]");


However, if you are running Vista, these calls return blanks.

The reason for this is the new feature of Vista called Virtual Stores. What this functionality is that it allows your running program to save information into one of the secured folders (Program Files). When in fact, it is creating a virtual location for you. In my case, the actual location of the BTSNTsvc.exe.config file that Biztalk is looking for is located at:

C:\Users\awing\AppData\Local\VirtualStore\Program Files (x86)\Microsoft Biztalk Server 2006

and not in the

C:\Program Files(x86)\Microsoft Biztalk Server 2006 folder.

This could get confusing for some users, since there is no errors or warnings about it. I can see how some applications could get out of sync really quick.

For instance if you have the UAC turn on, and have been using a software that stores its data on the c:\program files\Cust_App\. Then after a couple of weeks/months, you decide to turn off the UAC, you will find, that your application will have missing data.!