Archive for September, 2010

Installing Visual Studios 6 on XP

An Old one but a good one.

If you still have to support some sort of legacy C++ software and you need Visual C++ 6 or Visual Studios 6 to install on Windows XP, but you have a problem with the MSJava dependency then here is your solution

Create an empty file in the Windows system32 directory and rename it to msjava.dll

C:\WINDOWS\system32\msjava.dll

You should now be able to install Visual Studios 6 with no issues!!

Facebook Twitter Email Linkedin Digg Delicious

How to Set All Informatica Workflows to Unscheduled from a Script

So you have over 100 Informatica workflows and you need to stop them from running. Well, you can set the Integration service to “Safe” mode, but doing so won’t allow your developers to go in and look at the workflows. As of version 8.6.1 of PowerCenter you can only go into the workflows when in safe mode if you are assigned the Administrator role, and no one wants to make their developers administrators (do you?)

Ok, so here is your solution, run the batch file bellow, and watch as your workflows get uncheduled one at a time (note that i use SQLCMD, but you can use OSQL or ISQL, just adjust the command bellow):

This piece of code should set your workflows to unscheduled, and your developers can still have access to the workflows

This has worked well for me, specially when taking a production copy of a repository and restoring it elsewhere for testing

Facebook Twitter Email Linkedin Digg Delicious

Solving the “sun.security.validator.ValidatorException: PKIX path building failed” Error

sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

If you are here is because you got that error above and you are trying to figure out why, and how to solve it…

well, im here to help you get it solved fast so you can get back to whatever it is you were doing before you looked this up 🙂

  1. Get a copy of the .cer file, either right from the server you are trying to access, or by installing it to your machine then exporting it
  2. Get Portecle and Run it
  3. From Inside Portecle, click on “Open Keystore File”, find the cacert file for your Java installation (In my case it is C:\Program Files\Java\jre1.6.0_07\lib\security\cacerts)
  4. When prompted for a password, it will probably be one of the defaults, I used “changeit”
  5. Click on “Import Trusted Certificate”, find the .cer file from step 1, add it, agree to everything (specially if its a self signed cert)
  6. Hit the save button, and voila, your ssl’ing away

Note: If you have a jssecacerts file in your security folder, java will always look at the jssecacerts file first and Ignore your cacerts file, so you must get rid of the jssecacerts file before java will look at cacerts

Facebook Twitter Email Linkedin Digg Delicious

New Archives Page

There is a new archives page,

I went looking for a way to create a nice Archive page where every topic could be seen at a glance, but it turns out that I could not find anything that was descent, and everything I found wasn’t very recent

I saw that people really liked SRG Clean Archives and KG Archives, but the problem with either one is that they have not been updated since 2007  ::yikes::

So I just went ahead and installed and tested both.  Out of the box neither one of them worked.

After looking over the source code for both, it seemed to me that the code for SRG Clean Archives was just too cluttered (no pun intended here).  SRG refers to many different libraries and effects that I don’t really care for.  Like i said before, I just want a simple page.

KG Archive in the other hand is simple, one page of php code, easy to follow and tweak as you like.  I went over the code, made a few tweaks, and even included a short-code tag to replace the way that Kates Gasis, the author of the plug-in first intended to have the plug-in embedded.  This allowed me to clean up a lot of the regular expression matching in the code and make the code simpler and more WordPress friendly.

If you go checkout my new archives page, you can see the plug-in in action, it does what I need it to do, and it works well with WordPress 3.

I won’t be releasing my code changes to KG archive because the code belongs to Kate, Since Kate hasn’t updated the code since 2007, I hope Kate gives me permission so that I can make my own branch of the Plug-in and post in the official Word Press plug-in database

Facebook Twitter Email Linkedin Digg Delicious

September 11, 2010

As a New Yorker and an American, I could not let today pass without reflecting back to that Tuesday morning when the attacks happened.

I don’t think anyone will ever forget the attack and the lives lost that day.  I hope that in this very painful, memory filled day for so many families, that they can find hope, strength, and I just want to say that the city of new york and the country shares in your pain.

Never forget
9/11/2001

Facebook Twitter Email Linkedin Digg Delicious
ccm

How to FailOver Crystal Reports Server 2008

  • It is clearly stated on the SAP website, and I’ll quote:

Clustering, load balancing, and failover are not supported.

Well, that doesn’t mean failover won’t work, its just not supported by SAP.  Well, I have a solution for everyone that works beautifully for me, and yes, i’m currently using this setup in a production environment.

I just want to make 2 points, make sure you have the back up of CMS database and Filestore before trying the following steps.  Also, It’s been verified that the query works for ALL versions of Crystal Report Server / Business Objects Enterprise, so even though these instructions are written for CRS 2008, I’m pretty sure you can use this method for the other versions as well. If you do, and it worked for you, please drop a note on the comments section

OK, let’s get going!!

Software

  • Crystal Reports Server 2008 v1 with SP2

