Archive for the author ·

Serge

·...

What is TIBCO EMS?

1 comment

Remark: this is a brief overview from the admin perspective. If you ask a developer or architect, then their views may differ greatly from what you find below :)

TIBCO Enterprise Message Service (EMS) is fully compliant Java Message Service (JMS) implementation from TIBCO with some enterprise-class enhancements. What is it? In general, from JMS FAQ:

The Java Message Service makes it easy to write business applications that asynchronously send and receive critical business data and events.

The Java Message Service defines a common enterprise messaging API that is designed to be easily and efficiently supported by a wide range of enterprise messaging products.

The Java Message Service supports both message queuing and publish-subscribe styles of messaging (topics).

It is main part of Enterprise Backbone, Enterprise Middleware and Enterprise SOA. Unlike TIBCO Rendezvous, where publishers and subscribers communicate directly without server, EMS represent dedicated server, hub which connects all clients and passes through itself all messages.

Better to see once than hear a hundred times. Installation process for EMS server is very simple, I slightly described installation on Windows platform in this post. On Solaris or other *nix we can run installer with [-console] option if X11 isn’t configured:
bash-3.2# ./TIBCOUniversalInstaller-sol-sparc.bin -console

New TIBCO Universal Installer will store configuration files and message storages separately from binaries and allows to have multiple environments on the same host, you must specify both paths. EMS is not required any additional components like TIBCO Runtime Agent (TRA), everything is included in the archive.

To start EMS manually with output to console, just execute tibemsd or tibemsd64 (depend on platform) with option [-config] and path to tibemsd.conf file. Later in production it will run as a system service on Windows (install or remove service using emsntsrg utility) or as a daemon in Unix. Start process from console is also good for debugging purposes, if an error somewhere in the configuration files and service isn’t running.

All EMS configuration stored in the configuration files and these files are read when the EMS process going up. Main file is tibemsd.conf: it’s contain service name, listening TCP port, links to other configuration files, logging options and etc. If start EMS without specifying tibemsd.conf file, it will try to find it near binary, if unsuccessful then conf files will be created near binary with default values.

The most of EMS configuration, like new user, new queue or bridge, performed using administration tools on the live system and become active immediately, no restart required. Then changes saved in the corresponding conf files to be restored when you restart the service. But it is also possible to modify conf files manually. Moreover, some parameters, like message storages location or log file name must be predefined in conf files and EMS restart is necessary. Before each change make sure to have fresh backup of the configuration files!

For EMS administration tasks some tools are available: tibemsadmin – command line administration tool provided with EMS, EMS plugin for TIBCO Administrator, Gems (Graphical Administration Tool for EMS) by Richard Lawrence, HermesJMS. Using these tools admin can manage topics, queues, bridges, users and so on. For monitoring EMS offers many options for logging and trace. Also, admin can subscribe to system topics beginning with “$sys.monitor.” for live evens monitoring (easiest using tibemsmonitor utility).

Files used to store messages will be created on the first start using parameters in the stores.conf file (before version 5 in tibemsd.conf). In the normal operational mode, messages may accumulate in the topics and queues if no recipients – files will grow when needed, and therefore it is necessary to continuously monitor, otherwise the service may become unusable. It is possible to predefine minimal size of those files, it will take some time to build files for the first time if predefined size is large, but help to avoid fragmentation. Shrink or truncate large files to predefined minimum is also possible. When EMS restarts, all persistent messages will be recovered, but it will take some time to recover if files are large. In general, when you upgrade EMS from 4.x to 5.x, all stores will be upgraded automatically. Downgrade or rollback is also possible using tibemsdb5revert.

To provide high availability, two EMS servers can run as active-standby fault-tolerant pair. The main requirement of this configuration is the simultaneous access to store files – Cluster File System is required. Veritas Storage Foundation Cluster File System as expensive enterprise solution example. Some variants with network shares or NFS are also possible but guaranteed uptime and messages rate can be much lower. Alternative approach – failover cluster with shared volume.

