Thursday, October 30, 2014

Love vs Anger

"Why We Shout In Anger"
A Hindu saint who was visiting river Ganges to take bath found a group of family members on the banks, shouting in anger at each other. He turned to his disciples smiled'n asked.
'Why do people shout in anger shout at each other?'
Disciples thought for a while, one of them said,'Because we lose our calm, we shout.'
'But, why should you shout when the other person is just next to you? You can as well tell him what you have to say in a soft manner.'asked the saint
Disciples gave some other answers but none satisfied the other disciples.
Finally the saint explained, .
'When two people are angry at each other, their hearts distance a lot. To cover that distance they must shout to be able to hear each other. The angrier they are, the stronger they will have to shout to hear each other to cover that great distance.
What happens when two people fall in love? They don't shout at each other but talk softly, Because their hearts are very close. The distance between them is either nonexistent or very small...'
The saint continued,'When they love each other even more, what happens? They do not speak, only whisper'n they get even closer to each other in their love. Finally they even need not whisper, they only look at each other'n that's all. That is how close two people are when they love each other.'
He looked at his disciples and said.
'So when you argue do not let your hearts get distant, Do not say words that distance each other more, Or else there will come a day when the distance is so great that you will not find the path to return.'

Thursday, September 4, 2014

Famous Books should be in Home

Sacred Books

1. Bhagavad geeta
2. Ramayanam
3. Maha Bharatam
4. Bhagavatham
5.Adi shankara charya books
6. Ramana Maharshi Books
7.

Famous Peoples Books
1. Nenu choosina america by ANR
2. Bapu educational videos and books.
3.

www.avkf.com

Friday, March 21, 2014

9 Crucial Tips Written By A Cop. This Might Save Someone's Life.

WRITTEN BY A COP: Everyone should take 5 minutes to read this. It may save your life or a loved one's life. In daylight hours, refresh yourself of these things to do in an emergency situation... This is for you, and for you to share with your wife, your children, & everyone you know. After reading these 9 crucial tips, forward them to someone you care about. It never hurts to be careful in this crazy world we live in.

1. Tip from Tae Kwon Do: The elbow is the strongest point on your body. If you are close enough to use it, do!

2. Learned this from a tourist guide in New Orleans. If a robber asks for your wallet and/or purse, DO NOT HAND IT TO HIM. Toss it away from you....chances are that he is more interested in your wallet and/or purse than you, and he will go for the wallet/purse. RUN LIKE MAD IN THE OTHER DIRECTION!

3. If you are ever thrown into the trunk of a car, kick out the back tail lights and stick your arm out the hole and start waving like crazy. The driver won't see you, but everybody else will. This has saved lives.

4. Women have a tendency to get into their cars after shopping, eating, working, etc., and just sit (doing their checkbook, or making a list, etc. DON'T DO THIS!) The predator will be watching you, and this is the perfect opportunity for him to get in on the passenger side, put a gun to your head, and tell you where to go. AS SOON AS YOU GET INTO YOUR CAR, LOCK THE DOORS AND LEAVE.
a. If someone is in the car with a gun to your head DO NOT DRIVE OFF, repeat: DO NOT DRIVE OFF! Instead gun the engine and speed into anything, wrecking the car. Your Air Bag will save you. If the person is in the back seat they will get the worst of it. As soon as the car crashes bail out and run. It is better than having them find your body in a remote location.

5. A few notes about getting into your car in a parking lot, or parking garage:
A.) Be aware: look around you, look into your car, at the passenger side floor, and in the back seat.
B.) If you are parked next to a big van, enter your car from the passenger door. Most serial killers attack their victims by pulling them into their vans while the women are attempting to get into their cars.
C.) Look at the car parked on the driver's side of your vehicle, and the passenger side. If a male is sitting alone in the seat nearest your car, you may want to walk back into the mall, or work, and get a guard/policeman to walk you back out.
IT IS ALWAYS BETTER TO BE SAFE THAN SORRY. (And better paranoid than dead.)

6. ALWAYS take the elevator instead of the stairs. (Stairwells are horrible places to be alone and the perfect crime spot. This is especially true at NIGHT!)

