Wednesday, February 15, 2012

How not to forget subject in outlook

It’s very common sometimes we forget to add subject line while sending the emails. But it not leaves a good impression when you are sending official emails to important people.

To avoid this, just follow the simple steps mentioned below and see the result -

1. Open your outlook

2. Press Alt+F11. This opens the Visual Basic editor and then Press Ctrl+R which in turn open Project-Project 1 (left side)

3. On the Left Pane, one can see "Microsoft Outlook Objects" or "Project1", expand this. Now one can see the "ThisOutLookSession".

4. Double click on "ThisOutLookSession". It will open up a code pane.

Put below code in this window
 
5. Copy and Paste the following code in the right pane. (Code Pane) and save it

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim strSubject As String
strSubject = Item.Subject
If Len(Trim(strSubject)) = 0 Then
Prompt$ = "Subject is Empty. Are you sure you want to send the Mail?"
If MsgBox(Prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check for Subject") = vbNo Then
Cancel = True
End If
End If
End Sub


6. Save the file.
Now whenever u tries to send a mail without subject, it will raise a pop-up to remind you

Monday, February 13, 2012

Some New TIBCO BW Interview Questions


 1) What all palettes you
have worked in TIBCO BW 5.0? 
Answer - File palette, generall activities palette, jdbc palette, http palette, jms palette, parse palette, service palette, soap palette, wsdl palette.

2) What is the critical section in TIBCO Business works and what is it used for?
 
Answer - Critical section is used to sync process instances so that only once process instance executes the grouped activities at any given time. Any concurrently running process instances that contain a corresponding critical section group wait until the process instance that is currently executing the critical section group completes. Particularly used for controlling access to shared variables. Critical section is one of the group actions. Others are iterate, repeat until true, repeat on error until true, while true, pick first and transaction. If we select critical section as the group then we get two options. Single group and multiple groups.
Single Group
If you wish to synchronize process instances for a single process definition in a
single process engine (only one ear(instance) is deployed ), perform the following:
1. Create a group around the activities you wish to synchronize.
2. Specify Critical Section for the Group Action field.
3. Specify Single Group for the Scope field.
Only one process instance at any given time will execute the activities contained
in the Critical Section group.
Multiple Groups
If you wish to synchronize process instances for multiple process definitions, or if
you wish to synchronize process instances across multiple process engines,
perform the following:
1. Create a Lock shared configuration resource and specify a name for the
resource.
2. To perform the synchronization across multiple process engines, check the
Multi-Engine field of the Lock resource.
When the process instances are executed by the same process engine, locking
is performed in memory. When the process instances are executed across
multiple engines, the process engines must be configured to use a database for
storage, and a database transaction is performed to ensure that only one
process instance is executing the critical section group at any given time.
3. Create a group around the activities you wish to synchronize.
4. Specify Critical Section for the Group Action Field.
5. Specify Multiple Groups for the Scope field.
6. Use the Browse button in the Lock Object field to locate the Lock shared
configuration resource you created in Step 1.
7. Perform steps 3 to 6 for any process definitions you wish to synchronize.
Make sure you specify the same Lock shared configuration object for all
Critical Section groups.

3) If there are three activities in the critical section, jdbc update then a write file and then again jdbc update. If the second jdbc update fails then what will happen to the file written by write file activity?
 Answer - The contents of the file will persist.

4) What are different types of transaction groups supported in TIBCO BW?
 
Answer - Iterate, repeat until true, repeat on error until true, critical section, transaction, pick first, while true.

5) Can two queue receivers listen to the same queue? If yes, if the message arrives on the queue, when receiver receives it?
 
Answer - The queue which has made connection first. First come first serve.

6) If the message has hit the queue, and there are no receivers for it, and the receiver comes alive after 6 hours, what happens to the message?

Answer - Message stays on the queue.

7) If there are five messages and prefetch property is set to 4 then what happens?
 
Answer - Fetches 4 messages

8) What are the different types of variables available in TIBCO?
There are three types of variables available in TIBCO. They are -

1.  Global variables -  
Global variables are used for assigning constants a value which is used over a project
2. Process variables -
Process variables are again of four types. They are 1) Activity output 2) Predefined process variables 3)Error variables 4) User defined process variables. Predefined process variables include $_GlobalVarialbes and $_ProcessContext 
3.  shared variables -
User defined process variables could be defined at a process definition level and assigned a value by using an assign activity.

9) What is the difference between process variable and shared variable?
 
Answer -


10) What is the difference between job shared variable and shared variable? 
Answer -

11) How do u use get shared variable and set shared variable? 
Answer -

12) The first time you use a get shared variable does it throw an error? 
Answer -

13) How have you done error handling?
Answer -

14) What are the different acknowledgment modes for a message? 

Answer - There are 6 modes of acknowledgement. They are - 
1) Auto – message is acknowledged automatically 
2) Client – use confirm activity for acknowledgement 
3) TIBCO EMS Explicit – use confirm activity for acknowledgement, only available for TIBCO EMS
4) TIBCO EMS no ack 
5)Dups ok – message is acknowledged automatically on its receipt 
6) Transactional – when a transaction is included in a process definition. The message is ack when the transaction commits.

15) What is prefetch and failsafe?
Answer - Prefetch is fetching the messages from the server before receiver calls. Failsafe property enables to write persistence messages to the file with synchronous i/o calls.

16) How do you send a response from a web service?

Answer - We write to output to the queue from which we received the request.

17) What is the difference between soap event source and service palette?
 
Answer - Soap event source is used for single operation, single end point. Service palette is used for multiple operations, multiple end point bindings like http, jms.

18) If you want to count the number of times a particular job is called, how will you go about doing it?
 
Answer - Use job shared variable in a critical section.

19) If there are hundred messages lying on the queue, what will you do and which activity will you use to retrieve one message at a time?
 
Answer - JMS Queue receiver with confirm activity. Sequencing key in a misc tab of the configuration could also be used.

20) What is the sequencing key in the misc tab used for?

 Answer - It is used to call process instances in the order they are created.

21) What happens if I put a static value say ‘nitin’ in the sequencing key?

 Answer - All the processes which have this key in their sequencing key field will be executed in the order they were created.

22) What do you mean by max job and flow limit?

Answer -

23) What are durable subscribers?

Answer -

24) What is SQL direct? What is it used for?
 
Answer -  SQL direct is used to execute command dynamically using output of other activities. This activity allows you to execute commands which other activities in the JDBC don’t allow, like DDL command create table.

25) Can you change a value of a global variable at runtime?

Answer - You can change the value of a global variable when you deploy your project in TIBCO Administrator.
See the section on modifying runtime variables in TIBCO BusinessWorks Administration for more information on using TIBCO Administrator.
You can also specify values for global variables when starting a process engine on the command line. To do this, specify the following as a command line argument when starting the process engine:
-tibco.clientVar.<variablePathAndName> <value>
where variablePathAndName is the name of the variable you wish to set, including the path to the variable if it is contained in a folder. Value is the value you wish to set the variable to. For example, if you have a global variable named item1 contained in a folder named myGroup and you wish to set its value to 500, add the following argument to the command line when starting the process engine:
-tibco.clientVar.myGroup/item1 500