Starting with EMS version 5 it became possible to use a database to store the messages. This simplifies the creation of fault-tolerant pair – no need to create a shared file system, enough to configure two servers to the same database. So far I haven’t collected a sufficient pro and cons, if you have such please share in the comments.

And lastly few words about connecting clients. Usually, when your application must be integrated into TIBCO middleware, means that you need communicate to EMS only. The most of SOA oriented applications are ready to communicate with JMS, Java clients can use JMS classes. TIBCO ActiveMatrix BusinessWorks has JMS palletes. Applications must be able to work with the fault-tolerant pair of two servers, provide reconnection in case of connection failure, support authentication.

Useful links:


share and enjoy:
  • Twitter
  • Google Buzz
  • Facebook
  • LinkedIn
  • Digg
  • del.icio.us
  • Technorati
  • StumbleUpon
  • email

How to change admin password in TIBCO Administrator

1 comment

If you need to change password for admin user in TIBCO Administrator please keep in mind that it is not enough just to change the admin password from Administrator GUI. But whole procedure is not so complex.

  1. Always have full backup of Administrator configuration files and repository files or database!
  2. Change admin password in the Administrator GUI.
  3. Start DomainUtility on each machine in the TIBCO Domain, select Server Settings => Update Domain Credentials and change password there or use domainutilitycmd and ChangeDomainCredentials.xml as a template.
  4. Make sure that password has been changed in tibcoadmin_<domain>.tra file. Or you can put new password manually there like this repo.securePassword=#!tibco and use obfuscate utility to encrypt it.
  5. Restart Administrator daemon and Hawk Agents everywhere in TIBCO domain.

That’s all. But, if you change password in the Administrator GUI only, and Administrator service (on the Windows) or daemon (on the Unix) has been restarted as nothing is working as before, then you can find picture like this on your screen when you try to login into Administrator. If your daemon has been started using nohup utility as mine, then you have a chance to find little more in the nohup.out file:
com.tibco.infra.repository.RepoSecurityException: Can not read policy domain for repository server HM : Failed in authentication.

If you start DomainUtility at this time and try to change password there, following error will appear.

To solve this problem you need to disable security option in the tibcoadmin_<domain>.tra file
#repo.isSecurityEnabled=true
repo.isSecurityEnabled=false

then restart Administrator.

Now it is possible to continue the procedure from step 3: DomainUtility will work. When password will be changed, you can enable security back in tra file. Do not forget to restart Administrator daemon and Hawk Agents everywhere in the domain!

After all, redeployment of all applications may be necessary.


share and enjoy:
  • Twitter
  • Google Buzz
  • Facebook
  • LinkedIn
  • Digg
  • del.icio.us
  • Technorati
  • StumbleUpon
  • email

TIBCO Designer libstdc++.so.5 issue on Ubuntu 9.10 (Karmic Koala)

1 comment

After successful upgrade Ubuntu Linux from 9.04 (Jaunty Jackalope) to 9.10 (Karmic Koala) on my laptop, I’ve found that my TIBCO Designer is no longer works here:

./designer: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory

I’ve found that libstdc++.so.5 isn’t available in Karmic repos anymore but still in Jaunty here: http://packages.ubuntu.com/jaunty/i386/libstdc++5/download. You can download and install it:

wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-17ubuntu1_i386.deb
sudo dpkg -i libstdc++5_3.3.6-17ubuntu1_i386.deb

After that Designer runs great on Karmic.


share and enjoy:
  • Twitter
  • Google Buzz
  • Facebook
  • LinkedIn
  • Digg
  • del.icio.us
  • Technorati
  • StumbleUpon
  • email

Using TIBCO EMS with Storage Foundation Cluster File System

no comments

Here is the article on Symantec site. I can agree that installing TIBCO Enterprise Message Service (EMS) on Veritas Storage Foundation Cluster File System (CFS) is the best high availability and high performance solution. If your company really need 99.999% uptime, 50000 messages per second and ready to pay much for that.

Whenever we need to choose the most suitable solution, we must consider the various options. For example, if the SLA is required to ensure very high uptime, but not expected tens of thousands of messages per second, you can consider EMS options using NFS or HA Database for messages store. In the opposite case can be encouraged to use the failover cluster with shared cluster disk.


