Saturday, November 17, 2012

Look and feel of Tibco Administrator based on environment



When working with a lot of different environments, it is always good to be able to differentiate between all of them by just having a quick look at it. TIBCO Administrator is a great tool when you need to make some visual health check of a specific application or even for the full system. It becomes however difficult when you need to do that under stressful pressure because the production application does not behave the way it was in staging. You then start looking at the possible issues in the logs, global variables or even in the process definitions stats. After a few switches back and forth between staging and production, you start confusing the two of them. This task becomes even more difficult when you have your localhost running, plus the development environment as well as UAT server. You are not however without any help. You can check for the domain name in the top right corner. If your environments are setup properly, you should have different domain name allocated for each of them.

A TIBCO Administrator interface is running JSP pages on a Tomcat instance. It is therefore possible to change some of the images or style of the pages. The following steps will help you to change the heading logo as well as the right hand side menu for each environment.

1) The first step is to create the logos.
I've created some logos using the existing TIBCO Administrator images and adapting to my preferences. The size of the file must be 366x48 and saved as GIF (without changing too many the pages).





You also need filler for the rest of the page. The file size must be 1x48 and saved as GIF (without changing too many the pages).




2) Once you have your images, connect to the server where TIBCO Administrator is installed and go to the following location:
%TIBCO_HOME%\administrator\5.x\tomcat\webapps\administrator\jsp\com\tibco\administrator\ApplicationHeaderPaneUI\

3) Rename the current images as backup:
sculpted_logo.gif --> sculpted_logo.gif.bak
tiled_banner.gif --> tiled_banner.gif.bak

4) Copy the new images and rename them to the proper name:
sculpted_logo_[env].gif --> sculpted_logo.gif
tiled_banner_[env].gif --> tiled_banner.gif

5) At this point, you can already check the result. (Don't forget to clear the cache for this server otherwise Tomcat will cache the old images)


6) Now for the left hand side menu. Go and edit the file located in:
%TIBCO_HOME%\administrator\5.x\tomcat\webapps\administrator\jsp\com\tibco\administrator\ConsoleSelectorPaneUI.jsp

7) Around the line 10, you will have the colour used for the frame background (bgcolor="#FFFFFF" currently white). Replace it with the same colour as the one you used for your logo.
In my case, for Localhost:
bgcolor="#FFFFFF" --> bgcolor="#ff8328"
for Staging:
bgcolor="#FFFFFF" --> bgcolor="#c9ffbf"
for Production:
bgcolor="#FFFFFF" --> bgcolor="#285bff"

8) Save the file and just refresh the page to see the modification.

Reference:
Thanks to Ben's Blog for the above content:
http://b.amiot.free.fr/comments.php?y=10&m=03&entry=entry100303-033107

Saturday, May 05, 2012

TIBCO interview Questions

Will Active Enterprise Adapter palette activities override the existing transport type of adapter service?
Yes.
Does Adapter Service support RVCMQ transport for publishing?
 No
What is the difference between Invoke an Adapter Request-Response Service activity and Adapter Request-Response Service activity?
Invoke an Adapter Request-Response.
Request a response from external application to Adapter service
Adapter Request-Response Server activity
Request a response from adapter service to external application

Does copy file activity allow copying directories to new location?
Yes.  The Copy File activity allows you to copy files and directories to a new location.

Does Copy create file activity allows creating new directories?
Yes. The Create File activity creates a new file or directory with the specified name. When creating a file, you can also provide the file contents.

What is the difference between Concrete WSDL and Abstract WSDL?
The Abstract WSDL describes the interface of the web service which includes the format of request and response messages of each operation.
The Concrete WSDL describes the abstract WSDL plus transport information. Concrete WSDL contains messages, operations and transport specific information (JMS or Http), which is used by SOAP client.

