Purpose
Audience
Scope
Topic Wise
List of Questions
XPath
Builder
Others
SOAP
FILES
JAVA
Active
Enterprise Adapter
Mail
Q1.
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.
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.
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.
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;
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.
--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.
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.
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.
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.
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)
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.
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.)
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.
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.
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.
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
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.
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.
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)
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 )
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.
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.
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.
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?
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.
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