7. If the predator has a gun and you are not under his control, ALWAYS RUN! The predator will only hit you (a running target) 4 in 100 times; And even then, it most likely WILL NOT be a vital organ. RUN, Preferably in a zig-zag pattern!

8. As women, we are always trying to be sympathetic: STOP. It may get you raped, or killed. Ted Bundy, the serial killer, was a good-looking, well-educated man, who ALWAYS played on the sympathies of unsuspecting women. He walked with a cane, or a limp, and often asked "for help" into his vehicle or with his vehicle, which is when he abducted his next victim.

9. Another Safety Point: Someone just told me that her friend heard a crying baby on her porch the night before last, and she called the police because it was late and she thought it was weird. The police told her "Whatever you do, DO NOT open the door."

The lady then said that it sounded like the baby had crawled near a window, and she was worried that it would crawl to the street and get run over. The policeman said, "We already have a unit on the way, whatever you do, DO NOT open the door." He told her that they think a serial killer has a baby's cry recorded and uses it to coax women out of their homes thinking that someone dropped off a baby. He said they have not verified it, but have had several calls by women saying that they hear baby's cries outside their doors when they're home alone at night.

Please pass this on and DO NOT open the door for a crying baby — This e-mail should probably be taken seriously because the Crying Baby theory was mentioned on America's Most Wanted this past Saturday when they profiled the serial killer in Louisiana. I'd like you to forward this to all the women you know. It may save a life. A candle is not dimmed by lighting another candle. I was going to send this to the ladies only, but guys, if you love your mothers, wives, sisters, daughters, etc., you may want to pass it onto them, as well.

Send this to any woman you know that may need to be reminded that the world we live in has a lot of crazies in it and it's better to be safe than sorry.

Tuesday, December 24, 2013

Important Links

Telugu Literature:

http://teluguliterature.wordpress.com/

Telugu Language:

http://www.andhrabharati.com/bhAshha/index.html

Annamayya Keerthanas:

http://www.andhrabharati.com/kIrtanalu/annamayya/index.html

Adoption Center:

http://www.adoptionindia.nic.in

http://www.gotelugu.com/issue65/1783/telugu-stories/manam/

150 years survival food

http://www.goodshomedesign.com/survival-superfood-will-last-on-your-shelf-for-150-years-video/

http://www.homeveda.com/#

 



Wednesday, April 24, 2013

Family is Important

SON: "Daddy, may I ask you a question?"
DAD: "Yeah sure, what is it?"
SON: "Daddy, how much do you make an hour?"
DAD: "...That's none of your business. Why do you ask such a thing?"
SON: "I just want to know. Please tell me, how much do you make an hour?"
DAD: "If you must know, I make $100 an hour."
SON: "Oh! (With his head down).
SON: "Daddy, may I please borrow $50?"
The father was furious.
DAD: "If the only reason you asked that is so you can borrow some money to buy a silly toy or some other nonsense, then you march yourself straight to your room and go to bed. Think about why you are being so selfish. I work hard everyday for such this childish behavior."

The little boy quietly went to his room and shut the door.
The man sat down and started to get even angrier about the little boy's questions. How dare he ask such questions only to get some money?
After about an hour or so, the man had calmed down, and started to think:
Maybe there was something he really needed to buy with that $ 50 and he really didn't ask for money very often. The man went to the door of the little boy's room and opened the door.

DAD: "Are you asleep, son?"

SON: "No daddy, I'm awake".
DAD: "I've been thinking, maybe I was too hard on you earlier. It's been a long day and I took out my aggravation on you. Here's the $50 you asked for."

The little boy sat straight up, smiling.
SON: "Oh, thank you daddy!"
Then, reaching under his pillow he pulled out some crumpled up bills. The man saw that the boy already had money, started to get angry again. The little boy slowly counted out his money, and then looked up at his father.

DAD: "Why do you want more money if you already have some?"

SON: "Because I didn't have enough, but now I do.