What is the Difference between EMS and RV?
EMS
·         A producer sends a message to the central server. The server stores the message until it has delivered it to each consumer
·         Producer to server; server to consumers.
·         Store and forward queue protocol.
·         The central server stores all messages and delivery state for all its clients; it requires disk resources in proportion to total throughput volume.
·         Disk failure on a server host computer can be catastrophic, affecting all messages from every client. Many installations protect against disk failure using safeguards such as disk mirroring.
·         The central server is the master of overall delivery state.

RV
·         A producer sends a message to consumers. The producer stores the message until each consumer has acknowledged receipt
·         Peer-to-peer.
·         Stream-oriented protocol.
·         Each producer stores its outbound messages and some delivery state; it requires disk resources in proportion to its outbound volume.
·         Disk failure on a peer host computer affects only the messages that its programs produce or consume. However, disk mirroring for each individual peer is often impractical.

How you perform performance tuning on BW engine?
·         Max jobs
·         Flow limit
·         Activation Limit
·         Java heap size

What are included in EAR file?
·         Library builder
·         Alias library
·         Process Definitions
·         Shared resources
What are the maximum, we can configure in FT mode for EMS
At any point of time, can configure only two servers in FT.

What is the use of Critical section Group?
Critical section groups are used to synchronize process instances so that only one process instance executes the grouped activities at any given time

How do you use XSLT file?
The Transform XML activity allows you to transform an input XML document into the output specified by the given XSLT File shared configuration resource

How you send messages in a sequence order in ems?
By using Sequence Key property

Where do you configure database connection for EMS?
In Stores.Config file.

 How to set message priorities on the destinations using tibco EMS?
By specifying priority index at receiving end

Is that possible to change process or shared variable during runtime?
Yes, it's possible to change process or Shared variables at run time using assign and Set shared Variable activity.

In Mapping using XSLT, what is meang of (..) in the statement?
Parent loop

Can you deploy a BW engine on system which has only TRA?
No

What are the main parts of JMS message?
·         Header
·         Body
·         Properties

What is difference between AliasLibrary and LibraryBuilder?
A Library Builder activity is used to create a design time library which can used to share a set of TIBCO BW processes or resources across projects during the development phase.
An Alias Library is used to access some java classes which are part of a jar file.

What is BW memory management?
Memory saving mode can reduce the memory used by actively running process instances as well as potentially improve the performance of checkpoints. By default, memory saving mode is disabled, but you can enable garbage collection on specific process instances by setting the EnableMemorySavingMode. property to true. You can enable memory saving mode for all process instances by setting the EnableMemorySavingMode property to trueEnableMemorySavingMode. = true
Try this property adding your Deployment Tra file or BW Engine.Tra file and Redeploy it. But memory saving is very limited though, make sure if your process is claiming more heap and/or reaching to out of memory exception, there is something wrong with process design, verify each actitivity and cleanup all unused content.

Can we have 2 processes running on the same Http Connection and same Port No.?
No

Do we have to redesign the project if we make some changes in XSD's like Enumeration changes or just update them?
If you modified any property (Enumeration..etc) for any field in in Schema, you need not re-design your project. It's just property, it automatically imported where ever you’re using (diff process) this schema.

What is difference between Soap Event Source and Service activity?
Soap Event Source supports only one operation to be implemented, if you have a need to have multiple operations in one place, you can use services as it supports multiple operations in one place.

What is Check point? What is the use of it?
The Checkpoint activity performs a checkpoint in a running process instance. A checkpoint saves the current process data and state so that it can be recovered at a later time in the event of a failure. If a process engine fails, all process instances can be recovered and resume execution at the location of their last checkpoint in the process definition. If a process instance fails due to an unhandled exception or manual termination, it can optionally be recovered at a later time, if the process engine is configured to save checkpoint data for failed processes.

Is there any restriction on number of Activities in a process definition?
In general, there is no limitation to activities in process definition.

How to Read Excel file in process?
·         You can save the excel file as .csv file and you can use the same csv format by giving the column separator and line separator.
·         You can use JDBC Excel driver, or JDBC-ODBC Bridge and then ODBC Excel driver. Both methods allow read/write of excel files using SQL

