Posts tagged ·

monitoring

·...

Installing the TIBCO EMS Central Administration Client

no comments

To following my previous post about EMS Central Administration installation, this part is about client.

There is the same Universal Installer by TIBCO, it helps to make installation process easy. Execute it, accept the license agreement, create a new or select an existing environment, check the summary and complete the installation.

TIBCO EMS Central Administration ClientThen I can star EMSCA from my Start menu. This is Eclipse, I have to create a new workspace. Then File => New EMS Central Administration Project. Enter host name and port, where is EMSCA Server is installed. Enter username and password to connect, select the deployment to create a project for.

Next step is synchronizing with EMS. TIBCO EMS => Synchronize Configurations With EMS Servers. Enter username and password, select EMS server to synchronize.

Now I can change the server configuration. Then save to SVN repository. TIBCO EMS => Save Configurations to Repository.

Then it is possible to deploy changes to the server. TIBCO EMS => Deploy EMS Project.

So, this was short description of the TIBCO EMS Central Administration, very helpful tool to manage configurations of multiple EMS instances.

Installing the TIBCO EMS Central Administration Server

1 comment

I’d like to share my experience about installation of the TIBCO Enterprise Message Service Central Administration (EMSCA) server and client. At this time, TIBCO provides EMSCA server software only for Linux (Red Hat Enterprise Linux 4 and 5 (x86), Oracle Enterprise Linux 4 and 5 (x86) and SUSE Enterprise 10 (x86)) and EMSCA client only for Windows, but as client is Eclipse based, I think that it could be ported easily.

I will start with the server side installation on my Red Hat Linux. The new TIBCO Universal Installer can run in GUI (default), console or silent mode. If you prefer GUI, don’t forget to set DISPLAY:
LOGINFROM=`who am i | cut -f2 -d"(" | cut -f1 -d")"`
DISPLAY=${LOGINFROM}:0.0
export LOGINFROM DISPLAY

Run the installer # ./TIBCOUniversalInstaller-lnx-x86.bin, accept the license agreement, create a new or select an existing environment. Installation will perform quickly. When installation is complete, it is necessary to do some post installation tasks:

  • Environment variables from the file <emsca_home>/1.0/bin/setenv must be set. Perhaps it is good idea to call this file from the user’s profile or add content of this file to the profile;
  • Make Apache run as the user ‘nobody’:
    # cd <emsca_home>/1.0/httpd/conf
    # vi httpd.conf
    User nobody
    Group nobody

    and make sure that user and group ‘nobody’ are in the system;
  • Configure an authentication in Apache:
    # vi httpd.conf
    AuthBasicProvider file
    AuthUserFile conf/users.txt

    Then prepare users file, I will define the ‘admin’ user only:
    # cd ../bin
    # ./htpasswd -c ../conf/users.txt admin
    New password:
    Re-type new password:
    Adding password for user admin

    Then check the file:
    # cd ../conf/
    # cat users.txt
    admin:GfwLuEIw320SY
  • Adding Subversion users and change folders owners:
    # cd /opt/tibco/ems/ca/1.0/repos/conf
    # cat pre-commit.perms
    admin

    So, ‘admin’ is already here. Next check/set owner for the repos and temp Subversion’s folders:
    # pwd
    /opt/tibco/ems/ca/1.0
    # chown -R nobody:nobody repos temp

    Owner should be the same user as running apache (‘nobody’ in my case).

Then I can start emsca:
# emsca start
Starting TIBCO EMS Central Administration
Started Apache httpd: pid=20119
Started Tomcat: pid=20140

and check Apache logs in the <emsca_home>/1.0/httpd/logs folder.

Next step is to create a new deployment server. Deployment server is one per project, can be one for many EMS.
# emsca server create rhl01
Created directory 'rhl01' in the repository
Created directory /opt/tibco/ems/ca/1.0/servers/rhl01
Created configuration file '/opt/tibco/ems/ca/1.0/servers/rhl01/conf/configuration.xml'
Created deployment server 'rhl01'

Now creating a new central administration agent. One agent per one EMS.
# emsca agent create rhl01 name=agent_EMS-SERVER1 path=/ems-server1.emsserver url=tcp://10.2.148.82:7222
Created agent on deployment server 'rhl01'

It is possible to provide a username and a password to connect to the EMS. If is not included, the agent uses ‘admin’ ad username and an empty password. ems-server-username – the username used to connect to the tibemsd, ems-server-password – used with ems-server-username to connect to the tibemsd. Also it has options to grant agent some additional rights, find in the docs.

To check EMSCA server use:
# emsca list
TIBCO EMS Central Administration
Deployment Servers
------------------
rhl01 (started)

# emsca status
TIBCO EMS Central Administration Status
Apache httpd is running: pid=1427
Tomcat is running: pid=1448

In the next post I will describe the client part installation and configuration.

Configuring HermesJMS for TIBCO EMS

29 comments

HermesJMS provides a GUI to access JMS queues and topics for common tasks such as sending messages, removing messages and copying messages between queues and topics. It’s one of some “must have” tools for EMS admins and application support team.

Get the latest installer from SourceForge: http://sourceforge.net/projects/hermesjms/files/ then run it:
java -jar hermes-installer.jar

