Thursday, May 5, 2016

Tibco BW Issues


Purpose. 2
Audience. 2
Scope. 2
Topic Wise List of Questions. 2
XPath Builder 2
Others. 2
SOAP. 5
FILES. 5
JAVA.. 5
Active Enterprise Adapter 6
Mail 6

Q1. 6
  

Purpose

The purpose of this document is to provide a list of problems encountered with the usage of BW.

Audience

This document will be useful for people intending to use BW for deployment.

Scope

The document describes the problems with their solutions/suggestions encountered by various people when using BW.

Topic Wise List of Questions


XPath Builder


Q1.
a) How to Convert date format from MMDDYYYY to DD-MON-YYYY format?
     Eg. 02102005

A1.
Select function from XPath Formula Builder and use concat and string function to convert.
Use concat(substring(Date,1,2),"-",substring(Date,4,2),"-",substring(Date,7,4))
and it will give the output as 10-02-2005.

Q2.
If the data has a string containing a quote, how to escape the "'" character in the xpath?

A2. Go to xpath functions > quotes > double quotes. This would escape the quotes.

Q3.
Is there a wa to convert the standard Date format (i.e.,Gregorian) into Julian date format by using XPath functions in BW?

A3.
There is no function in XPath to convert Julian date. BW Date format XPath functions are based on java.text.SimpleDateFormat. So the date formatting functionality is limited to the format available in SimpleDateFormat.

Java custom functions is the only solution.

Others


Q1.
Where do the global variables in BW get stored? How can they be edited without using the designer?

A1.
Global Variables for a particular project can be found in the defaultVars/defaultVars.substvar file. This file can be manually edited without starting the Designer.

Q2.
A complex element(say root) has three elements (a, b, c).
Is there any way to convert this complex element into an array (say, myArray), such that
MyArray[1]=a;
MyArray[2]=b;
MyArray[3]=c;