"Daddy, I have $100 now. Can I buy an hour of your time? Please come home early tomorrow. I would like to have dinner with you."
The father was crushed. He put his arms around his little son, and he begged for his forgiveness. It's just a short reminder to all of you working so hard in life. We should not let time slip through our fingers without having spent some time with those who really matter to us, those close to our hearts. Do remember to share that $100 worth of your time with someone you love? If we die tomorrow, the company that we are working for could easily replace us in a matter of days. But the family and friends we leave behind will feel the loss for the rest of their lives. And come to think of it, we pour ourselves more into work than to our family.

Some things are more important.

Please LIKE and SHARE :)

Wednesday, April 10, 2013

From the Book of Yoga

  1. As life on this earth is characterised by incessant change, and nothing here seems to have thecharacter of reality, nothing here can satisfy man completely. The Bhagavad Gita has referred to this world as anityam, asukham, duhkhalayam, ashashvatam—”Impermanent, unhappy, the abode of sorrow, transient”. The sages of yore declared with immediate realisation that “Truth is One” and that the goal of human life is the realisation and the experience of this Truth.
  2. A real hero is not he who stands against bullets or risks his life in hazardous attempts, fights battles, dives into oceans and climbs high cliffs, but he who subdues his senses and overcomes his mind, recognises the supreme unity of life and casts aside dualities and desires. To achieve this is the duty of man; this is the immortal message of the sages of the Upanishads.
  3. Yoga is a perfect practical system of self-culture. Yoga is an exact science. It aims at the
    harmonious development of the body, the mind and the soul. Yoga is the turning away of the senses from the objective universe and the concentration of the mind within. Yoga is eternal life in the soul or spirit. Yoga aims at controlling the mind and its modifications. The path of Yoga is an inner path whose gateway is your heart.
  4. Self-sufficiency, impertinence, pride, luxury, name, fame, self-assertive nature, obstinacy,
    idea of superiority, sensual desires, evil company, laziness, overeating, overwork, too much mixing and too much talking are some of the obstacles in the path of Yoga. Admit your faults freely. When you are free from all these evil traits, Samadhi or union will come by itself
  5. Practise a few Asanas daily at least for a period of fifteen minutes. You will possess
    wonderful health. Be regular in your practice. Regularity is of paramount importance. Practise
    Bhujang, Salabh, Dhanur, Sarvang, Hala and Paschimottasan Asanas. Bhujang, Salabh and Dhanur will remove constipation and muscular pain of the back. Sirsh, Sarvang and Hala will help you in maintaining Brahmacharya, rendering the spine elastic and curing all diseases. Paschimottasan will reduce fat in the belly and help digestion. Relax all muscles in Savasana in the end.
  6. Pranayama steadies the mind, augments the gastric fire, energises digestion, invigorates the
    nerves, destroys the Rajas, destroys all diseases, removes all laziness, makes the body light and
    healthy and awakens Kundalini.

Friday, April 29, 2011

Tibco

SSL Configuration in Tibco EMS SERVER

There is a sample SSL configuration you should start with in <tibco_home>/ems/<version>/samples/config called tibemsdssl.conf.
Start it with “tibemsd -config tibemsdssl.conf”.
Take a look at the properties.
The EMS Server is using the certificate “server.cert.pem” as its identity, adn it will trust certificates that were signed by
client_root.cert.pem.
ssl_server_identity = ../certs/server.cert.pem
ssl_server_key = ../certs/server.key.pem
ssl_password = $man$WjtSRCpaXu7hoTkDlcEPr6KNKRr
# Server Issuer certificate(s).# Supports PEM, DER and PKCS#12.# This may be a part of PKCS12 specified by
ssl_server_identity
ssl_server_issuer =
# Trusted issuers of client certificates. Supports PEM, DER and PKCS7.
ssl_server_trusted = ../certs/client_root.cert.pem
So…you can use client_identity.p12 in your BW project as an Identity (there is a README in the certs directory explaining the relationships), and use server_root.cert.pem so you can trust the server.cert.pem by importing it into a Trusted Certificates folder in your BW project.
There are also SSL properties for FT heartbeats:
ft_ssl_identity =
ft_ssl_issuer =
ft_ssl_private_key =
ft_ssl_password =
ft_ssl_trusted =
ft_ssl_verify_host =
ft_ssl_verify_hostname =
ft_ssl_expected_hostname=
ft_ssl_ciphers =

