While using the .Net client TIBCO EMS,
How to monitor outgoing messages from
my .Net Tibco client?
What is it exactly that you want to monitor, is it the actual messages on the bus/EMS or the workings of your client (not including the client libraries)? The first I ll answer below, the second you can handle with regular logging. I suggest log4Net or similar library for that.
I m going to send Application-level,
not jms-level, acknowlegements and
replies. How can I tell If the
application sent them or not?
I suggest you log this internally just above the client dll level (see next question).
If the client failed to send a message
will it throw an exception or store
the message to try again later?
Depending on the specific problem the EMS client dlls will either throw an exception or in the case of a lost connection, attempt to reconnect. In the second case the number of attempts depends on how the connection factory is configured (ask your EMS administrator).
The exceptions thrown by the client depend on the problem, they all inherit from TIBCO.EMS.EMSException and they are all listed in your API documentation(!).
Bottom line, Is there any tool enables
me to monitor activities(outgoing)
from client point of view?
There are several tools that will allow you to monitor the EMS and specific destinations. When monitoring destinations they will most likely use the monitoring topics mentioned by both Anders and c. liau. (a practical example is "$sys.monitor.Q.*.queue.sample"). Subscribing to a monitor topic is like subscribing to any other topic and is possible with the client libraries, you do not need a specific tool for this. You do however need elevated user rights.
It sounds to me like you have not gotten sufficient documentation with your client libraries. Personally I do not see the need for monitoring your destinations from your application, in fact I would strongly question that design. Correct exception handling and internal logging should be sufficient to solve the problem at hand.