A2.
In the process definition have a mapper (Map-Data) with input as root (complex)
--a
--b
--c
Have another mapper with a repeating element (param). In the input tab assign $Map-Data/root/* to the repeating element.

In the 2nd Mapper’s input tab, drag the $Map-Data/root to the ABC* variable. The Mapping Wizard gives you 2 options one to set formula and the other as "For Each". Use the For each method. Then modify the value of the variable from $Map-Data/root to $Map-Data/root/* and put a dot (.) to the ABC variable.

Q3.
Launch BW from the command line by configuring the .tra file. Specify the repourl and the arguments. We could give the local path of the .dat and it would work fine.  You don’t have to launch your processes via the administrator. How can it be done with BW 5.0

A3.
The local path of the repo must point to the vcrepo.dat at the root of the BW 5 project. This file acts as a bootstrap and then everything works fine.

When a project is deployed in the domain, check the directory
TIBCO_HOME\bw\5.x\bin\domain\mydomain.
You will find a .cmd and a .tra enabling you to launch you engine(s) from
the command line (but via the admin).
Open the .tra file and look for the property "tibco.repourl=". Replace the
url by the local path of you vcrepo.dat. You should then be able to launch
your engines without the administrator running. You can even configure the
.tra yourself; use the admin just once to get a template for your .tra.

Q4.
How to handle fault tolerance in BW(5.0)? In BW the RVFT transport is not available, so how is it possible to make fault tolerance in the new framework of BW.

A4.
For BW process fault tolerance is achieved using Tibco Administrator. At the time of deployment, you can configure the Tibco Administrator servers as primary and secondary servers for a given domain. The primary server will be the prime server which will manage the deployed BW processes. If in case the primary server goes down then the secondary server will come into the operation. You would have to deploy your BW process in both primary server and secondary servers.

Q5.
What is the main difference between running the process in BW Designer and BW Deployment mode?

A5.
Running in designer, means that running it locally (standalone) using default ports. Deployment is the association of the process to the particular resource (machines) in the domain. Even local machine is a registered resource than.

Q6.
Can we have a common global variable which will be part of other global variables in BW? If so, how to represent them so that we can assign a value to this common variable during deployment? For example, to have our subjects or queues with the ENV name in it and ENV will be assigned a value of DEV or PROD during deployment

A6.
Use AppManage utility that creates the deployment configuration file based on the information in the application configured in TIBCO Administrator GUI. Now one can edit the configuration file as per the requirements. First you need this add on utility from TIBCO. Else the only other option is to change them in TIB/Admin GUI.

Q7.
There are multiple processes (with various transitions) within a group and
one cannot access some of the internal processes. On mouse over of certain
transitions inner processes, the focus goes to other transitions
and processes and not the ones that need to be modified. Therefore
the other specific processes cannot be altered.

A7.
The inner processes are there and sometimes they can be put in the visible
part again by selecting the transition and select menu View/Snap to Grid.

You can also 'walk' the process flow with your keyboard using Arrow Left and
Arrow Right keys. If you then have the non-visible process selected the use
Shift + Arrow keys to move it into the visible section.

Q8.
How is the versioning done?

A8.
Tibco has done "source control integration" by splitting a project into separate files, and allowing check in/check out from designer.

Q9.
Does BW support load balancing assigned tasks?

A9.
Tasks are assigned to roles, more than one person can belong to a role. However once a task is acquired by one of the members of the role, he will have to work on it (or delegate it to someone else)

Q10.
Does BW provide some kind of list of current (open) tasks and  their assignees (for a manager to look at all open tasks)?

A10.
BW provides you with the client palettes that have the required calls to do this i.e., it gives you the tools to build the queries.

Q11.
Tibco can only handle messages which are LESS THAN 250KB. Is it true?

A11.
Excerpts from the Doc -
Control Message Sizes
Although the ability to exchange large data buffers is a feature of Rendezvous software, it is best not to make messages too large. For example, to exchange data up to 10,000 bytes, a single message is efficient. But to send files that could be many megabytes in length, we recommend using multiple send calls, perhaps one for each record, block or track. Empirically determine the most efficient size for the prevailing network conditions. (The actual size limit is 64 MB, which is rarely an appropriate size.)

SOAP


Q1.
How to implement a process with a web service which is authenticated?
A1.
The identity object is to be used. One can see it once the basic authentication checkbox is checked.

FILES


Q1.
A File Poller polls for 3 different files at 3 different times. If a file is not present in the corresponding directory, can it be redirected to a BW Error process or transitioned elsewhere?

A1.  
File poller is a combination of timer activity and read file activity. This combination has it's own advantages and disadvantages. Advantage is that you can redirect to error in case desired file was not found by read activity that you want in this case.
Disadvantage is that you can not use wild card to read the/files. You have to specify read activity for all the three files. But you will be able to trace the file not found
error.

JAVA


Q1.
Pass a java Object as an input to a Process. The problem is when one specifies the input from the previous process in the Start activity’s Output Editor as Any Element, It does not populate the object. What could be the solution to this?
A1.
BW 5.2 has a Object reference element type, which can be used to pass the
java object across process.

Q2.
Can BW5.1.3. support cache mechanism to store the custom java objects?.
A2.
Yes, it supports cache mechanism for custom java object. You can use Java Method palette to cache java objects. The custom java class needs to be added to the classpath of BW. You can select the custom java class and the method you will be using.
In the "Advanced" tab of Java Method palette there is option to cache Constructed class. If this is checked, all the Java Method activity will share the instance of the custom class. It is kept in memory until the process engine terminates. If this field is unchecked, each instance of this Java Method activity creates its own copy of the class.

Active Enterprise Adapter

Q1.
The following error is encountered in the Adapter subscriber of BW. What is the reason?
EventContext.postProcess failed
Missing AE metadata in message: null

A1.
This error occurs when the BW Engine fails to load the schema for this activity. There is a workaround for this. Explicitly give the schema reference by checking the 'Custom AE Schema' option and then give the schema reference for the subscription configuration.

Q2.
How to publish an AE message from Tibco BW? The schema has been defined for the AE message.

A2.
You can only publish an AE message from an AdapterPublisher resource.  The Rendezvous Transport only allows you to publish a RV message. 

Mail

Q1.

The following error is thrown in a Receive Mail activity.
BW-MAIL-100014 Error while polling mail server: cannot open INBOX folder.
javax.mail.MessagingException: Open failed;   nested exception is:
   java.io.EOFException: The requested mailbox is not available on this server.
        at com.sun.mail.pop3.POP3Folder.open(POP3Folder.java:170)
        at com.tibco.plugin.mail.MailEventSource$a.itsTime(MailEventSource.java:363)
        at com.tibco.pe.util.ReminderQueue.run(ReminderQueue.java:224)

A1.
If the email id has'.' then the problem occurs.
Eg. test.work@ittoolbox.com ( this will create the problem )
However the email id test_work@ittoolbox.com will work fine.


HTTP

Q1.
How to receive xml in "HTTP Receiver" activity? Posting the xml using "Send HTTP Request" activity and placed the xml content in "Postdata" field of input tab.

A1.
Follow Following Steps, 1. In Send HTTP Requet task configuration tab, set parameter say XML. 2. Give Proper http host and port on which your http receiver is listening. 3. In Input tab, in activity input, u will find XML field under parameters field. 4. Place ur xml content in this field instead of PostData field. 5. At HTTP Receiver give same XML as input data parameter in configuration tab

Q2.
In BW use HTTP Connection and configure it to listen to tomcat port. So that Http Receiver takes the data from Web interface using HTTP Connection and provide the data to Http Receiver. Start tomcat. After that start BW process to listen to the web interface. The following error is thrown

 BW-HTTP-100116 Activation error with process starter [Process
 Definition.process]
 caused by: A lifecycle exception was thrown while trying to initialize
Tomcat server caused by: LifecycleException:  Protocol handler initialization
failed: java.net.BindException: Address already in use: JVM_Bind:1010

A2.
This exception occurs since this port is already is in use. If on a windows platform, use the command:
                netstat -a
to find out the active port bindings on your machine.

XML


Q1.
Put an xsd file into BW 5.1 project, Is there a simple way to upload a file (by file url as in BW 2.x Schema) other than cut and paste?

A1.
When using a file-based project, you can just copy the XSD(s) to a folder of your project.
Restart designer and BW will recognize it.
Alternatively, From the Project menu select "Import Resources from File, Folder, URL "
and on the dialogue box, specify the format as File(.xsd,.xslt,.wsdl,.*) and browse for the required xsd file.

JMS


Q1.
Can one listen directly JMS bus or should transform the JMS message into AE
message? Is there a need for any additional component between the JMS bus and BW
listener task, to perform this transformation?
In case BW can listen for JMS messages, do the JMS messages have parameters or header, so different listeners can run in the same time listening specific messages?

A1.
Since JMS messages uses XML wire format, it can be easily transformed to TIBCO AE schema. The only thing that has to be done is, in JMS Listener activity specify the input
queue name and select the message type as 'XML TYPE'. Then select the schmea (which should be same as JMS message schema) in 'Output Editor' tab to do the transformation.


Regarding the parameters/headers, use JMS Application Property activity to set the parameters. Then map this property in JMS Listener activity->Advanced option.

No comments:

Post a Comment