What is the purpose of Event Candidate Key?
Expression used to evaluate whether the incoming message is appropriate for this process. This expression is specified in XPath, and only data from the incoming event is available for use in this XPath expression.

What is the use of Event time out?
The amount of time a message will wait (in milliseconds) if it is received before this task is reached in the process. If the event timeout expires, an error is logged and the event is discarded.
If no value is specified in this field, the message waits indefinitely. If zero is specified, the event is discarded immediately, unless this has already been reached

How do you achieve to store data from group activities for each iteration?
If you wish to store data from each successive iteration of a loop, you can create a process variable and use the Assign activity in the loop to store or alter data for each iteration. For Iterate and Repeat until True loops, you can optionally accumulate the output of each execution of one activity in the group into a list. This list becomes the group’s output and the list is available to subsequent activities in the process definition

What is the use of “No action Group”?
You can group a set of related activities, with a common set of transitions into and out of the group. If you do not wish for the activities in the group to repeat, specify the group action to be none. No action groups are primarily useful for specifying a single error transition out of the group so that if an unhandled error occurs in the group, you only need one error transition instead of an error transition for each activity. This behaviour is similar to a try...catch block in Java.

Why you need “pick First Group”?
Pick first groups allow process execution to wait for one or more events. The first event that completes determines which transition to take to continue processing. For example, as part of an order-entry system, when an order is placed, a check is made to see if the order can be filled from stocked inventory or from returned merchandise. Whichever system returns the information first is used to fill the order. If neither system returns the information about available inventory, the order time out and cancels


What are the different types of variables are available? And explain them?
·         Global Variables
These variables allow you to specify constants that can be used throughout the project. The constants can be specified and changed while designing and testing your project. You can also specify different values for each deployment of your project.
·         Process variables
These variables allow you to access various data in your project. For example, there are predefined process variables containing the process ID, project name, and other information. You can also create user-defined process variables for containing process-specific data.
·         Shared variables
These variables allow you to specify data for use across multiple process instances. Because multiple process instances can access the same variable, you can also synchronize access across processes when setting or retrieving the shared variable.

Difference between shared variable and job shared variable?
·         Shared variable
Shared Variable resource allows you to share data across process instances. All process instances can read and update the data stored in a shared variable. This type of shared variable is useful if you wish to pass data across process instances or if you wish to make a common set of information available to all process instances
·         Job shared variable
Job Shared Variable resource is similar to a Shared Variable, but its scope is limited to the current job. A copy of the variable is created for each new process instance. This type of shared variable is useful for passing data to and from sub-processes without creating an input or output schema for the called process.

What is coercion and what is the use of it?
Coercions allow you to specify a type for Process Data elements that are not a specific datatype. For example, a choice element can be coerced into one of the possible data types for the element, or an element of datatype any can be coerced into a specific data type.

What does the various types of timeout specifications mean in 'Wait for JMS Queue Message' mean?
receiverTimeout - advance tab
Specifies the polling interval to check for new messages.
This default interval is set by the custom engine property bw.plugin.jms.receiverTimeout.
If no value is specified for the property, the default polling interval is one second.
Explanation: Checks for new message at Queue for each specified interval time.


Event Timeout (msec) A message may arrive before this activity is executed.
This field specifies the amount of time (in milliseconds) a message waits if it is received before this activity is executed.
If the event timeout expires, an error is logged and the event is discarded.
If no value is specified in this field, the message waits indefinitely.
If zero is specified, the event is discarded immediately, unless this activity has already been executed
Explanation: Messages will be in the queue as specified(Event timeout) time. After reaching this waiting period, message will be elapsed from the queue.

processTimeout integer The time (in milliseconds) to wait for the incoming message.
An error is returned if the message is not received in this time limit. 
Explanation: Time to wait for the messages, upon reaching the time limit, an error transition is returned out of this activity