Application startup takes more time/hanging in BW6.

Application startup takes more time/hanging in BW6.

book

Article ID: KB0094043

calendar_today

Updated On:

Products Versions
TIBCO ActiveMatrix BusinessWorks -
Not Applicable -

Description

Description:
After deploying applications in the BW6 environment, the application startup takes a considerable amount of time. This happens in environments where network latency/congestion occurs.
Symptoms:
1). Application startup timeout in TEA Admin console. 
2). Engine stops at the following line after enabling debug logging. 

20:37:42.671 DEBUG [Framework Event Dispatcher] c.t.b.thor.common.util.CompositeUtil - End loading composite location bundleresource://97.fwk1130665357:1/META-INF/module.bwm in 8ms
20:37:42.673 DEBUG [Framework Event Dispatcher] c.tibco.bw.frwk.util.CompositeParser - validating module composite
20:37:42.676 DEBUG [Framework Event Dispatcher] com.tibco.bw.frwk.util.ProcessParser - deserializing processes

The delay could be in between "Impair" statements.


Cause:
This is caused by the targetnamespace lookup. If a schema location is not specified in wsdl or schema imports, the engine will try to lookup the name over the network. 

Example :  <xsd:import namespace="http://mytest.com/xmlns/bw/LoggingCommons"></xsd:import>

In the above case, a network lookup will be performed for mytest.com. The same will not happen for the following declaration 

<xsd:import namespace="http://mytest.com/xmlns/bw/LoggingCommons" schemaLocation="../Schemas/LoggingCommons.xsd"></xsd:import>

If a server does not have an Internet connection (more applicable to production servers), the lookup will take time to get it's response and that will internally delay application startup.



Issue/Introduction

Application startup takes more time/hanging in BW6.

Resolution

Add the following two properties in the application node config file. Target namespace resolution happens by using a Java URL library and the following properties will set the timeout for these connections. It will force the connection to timeout if an external server is not responding after the specified time. As the engine HTTP connection calls use different libraries, it does not impact the engine HTTP operations.

Properties:
=======

sun.net.client.defaultConnectTimeout=xxxx (in milliseconds)

sun.net.client.defaultReadTimeout=xxxx (in milliseconds)


Example: 
======

sun.net.client.defaultConnectTimeout=1000

sun.net.client.defaultReadTimeout=1000



File to be changed (add at the end of the path).

===========


 /opt/tibco/bw6/bw/6.2/domains/<domain>/appnodes/<appspace>/<node>/config.ini



Additional Information

Refer to the following link for more information about HTTP connection properties.

http://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html