Gems (Graphical Administration Tool for EMS)

Gems v3.2
Gems is a graphical user interface utility for TIBCO Enterprise Message Service (EMS). It can be used by JMS developers as a general purpose test debugging tool and by administrative support staff as a management and monitorig tool.
Gems provides the following main features:
•Server Monitoring. Server state and main statistics are automtically updated, warning and error limits may be configured. Server generated events are also captured.
•Server Management. Including, general server configuration, JMS destinations, JNDI factories, users/groups, permissions, bridges, routes etc.
•JMS support. Messages may be sent/received, queues may be browsed and message contents inspected. Selectors and filters may be specified.
•JMS Message Monitoring. Messages may be monitored (snooped) as they pass trough the server. Request and reply messages can be correlated to provide service response times.
•JMS Message Management. Eg; purging messages, copy messages from a queue to another queue on a different server.
•Charting. Server statistics may be charted in real time, data may be saved to CSV files for export to other tools such as Excel.
•Logging. Server statistics may be logged automatically when warning or error limits are breached.
•Security. SSL connectivity, view only mode.
•Customisable display and look and feel.
•Support for Managing and Monitoring TIBCO SubStation
Requires:
•Tibco EMS 4.x, EMS 5., EMS 6.x
•JRE 1.5 or higher

Tibco EMS Monitoring

If you are using Tibco EMS, you should be aware that there is a decent tool that comes with the Tibco SDK that allows you to monitor all activity that goes on in your broker. In the directory c:\tibco\ems\bin, you will find a command-line application called tibemsmonitor.exe. If you run this utility, you can see every connect/disconnect, every creation and destruction of a MessageProducer and MessageConsumer, every creation of a topic or queue.
tibemsmonitor -monitor <topic>
[-server <server-url>]
[-user <name>]
[-password <password>]
[-selector <text>]
[-short]
[-help]
[-helpssl]
tibemsmonitor -server “tcp://emshost:7222″ -monitor “>”
tibemsadmin [-server] [-user] [-password]
tibemsadmin.exe -server “tcp://emshost:7222″ -user admin -password admin123
tibemsd
[-config <filename>]
[-ft_active <active_url>]
[-ft_heartbeat <seconds>]
[-ft_activation <seconds>]
[-ssl_password <string>]
[-trace <items>]
[-ssl_trace]
[-ssl_debug_trace]
[-help]
tibemsd -config c:\tibco\cfgmgmt\ems\data\tibemsd.conf

How to handle corrupted message in EMS datastore?