share and enjoy:
  • Twitter
  • Google Buzz
  • Facebook
  • LinkedIn
  • Digg
  • del.icio.us
  • Technorati
  • StumbleUpon
  • email

Installing TIBCO on Windows Failover Cluster – part 4

no comments

Continued from part 1, part 2, part 3. Now I ready to add my virtual cluster host TST00-TIB01 to TIBCO Domain. I will start DomainUtility (D:\tibco\tra\5.6\bin\domainutility.exe) on the first (Master) node and select Machine Management => Add Machine. Then change machine name to cluster resource name TST00-TIB01, specify TIBCO EMS tcp://TST00-TIB01:7223 as a transport, enter admin credentials for domain and for EMS, and press “Discover..”. My domain TIB01 will be discovered. Then mark “Machine is Logical” checkbox and enter its virtual IP address as it is in cluster. After confirmation, virtual host TST00-TIB01 will be in the domain and new Hawk Agent service will be created. Now I can start this service.

In the TIBCO Administrator new machine will appear, but first node shown as disconnected. It is happened as Hawk Agent which is responsible for this node was uninstalled and replaced by new TST00-TIB01 Agent. I will fix this later. Now I will initialize TIBCO EMS plugin to manage both EMS in Administrator.

To do that I will start DomainUtility again and select TIBCO EMS Plugin => Add TIBCO EMS Server. Then I will select domain and enter admin credentials, specify machine, where is my EMS is running, provide information about EMS itself. On the confirmation screen I can test connection to the EMS to be sure that all provided info is OK. As everything was fine and server was successfully added to domain, I will do the same for the second EMS. After that, both EMS shown in the Administrator as running service instances and now is possible to manage them using TIBCO Administrator GUI.

As my process is going well, I can start moving TST00-TIB01 Hawk Agent from services on the master node to cluster resources. First of all I will stop this service and copy whole content of D:\tibco\tra\domain\TIB01 folder to T:\tibco\tra\domain\TIB01 folder. Then it is necessary to correct all paths related to TST00-TIB01 in hawkagent_TIB01.tra file. Also check and replace related paths in hawkagent.cfg file.

This Hawk Agent application should be added as a cluster resource. To do that, I will open Cluster Management Console and select Add a resource => Generic Application, and enter path to the Agent binary. After confirmation, new resource will be created. In its properties, I will mark “Use network name for computer name” checkbox and define dependences: cluster volume where Agent’s files are, IP address and binded name, EMS 7223 as it provides service transport for this agent also. To continue, bring this Agent online. TST00-TIB01 status is OK now in TIBCO Administrator.

On the next step is special wrapped application has to be installed in cluster for both EMS. It will be used by Hawk Agent to query EMS status and display in TIBCO Administrator. Path to binary file and parameters you can see on the screenshot. Next, in properties I will mark “Use network name for computer name” checkbox and define dependences: hawkagent_TIB01 and EMS Server 7222. Then I will install second wrapper for second EMS: accordingly propFile will be TIBCOServers-EMS_7223.tra and in dependences will be same hawkagent_TIB01 and EMS Server 7223.

After all, everything has to be green, this is final picture for cluster.

Last step is restore Hawk Agent on the first (Master) node. I will start DomainUtility (D:\tibco\tra\5.6\bin\domainutility.exe) again on the first node and select Machine Management => Add Machine. Machine name should be S-TST01-TIB01 now. If transport and credentials are valid, domain TIB01 will be discovered. After confirmation, Hawk Agent on this server will be replaced back to original for the first node. I will start this service, then both nodes and cluster name should be green in TIBCO Administrator.

My newly created TIBCO Domain is ready to serve TIBCO BusinessWorks applications that can be installed as fault tolerant pairs on both nodes. Everything should work fine in this configuration in case any one node fails.


share and enjoy:
  • Twitter
  • Google Buzz
  • Facebook
  • LinkedIn
  • Digg
  • del.icio.us
  • Technorati
  • StumbleUpon
  • email

Installing TIBCO on Windows Failover Cluster – part 3

no comments

