google ads

Friday, January 24, 2014

Tasks in TIBCO BW project

How to divide the tasks for project management for TIBCO Business Works projects

Are you looking for lines of code to get the estimation

For various phases in SDLC, like Analysis, Design, Implementation, Unit Testing, System Testing, Deployment and Migration, Support and Maintenance, there are lot of tasks that needs to be done.

For each task, there are two major roles that needs to be played. Doer and Reviewer. For example if you are developing the code, there should be a developer and there should be a reviewer of the code.

Before even doing the tasks, we unit best practices, code templates, document templates for requirements gathering, design, unit test plan, system testing, deployment, change request etc...


Sunday, March 24, 2013

TIBCO EMS Central Administration


TIBCO EMS Central Administration Feature

First of all, this is a my own review comments and view points. This has nothing to do with the organization I work for.

This is a new feature added to TIBCO EMS 7.0. ITIBCO is trying to address in this feature which many of us are facing on a day to day operations and support of TIBCO EMS. The main issue is that suppose you have a multi tier environment setup as per your enterprise standard change management process. Typically we do have development, integration testing, quality assurance, user acceptance testing, pre production environment and production environments through which our changes must pass through to quality through the quality check process. And each of these environments might have their own messaging service setup. Each environments would be having one or more TIBCO domains and each domain could be having multiple TIBCO Enterprise Message Services running. Now to monitor the general health of each EMS service in each domain is a daunting task. Typically how we monitor EMS service is using TIBCO Administrator UI, where the EMS service would have been added through Domain Utility and hence available to monitor and manage. But this is very difficult process if a support person or a EMS standard body in your enterprise is responsible for monitoring even the general health of EMS bus in all environments. (S)he would have to login to each TIBCO administrator UI in each environment/domain and then to manual verification. Very inefficient process. 

TIBCO hawk allows us to use TIBCO EMS Hawk Plug-in and monitor the TIBCO EMS servers. But for this, we have to write our own rules, deploy them in each environment/domain as applicable. Then either get the alerts in email or check the alerts in TIBCO Administrator UI, which is available very inefficient process.

There exists a third-party tool, published in TIBCO Community, which is a Java based desktop UI tool, which has the capability to be configured with multiple TIBCO EMS servers and then check their health in one single dashboard. It also allows us to manage the JMS destinations in TIBCO EMS servers. It has out of the configuration rules, which would highlight the health of the EMS servers depending on number of pending messages etc. I like this tool, but it comes with a big warning that it is a unstable tool, and use it at your own risk. Second issue with this tool is, you have to login to the desktop and open the tool, which means, everybody from the Messaging support group should have access to this box. These are the limitations for this tool. What we are looking here is similar tool but should be accessible over the web. 

This is where, I guess, TIBCO EMS Central Administration tool fits in. TIBCO might have tried to address this space of the problem using TIBCO EMS Central Administration tool. It does have a UI which is accessible through web browser. But the requirement is that you TIBCO EMS server has to use JSON based configuration file instead of previous conf files. The JSON configuration feature for EMS is introduced in 7.0, which means previous versions of EMS servers can NOT be monitored by Central Administration tool. We have to upgrade the EMS servers to 7.0 effective immediately if we have to use Central Administration. This is a big limitation. The next issue is that JSON based configuration file for each server is a single big configuration file unlike the conf files, which were modularized and hence they were easy to manage. I am NOT in for one single large configuration file for everything. This means, each time you want to change a small thing you have search the whole big file. Different parts of the configuration might be spread in different part of the JSON config files making it difficult to manage, unless it is controlled tightly. Unlike GEMS dashboard view, where we can easily see the health of all the servers in a single page, in the central administration UI, we have to dig in to each EMS server to discover their health e.g. pending message count. This is not very intuitive design. One of the powerful advantage CA has is that, you can define a rule or configuration change in one central location and then deploy that to all EMS servers simultaneously. But I have not come across that requirement not too often. Nevertheless this is a right move by TIBCO. With little more improvements with UI and dashboard, it is going to be great.

These are some of the initial comments and impressions I got when I reviewed this tool. I might be completely wrong and you can always comment and suggest me good things about this tool if I have missed the point. 

Monday, April 30, 2012

File poller issues

You setup a process using file poller as the starter activity. In the process you are trying to read the file. Imagine the file sizes are large in the order of 10 MB. E.g 20 or 30 MB. Then the immediate issues you would are, if the files handles a not releases by a source application which is generating these files, and file poller tries to read these files, what result you would get? IOException? Deeper question is, when does the create event trigger? After the file handle is released? How to avoid reading incomplete files? How to improve the design of this process? One way could be, try moving the files to a temp folderr, and if that succeeds, the you know the file is written completely and you can read the file content to memory and then process it. But the imagine if the business requiment doses not allow you to move the file. Then what would you do? If for some reason, you come to know that the files are written at 1 am, then instead of using file poller, using a timer scheduled at 2 am, and reading the files would solve the issue. But what if you do not know and you have to process in near real time? On top of this, imagine of you are required to poll only the files that are modified today. How would you achieve that? Simple right? The output of file poller would give the last modified attribute which you an use to filter the files. Imagine this process is restarted because of the machine reboot, system issue etc, the poller would poll all the files again? How would you avoid duplicats? Thousand questions on a single activity. Using TIBCO simplifies lot of things, but you still have to care a lot to know. Another TIBCO low level blog from Rajendrq Parida. Cheers

Friday, December 2, 2011

How to write Hawk Rule to monitor all dependent systems for an application

My client has asked to monitor end-to-end systems for an application. I think of writing a hawk rule for the same. This hawk rule would monitor front-end web servers, middle systems like web services, ems servers, back end databases and would send out alert/email when any of the system is going in danger zone.

The fundamental question would be, how do I write a rule to monitor two data sources using one rule?

Thursday, December 1, 2011

Unlocking iProcess Procedures



delete from ipeadmin.procedure_lock

delete from [TibIPE2].[ipeadmin].[pm_objects_lock]

Kill a login session on Windows 2003 server


If maximum connection is reached for some server, we can kill the active login session.

1)      Go to any of the application server.

2)      Run - > “tsadmin” command

3)      Go to All Listed Servers under the <domain> and right click on that and select “Connect to computer”

4)      Connect to the computer where you’re not able to login.

As per axis policy, MAX of 2 users are allowed to login on the server.

Pick the victim J and Disconnect the session.

Load Balanced iProcess Engine Restart Sequence


iProcess Engine Restart Sequence:

Sequence should be
è Shut down SECONDARY (secondary_host)
è Wait till it’s entirely shutdown (swsvrmgr status –v    show all STOPPED for MACHINE ID 2)
è Shut down PRIMARY (primary_host)
è Wait till it’s entirely shutdown (swsvrmgr status –v    show all STOPPED for MACHINE ID 1)
è Bring up PRIMARY (primary_host)
è Wait till it’s entirely up (swsvrmgr status –v    show all RUNNING for MACHINE ID 1)
è Bring up SECONDARY (secondary_host)