Problem Description
When a message is corrupted in the EMS database, you may notice the following errors in the EMS log file:
SEVERE ERROR: Exception trying to read message from store.
ERROR: Exception trying to create message from store: IO failed.
SEVERE ERROR: Exception trying to create valid messages record, Invalid message.
SEVERE ERROR: Persisted message possibly corrupt.
SEVERE ERROR: Exception trying to create valid messages record, Invalid message.
When your client tries to consume the message, you may get a “javax.jms.JMSException: Corrupted incoming data message” exception.
When a corrupted message is sent to a client and the client application cannot process the corrupted message properly, the client will block successive messages sent to it. These messages will remain queued on the server and will not be consumed by the client.
Possible Reasons for Generating Corrupted Messages in the EMS Datastore
1. A hardware problem with the physical disk: Media error
2. Forced unmount of a physical disk when the disk is in use, or a hard disk in operation having been unplugged.
3. Locking problem, the record in the db file has been modified by different applications/threads of the application at the same time.
4. The EMS server receives a corrupt message.
5. The machine was terminated abruptly. For example: a running system in operation has been unplugged, etc.
Solution
When one or more messages are corrupted and a client cannot receive the corrupted messages, you can do the following to delete the corrupted messages:
1. If you have already enabled the “track_message_ids” then you should try to remove the corrupt message as follows. To enable track_message_ids, in EMS main configuration file, set: in tibemsd.conf
track_message_ids=enabled.
a) Use the tibemsadmin command (available in EMS_Home\bin directory) to set server console_trace = +MSG (or set log_trace if that is more appropriate).
b) Use the tibemsadmin command to set addprop queue trace.
c) When the server delivers the corrupted message to the consumer, the server should print the message ID.
d) Use the tibemsadmin command “delete message” with that message ID to remove the corrupted message.
e) Undo steps a) and b), if needed.
EMS 5.x can be configured to use a database to store messages. The following steps have been tested on a Windows host to configure EMS 5.x with a database. For other platforms, the steps will be similar.
Setup Steps:
1. Install EMS 5.x
2. Download and install JDK 1.5 or later
3. Download and install Hibernate from the link provided at the EMS 5.x download on http:
download.tibco.com.
4. Download the corresponding database JDBC drivers. They can be found on the Internet. The corresponding jar files for the JDBC need to be added to dbstore_classpath in EMS main configuration file.
For example:
1). MySQL InnoDB
MySQL Connector:
mysql-connector-java-5.0.6-bin.jar
2). Microsoft SQL Server
Microsoft JDBC Driver for SQL Server:
sqljdbc.jar
3). Oracle 9i and 10g
Oracle JDBC Thin Driver:
ojdbc14.jar or ojdbc5.jar
4). IBM DB2 Server 8.1 and 9.1
DB2 Universal JDBC Driver:
db2jcc.jar and db2jcc_license_cu.jar
5. Modify the sample EMS main configuration file used for database: c:\tibco\ems\5.0\samples\config\tibemsd-db.conf:
Modify the variables: dbstore_classpath, dbstore_driver_name, dbstore_driver_dialect, jar_library to reflect your own settings and database.
Here is an example which uses the Oracle 10g database:
==============================================
dbstore_classpath = c:\tibco\components\eclipse\plugins\com.tibco.tpcl.org.hibernate_3.2.5.001\hibe rnate3.jar;c:\tibco\components\eclipse\plugins\com.tibco.tpcl.org.com.mchange.c3 p0_0.9.1.001\c3p0-0.9.1.jar;c:\tibco\EMS\5.0\bin\antlr-2.7.6.jar;c:\tibco\EMS\5. 0\bin\asm-attrs.jar;c:\tibco\EMS\5.0\bin\asm.jar;c:\tibco\EMS\5.0\bin\cglib-2.1. 3.jar;c:\tibco\EMS\5.0\bin\commons-collections-2.1.1.jar;c:\tibco\EMS\5.0\bin\co mmons-logging-1.0.4.jar;c:\tibco\EMS\5.0\bin\dom4j-1.6.1.jar;c:\tibco\EMS\5.0\bi n\ehcache-1.2.3.jar;c:\tibco\EMS\5.0\bin\jta.jar;C:\tibco\EMS\5.0\databaselib\oj dbc14.jar;C:\tibco\EMS\5.0\bin\ojdbc14.jar
dbstore_driver_name = oracle.jdbc.driver.OracleDriver
dbstore_driver_dialect = org.hibernate.dialect.Oracle10gDialect
jre_library = C:\jdk1.5.0_06\jre\bin\server\jvm.dll
==============================================
6. Create database users for EMS usage in the database. The users should have permissions to create, alter, delete, update for table, index and sequence.
7. Modify c:\tibco\ems\5.0\samples\config\stores-db.conf to put your own database store information:
Example, in stores-db.conf, defines oracle database information:
$sys.failsafe
type=dbstore
dbstore_driver_url=jdbc:oracle:thin:adminfs/admin123@//osrv_1:1521/orclperf
dbstore_driver_username=adminfs
dbstore_driver_password=admin123
8. Modify the file queues.conf or topics.conf to define where the messages will be stored:
Example, in the file queues.conf:
TIBCO.quotes maxbytes=10MB,trace,store=$sys.failsafe
9. Use the schema export tool to export the EMS schema into database:
Example:
java -jar c:\tibco\ems\5.0\bin\tibemsd_util.jar -tibemsdconf c:\tibco\ems\5.0\samples\config\tibemsd-db.conf -createall -export
See the TIBCO Enterprise Message Service User’s Guide, Chapter 5, entitled “Running the EMS Server” for details about the schema export tool.
10. Start the EMS server using c:\tibco\ems\5.0\samples\config\tibemsd-db.conf
When defining the database stores in EMS 5.x, you will need to define the following parameters in stores.conf:
dbstore_driver_url = JDBCURL
dbstore_driver_username = username
dbstore_driver_password = password
The database password can be entered as clear text for two parameters: dbstore_driver_password and dbstore_driver_url.
1. dbstore_driver_password
You can also use a mangled password for the dbstore_driver_password. That is, you can use the tibemsadmin tool to mangle a database password and define the mangled password for dbstore_driver_password.
For example, you can run the tibemsadmin command to mangle a clear text password:
===================================================
tibemsadmin.exe -mangle
TIBCO Enterprise Message Service Administration Tool.
Copyright 2003-2008 by TIBCO Software Inc.
All rights reserved.
Version 5.0.0 V27 4/29/2008
Enter phrase to mangle:
Confirm phrase to mangle:
$man$-RV84410jfkIKs3GET2dmcc5MPs
===================================================
In stores.conf, you can define the mangled password for dbstore_driver_password:
dbstore_driver_password=$man$-RV84410jfkIKs3GET2dmcc5MPs
2. dbstore_driver_url
When defining dbstore_driver_url for an Oracle database, the URL format is entered as following:
jdbc:oracle:thin:/@:/{remote database name} If you don’t want to enter the clear text database password within the URL, you can define the Oracle service name (aliase name) for the database using the following syntax: dbstore_driver_url=jdbc:oracle:thin:@:/{dbservice name}
This way you don’t need to define dbusername and dbpassword in the dbstore_driver_url parameter.