Continued from part 1, part 2. TIBCO Domain Creation. In my configuration I’d like to use TIBCO EMS as domain transport and store domain information in MS SQL Instance. Let’s start from installation of two EMS instances in cluster.

As I said, in my TIBCO Domain will be two EMS instances: one for production data, listen on default TCP port 7222, and second for service domain transport on TCP port 7223. On the node where my cluster service group TST00-TIB01 exists, I clone default EMS configuration from D:\tibco\tibco\cfgmgmt\ems\data to cluster disk into two folders: T:\tibco\ems\7222\data and T:\tibco\ems\7223\data. Actually, only one file is necessary: tibemsd.conf. All other configuration files will be created in paths specified in tibemsd.conf when EMS will be started for the first time. I need to correct paths in tibemsd.conf to correspond with current location on cluster disk. To specify path here use slash (/) instead of backslash (\). Important thing is setup log file and trace items for future EMS monitoring. Good idea to specify max size of logfile to enable log rotation. Trace items I prefer are: DEFAULT, +CONNECT, +DEST.

For second EMS instance files will be located in T:\tibco\ems\7223\data, I will set the paths accordingly. But one more things here: it is necessary to change listener TCP port to 7223 as it is will be second EMS instance on the same host.

Next step is remove existing TIBCO EMS Server and TIBCO EMS Multicast Daemon from services on the both nodes:
emsntsrg.exe /r tibemsd
emsntsrg.exe /r tibemsmcd
And then register two new instances also on the both nodes:
emsntsrg.exe /i tibemsd D:\tibco\ems\5.1\bin D:\tibco\ems\5.1\bin "-config T:\tibco\ems\7222\data\tibemsd.conf" 7222
emsntsrg.exe /i tibemsd D:\tibco\ems\5.1\bin D:\tibco\ems\5.1\bin "-config T:\tibco\ems\7223\data\tibemsd.conf" 7223

System services were created, so I can add these services as cluster resources. Put them under the cluster control, which will be responsible for their execution on one of two nodes.

In the cluster manager I will select my group TST00-TIB01 and click Add a resource => Generic Service. Then wizard will be started, where I can select one of my EMS service. Just confirm it then and it will be successfully created and configured as cluster resource.

But I need to tune this, I will change properties. Necessary to use network name for computer name for this service. And to add dependencies from network resources and disk.

Now it’s time to do the same for EMS 7223, bring both online and check log files to be sure that everything is up and running good. Default admin user on EMS is ‘admin’ with empty password. Next I will connect to each EMS using EMS Administration Tool and set new password for admin:
connect TST00-TIB01
set password admin [password]

Now I will continue to create new TIBCO domain on primary (Master) server. Domain Utility window still open from TIBCO Administrator installation. I will select master and press “Next” to continue. I have to enter new domain name, let it be TIB01. Then I will select UTF-8 encoding. Next, I mark “Show Advanced” checkbox and select TIBCO EMS as my transport. URL to connect is tcp://TST00-TIB01:7223 as I will use this EMS instance for domain transport. Also I will specify my EMS credentials.

TIBCO Administrator is web application running under Tomcat web server. On the next screen we can change default HTTP port 8080 to something else. For me default port is OK as it’s free on my nodes. Next screen is place to define administrator credentials for new domain: username and password twice. Remember well! It is possible to change it later but not very easy. Also it is possible to configure password policy here. Next screen to provide database configuration information. This DB will be used to store whole domain information. Next step is the final confirmation before domain creation. After that, TIBCO Administrator will be configured and new TIBCO Domain will be created. Two system services will be also created: one is TIBCO Administrator and second one is TIBCO Hawk Agent. I will go to Services and start both.

On the other host I will install secondary TIBCO Administrator server. To do that just point to “Secondary” in TIBCO Domain Utility. Then I need mark “Show Advanced” checkbox, and then specify TIBCO EMS as a transport and enter its URL. Then press “Discover”. Just created on the first node domain should be discovered. Next is necessary to provide the administrator credentials in order to add the machine to domain. After confirmation second server will join domain and two services will be created: Administrator and Hawk Agent. It’s time to start both.

