Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

If the dynamic sequences are loaded to the memory at least once, the ESB will continue to use the cached version of the sequence, as long as the registry is unreachable. A warning will be logged every time ESB attempts to load the sequence from the registry and fails. As soon as the registry comes back on-line, ESB will load the sequence from the registry.

Transports-Related Questions

For full details on transports, see Working with Transports.

What are the transports supported by the WSO2 ESB?

For a complete list, see ESB Transports.

Do I need an external JMS broker for the JMS transport?

Yes, WSO2 ESB requires an external JMS broker like Apache ActiveMQ (http://activemq.apache.org).

Does WSO2 ESB support AMQP?

WSO2 ESB supports AMQP through its JMS transport. The JMS transport can be configured to connect to an AMQP broker as if it was connecting to a JMS broker. This functionality has been tested with Apache Qpid (http://qpid.apache.org) and RabbitMQ.

How can I change the host name in WSO2 ESB?

Edit parameter bind-address in http/https transport receiver to change the host name of WSO2 ESB. This hostname will be displayed on service endpoints and generated WSDLs.

I have several JMS connection factories defined under the JMS transport receiver in the axis2.xml. How can I get a particular proxy service to receive messages from one of those connection factories?

You can specify the preferred connection factory by adding the following parameter to the proxy service configuration.

Code Block
languagehtml/xml
<parameter name="transport.jms.ConnectionFactory">MyConnectionFactory</parameter>

Replace 'MyConnectionFactory' with the name of the appropriate connection factory. If the above parameter is not specified, proxy service will bind to the connection factory named 'default'.

Does WSO2 ESB support two way JMS scenario (request/response) ?

Yes, refer to sample 264, which demonstrates exactly the JMS request/response scenario.

What are the JMS brokers that work with WSO2 ESB?

Any JMS broker that provides JNDI support can be integrated with WSO2 ESB. The default configurations are for Apache ActiveMQ. WSO2 ESB has also been tested with IBM Websphere MQ, Swift MQ and JBOSS MQ.

What is the NHTTP transport?

This is the default HTTP transport used by WSO2 ESB. NHTTP stands for non-blocking HTTP. NHTTP transport uses the Java Non-blocking I/O API. This allows the NHTTP transport to scale into handling hundreds of connections without blocking the threads. The server worker threads used by the NHTTP transport do not get blocked on I/O until the ESB receives responses for the already forwarded requests. Therefore WSO2 ESB can accept more concurrent connections and requests than most HTTP server products.

What is the underlying HTTP library used by the NHTTP transport?

NHTTP transport uses the Apache Http Core NIO library (http://hc.apache.org/httpcomponents-core-ga/httpcore-nio) underneath. This library provides low-level I/O handling and HTTP-level detail handling.

How can I tune up the NHTTP transport?

There is a file called nhttp.properties in $ESB_HOME/repository/conf directory. User can change various configuration parameters like number of threads and maintain alive connections through this file. More information can be found in the ESB Administrator Guide.

Where is the general configuration of NHTTP transport?

The NHTTP transport configuration has two parts and they are transportReceiver and transportSender. Both configuration are located in $ESB_HOME\repository\conf\axis2\axis2.xml file.

How do I process files with the ESB?

Use the VFS transport for file processing. For an example, see Sample 271: File Processing.

How can I prevent an exception getting logged every 1-2 milliseconds in ESB when the JMS Broker (Active MQ) is down?

You can add failover: tcp://localhost:61616  to java.naming.provider.url of axis.xml JMSListener configuration as follows:

...

What is the recommended approach for dealing with *.back files that are created when there is an error in an ESB artifact?

You can delete the *.back file manually from the file system once you fix the error in the artifact. If an artifact fails during the process of creating it via the management console, the artifact can be deleted via the management console and the *.back file that is created will be deleted automatically.

Info
titleNote

If you upload an erroneous artifact through a CAR file, a *.back file will not be created even if the deployment fails.

...

Transports-Related Questions

For full details on transports, see Working with Transports.

What are the transports supported by the WSO2 ESB?

For a complete list, see ESB Transports.

Do I need an external JMS broker for the JMS transport?

Yes, WSO2 ESB requires an external JMS broker like Apache ActiveMQ (http://activemq.apache.org).

Does WSO2 ESB support AMQP?

WSO2 ESB supports AMQP through its JMS transport. The JMS transport can be configured to connect to an AMQP broker as if it was connecting to a JMS broker. This functionality has been tested with Apache Qpid (http://qpid.apache.org) and RabbitMQ.

How can I change the host name in WSO2 ESB?

Edit parameter bind-address in http/https transport receiver to change the host name of WSO2 ESB. This hostname will be displayed on service endpoints and generated WSDLs.

I have several JMS connection factories defined under the JMS transport receiver in the axis2.xml. How can I get a particular proxy service to receive messages from one of those connection factories?

You can specify the preferred connection factory by adding the following parameter to the proxy service configuration.

Code Block
languagehtml/xml
<parameter name="transport.jms.ConnectionFactory">MyConnectionFactory</parameter>

Replace 'MyConnectionFactory' with the name of the appropriate connection factory. If the above parameter is not specified, proxy service will bind to the connection factory named 'default'.

Does WSO2 ESB support two way JMS scenario (request/response) ?

Yes, refer to sample 264, which demonstrates exactly the JMS request/response scenario.

What are the JMS brokers that work with WSO2 ESB?

Any JMS broker that provides JNDI support can be integrated with WSO2 ESB. The default configurations are for Apache ActiveMQ. WSO2 ESB has also been tested with IBM Websphere MQ, Swift MQ and JBOSS MQ.

What is the NHTTP transport?

This is the default HTTP transport used by WSO2 ESB. NHTTP stands for non-blocking HTTP. NHTTP transport uses the Java Non-blocking I/O API. This allows the NHTTP transport to scale into handling hundreds of connections without blocking the threads. The server worker threads used by the NHTTP transport do not get blocked on I/O until the ESB receives responses for the already forwarded requests. Therefore WSO2 ESB can accept more concurrent connections and requests than most HTTP server products.

What is the underlying HTTP library used by the NHTTP transport?

NHTTP transport uses the Apache Http Core NIO library (http://hc.apache.org/httpcomponents-core-ga/httpcore-nio) underneath. This library provides low-level I/O handling and HTTP-level detail handling.

How can I tune up the NHTTP transport?

There is a file called nhttp.properties in $ESB_HOME/repository/conf directory. User can change various configuration parameters like number of threads and maintain alive connections through this file. More information can be found in the ESB Administrator Guide.

Where is the general configuration of NHTTP transport?

The NHTTP transport configuration has two parts and they are transportReceiver and transportSender. Both configuration are located in $ESB_HOME\repository\conf\axis2\axis2.xml file.

How do I process files with the ESB?

Use the VFS transport for file processing. For an example, see Sample 271: File Processing.

How can I prevent an exception getting logged every 1-2 milliseconds in ESB when the JMS Broker (Active MQ) is down?

You can add failover: tcp://localhost:61616  to java.naming.provider.url of axis.xml JMSListener configuration as follows:

Code Block
<transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener"> 
      <parameter name="java.naming.provider.urlmyTopicConnectionFactory" locked="false">failover:tcp://localhost:61616&lt;/parameter>> 
        <parameter name="transportjava.naming.jmsfactory.ConnectionFactoryJNDINameinitial" locked="false">TopicConnectionFactory</parameter> >org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter> 
        <parameter name="transportjava.naming.jmsprovider.ConnectionFactoryTypeurl" locked="false">topic</parameter> 
      </parameter> >failover:tcp://localhost:61616&lt;/parameter> 
        <parameter name="myQueueConnectionFactorytransport.jms.ConnectionFactoryJNDIName" locked="false">>TopicConnectionFactory</parameter> 
         <parameter name="javatransport.namingjms.factory.initialConnectionFactoryType" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory<>topic</parameter> 
      </parameter> 
 <parameter name=" 
      <parameter name="myQueueConnectionFactory" locked="false"> 
         <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter> 
         <parameter name="java.naming.provider.url" locked="false">failover:tcp://localhost:61616&lt;/parameter> 
         <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter> 
         <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter> 
       </parameter> 
  
      <parameter name="default" locked="false"> 
        <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter> 
        <parameter name="java.naming.provider.url" locked="false">failover:tcp://localhost:61616&lt;/parameter> 
        <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter> 
        <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter> 
      </parameter> 
</transportReceiver>

When the configuration is done as shown above, the attempted reconnection to Active MQ will not be logged in the log file.

How can we add JMS correlation IDs to the messages in a request queue and how does it work?

 In order to make correlation IDs to the messages in the request queue:

...

Your request and response messages will be matched using this correlation ID.

Production-Related Questions

Where do I keep the WSDLs required by my proxy services?

You can keep them as local entries. But it is recommended to keep them in the registry instead, for easier and better management.

What is a graceful shut down?

When a graceful shut down is initiated, the ESB will continue to serve the accepted requests but stops processing new ones.

I already have a WSO2 Governance Registry instance that contains my organization's SOA metadata. Can I get WSO2 ESB to use that registry instance as the metadata store?

WSO2 ESB integrates with WSO2 Governance Registry out of the box. For steps involved in remote registry configuration, refer to Working with the Registry .

I need to setup a cluster of ESB instances. How can I share the same configuration among all the ESB nodes?

Put the configuration into the registry and point all ESB instances to that registry instance.

How can I get the <ESB_HOME>/tmp directory cleared?

Based on the HouseKeeping task for carbon.xml, if the <AutoStart> property is set to true, all files that are more than 30 minutes old will be cleared every 10 minutes.
If you are running the ESB on Linux, you can also write a cron job to handle the clearing of contents within the <ESB_HOME>/tmp directory. 

Deployment Questions

What are the versions of Java supported by the ESB?

It is tested on JDK 1.5, JDK 1.6.* and JDK 1.7.*. Sun JDK and IBM JDK are supported.

What are the minimum artifacts required to deploy WSO2?

Refer to Installation Prerequisites.

How can I disable the management console?

You can uninstall all the UI components using the feature manager, which will disable the management console.

Does WSO2 ESB support application server deployments?

Yes it has been tested on JBoss, Weblogic, Websphere and Tomcat.

How can I deploy a custom task?

Put your non-OSGi task jar into $ESB_HOME/repository/components/lib directory, which will be deployed automatically. For information on writing a custom task, refer to Writing Tasks.

How do I embed a third-party registry with WSO2 ESB?

You need to write a class implementing the org.apache.synapse.registry.Registry interface to integrate the third party registry to WSO2 ESB.

What is the database management system used in WSO2 ESB?

WSO2 ESB ships with an embedded H2 database. However any database management system can be plugged into the ESB via JDBC. The relevant database configurations are available in repository/conf/registry.xml and repository/cong/user-mgt.xml files. WSO2 ESB has been tested with MySQL, Oracle, MSSQL and PostgreSQL databases. For information, refer to Setting up the Physical Database.

How can I change the memory allocation for the WSO2 ESB?

The memory allocation setting are in the wso2server.sh. The user can change the memory allocation settings by changing the following configuration.

-Xms256m -Xmx512m -XX:MaxPermSize=128m

What is the recommended approach for dealing with *.back files that are created when there is an error in an ESB artifact?

You can delete the *.back file manually from the file system once you fix the error in the artifact. If an artifact fails during the process of creating it via the management console, the artifact can be deleted via the management console and the *.back file that is created will be deleted automatically.

Info
titleNote
If you upload an erroneous artifact through a CAR file, a *.back file will not be created even if the deployment fails.

When the configuration is done as shown above, the attempted reconnection to Active MQ will not be logged in the log file.

How can we add JMS correlation IDs to the messages in a request queue and how does it work?

 In order to make correlation IDs to the messages in the request queue:

  1. Add the following property within the in sequence  of the proxy service.

      <property name="JMS_COORELATION_ID" value="1234" scope="axis2"/>
  2.  Make a response with same corrlelation ID (message_properties.correlation := '1234').
Your request and response messages will be matched using this correlation ID.

...

Production-Related Questions

Where do I keep the WSDLs required by my proxy services?

You can keep them as local entries. But it is recommended to keep them in the registry instead, for easier and better management.

What is a graceful shut down?

When a graceful shut down is initiated, the ESB will continue to serve the accepted requests but stops processing new ones.

I already have a WSO2 Governance Registry instance that contains my organization's SOA metadata. Can I get WSO2 ESB to use that registry instance as the metadata store?

WSO2 ESB integrates with WSO2 Governance Registry out of the box. For steps involved in remote registry configuration, refer to Working with the Registry .

I need to setup a cluster of ESB instances. How can I share the same configuration among all the ESB nodes?

Put the configuration into the registry and point all ESB instances to that registry instance.

How can I get the <ESB_HOME>/tmp directory cleared?

Based on the HouseKeeping task for carbon.xml, if the <AutoStart> property is set to true, all files that are more than 30 minutes old will be cleared every 10 minutes.
If you are running the ESB on Linux, you can also write a cron job to handle the clearing of contents within the <ESB_HOME>/tmp directory. 

...

Deployment Questions

What are the versions of Java supported by the ESB?

It is tested on JDK 1.5, JDK 1.6.* and JDK 1.7.*. Sun JDK and IBM JDK are supported.

What are the minimum artifacts required to deploy WSO2?

Refer to Installation Prerequisites.

How can I disable the management console?

You can uninstall all the UI components using the feature manager, which will disable the management console.

Does WSO2 ESB support application server deployments?

Yes it has been tested on JBoss, Weblogic, Websphere and Tomcat.

How can I deploy a custom task?

Put your non-OSGi task jar into $ESB_HOME/repository/components/lib directory, which will be deployed automatically. For information on writing a custom task, refer to Writing Tasks.

How do I embed a third-party registry with WSO2 ESB?

You need to write a class implementing the org.apache.synapse.registry.Registry interface to integrate the third party registry to WSO2 ESB.

What is the database management system used in WSO2 ESB?

WSO2 ESB ships with an embedded H2 database. However any database management system can be plugged into the ESB via JDBC. The relevant database configurations are available in repository/conf/registry.xml and repository/cong/user-mgt.xml files. WSO2 ESB has been tested with MySQL, Oracle, MSSQL and PostgreSQL databases. For information, refer to Setting up the Physical Database.

How can I change the memory allocation for the WSO2 ESB?

The memory allocation setting are in the wso2server.sh. The user can change the memory allocation settings by changing the following configuration.

-Xms256m -Xmx512m -XX:MaxPermSize=128m

...

Monitoring Questions

Does ESB supports JMX monitoring?

...