Hawk rule for monitoring queue

You can use the ems admin API to get the queue stats and check against the flowcontrol value to find out if it exceeds 80%. Call the API using a script from hawk & send mail when it exceeds.
Please find the below code.
/*
* Copyright 2007-2010 SRIK Solutions Pvt Ltd Inc.
* All rights reserved.
* For more information, please contact us :
*
*
*/
import java.util.*;
import javax.jms.Topic;
import javax.jms.Queue;
import javax.jms.Destination;
import com.tibco.tibjms.admin.*;
//
// The tibjmsServerAdministrator class is used by the tibjmsPerfMaster class
// to change various settings in the EMS server.
//
public class tibjmsServerAdministrator
{
TibjmsAdmin[] _admin = null;
String queue = null;
String topic = null;
/**
* Creates an admin client on the specified server
* and then walks any routes to other servers creating
* admin clients on the discovered servers as well.
*
* @param serverUrl server URL on which to connect
* @param userName the administrator name
* @param password the administrator password
*/
public tibjmsServerAdministrator(
String serverUrl,
String userName,
String password)
{
Map map = new HashMap();
addAdmin(serverUrl, userName, password, map);
_admin = new TibjmsAdmin[map.size()];
map.values().toArray(_admin);
}
private void addAdmin(String serverUrl, String userName, String password, Map map)
{
try
{
System.err.println(“connecting as “+userName+” to “+serverUrl);
TibjmsAdmin admin = new TibjmsAdmin(serverUrl,userName,password);
ServerInfo si = admin.getInfo();
// enable statistics
si.setStatisticsEnabled(true);
admin.updateServer(si);
if (!map.containsKey(si.getServerName()))
{
map.put(si.getServerName(), admin);
RouteInfo[] ri = admin.getRoutes();
for (int i = 0; i < ri.length; i++)
{
if (!map.containsKey(ri[i].getName()) && ri[i].isConnected())
addAdmin(ri[i].getURL(), userName, password, map);
}
}
else
{
admin.close();
}
}
catch (Exception e)
{
e.printStackTrace();
System.exit(-1);
}
}
/**
* Create a topic on all servers.
*
* @param name topic name
* @param failsafe failsafe setting
* @param flowControl flow control setting
*/
public void createTopic(String name, boolean failsafe, long flowControl)
{
try
{
TopicInfo ti = new TopicInfo(name);
ti.setGlobal(_admin.length > 1);
ti.setFailsafe(failsafe);
ti.setFlowControlMaxBytes(flowControl);
System.err.println(“creating topic “+name);
for (int i = 0; i < _admin.length; i++)
{
_admin[i].destroyTopic(name);
_admin[i].createTopic(ti);
}
topic = name;
}
catch (Exception e)
{
e.printStackTrace();
System.exit(-1);
}
}
/**
* Create a queue on all servers.
*
* @param name queue name
* @param server name of queue’s home server
* @param failsafe failsafe setting
* @param flowControl flow control setting
* @param prefetch prefetch setting
*/
public void createQueue(String name, String server, boolean failsafe, long flowControl, int prefetch)
{
String fullName = name;
if (server != null)
fullName = name + ‘@’ + server;
try
{
QueueInfo qi = new QueueInfo(fullName);
qi.setGlobal(_admin.length > 1);
qi.setFailsafe(failsafe);
qi.setFlowControlMaxBytes(flowControl);
qi.setPrefetch(prefetch);
System.err.println(“creating queue “+fullName);
for (int i = 0; i < _admin.length; i++)
{
_admin[i].destroyQueue(name);
_admin[i].createQueue(qi);
}
queue = name;
}
catch (Exception e)
{
e.printStackTrace();
System.exit(-1);
}
}
/**
* Return the number of receivers from all servers
* for a particular destination.
*
* @param dest the destination
* @return the number of receivers for the destination
*/
public int getNumberOfReceivers(Destination dest)
{
int numReceivers = 0;
try {
for (int i = 0; i < _admin.length; i++)
{
DestinationInfo info;
if (dest instanceof Topic)
info = _admin[i].getTopic(((Topic)dest).getTopicName());
else
info = _admin[i].getQueue(((Queue)dest).getQueueName());
ConsumerInfo[] ci = _admin[i].getConsumersStatistics(null, null, info);
if (ci != null)
numReceivers += ci.length;
}
}
catch (Exception e) {
e.printStackTrace();
System.exit(-1);
}
return numReceivers;
}
/**
* Check if flow control is enabled for all servers.
*
* @return true iff flow control is enabled on all servers
*/
public boolean isFlowControlEnabled()
{
boolean flowControlEnabled = true;
try
{
for (int i = 0; i < _admin.length; i++)
{
ServerInfo si = _admin[i].getInfo();
if (!si.isFlowControlEnabled())
flowControlEnabled = false;
}
}
catch (Exception e)
{
e.printStackTrace();
System.exit(-1);
}
return flowControlEnabled;
}
/**
* Remove the destination from all servers.
*/
public void cleanup(String controlTopic)
{
try
{
for (int i = 0; i < _admin.length; i++)
{
if (topic != null)
{
TopicInfo[] info = _admin[i].getTopics(topic);
for (int j = 0; j < info.length; j++)
{
if (!controlTopic.equals(info[j].getName()))
_admin[i].destroyTopic(info[j].getName());
}
}
if (queue != null)
{
QueueInfo[] info = _admin[i].getQueues(queue);
for (int j = 0; j < info.length; j++)
{
_admin[i].destroyQueue(info[j].getName());
}
}
}
}
catch (Exception e)
{
e.printStackTrace();
System.exit(-1);
}
}
}

To add EMS server to TIBCO administrator, follow these steps:

Note: To add the ems server, both Administrator and EMS should be up and running.
1. Make sure the TRA installalled on the machine where EMS server is running.
2. Run Domain Utility from TIBCO_HOME/TRA/<version that matches to ur domain>/BIN/DomainUtility.exe (Windows) or .bin (Unix)
3. In windows you can double click the domain utility, but in unix use ./<PATH to TRA BIN>/DomainUtility
Note: To enable GUI mode in Unix, your desktop must have xwindows terminal like reflection,cygwin or xwindows etc. Puty does not support xwindows properly.
4. Choose EMS administration from the menu list.
5. Click Add EMS server to TIBCO domain and next.
6. Enter all the details that is required for EMS (Version, path of tibemsd executable (.exe in windows, .bin in unix)
7. Enter the port number, user name and password
8. Test the connection
9. Finish the rest
10. Stop the EMS and start from TIBCO administrator.

Installing the TIBCO EMS Central Administration Server

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
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 Client
Then 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.