Installation is very simple, just few screens: release notes, license agreement, installation path, components (here is only one actually), summary, files copying, shortcuts creation and installation finish.

To start HermesJMS run hermes.bat in your <installation_folder>\HermesJMS\bin. If you got error message “cannot find \bin\javaw”, make sure that you have JAVA_HOME system variable defined to your jre folder.

When Hermes started successfully, click on “Create new JMS session” button, preferences window will appear, select providers tab and right-clik on free space. Then press “Add Group” and enter group name. Right-click on “Library” and press “Add JAR(s)”. Look in <tibco_home>\ems\5.1\lib folder and select all .jar files there. Click “Open”, then let Hermes to scan jars for factories: press “Scan” button. Then press “Apply”. All libraries will be in the list like on my screenshot.

Go to “Sessions” tab and enter name for session: “My EMS” for example, then select “EMS” loader. Next step is select “com.tibco.tibjms. TibjmsConnectionFactory” class and “Tibco EMS” plugin. Order is very important: select loader, then class, then plugin. Right-click on free space in plugin section and press “Add property”. You have to enter all three properties: username, password and serverURL, do the same for Connection Factory, then press “OK” to save and close properties window.

Now we can connect Hermes to our EMS. Let it discover queues and topics, press “Discover queues and topics from the provider” button. Then confirm replacement of the current set of destinations and list will be updated. That’s all.

If you need more information: HermesJMS home.

TIBCO Hawk microagent and eventlog.out file growing

no comments

We recently encountered a situation when the hawk\bin\eventlog.out file grew, until it ran out of disk space. This is a known bug: we can’t configure or disable eventlog.out file even if we don’t use Windows event logs monitoring microagent rules.

This has been fixed in Hawk 4.8.1 Hotfix 3:

1-83ZKPM
In the Eventlog microagent, the logging events in the eventlog.out
file kept growing and could not be turned off. This has been fixed.

You can download this or latest hotfix from the TIBCO support ftp server as Hawk hotfixes are cumulative.
To install stop all Hawk services, then just copy these files from the hotfix archive and replace the ones that already exist:

  • /hawk/bin/tibhawkhma.exe
  • /hawk/lib/agent.jar
  • /hawk/lib/console.jar

If you run 64bit Hawk, take /hawk/bin/tibhawkhma64.exe from archive and save it as /hawk/bin/tibhawkhma.exe

By the way, some other important things were fixed in the Hawk 4.8.1 Hotfix 3 and Hotfix 4, so please keep your Hawk agents updated.

TIBCO Hawk NoClassDefFoundError issue

1 comment

On the Windows platform you can experience java.lang.NoClassDefFound Error when starting Hawk Agent or Hawk Display. In my example I use TIBCO EMS as a transport for Hawk messaging and issue arose after upgrade EMS from version 4 to version 5 on the server. The reason is that in EMS version 5.1 paths to java class libraries are: <Tibco_Root>\ems\5.1\lib\jms.jar; <Tibco_Root>\ems\5.1\lib\tibjms.jar; <Tibco_Root>\ems\5.1\lib\tibrvjms.jar; <Tibco_Root>\ems\5.1\lib\tibcrypt.jar;
In EMS 4.x. paths were: <Tibco_Root>\ems\clients\java\jms.jar; <Tibco_Root>\ems\clients\java\tibjms.jar; <Tibco_Root>\ems\clients\java\tibrvjms.jar; <Tibco_Root>\ems\clients\java\tibcrypt.jar; <Tibco_Root>\ems\clients\java\jaxp.jar; and they remained in the Hawk configuration.

On windows this configuration is stored in the registry. Just open regedit and modify three classpath strings under HKLM\SOFTWARE\Tibco Software\TIB/Hawk\<version>.

For TIBCO Rendezvous transport situation can be the same, if path to used jar <Tibco_Root>\tibrv\lib\tibrvj.jar; was changed.

About classpath and Hawk. In general, NoClassDefFoundError is a Java (JVM) error that occurs when a class needed to run a Java program cannot be found. Here are Hawk is Java program and classes (a set of dynamically loadable libraries that Java applications can call at runtime) in the jar files mentioned above. Classpath is an argument that tells the JVM where to look for user-defined classes and packages in Java programs.

On Unix in the startagent startup script for TIBCO Hawk Agent for example, you can find something like this:
# If EMS_ROOT is set, add EMS jars files.
if [ ! -z "$EMS_ROOT" ]; then
JARFILE="$JARFILE:$EMS_ROOT/clients/java/jms.jar"
JARFILE="$JARFILE:$EMS_ROOT/clients/java/tibjms.jar"
JARFILE="$JARFILE:$EMS_ROOT/clients/java/tibrvjms.jar"
JARFILE="$JARFILE:$EMS_ROOT/clients/java/tibcrypt.jar"
fi
# Add jar files for RV.
JARFILE="$JARFILE:$RV_ROOT/lib/tibrvj.jar"
# Add existing CLASSPATH environment variable to class path.
JARFILE="$JARFILE:$CLASSPATH"

Here are the same classes and classpath variable. So, please keep in mind this.