Now I can connect to the web interface to see the result. After login, two my hosts will be shown as domain members. In the part 4 I will describe how to add virtual cluster host TST00-TIB01 and both EMS into this domain.


share and enjoy:
  • Twitter
  • Google Buzz
  • Facebook
  • LinkedIn
  • Digg
  • del.icio.us
  • Technorati
  • StumbleUpon
  • email

Installing TIBCO on Windows Failover Cluster – part 2

no comments

1-2-1Continued from part 1. The following installation process must be done on the both nodes. The first step when you installing TIBCO SOA products is TIBCO Runtime Agent (TRA) installation. As TIBCO doesn’t have x64 TRA yet, I have to use 32 bit installer on my 64 bit system: TIB_tra-suite_5.6.0_win_x86_32.exe. At this time, 5.6 is the latest minor release of TRA.

After welcome screen, I will scroll down and accept license agreement, next read notes and select custom install. List of products included in the TRA package will appear on the screen. You may suggest that on production server is no need to install designer, but it is not so, I’m faced with the dependence of certain components, such as TIBCO SmartMapper, from its designer libraries. My suggestion is install full suite. Next step is specify default installation home that will be used for all TIBCO products. I prefer to use “D:\tibco” folder. Some next steps allow me to install documentations for components and the last screen before files copying is installation preview and confirmation.

After all files are copied, will be offered the opportunity to install an additional database JDBC driver. You can use this opportunity to install an additional driver or do it later manually like me. After that installation summary screen will appear and installation will be finished.

Now it is time to install TRA patch release. The latest is 5.6.1, file is TIB_tra-suite_5.6.1_win_x86.exe. Patch release is not includes all TRA files, so it must be installed after latest minor release. Installation looks very similar to TRA installation, but is is update only: next, next, next, finish.

Installing TIBCO ActiveMatrix BusinessWorks is not more difficult than installing Runtime Agent. At this time minor version is 5.7, file name is TIB_bw-simple_5.7.0_win_x86.exe. After welcome screen, I will scroll down and accept license agreement, read notes and look at detected an established installation home – “D:\tibco” in my case. Custom setup type helps me make sure I install all the components. Installation preview screen do the same thing. After short files copying process TIBCO BusinessWorks installation will be finished.

Installing patch release 5.7.1 is even easier. File is TIB_bw-simple_5.7.1_win_x86.exe. Next, accept, next, next, next, finish.

As x64 EMS is available, I will use latest 64 bit version 5.1.3 in TIB_ems_5.1.3_win_x86_64_vc8.zip archive. To install TIBCO EMS from version 5 new TIBCOUniversalInstaller will be used. By the way, this new installer is also used to install TIBCO Rendezvous from version 8 if you need install it as complete standalone product not as limited TRA part. Looks like TIBCO decided to switch all the products in this new installer. Package distributed as zip file and size increased twice compare to old binary installer package. For me old installer was lighter than new. Fundamental change in the new installer is that now we can specify different installation environments and it helps to install and manage many instances of same product on one host.

Then I will select custom installation as usual to install full set. If you install TIBCO EMS on MS Windows platform, installer will install EMS as a system service. Next question will be concerning service startup type: manual or auto. Let it be manual, in fact it doesn’t matter in my case as I will remove this default service and install it later a little differently. On the next screen pre-install summary will be displayed and after press to “install” button TIBCO EMS installation process will be completed.

The last main product to install is TIBCO Administrator. The latest version at this time is 5.6.0 and I will install from TIB_tibcoadmin-epe-simple_5.6.0_win_x86_32 as it only 32 bit version available. Installation is very simple: accept license agreements, read notes, look at gray read-only installation folder name as it is old installer again, select custom type and leave administrator binaries and its documentation checked. After confirmation, installation process will be completed.

TIBCO Domain Utility will be started automatically. Do not close this window, I will continue with domain creation in the part 3.


share and enjoy:
  • Twitter
  • Google Buzz
  • Facebook
  • LinkedIn
  • Digg
  • del.icio.us
  • Technorati
  • StumbleUpon
  • email