Servers

  • Server1 (Windows 2008 / 64bit / 2GB / VM)
  • Server2 (Windows 2008 / 64bit / 2GB / VM)
  • SQL 2005 Back-end
  • IIS7 – 64bit

Before Starting

  • I’m assuming this is a new installation. If you are trying to do this to an existing database it could be possible, but I’m not going to try to tackle that issue in this document
  • I’m assuming this install is being done in a Windows Server, with a MSSQL backend (Not MySQL, not SLQExpress) (Only Step 7 would be different, so if you can rewrite the query for you specific DB then I think this method will work for you)
  • I created one DNS alias, that points to the IP of server1, and it case the server fails, I can change the Alias to the IP of server2 (this way I don’t have to have my clients/users point to a different name or IP, its all done on the back-end)
  • When I installed the Crystal Reports Server, I installed it into its own “Site” and “Application Pool” in IIS7
  • I bound the New Site to the DNS Alias I created above, so the only way to reach the site is by the alias. The way I tested on each server, I added the alias and the loopback IP (127.0.0.1) to the host file on each server.
  • I setup a sync job using Robocopy, so it would keep the “Filestore” folder of the 2 Crystal Servers in sync (%Program Files%\Business Objects\BusinessObjects Enterprise $version$\FileStore)

Prepping the Failover Pair

1) Have both Crystal Reports Servers fully Installed and Service Packed

– Both Pointing to the same database or separate ones, you get errors if you install it to the same server, but that doesn’t matter, since we will be wiping out the configuration,
– Also, It doesn’t matter which order you install the Crystal Servers, since we will wipe out the database and refresh the configuration while setting up the Fail-over pair

2) Launch the CCM (Central Configuration Manager), and Shut down the SIA (Server Intelligence Agent) on both Servers

3) Update the SIA DB settings on both servers (Right Click the SIA, click “Properties” -> Click the “Configuration” Tab-> under the heading “CMS System Database Configuration” click the “Specify” button -> Choose Update Data Source Settings)

4) From Server1, right click on the SIA and Select Properties->Configuration->CMS System Database Configuration-> Specify -> Recreate the current Data Source.  This will wipe our your current CR database and add fresh records.

5) Once this is complete, it will prompt you for CMS, just Hit Ok, after that you will get a window that reads “Adding Servers”, ****It is very important that you allow this process to complete****

6) You will get a prompt titled “Central Configuration Manager with Some Instructions, just hit OK and then start the SIA

7) Wait a minute or two and then hit the “Manage Server” button , it should prompt you for credentials, and since the database has been wiped out, the Administrator password should be blank so just hit “Connect”

8) By now you should see all the services running and enabled. The one we care about the most here is Server1.CentralManagementServer, because we will end up deleting it from the database.

9) Stop the SIA, Fire up your Favorite SQL admin tool, and get ready to delete the Entry for the CMS by running the SQL Query bellow

You can also create a view, which will help in the futre for other “failovers”, I recommend this

10 ) Now after you run the query, find the row with ObjectName = SERVER1.CENTRALMANAGEMENTSERVER, and since we just recreated the Database from SERVER1, the Entry in the database will be SERVER1.CENTRALMANAGEMENTSERVER. Take note of the ObjectID

<img class="aligncenter size-full wp-image-514" title="query" src="http://pinchii.com/home/wp-content/uploads/2010/09/query.png" alt="" width="688" height="364" />

11) Now lets delete the CMS row from the Database, so now run a delete command
Delete from cms_infoobject6 where objectID=”CMS_ID”
********** DO NOT SKIP THIS STEP ****************

12) We are done with Server1, lets move on to adding Server2 to the Fail-over Pair.
First by launching the CCM, then locate the SIA (Server2) service ****DON’T START IT****

13) Click the “Add Server Intelligence Agent” button (server icon with the blue plus)

14) You will get the Add Server Intelligence Wizard, click Next
Name, Choose Server2 (Same Name as the SIA that Already Exists)
Port 6410
Pick “Create default servers on the new node”
Check “Recreate Server Intelligence Agent on local host……”

15) It will then take you to the CMS Configuration, for the New CMS port use port 6400, also specify one more time the DSN connection to the Crystal Server Database, the same database that Server1 is pointing to (uncheck auditing database source)

16) Just hit next until you get to the end, after that you will get a window that reads “Adding Servers”, ****It is very important that you allow this process to complete****

17) Once that is complete, start the SIA (Server2) Service, and wait for it to finish loading

18) Click on the Manage Servers Icon (server with a check mark), when prompted for credentials, just hit ok. You will now see that you have duplicate processes for both of your servers except for the CentralManagementServer, there should only be one named Server2.CentralManagementServer

This is pretty much it; you now have 2 servers that can be failed over to each other. If Server1 is your primary server, then use the Fail-back instructions bellow to get back from Server2.  With these instructions you can probably add more then 2 servers, I would guess you could probably put up to 5 servers or more and have them all as failover servers, but if you need more then 2 servers to fail over, you should probably be talking to SAP / Business Objects about a clustering solution

