When a WSO2 product starts, it starts all components, features and related artifacts bundled with it. Multi-profile support allows you to run the product on a selected profile so that only the features specific to that profile along with common features start up with the server.
Tip | |||||
---|---|---|---|---|---|
Starting a product on a preferred profile only blocks/allows the relevant OSGI bundles. As a result, even if you start the server on a profile such as the
|
Table of Contents |
---|
API-M Profiles
The following are the different profiles available in WSO2 API Manager.
Profile | Command Option with Profile Name | Description |
---|---|---|
Gateway worker | -Dprofile=gateway-worker -DworkerNode=true | Only starts the components related to the API Gateway. You use this when the API Gateway acts as a worker node in a cluster. This profile starts the backend features for data processing and communicating with the manager node. |
Key Manager | -Dprofile=api-key-manager | Only starts the features relevant to the Key Manager component of the API Manager. |
Traffic Manager | -Dprofile=traffic-manager | Only starts the features relevant to the Traffic Manager component of the API Manager. The Traffic Manager helps users to regulate API traffic, make APIs and applications available to consumers at different service levels, and secure APIs against security attacks. The Traffic Manager features a dynamic throttling engine to process throttling policies in real-time, including rate limiting of API requests. |
API Publisher | -Dprofile=api-publisher | Only starts the front end/backend features relevant to the API Publisher. |
Developer Portal (API Store) | -Dprofile=api-store | Only starts the front end/backend features relevant to the Developer Portal (API Store). |
Note | ||||||
---|---|---|---|---|---|---|
|
Starting an API-M profile
Info |
---|
It is recommended to start the components in the following order: Key Manager, Publisher, Store, Traffic Manager, and Gateway. |
Perform the following configurations on the profile.
Localtabgroup Localtab active true id GWW title Gateway Worker When using this profile, make sure you configure the Gateway Worker as described in Configuring the Gateway in a Distributed Environment with rsync.
Localtab id KM title Key Manager Carryout the following configurations on the Key Manager node before starting the Key Manager.
- Open the
<API-M_HOME>/repository/conf/axis2/axis2.xml
file and remove the configuration section that starts with<transportSender name="ws" class="org.wso2.carbon.websocket.transport.WebsocketTransportSender">
. In the
<API-M_HOME>/repository/conf/api-manager.xml
file, set the values of the following elements tofalse
.Code Block language xml <ThrottlingConfigurations> ... <DataPublisher> <Enabled>false</Enabled> </DataPublisher> ... </ThrottlingConfigurations>
Code Block language xml <ThrottlingConfigurations> ... <JMSConnectionDetails> <Enabled>false</Enabled> </JMSConnectionDetails> ... </ThrottlingConfigurations>
Code Block <PolicyDeployer> <Enabled>false</Enabled> ... </PolicyDeployer>
Warning If you do not disable the
PolicyDeployer
you will get the following warning.Code Block WARN - APIManagerComponent Exception occurred while creating WSO2 Event Adapter. Request Blocking may not work properly
Localtab id TM title Traffic Manager When using this profile, make sure you configure the Traffic Manager as described in the Configuring the Traffic Manager section.
To disable registry indexing when setting up the Traffic Manager, see Registry indexing configurations .
Localtab id PUB title Publisher Carryout the following configurations on the Publisher node before starting the Publisher.
Set the values of the following elements to
false
in the<API-M_HOME>/repository/conf/api-manager.xml
file.Code Block language xml <ThrottlingConfigurations> ... <DataPublisher> <Enabled>false</Enabled> </DataPublisher> ... </ThrottlingConfigurations>
Code Block language xml <ThrottlingConfigurations> ... <JMSConnectionDetails> <Enabled>false</Enabled> </JMSConnectionDetails> ... </ThrottlingConfigurations>
Open the
<API-M_HOME>/repository/conf/axis2/axis2.xml
file and remove the configuration section that starts with<transportSender name="ws" class="org.wso2.carbon.websocket.transport.WebsocketTransportSender">
.
Localtab id STORE title Store Carryout the following configurations on the Store (Developer Portal) node before starting the Store.
Before starting the server, set the values of the following elements to
false
in the<API-M_HOME>/repository/conf/api-manager.xml
file.Code Block language xml <ThrottlingConfigurations> ... <DataPublisher> <Enabled>false</Enabled> </DataPublisher> ... </ThrottlingConfigurations>
Code Block language xml <ThrottlingConfigurations> ... <JMSConnectionDetails> <Enabled>false</Enabled> </JMSConnectionDetails> ... </ThrottlingConfigurations>
Code Block <PolicyDeployer> <Enabled>false</Enabled> ... </PolicyDeployer>
Open the
<API-M_HOME>/repository/conf/axis2/axis2.xml
file and remove the configuration section that starts with<transportSender name="ws" class="org.wso2.carbon.websocket.transport.WebsocketTransportSender">
.
- Open the
Carryout the following configuration changes on all the profiles with the exception of the Gateway profiles.
Open the
axis2.xml
file and comment out the following. Note that this step is redundant in the Traffic Manager profile since theaxis2_TM.xml
file is copied over.Code Block language xml <transportSender name="ws" class="org.wso2.carbon.websocket.transport.WebsocketTransportSender"> <parameter name="ws.outflow.dispatch.sequence" locked="false">outflowDispatchSeq</parameter> <parameter name="ws.outflow.dispatch.fault.sequence" locked="false">outflowFaultSeq</parameter> </transportSender>
- Delete the
WebSocketInboundEndpoint.xml
file from the<API-M_HOME>/repository/deployment/server/synapse-configs/default/inbound-endpoints
directory.
Multiexcerpt include MultiExcerptName Required Webapps PageWithExcerpt Deploying WSO2 API-M in a Distributed Setup Multiexcerpt MultiExcerptName removejaggery Make sure to keep the required Jaggery apps and remove the unnecessary Jaggery apps from the
<API-M_HOME>/repository/deployment/server/jaggeryapps
directory of each node.The following are the Jaggery apps that are required for each node:
ProfileRequired Jaggery appsGateway Worker None Key Manager None Traffic Manager None Publisher publisher, admin Store None Run the required API-M profile.
Execute one of the following commands based on your OS:Warning You can start only one profile at a time.
OS Command & Example Windows Code Block <PRODUCT_HOME>/bin/wso2server.bat -Dprofile=<preferred-profile> --run
For example to start the API Store execute the following command.
Code Block <API-M_HOME>/bin/wso2server.bat -Dprofile=api-store --run
Linux/Solaris Code Block sh <PRODUCT_HOME>/bin/wso2server.sh -Dprofile=api-store
For example to start the API Store execute the following command.
Code Block sh <API-M_HOME>/bin/wso2server.sh -Dprofile=api-store
How multi-profiling works
Starting a product on a preferred profile starts only a subset of features bundled in the product. In order to identify what feature bundles apply to which profile, each product maintains a set of bundles.info
files in the <PRODUCT_HOME>/repository/components/<profile-name>/configuration/org.eclipse.equinox.simpleconfigurator
directories. The bundles.info
files contain references to the actual bundles. Note that <profile-name>
in the directory path refers to the name of the profile. For example, when there's a product profile named webapp, references to all the feature bundles required for webapp profile to function are in a bundles.info
file saved in the <PRODUCT_HOME>/repository/components/webapp/configuration/org.eclipse.equinox.simpleconfigurator
directory.
Note that when you start the server without using a preferred profile, the server refers to the <PRODUCT_HOME>/repository/components/default/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info
file by default. This file contains references to all bundles in the <PRODUCT_HOME>/repository/components/plugins
directory, which is where all components/bundles of a product are saved.