Failing Over

  1. So we assume that server1 died. It won’t power on, etc. (This means the SIA on server1 is down, obviously)
  2. Go to your SQL Admin tool, run the Query to view the CMS ObjectNames and Delete the Row that has the CMS information (Steps 7, 8 and 9 above)
    If you created the view:
    SELECT * FROM [CMS_ObjectNames6] WHERE (ObjectName LIKE '%CENTRALMANAGEMENTSERVER') OR (ObjectName LIKE '%CMS')
  3. Start up the SIA service on your failover server, give it a few minutes
  4. Update your DNS Alias to the Failover server, and you are good to go

Fail back

  1. In order to fail back to the original server, stop the SIA on your backup server
  2. Go to your SQL Admin tool, run the Query to view the CMS ObjectNames and Delete the Row that has the CMS information (Steps 7, 8 and 9 above)
    If you created the view:
    SELECT * FROM [CMS_ObjectNames6] WHERE (ObjectName LIKE '%CENTRALMANAGEMENTSERVER') OR (ObjectName LIKE '%CMS')
  3. Start up the SIA service on your failover server, give it a few minutes
  4. Update your DNS Alias to the Primary server, and you are good to go

UPDATE:

It seems that you can skip step 2 of the fail-over and the fail-back procedure.  As long as you follow the “setting up the fail-over pair” instructions, you just need to make sure that only One SIA is running at a time, if both are running at the same time, the SIA will start, but your CMS services wont, and you won’t be able to use either.

Facebook Twitter Email Linkedin Digg Delicious

Comments and Contact Me Enabled

So I decided to enable the Comments and Also fixed the Contact me Page, just in case anyone has any questions on any of my posts or just wants to say “Thanks”

Please note that I don’t collect your “comment” emails, rather I purge the emails (more like a DB update) once a week so that no one can get them. I hate spam as much as everyone else 🙂

Facebook Twitter Email Linkedin Digg Delicious

Decoding the Crystal Reports Server 2008 Database – CMS_InfoObjects6

I’ve been looking for a way to run some sort of audit or just a peak at what’s included in the Crystal Reports Server 2008 Database.  This database controls all the aspects of Crystal Reports Server including the parameters that are used to launch the WACS server, SIA, and the CMS (If you use CRS2008 you know what these terms mean, otherwise you wouldnt be looking at this blog right now)

So, in order to run some sort of audit on the database, you have to go through and look at the CMS_InfoObjects6 table.  This table contains all the information on CRS2008 including Nodes, Folders and Reports.

If you look at the database table itself you notice that alot of the fields are in “Binary Data” format which makes it almost impossible to look at, well, almost….

Here is a nice query, that will help you get started in understanding and using the CMS_InfoObjects6 database

There is really no real magic to this query, and nothing really special.  It tells you what the object names are, and converts the lastmodifydate  from binary to human readable format.  I have yet to figure out how to decrypt the SI_GUID, SI_CUID, SI_RUID and the Properties Field, but I will leave that for another day since the query above gives me the information I was looking for

And before I forget, I have to give credit to Andu over at the BOB forums his post is basically where this query comes from

Facebook Twitter Email Linkedin Digg Delicious

Create Shortcut to Mail Icon

So I had the need to publish the “Mail” icon to Citrix so that we can edit the profile of some users without allowing them to log in directly into the server.

If you need to create a shortcut to the Mail icon, whether in Citrix or the Desktop or anywhere else, then create a shortcut and assign it this path:

“C:\WINDOWS\system32\rundll32.exe” C:\WINDOWS\system32\shell32.dll,Control_RunDLL “C:\Program Files (x86)\Common Files\SYSTEM\MSMAPI\1033\MLCFG32.CPL”,@0

Note the X86 reference, that’s because my system is 64-bit, but if you don’t have a 64-bit system then just reference Program Files

Facebook Twitter Email Linkedin Digg Delicious

The printer installation failed. Operation could not be completed (error 0x00000643)

Before I start, I need to let everyone know that I use Windows 2008 as my laptop OS, so when I tried to install my Brother HL-2170W printer, I got the error

The printer installation failed. Operation could not be completed (error 0x00000643)

Well, Kevin Daub posted an article on his blog on how to fix this issue, basically go into Device Manager and delete the WSD print device.  Well, when I went looking, guess what, there is no Web Services for Devices (WSD) print device in Windows 2008, and I learned that this is by default.

So I figured that this is the reason why adding my wireless printer was failing, but how do I add WSD to windows 2008? Luckily I found article KB951449 in the MS Knowledge Base.

What the KB article says is:

  • Go into Server Manager and Add “Print Services” Role
  • Go into the Servers Firewall Configuration and Add an exception for the Network Discovery service

After doing that, Voila!, it all works as it should

Happy Printing!!

The printer installation failed. weOperation could not be completed (error 0x00000643)

Facebook Twitter Email Linkedin Digg Delicious
Go to Top